Projet

Général

Profil

0001-workflows-add-missing-tests-for-wf-import-57753.patch

Lauréline Guérin, 04 novembre 2021 14:51

Télécharger (3,33 ko)

Voir les différences:

Subject: [PATCH 1/4] workflows: add missing tests for wf import (#57753)

 tests/test_workflow_import.py | 47 ++++++++++++++++++++++++++++++++---
 1 file changed, 44 insertions(+), 3 deletions(-)
tests/test_workflow_import.py
4 4
import pytest
5 5
from quixote.http_request import Upload
6 6

  
7
from wcs.blocks import BlockDef
7 8
from wcs.carddef import CardDef
8 9
from wcs.categories import WorkflowCategory
9
from wcs.fields import FileField, StringField
10
from wcs.fields import BlockField, FileField, StringField
10 11
from wcs.formdef import FormDef
11 12
from wcs.mail_templates import MailTemplate
12 13
from wcs.qommon.form import UploadedFile
......
898 899
        Workflow.import_from_xml_tree(ET.fromstring(export), include_id=True)
899 900

  
900 901

  
901
def test_unknown_data_source(pub):
902
def test_workflow_with_unknown_data_source(pub):
902 903
    wf1 = Workflow(name='status')
903 904
    st1 = wf1.add_status('Status1', 'st1')
904 905
    display_form = FormWorkflowStatusItem()
......
981 982
            Workflow.import_from_xml(io.BytesIO(export))
982 983

  
983 984

  
984
def test_worklow_with_category(pub):
985
def test_workflow_with_block(pub):
986
    BlockDef.wipe()
987
    block = BlockDef()
988
    block.name = 'foobar'
989
    block.digest_template = 'X{{foobar_var_foo}}Y'
990
    block.fields = [
991
        StringField(id='123', required=True, label='Test', type='string', varname='foo'),
992
    ]
993
    block.store()
994

  
995
    wf1 = Workflow(name='status')
996
    st1 = wf1.add_status('Status1', 'st1')
997
    display_form = FormWorkflowStatusItem()
998
    display_form.id = '_x'
999
    display_form.formdef = WorkflowFormFieldsFormDef(item=display_form)
1000
    display_form.formdef.fields = [BlockField(label='foo', type='block:foobar')]
1001
    st1.items.append(display_form)
1002
    display_form.parent = st1
1003

  
1004
    wf2 = Workflow(name='variables')
1005
    wf2.variables_formdef = WorkflowVariablesFieldsFormDef(workflow=wf2)
1006
    wf2.variables_formdef.fields = [BlockField(label='foo', type='block:foobar')]
1007

  
1008
    wf3 = Workflow(name='bo fields')
1009
    wf3.backoffice_fields_formdef = WorkflowBackofficeFieldsFormDef(wf3)
1010
    wf3.backoffice_fields_formdef.fields = [BlockField(label='foo', type='block:foobar')]
1011

  
1012
    BlockDef.wipe()
1013
    for wf in [wf1, wf2, wf3]:
1014
        export = ET.tostring(export_to_indented_xml(wf))
1015
        with pytest.raises(WorkflowImportError, match='Unknown field type'):
1016
            Workflow.import_from_xml(io.BytesIO(export))
1017

  
1018

  
1019
def test_workflow_with_category(pub):
985 1020
    category = WorkflowCategory(name='test category')
986 1021
    category.store()
987 1022

  
......
990 1025
    wf.store()
991 1026
    wf2 = assert_import_export_works(wf, include_id=True)
992 1027
    assert wf2.category_id == wf.category_id
1028

  
1029
    # import with non existing category
1030
    WorkflowCategory.wipe()
1031
    export = ET.tostring(wf.export_to_xml(include_id=True))
1032
    wf3 = Workflow.import_from_xml_tree(ET.fromstring(export), include_id=True)
1033
    assert wf3.category_id is None
993
-