Skip to content

Commit d32e079

Browse files
authored
fix cwl:requirement, add test for it (#979)
1 parent dda97d7 commit d32e079

File tree

5 files changed

+35
-4
lines changed

5 files changed

+35
-4
lines changed

cwltool/executors.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,12 @@ def execute(self,
7777
runtime_context.workflow_eval_lock = threading.Condition(threading.RLock())
7878

7979
job_reqs = None
80-
if "cwl:requirements" in job_order_object:
81-
job_reqs = job_order_object["cwl:requirements"]
80+
if "https://w3id.org/cwl/cwl#requirements" in job_order_object:
81+
job_reqs = job_order_object["https://w3id.org/cwl/cwl#requirements"]
8282
elif ("cwl:defaults" in process.metadata
83-
and "cwl:requirements" in process.metadata["cwl:defaults"]):
84-
job_reqs = process.metadata["cwl:defaults"]["cwl:requirements"]
83+
and "https://w3id.org/cwl/cwl#requirements"
84+
in process.metadata["cwl:defaults"]):
85+
job_reqs = process.metadata["cwl:defaults"]["https://w3id.org/cwl/cwl#requirements"]
8586
if job_reqs is not None:
8687
for req in job_reqs:
8788
process.requirements.append(req)

tests/override/env-tool.cwl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class: CommandLineTool
2+
cwlVersion: v1.0
3+
inputs:
4+
in: string
5+
outputs:
6+
value: string
7+
8+
baseCommand: ["/bin/bash", "-c", 'echo {\"value\": \"$TEST_ENV\"}']
9+
10+
stdout: cwl.output.json
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
in: "hello test env"
2+
cwl:requirements:
3+
- class: EnvVarRequirement
4+
envDef:
5+
- envName: TEST_ENV
6+
envValue: $(inputs.in)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
in: "hello test env"
2+
cwl:tool: env-tool.cwl
3+
cwl:requirements:
4+
- class: EnvVarRequirement
5+
envDef:
6+
- envName: TEST_ENV
7+
envValue: $(inputs.in)

tests/test_override.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@
4444
get_data('tests/override/echo-job.yml')],
4545
{"out": "zing hello6\n"}
4646
),
47+
([get_data('tests/override/env-tool.cwl'),
48+
get_data('tests/override/env-tool_requirement_override.yaml')],
49+
{"value": "hello test env"}
50+
),
51+
([get_data('tests/override/env-tool_requirement_override_default.yaml')],
52+
{"value": "hello test env"}
53+
),
4754
]
4855

4956
@needs_docker

0 commit comments

Comments
 (0)