From 06a523787bf39e22b1f327b10bc3295bab10e1b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 1 Oct 2018 18:13:47 +0200 Subject: [PATCH] tests: check behaviour of global actions jumping to current status (#26872) --- tests/test_form_pages.py | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/tests/test_form_pages.py b/tests/test_form_pages.py index bee56ebf8..c805b0a5a 100644 --- a/tests/test_form_pages.py +++ b/tests/test_form_pages.py @@ -28,6 +28,7 @@ from wcs.workflows import (Workflow, EditableWorkflowStatusItem, DisplayMessageWorkflowStatusItem, WorkflowBackofficeFieldsFormDef, ChoiceWorkflowStatusItem, JumpOnSubmitWorkflowStatusItem, SendmailWorkflowStatusItem) +from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem from wcs.wf.export_to_model import ExportToModel, transform_to_pdf from wcs.wf.jump import JumpWorkflowStatusItem from wcs.wf.attachment import AddAttachmentWorkflowStatusItem @@ -4959,6 +4960,62 @@ def test_user_global_action(pub): assert 'HELLO WORLD GLOBAL ACTION' in resp.body assert formdef.data_class().get(formdata.id).status == 'wf-finished' +def test_user_global_action_same_status_store(pub): + user = create_user(pub) + + workflow = Workflow.get_default_workflow() + workflow.id = '2' + + workflow.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(workflow) + workflow.backoffice_fields_formdef.fields = [ + fields.StringField(id='bo1', label='bo field 1', type='string'), + ] + action = workflow.add_global_action('FOOBAR') + jump = action.append_item('jump') + jump.status = 'new' + trigger = action.triggers[0] + trigger.roles = ['_submitter'] + + new_status = workflow.possible_status[1] + + setbo = SetBackofficeFieldsWorkflowStatusItem() + setbo.parent = new_status + setbo.fields = [{'field_id': 'bo1', 'value': '123'}] + new_status.items = [setbo] + new_status.items + + workflow.store() + + formdef = FormDef() + formdef.name = 'test global action' + formdef.fields = [] + formdef.workflow_id = workflow.id + formdef.workflow_roles = {} + formdef.store() + + formdef.data_class().wipe() + + app = login(get_app(pub), username='foo', password='foo') + resp = app.get(formdef.get_url()) + resp = resp.form.submit('submit') + resp = resp.form.submit('submit') + + assert formdef.data_class().count() == 1 + formdata = formdef.data_class().select()[0] + assert formdata.data['bo1'] == '123' + + # change global action + setbo.fields = [{'field_id': 'bo1', 'value': '321'}] + workflow.store() + + resp = app.get(formdata.get_url()) + assert 'button-action-1' in resp.form.fields + resp = resp.form.submit('button-action-1') # click global action + + # check status actions are not rerun + resp = app.get(formdata.get_url()) + assert formdef.data_class().get(formdata.id).status == 'wf-new' + assert formdef.data_class().get(formdata.id).data['bo1'] == '123' + def test_condition_on_action(pub, emails): user = create_user(pub) -- 2.19.0