From: Peter Amstutz Date: Fri, 8 Oct 2021 20:06:58 +0000 (-0400) Subject: Fix CWL tests mixed_version_v10_wf and command_input_file_expression X-Git-Tag: 2.3.0~21 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/b445ae12bc55d0fd6f9b64955e52fcab74207a66 Fix CWL tests mixed_version_v10_wf and command_input_file_expression refs #18238 Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/sdk/cwl/arvados_cwl/runner.py b/sdk/cwl/arvados_cwl/runner.py index ada64ae69a..145f1ad7f9 100644 --- a/sdk/cwl/arvados_cwl/runner.py +++ b/sdk/cwl/arvados_cwl/runner.py @@ -184,7 +184,10 @@ def set_secondary(fsaccess, builder, inputschema, secondaryspec, primary, discov elif isinstance(pattern, dict): specs.append(pattern) elif isinstance(pattern, str): - specs.append({"pattern": pattern, "required": sf.get("required")}) + if builder.cwlVersion == "v1.0": + specs.append({"pattern": pattern, "required": True}) + else: + specs.append({"pattern": pattern, "required": sf.get("required")}) else: raise SourceLine(primary["secondaryFiles"], i, validate.ValidationException).makeError( "Expression must return list, object, string or null") @@ -194,6 +197,9 @@ def set_secondary(fsaccess, builder, inputschema, secondaryspec, primary, discov if isinstance(sf, dict): if sf.get("class") == "File": pattern = None + if sf.get("location") is None: + raise SourceLine(primary["secondaryFiles"], i, validate.ValidationException).makeError( + "File object is missing 'location': %s" % sf) sfpath = sf["location"] required = True else: