snapshots: do not fail on workflow import error (#53960)
gitea-wip/wcs/pipeline/head Build started...
Details
gitea-wip/wcs/pipeline/head Build started...
Details
This commit is contained in:
parent
b190151b13
commit
744fee85b5
|
@ -472,6 +472,33 @@ def test_workflow_snapshot_restore(pub):
|
|||
assert not hasattr(Workflow.get(workflow.id), 'snapshot_object')
|
||||
|
||||
|
||||
def test_workflow_snapshot_restore_with_import_error(pub):
|
||||
create_superuser(pub)
|
||||
create_role(pub)
|
||||
app = login(get_app(pub))
|
||||
|
||||
Workflow.wipe()
|
||||
wf = Workflow(name='status')
|
||||
st1 = wf.add_status('Status1', 'st1')
|
||||
|
||||
display_form = FormWorkflowStatusItem()
|
||||
display_form.id = '_x'
|
||||
display_form.varname = 'xxx'
|
||||
display_form.formdef = WorkflowFormFieldsFormDef(item=display_form)
|
||||
display_form.formdef.fields = [
|
||||
ItemField(id='1', label='Test', type='item', data_source={'type': 'unknown'})
|
||||
]
|
||||
st1.items.append(display_form)
|
||||
display_form.parent = st1
|
||||
wf.store()
|
||||
|
||||
assert pub.snapshot_class.count() == 1
|
||||
snapshot = pub.snapshot_class.select_object_history(wf)[0]
|
||||
resp = app.get('/backoffice/workflows/%s/history/%s/restore' % (wf.id, snapshot.id))
|
||||
resp = resp.form.submit('submit')
|
||||
assert 'Can not restore snapshot (Unknown datasources [unknown])' in resp
|
||||
|
||||
|
||||
def test_workflow_with_model_snapshot_browse(pub):
|
||||
create_superuser(pub)
|
||||
create_role(pub)
|
||||
|
|
|
@ -26,7 +26,7 @@ from wcs.mail_templates import MailTemplate
|
|||
from wcs.qommon import _, errors, misc, template
|
||||
from wcs.qommon.backoffice.menu import html_top
|
||||
from wcs.qommon.form import Form, RadiobuttonsWidget, StringWidget
|
||||
from wcs.workflows import Workflow
|
||||
from wcs.workflows import Workflow, WorkflowImportError
|
||||
from wcs.wscalls import NamedWsCall
|
||||
|
||||
|
||||
|
@ -138,7 +138,7 @@ class SnapshotDirectory(Directory):
|
|||
if form.get_submit() == 'submit':
|
||||
try:
|
||||
self.snapshot.restore(as_new=bool(action.parse() == 'as-new'))
|
||||
except FormdefImportError as e:
|
||||
except (FormdefImportError, WorkflowImportError) as e:
|
||||
reason = _(e.msg) % e.msg_args
|
||||
if e.details:
|
||||
reason += ' [%s]' % e.details
|
||||
|
|
Loading…
Reference in New Issue