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 |
|
-
|