Projet

Général

Profil

0010-tests-add-create_formdata-test-on-XML-export-import-.patch

Benjamin Dauvergne, 23 janvier 2020 15:42

Télécharger (3,56 ko)

Voir les différences:

Subject: [PATCH 10/11] tests: add create_formdata test on XML export/import
 (#33186)

 tests/test_workflow_import.py | 65 ++++++++++++++++++++++++++++++++---
 1 file changed, 60 insertions(+), 5 deletions(-)
tests/test_workflow_import.py
9 9
from quixote import cleanup
10 10
from wcs import publisher
11 11

  
12
from wcs.workflows import (Workflow, CommentableWorkflowStatusItem,
13
        WorkflowCriticalityLevel, WorkflowBackofficeFieldsFormDef,
14
        SendmailWorkflowStatusItem, SendSMSWorkflowStatusItem,
15
        WorkflowImportError)
12
from wcs.formdef import FormDef
13
from wcs.workflows import (
14
    Workflow, CommentableWorkflowStatusItem, WorkflowCriticalityLevel,
15
    WorkflowBackofficeFieldsFormDef, SendmailWorkflowStatusItem,
16
    SendSMSWorkflowStatusItem, WorkflowImportError, ChoiceWorkflowStatusItem,
17
    JumpOnSubmitWorkflowStatusItem)
16 18
from wcs.wf.wscall import WebserviceCallStatusItem
17 19
from wcs.wf.dispatch import DispatchWorkflowStatusItem
18 20
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
19 21
from wcs.wf.profile import UpdateUserProfileStatusItem
20 22
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
23
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
24
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping
21 25
from wcs.roles import Role
22
from wcs.fields import StringField
26
from wcs.fields import StringField, FileField
23 27

  
24 28
from wcs.qommon.misc import indent_xml as indent
25 29

  
......
681 685

  
682 686
    sendmail.condition = {'type': 'python', 'value': 'True'}
683 687
    wf2 = assert_import_export_works(wf)
688

  
689

  
690
def test_create_formdata(pub):
691
    target_formdef = FormDef()
692
    target_formdef.name = 'target form'
693
    target_formdef.fields = [
694
        StringField(id='0', label='string', varname='foo_string'),
695
        FileField(id='1', label='file', type='file', varname='foo_file'),
696
    ]
697
    target_formdef.store()
698

  
699
    wf = Workflow(name='create-formdata')
700

  
701
    st1 = wf.add_status('New')
702
    st2 = wf.add_status('Resubmit')
703

  
704
    jump = ChoiceWorkflowStatusItem()
705
    jump.id = '_resubmit'
706
    jump.label = 'Resubmit'
707
    jump.by = ['_submitter']
708
    jump.status = st2.id
709
    jump.parent = st1
710
    st1.items.append(jump)
711

  
712
    create_formdata = CreateFormdataWorkflowStatusItem()
713
    create_formdata.id = '_create_formdata'
714
    create_formdata.formdef_slug = target_formdef.url_name
715
    create_formdata.mappings = [
716
        Mapping(varname='foo_string', expression='=form_var_toto_string'),
717
        Mapping(varname='foo_file', expression='=form_var_toto_file_raw'),
718
    ]
719
    create_formdata.parent = st2
720
    st2.items.append(create_formdata)
721

  
722
    redirect = RedirectToUrlWorkflowStatusItem()
723
    redirect.id = '_redirect'
724
    redirect.url = '{{ linked.url }}'
725
    redirect.parent = st2
726
    st2.items.append(redirect)
727

  
728
    jump = JumpOnSubmitWorkflowStatusItem()
729
    jump.id = '_jump'
730
    jump.status = st1.id
731
    jump.parent = st2
732
    st2.items.append(jump)
733

  
734
    wf.store()
735

  
736
    wf2 = assert_import_export_works(wf, include_id=True)
737
    assert isinstance(wf2.get_status('2').items[0], CreateFormdataWorkflowStatusItem)
738
    assert wf2.get_status('2').items[0] == wf.get_status('2').items[0]
684
-