Skip to content

Commit af03765

Browse files
Add non regression test
1 parent 6244fe6 commit af03765

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

pydra/engine/tests/test_workflow.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,45 @@
3030
from ..submitter import Submitter
3131
from ..core import Workflow
3232
from ... import mark
33+
from ..specs import SpecInfo, BaseSpec, ShellSpec
3334

3435

3536
def test_wf_no_input_spec():
3637
with pytest.raises(ValueError, match="Empty input_spec"):
3738
Workflow(name="workflow")
3839

3940

41+
def test_wf_specinfo_input_spec():
42+
input_spec = SpecInfo(
43+
name='Input',
44+
fields=[
45+
('a', str, '',{'mandatory': True}),
46+
('b', dict, {"foo": 1, "bar": False}, {'mandatory': False}),
47+
],
48+
bases=(BaseSpec,),
49+
)
50+
wf = Workflow(
51+
name="workflow",
52+
input_spec=input_spec,
53+
)
54+
for x in ['a', 'b']:
55+
assert hasattr(wf.inputs, x)
56+
assert wf.inputs.a == ''
57+
assert wf.inputs.b == {"foo": 1, "bar": False}
58+
bad_input_spec = SpecInfo(
59+
name='Input',
60+
fields=[
61+
('a', str, {'mandatory': True}),
62+
],
63+
bases=(ShellSpec,)
64+
)
65+
with pytest.raises(
66+
ValueError,
67+
match="Provided SpecInfo must have BaseSpec as it's base."
68+
):
69+
Workflow(name="workflow", input_spec=bad_input_spec)
70+
71+
4072
def test_wf_name_conflict1():
4173
"""raise error when workflow name conflicts with a class attribute or method"""
4274
with pytest.raises(ValueError) as excinfo1:

0 commit comments

Comments
 (0)