testdef: do not store inside import method (#88755)
This commit is contained in:
parent
f5419a2fa7
commit
c883b48e28
|
@ -78,6 +78,7 @@ def test_testdef_export_to_xml(pub):
|
|||
WebserviceResponse.wipe()
|
||||
|
||||
testdef2 = TestDef.import_from_xml(io.BytesIO(testdef_xml), formdef)
|
||||
testdef2.store()
|
||||
assert testdef2.name == 'test'
|
||||
assert testdef2.object_type == 'formdefs'
|
||||
assert testdef2.object_id == str(formdef.id)
|
||||
|
|
|
@ -434,6 +434,7 @@ class TestsDirectory(Directory):
|
|||
form.set_error('file', _('Invalid File'))
|
||||
raise e
|
||||
|
||||
testdef.store()
|
||||
get_session().message = ('info', _('Test "%s" has been successfully imported.') % testdef.name)
|
||||
return redirect('.')
|
||||
|
||||
|
|
|
@ -1768,7 +1768,8 @@ class FormDef(StorableObject):
|
|||
from .testdef import TestDef
|
||||
|
||||
for testdef in self.xml_testdefs:
|
||||
TestDef.import_from_xml_tree(testdef, self)
|
||||
obj = TestDef.import_from_xml_tree(testdef, self)
|
||||
obj.store()
|
||||
|
||||
def get_detailed_email_form(self, formdata, url):
|
||||
r = ''
|
||||
|
|
|
@ -169,6 +169,13 @@ class TestDef(sql.TestDef):
|
|||
self.workflow_tests.testdef = self
|
||||
self.workflow_tests.store()
|
||||
|
||||
if hasattr(self, '_webservice_responses'):
|
||||
# first store after import, attach webservice responses
|
||||
for response in self._webservice_responses:
|
||||
response.testdef_id = self.id
|
||||
response.store()
|
||||
del self._webservice_responses
|
||||
|
||||
@classmethod
|
||||
def remove_object(cls, id):
|
||||
super().remove_object(id)
|
||||
|
@ -563,12 +570,6 @@ class TestDef(sql.TestDef):
|
|||
if hasattr(testdef_xml, field):
|
||||
setattr(testdef, field, getattr(testdef_xml, field))
|
||||
|
||||
testdef.store()
|
||||
|
||||
for response in testdef._webservice_responses:
|
||||
response.testdef_id = testdef.id
|
||||
response.store()
|
||||
|
||||
return testdef
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue