Skip to content

Commit 183d3b2

Browse files
Added default value loop test
1 parent c21ae6e commit 183d3b2

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

tests/loop/default-value-loop.cwl

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/usr/bin/env cwl-runner
2+
cwlVersion: v1.2
3+
class: Workflow
4+
$namespaces:
5+
cwltool: "http://commonwl.org/cwltool#"
6+
requirements:
7+
InlineJavascriptRequirement: {}
8+
ScatterFeatureRequirement: {}
9+
SubworkflowFeatureRequirement: {}
10+
inputs:
11+
i1: int
12+
outputs:
13+
o1:
14+
type: int[]
15+
outputSource: loop/o1
16+
pickValue: all_non_null
17+
steps:
18+
loop:
19+
run:
20+
class: Workflow
21+
inputs:
22+
i1: int
23+
outputs:
24+
o1:
25+
type: int?
26+
outputSource: big_values/o1
27+
steps:
28+
big_values:
29+
when: $(inputs.i1 >= 5)
30+
run:
31+
class: ExpressionTool
32+
inputs:
33+
i1: int
34+
outputs:
35+
o1: int
36+
expression: >
37+
${return {'o1': inputs.i1 + 3};}
38+
in:
39+
i1: i1
40+
out: [ o1 ]
41+
in:
42+
i1: i1
43+
out: [ o1 ]
44+
requirements:
45+
cwltool:Loop:
46+
loop_when: $(inputs.i1 < 20)
47+
loop:
48+
i1:
49+
loop_source: o1
50+
default: 5
51+
outputMethod: all

tests/test_loop.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,3 +169,17 @@ def test_multi_source_loop_input() -> None:
169169
main(params, stdout=stream)
170170
expected = {'o1': [2, 3, 4, 5, 8, 11, 14, 17, 20]}
171171
assert json.loads(stream.getvalue()) == expected
172+
173+
174+
def test_default_value_loop() -> None:
175+
"""Test a loop whose source has a defautl value."""
176+
stream = StringIO()
177+
params = [
178+
"--enable-ext",
179+
"--validate",
180+
get_data("tests/loop/default-value-loop.cwl"),
181+
get_data("tests/loop/single-var-loop-job.yml")
182+
]
183+
main(params, stdout=stream)
184+
expected = {'o1': [8, 11, 14, 17, 20]}
185+
assert json.loads(stream.getvalue()) == expected

0 commit comments

Comments
 (0)