Projet

Général

Profil

0001-tests-check-behaviour-of-global-actions-jumping-to-c.patch

Frédéric Péters, 01 octobre 2018 18:14

Télécharger (3,13 ko)

Voir les différences:

Subject: [PATCH] tests: check behaviour of global actions jumping to current
 status (#26872)

 tests/test_form_pages.py | 57 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
tests/test_form_pages.py
28 28
        DisplayMessageWorkflowStatusItem, WorkflowBackofficeFieldsFormDef,
29 29
        ChoiceWorkflowStatusItem, JumpOnSubmitWorkflowStatusItem,
30 30
        SendmailWorkflowStatusItem)
31
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
31 32
from wcs.wf.export_to_model import ExportToModel, transform_to_pdf
32 33
from wcs.wf.jump import JumpWorkflowStatusItem
33 34
from wcs.wf.attachment import AddAttachmentWorkflowStatusItem
......
4959 4960
    assert 'HELLO WORLD GLOBAL ACTION' in resp.body
4960 4961
    assert formdef.data_class().get(formdata.id).status == 'wf-finished'
4961 4962

  
4963
def test_user_global_action_same_status_store(pub):
4964
    user = create_user(pub)
4965

  
4966
    workflow = Workflow.get_default_workflow()
4967
    workflow.id = '2'
4968

  
4969
    workflow.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(workflow)
4970
    workflow.backoffice_fields_formdef.fields = [
4971
        fields.StringField(id='bo1', label='bo field 1', type='string'),
4972
    ]
4973
    action = workflow.add_global_action('FOOBAR')
4974
    jump = action.append_item('jump')
4975
    jump.status = 'new'
4976
    trigger = action.triggers[0]
4977
    trigger.roles = ['_submitter']
4978

  
4979
    new_status = workflow.possible_status[1]
4980

  
4981
    setbo = SetBackofficeFieldsWorkflowStatusItem()
4982
    setbo.parent = new_status
4983
    setbo.fields = [{'field_id': 'bo1', 'value': '123'}]
4984
    new_status.items = [setbo] + new_status.items
4985

  
4986
    workflow.store()
4987

  
4988
    formdef = FormDef()
4989
    formdef.name = 'test global action'
4990
    formdef.fields = []
4991
    formdef.workflow_id = workflow.id
4992
    formdef.workflow_roles = {}
4993
    formdef.store()
4994

  
4995
    formdef.data_class().wipe()
4996

  
4997
    app = login(get_app(pub), username='foo', password='foo')
4998
    resp = app.get(formdef.get_url())
4999
    resp = resp.form.submit('submit')
5000
    resp = resp.form.submit('submit')
5001

  
5002
    assert formdef.data_class().count() == 1
5003
    formdata = formdef.data_class().select()[0]
5004
    assert formdata.data['bo1'] == '123'
5005

  
5006
    # change global action
5007
    setbo.fields = [{'field_id': 'bo1', 'value': '321'}]
5008
    workflow.store()
5009

  
5010
    resp = app.get(formdata.get_url())
5011
    assert 'button-action-1' in resp.form.fields
5012
    resp = resp.form.submit('button-action-1')  # click global action
5013

  
5014
    # check status actions are not rerun
5015
    resp = app.get(formdata.get_url())
5016
    assert formdef.data_class().get(formdata.id).status == 'wf-new'
5017
    assert formdef.data_class().get(formdata.id).data['bo1'] == '123'
5018

  
4962 5019
def test_condition_on_action(pub, emails):
4963 5020
    user = create_user(pub)
4964 5021

  
4965
-