tests: check behaviour of global actions jumping to current status (#26872)

This commit is contained in:
Frédéric Péters 2018-10-01 18:13:47 +02:00
parent 2e24fa95d8
commit 89675bbdcb
1 changed files with 57 additions and 0 deletions

View File

@ -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
@ -4912,6 +4913,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)