diff --git a/cwl/step_valuefrom/in.txt b/cwl/step_valuefrom/in.txt new file mode 100644 index 0000000..5874165 --- /dev/null +++ b/cwl/step_valuefrom/in.txt @@ -0,0 +1,4 @@ +Hello +World +Hello +CWL diff --git a/cwl/step_valuefrom/params.yml b/cwl/step_valuefrom/params.yml new file mode 100644 index 0000000..2e14053 --- /dev/null +++ b/cwl/step_valuefrom/params.yml @@ -0,0 +1,3 @@ +wf_in: + class: File + location: in.txt diff --git a/cwl/step_valuefrom/sorttool.cwl b/cwl/step_valuefrom/sorttool.cwl new file mode 100644 index 0000000..c1c5c6a --- /dev/null +++ b/cwl/step_valuefrom/sorttool.cwl @@ -0,0 +1,25 @@ +class: CommandLineTool +cwlVersion: v1.0 + +baseCommand: sort + +inputs: + reverse: + type: boolean? + inputBinding: + position: 1 + prefix: "--reverse" + outname: + type: string + inputBinding: + position: 2 + prefix: "--output" + sort_in: + type: File + inputBinding: + position: 3 +outputs: + sort_out: + type: File + outputBinding: + glob: "*sorted" diff --git a/cwl/step_valuefrom/wf.cwl b/cwl/step_valuefrom/wf.cwl new file mode 100644 index 0000000..d39d51d --- /dev/null +++ b/cwl/step_valuefrom/wf.cwl @@ -0,0 +1,22 @@ +class: Workflow +cwlVersion: v1.2 +requirements: + - class: StepInputExpressionRequirement + - class: InlineJavascriptRequirement + +inputs: + wf_in: File + +outputs: + wf_out: + type: File + outputSource: step1/sort_out + +steps: + step1: + run: sorttool.cwl + in: + sort_in: wf_in + outname: + valueFrom: $(inputs.sort_in.basename)_sorted + out: [sort_out] diff --git a/src/runcrate/convert.py b/src/runcrate/convert.py index e7c6c8b..be56d9e 100644 --- a/src/runcrate/convert.py +++ b/src/runcrate/convert.py @@ -616,6 +616,8 @@ def connect(source, target, entity): ro_step = crate.get(f"{self.wf_path.name}#{step_name}") tool_name = step_map[step_name]["tool"] for mapping in getattr(step, "in_", []): + if not mapping.source: + continue sources = [mapping.source] if not isinstance( mapping.source, list ) else mapping.source diff --git a/tests/data/README.md b/tests/data/README.md index e7698f4..6b38abb 100644 --- a/tests/data/README.md +++ b/tests/data/README.md @@ -80,3 +80,8 @@ Runs `date` on directories from an input array. Used to test support for directo ## multisource-run-1 Used to test support for [steps with arrays as input sources](https://www.commonwl.org/v1.2/Workflow.html#Merging_multiple_inbound_data_links). + + +## step-valuefrom-run-1 + +Used to test the handling of step input mappings that don't have a source (e.g., if they only have a valueFrom). diff --git a/tests/data/step-valuefrom-run-1/bag-info.txt b/tests/data/step-valuefrom-run-1/bag-info.txt new file mode 100644 index 0000000..af303fa --- /dev/null +++ b/tests/data/step-valuefrom-run-1/bag-info.txt @@ -0,0 +1,6 @@ +Bag-Software-Agent: cwltool 3.1.20220802125926 +BagIt-Profile-Identifier: https://w3id.org/ro/bagit/profile +Bagging-Date: 2023-05-25 +External-Description: Research Object of CWL workflow run +External-Identifier: arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/ +Payload-Oxum: 57.3 diff --git a/tests/data/step-valuefrom-run-1/bagit.txt b/tests/data/step-valuefrom-run-1/bagit.txt new file mode 100644 index 0000000..c4aebb4 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/bagit.txt @@ -0,0 +1,2 @@ +BagIt-Version: 0.97 +Tag-File-Character-Encoding: UTF-8 diff --git a/tests/data/step-valuefrom-run-1/data/26/2651eb956ec4e3a1e0e48e06394c3aa290ba60c2 b/tests/data/step-valuefrom-run-1/data/26/2651eb956ec4e3a1e0e48e06394c3aa290ba60c2 new file mode 100644 index 0000000..44f2e47 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/data/26/2651eb956ec4e3a1e0e48e06394c3aa290ba60c2 @@ -0,0 +1 @@ +in.txt_sorted \ No newline at end of file diff --git a/tests/data/step-valuefrom-run-1/data/4e/4e9467350ac0864d8b27655aa01765680f922582 b/tests/data/step-valuefrom-run-1/data/4e/4e9467350ac0864d8b27655aa01765680f922582 new file mode 100644 index 0000000..7fd2f93 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/data/4e/4e9467350ac0864d8b27655aa01765680f922582 @@ -0,0 +1,4 @@ +CWL +Hello +Hello +World diff --git a/tests/data/step-valuefrom-run-1/data/7c/7cb1a4da14ba3e91b983b30e7689e3902bcd2034 b/tests/data/step-valuefrom-run-1/data/7c/7cb1a4da14ba3e91b983b30e7689e3902bcd2034 new file mode 100644 index 0000000..5874165 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/data/7c/7cb1a4da14ba3e91b983b30e7689e3902bcd2034 @@ -0,0 +1,4 @@ +Hello +World +Hello +CWL diff --git a/tests/data/step-valuefrom-run-1/manifest-sha1.txt b/tests/data/step-valuefrom-run-1/manifest-sha1.txt new file mode 100644 index 0000000..95120b0 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/manifest-sha1.txt @@ -0,0 +1,3 @@ +7cb1a4da14ba3e91b983b30e7689e3902bcd2034 data/7c/7cb1a4da14ba3e91b983b30e7689e3902bcd2034 +2651eb956ec4e3a1e0e48e06394c3aa290ba60c2 data/26/2651eb956ec4e3a1e0e48e06394c3aa290ba60c2 +4e9467350ac0864d8b27655aa01765680f922582 data/4e/4e9467350ac0864d8b27655aa01765680f922582 diff --git a/tests/data/step-valuefrom-run-1/metadata/logs/engine.dbf26d00-ef02-4dd0-897a-6bf2ec301b89.txt b/tests/data/step-valuefrom-run-1/metadata/logs/engine.dbf26d00-ef02-4dd0-897a-6bf2ec301b89.txt new file mode 100644 index 0000000..9e93689 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/metadata/logs/engine.dbf26d00-ef02-4dd0-897a-6bf2ec301b89.txt @@ -0,0 +1,14 @@ +[2023-05-25T11:31:16,24.269819Z] [cwltool] /home/simleo/git/runcrate/venv/bin/cwltool --provenance step-valuefrom-run-1 wf.cwl params.yml +[2023-05-25T11:31:16,26.929617Z] Resolved 'wf.cwl' to 'file:///home/simleo/git/runcrate/cwl/step_valuefrom/wf.cwl' +[2023-05-25T11:31:20,13.793468Z] [provenance] Adding to RO file:///home/simleo/git/runcrate/cwl/step_valuefrom/in.txt +[2023-05-25T11:31:20,15.956640Z] [workflow ] start +[2023-05-25T11:31:20,16.201258Z] [workflow ] starting step step1 +[2023-05-25T11:31:20,16.657352Z] [step step1] start +[2023-05-25T11:31:20,18.600225Z] [job step1] /tmp/3bp5jcuy$ sort \ + --output \ + in.txt_sorted \ + /tmp/2i2_pnlu/stg5e4ca9b2-2dc1-4542-a066-1a9ddd53e8b9/in.txt +[2023-05-25T11:31:20,24.585724Z] [job step1] completed success +[2023-05-25T11:31:20,24.797678Z] [step step1] completed success +[2023-05-25T11:31:20,24.946213Z] [workflow ] completed success +[2023-05-25T11:31:20,70.524931Z] Final process status is success diff --git a/tests/data/step-valuefrom-run-1/metadata/manifest.json b/tests/data/step-valuefrom-run-1/metadata/manifest.json new file mode 100644 index 0000000..10e9f2c --- /dev/null +++ b/tests/data/step-valuefrom-run-1/metadata/manifest.json @@ -0,0 +1,230 @@ +{ + "@context": [ + { + "@base": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/metadata/" + }, + "https://w3id.org/bundle/context" + ], + "id": "/", + "conformsTo": "https://w3id.org/cwl/prov/0.6.0", + "manifest": "manifest.json", + "createdOn": "2023-05-25T13:31:20.074420", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + }, + "authoredBy": null, + "aggregates": [ + { + "uri": "urn:hash::sha1:7cb1a4da14ba3e91b983b30e7689e3902bcd2034", + "bundledAs": { + "uri": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/data/7c/7cb1a4da14ba3e91b983b30e7689e3902bcd2034", + "folder": "/data/7c/", + "filename": "7cb1a4da14ba3e91b983b30e7689e3902bcd2034" + } + }, + { + "uri": "urn:hash::sha1:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2", + "bundledAs": { + "uri": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/data/26/2651eb956ec4e3a1e0e48e06394c3aa290ba60c2", + "folder": "/data/26/", + "filename": "2651eb956ec4e3a1e0e48e06394c3aa290ba60c2" + }, + "mediatype": "text/plain; charset=\"UTF-8\"" + }, + { + "uri": "urn:hash::sha1:4e9467350ac0864d8b27655aa01765680f922582", + "bundledAs": { + "uri": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/data/4e/4e9467350ac0864d8b27655aa01765680f922582", + "folder": "/data/4e/", + "filename": "4e9467350ac0864d8b27655aa01765680f922582" + } + }, + { + "uri": "../workflow/packed.cwl", + "mediatype": "text/x+yaml; charset=\"UTF-8\"", + "conformsTo": "https://w3id.org/cwl/", + "createdOn": "2023-05-25T13:31:20.074697", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": "../workflow/primary-job.json", + "mediatype": "application/json", + "conformsTo": null, + "createdOn": "2023-05-25T13:31:20.074759", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": null, + "mediatype": null, + "conformsTo": null, + "createdOn": "2023-05-24T17:45:16.550146", + "bundledAs": null + }, + { + "uri": "../metadata/provenance/primary.cwlprov.provn", + "mediatype": "text/provenance-notation; charset=\"UTF-8\"", + "conformsTo": [ + "http://www.w3.org/TR/2013/REC-prov-n-20130430/", + "https://w3id.org/cwl/prov/0.6.0" + ], + "createdOn": "2023-05-25T13:31:20.074841", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": "../metadata/provenance/primary.cwlprov.jsonld", + "mediatype": "application/ld+json", + "conformsTo": [ + "http://www.w3.org/TR/2013/REC-prov-o-20130430/", + "https://w3id.org/cwl/prov/0.6.0" + ], + "createdOn": "2023-05-25T13:31:20.074900", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": "../metadata/logs/engine.dbf26d00-ef02-4dd0-897a-6bf2ec301b89.txt", + "mediatype": "text/plain; charset=\"UTF-8\"", + "conformsTo": null, + "createdOn": "2023-05-25T13:31:20.074946", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": "../metadata/provenance/primary.cwlprov.xml", + "mediatype": "application/xml", + "conformsTo": [ + "http://www.w3.org/TR/2013/NOTE-prov-xml-20130430/", + "https://w3id.org/cwl/prov/0.6.0" + ], + "createdOn": "2023-05-25T13:31:20.074971", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": "../metadata/provenance/primary.cwlprov.nt", + "mediatype": "application/n-triples", + "conformsTo": [ + "http://www.w3.org/TR/2013/REC-prov-o-20130430/", + "https://w3id.org/cwl/prov/0.6.0" + ], + "createdOn": "2023-05-25T13:31:20.074995", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": "../workflow/primary-output.json", + "mediatype": "application/json", + "conformsTo": null, + "createdOn": "2023-05-25T13:31:20.075019", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": "../metadata/provenance/primary.cwlprov.json", + "mediatype": "application/json", + "conformsTo": [ + "http://www.w3.org/Submission/2013/SUBM-prov-json-20130424/", + "https://w3id.org/cwl/prov/0.6.0" + ], + "createdOn": "2023-05-25T13:31:20.075043", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": "../metadata/provenance/primary.cwlprov.ttl", + "mediatype": "text/turtle; charset=\"UTF-8\"", + "conformsTo": [ + "http://www.w3.org/TR/2013/REC-prov-o-20130430/", + "https://w3id.org/cwl/prov/0.6.0" + ], + "createdOn": "2023-05-25T13:31:20.075066", + "createdBy": { + "uri": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "name": "cwltool 3.1.20220802125926" + } + }, + { + "uri": null, + "mediatype": null, + "conformsTo": null, + "createdOn": "2023-05-24T17:45:16.550146", + "bundledAs": null + } + ], + "annotations": [ + { + "uri": "urn:uuid:c51e23f0-0341-4d2e-b832-10b69cbd9958", + "about": "urn:uuid:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "content": "/", + "oa:motivatedBy": { + "@id": "oa:describing" + } + }, + { + "uri": "urn:uuid:33bc1279-9391-4de6-ac17-dfb2b3b559bd", + "about": "urn:uuid:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "content": [ + "provenance/primary.cwlprov.provn", + "provenance/primary.cwlprov.jsonld", + "provenance/primary.cwlprov.xml", + "provenance/primary.cwlprov.nt", + "provenance/primary.cwlprov.json", + "provenance/primary.cwlprov.ttl" + ], + "oa:motivatedBy": { + "@id": "http://www.w3.org/ns/prov#has_provenance" + } + }, + { + "uri": "urn:uuid:1e7635fb-7b71-4c05-83af-089b7bff138a", + "about": "../workflow/packed.cwl", + "content": null, + "oa:motivatedBy": { + "@id": "oa:highlighting" + } + }, + { + "uri": "urn:uuid:85f71144-f7b5-4c51-b60a-ba4181627e6a", + "about": "urn:uuid:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "content": [ + "../workflow/packed.cwl", + "../workflow/primary-job.json" + ], + "oa:motivatedBy": { + "@id": "oa:linking" + } + }, + { + "uri": "urn:uuid:0107e2ee-3d23-4f91-9ed3-1e5f822b7a6c", + "about": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "content": [ + "metadata/logs/engine.dbf26d00-ef02-4dd0-897a-6bf2ec301b89.txt" + ], + "oa:motivatedBy": { + "@id": "https://w3id.org/cwl/prov#log" + } + } + ] +} diff --git a/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.json b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.json new file mode 100644 index 0000000..f298028 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.json @@ -0,0 +1,276 @@ +{ + "prefix": { + "wfprov": "http://purl.org/wf4ever/wfprov#", + "wfdesc": "http://purl.org/wf4ever/wfdesc#", + "cwlprov": "https://w3id.org/cwl/prov#", + "foaf": "http://xmlns.com/foaf/0.1/", + "schema": "http://schema.org/", + "orcid": "https://orcid.org/", + "id": "urn:uuid:", + "data": "urn:hash::sha1:", + "sha256": "nih:sha-256;", + "researchobject": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/", + "metadata": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/metadata/", + "provenance": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/metadata/provenance/", + "wf": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#", + "input": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/primary-job.json#", + "wf4ever": "http://purl.org/wf4ever/wf4ever#" + }, + "agent": { + "id:9c332986-5c3e-478d-bb55-ab5509e16a72": {}, + "id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89": { + "prov:type": [ + { + "$": "wfprov:WorkflowEngine", + "type": "prov:QUALIFIED_NAME" + }, + { + "$": "prov:SoftwareAgent", + "type": "prov:QUALIFIED_NAME" + } + ], + "prov:label": "cwltool 3.1.20220802125926" + } + }, + "wasStartedBy": { + "_:id1": { + "prov:activity": "id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "prov:starter": "id:9c332986-5c3e-478d-bb55-ab5509e16a72", + "prov:time": "2023-05-25T13:31:19.992837" + }, + "_:id3": { + "prov:activity": "id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "prov:starter": "id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "prov:time": "2023-05-25T13:31:19.992952" + }, + "_:id7": { + "prov:activity": "id:d692aa5a-f668-459d-b119-b699f022d2ed", + "prov:starter": "id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "prov:time": "2023-05-25T13:31:20.018268" + } + }, + "activity": { + "id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff": { + "prov:startTime": "2023-05-25T13:31:19.992879", + "prov:type": { + "$": "wfprov:WorkflowRun", + "type": "prov:QUALIFIED_NAME" + }, + "prov:label": "Run of workflow/packed.cwl#main" + }, + "id:d692aa5a-f668-459d-b119-b699f022d2ed": { + "prov:type": { + "$": "wfprov:ProcessRun", + "type": "prov:QUALIFIED_NAME" + }, + "prov:label": "Run of workflow/packed.cwl#main/step1" + } + }, + "wasAssociatedWith": { + "_:id2": { + "prov:activity": "id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "prov:agent": "id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "prov:plan": "wf:main" + }, + "_:id6": { + "prov:activity": "id:d692aa5a-f668-459d-b119-b699f022d2ed", + "prov:agent": "id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "prov:plan": "wf:main/step1" + } + }, + "entity": { + "wf:main": [ + { + "prov:type": [ + { + "$": "wfdesc:Workflow", + "type": "prov:QUALIFIED_NAME" + }, + { + "$": "prov:Plan", + "type": "prov:QUALIFIED_NAME" + } + ], + "prov:label": "Prospective provenance" + }, + { + "wfdesc:hasSubProcess": { + "$": "wf:main/step1", + "type": "prov:QUALIFIED_NAME" + }, + "prov:label": "Prospective provenance" + } + ], + "wf:main/step1": { + "prov:type": [ + { + "$": "wfdesc:Process", + "type": "prov:QUALIFIED_NAME" + }, + { + "$": "prov:Plan", + "type": "prov:QUALIFIED_NAME" + } + ] + }, + "data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034": [ + { + "prov:type": { + "$": "wfprov:Artifact", + "type": "prov:QUALIFIED_NAME" + } + }, + { + "prov:type": { + "$": "wfprov:Artifact", + "type": "prov:QUALIFIED_NAME" + } + } + ], + "id:e95e0d11-7095-4e68-817f-64b1b606d0ec": { + "prov:type": [ + { + "$": "wf4ever:File", + "type": "prov:QUALIFIED_NAME" + }, + { + "$": "wfprov:Artifact", + "type": "prov:QUALIFIED_NAME" + } + ], + "cwlprov:basename": "in.txt", + "cwlprov:nameroot": "in", + "cwlprov:nameext": ".txt" + }, + "data:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2": { + "prov:type": { + "$": "wfprov:Artifact", + "type": "prov:QUALIFIED_NAME" + }, + "prov:value": "in.txt_sorted" + }, + "id:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5": { + "prov:type": [ + { + "$": "wf4ever:File", + "type": "prov:QUALIFIED_NAME" + }, + { + "$": "wfprov:Artifact", + "type": "prov:QUALIFIED_NAME" + } + ], + "cwlprov:basename": "in.txt", + "cwlprov:nameroot": "in", + "cwlprov:nameext": ".txt" + }, + "cwlprov:None": { + "prov:label": "None" + }, + "data:4e9467350ac0864d8b27655aa01765680f922582": { + "prov:type": { + "$": "wfprov:Artifact", + "type": "prov:QUALIFIED_NAME" + } + }, + "id:c8696b76-423f-4292-b025-5579d9f8f5ca": { + "prov:type": [ + { + "$": "wf4ever:File", + "type": "prov:QUALIFIED_NAME" + }, + { + "$": "wfprov:Artifact", + "type": "prov:QUALIFIED_NAME" + } + ], + "cwlprov:basename": "in.txt_sorted", + "cwlprov:nameroot": "in", + "cwlprov:nameext": ".txt_sorted" + } + }, + "specializationOf": { + "_:id4": { + "prov:specificEntity": "id:e95e0d11-7095-4e68-817f-64b1b606d0ec", + "prov:generalEntity": "data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034" + }, + "_:id9": { + "prov:specificEntity": "id:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5", + "prov:generalEntity": "data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034" + }, + "_:id12": { + "prov:specificEntity": "id:c8696b76-423f-4292-b025-5579d9f8f5ca", + "prov:generalEntity": "data:4e9467350ac0864d8b27655aa01765680f922582" + } + }, + "used": { + "_:id5": { + "prov:activity": "id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "prov:entity": "id:e95e0d11-7095-4e68-817f-64b1b606d0ec", + "prov:time": "2023-05-25T13:31:20.015892", + "prov:role": { + "$": "wf:main/wf_in", + "type": "prov:QUALIFIED_NAME" + } + }, + "_:id8": { + "prov:activity": "id:d692aa5a-f668-459d-b119-b699f022d2ed", + "prov:entity": "data:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2", + "prov:time": "2023-05-25T13:31:20.019105", + "prov:role": { + "$": "wf:main/step1/outname", + "type": "prov:QUALIFIED_NAME" + } + }, + "_:id10": { + "prov:activity": "id:d692aa5a-f668-459d-b119-b699f022d2ed", + "prov:entity": "id:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5", + "prov:time": "2023-05-25T13:31:20.019501", + "prov:role": { + "$": "wf:main/step1/sort_in", + "type": "prov:QUALIFIED_NAME" + } + }, + "_:id11": { + "prov:activity": "id:d692aa5a-f668-459d-b119-b699f022d2ed", + "prov:entity": "cwlprov:None", + "prov:time": "2023-05-25T13:31:20.019552", + "prov:role": { + "$": "wf:main/step1/reverse", + "type": "prov:QUALIFIED_NAME" + } + } + }, + "wasGeneratedBy": { + "_:id13": { + "prov:entity": "id:c8696b76-423f-4292-b025-5579d9f8f5ca", + "prov:activity": "id:d692aa5a-f668-459d-b119-b699f022d2ed", + "prov:time": "2023-05-25T13:31:20.023688", + "prov:role": { + "$": "wf:main/step1/sort_out", + "type": "prov:QUALIFIED_NAME" + } + }, + "_:id15": { + "prov:entity": "id:c8696b76-423f-4292-b025-5579d9f8f5ca", + "prov:activity": "id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "prov:time": "2023-05-25T13:31:20.026198", + "prov:role": { + "$": "wf:main/primary/wf_out", + "type": "prov:QUALIFIED_NAME" + } + } + }, + "wasEndedBy": { + "_:id14": { + "prov:activity": "id:d692aa5a-f668-459d-b119-b699f022d2ed", + "prov:ender": "id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "prov:time": "2023-05-25T13:31:20.023678" + }, + "_:id16": { + "prov:activity": "id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "prov:ender": "id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "prov:time": "2023-05-25T13:31:20.026328" + } + } +} \ No newline at end of file diff --git a/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.jsonld b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.jsonld new file mode 100644 index 0000000..806cb00 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.jsonld @@ -0,0 +1,506 @@ +[ + { + "@id": "https://w3id.org/cwl/prov#None", + "@type": [ + "http://www.w3.org/ns/prov#Entity" + ], + "http://www.w3.org/2000/01/rdf-schema#label": [ + { + "@value": "None" + } + ] + }, + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main", + "@type": [ + "http://www.w3.org/ns/prov#Plan", + "http://purl.org/wf4ever/wfdesc#Workflow", + "http://www.w3.org/ns/prov#Entity" + ], + "http://purl.org/wf4ever/wfdesc#hasSubProcess": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/step1" + } + ], + "http://www.w3.org/2000/01/rdf-schema#label": [ + { + "@value": "Prospective provenance" + } + ] + }, + { + "@id": "urn:uuid:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff", + "@type": [ + "http://www.w3.org/ns/prov#Activity", + "http://purl.org/wf4ever/wfprov#WorkflowRun" + ], + "http://www.w3.org/2000/01/rdf-schema#label": [ + { + "@value": "Run of workflow/packed.cwl#main" + } + ], + "http://www.w3.org/ns/prov#qualifiedAssociation": [ + { + "@id": "_:N9d7dfbfb3adc4d4a8b3ac4ec2f718f6f" + } + ], + "http://www.w3.org/ns/prov#qualifiedEnd": [ + { + "@id": "_:N47ab20b069c74fc3ab72eeb662be11f9" + } + ], + "http://www.w3.org/ns/prov#qualifiedStart": [ + { + "@id": "_:N15be39a81fba4938b029ea29e45d850a" + } + ], + "http://www.w3.org/ns/prov#qualifiedUsage": [ + { + "@id": "_:N4bcbe58e30d940acb6431ed614fea62b" + } + ], + "http://www.w3.org/ns/prov#startedAtTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:19.992879" + } + ], + "http://www.w3.org/ns/prov#wasAssociatedWith": [ + { + "@id": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89" + } + ] + }, + { + "@id": "_:N15be39a81fba4938b029ea29e45d850a", + "@type": [ + "http://www.w3.org/ns/prov#Start" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:19.992952" + } + ], + "http://www.w3.org/ns/prov#hadActivity": [ + { + "@id": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89" + } + ] + }, + { + "@id": "_:N4bcbe58e30d940acb6431ed614fea62b", + "@type": [ + "http://www.w3.org/ns/prov#Usage" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.015892" + } + ], + "http://www.w3.org/ns/prov#entity": [ + { + "@id": "urn:uuid:e95e0d11-7095-4e68-817f-64b1b606d0ec" + } + ], + "http://www.w3.org/ns/prov#hadRole": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/wf_in" + } + ] + }, + { + "@id": "_:N9d7dfbfb3adc4d4a8b3ac4ec2f718f6f", + "@type": [ + "http://www.w3.org/ns/prov#Association" + ], + "http://www.w3.org/ns/prov#hadPlan": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main" + } + ] + }, + { + "@id": "_:N47ab20b069c74fc3ab72eeb662be11f9", + "@type": [ + "http://www.w3.org/ns/prov#End" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.026328" + } + ], + "http://www.w3.org/ns/prov#hadActivity": [ + { + "@id": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89" + } + ] + }, + { + "@id": "urn:uuid:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5", + "@type": [ + "http://purl.org/wf4ever/wfprov#Artifact", + "http://www.w3.org/ns/prov#Entity", + "http://purl.org/wf4ever/wf4ever#File" + ], + "http://www.w3.org/ns/prov#specializationOf": [ + { + "@id": "urn:hash::sha1:7cb1a4da14ba3e91b983b30e7689e3902bcd2034" + } + ], + "https://w3id.org/cwl/prov#basename": [ + { + "@value": "in.txt" + } + ], + "https://w3id.org/cwl/prov#nameext": [ + { + "@value": ".txt" + } + ], + "https://w3id.org/cwl/prov#nameroot": [ + { + "@value": "in" + } + ] + }, + { + "@id": "urn:hash::sha1:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2", + "@type": [ + "http://purl.org/wf4ever/wfprov#Artifact", + "http://www.w3.org/ns/prov#Entity" + ], + "http://www.w3.org/ns/prov#value": [ + { + "@value": "in.txt_sorted" + } + ] + }, + { + "@id": "urn:uuid:c8696b76-423f-4292-b025-5579d9f8f5ca", + "@type": [ + "http://purl.org/wf4ever/wf4ever#File", + "http://purl.org/wf4ever/wfprov#Artifact", + "http://www.w3.org/ns/prov#Entity" + ], + "http://www.w3.org/ns/prov#qualifiedGeneration": [ + { + "@id": "_:N5ee945d2326e47e8b7cdc6d267a5ea80" + }, + { + "@id": "_:Nea60f11520444b5f98d831b8ae99cf92" + } + ], + "http://www.w3.org/ns/prov#specializationOf": [ + { + "@id": "urn:hash::sha1:4e9467350ac0864d8b27655aa01765680f922582" + } + ], + "https://w3id.org/cwl/prov#basename": [ + { + "@value": "in.txt_sorted" + } + ], + "https://w3id.org/cwl/prov#nameext": [ + { + "@value": ".txt_sorted" + } + ], + "https://w3id.org/cwl/prov#nameroot": [ + { + "@value": "in" + } + ] + }, + { + "@id": "_:N5ee945d2326e47e8b7cdc6d267a5ea80", + "@type": [ + "http://www.w3.org/ns/prov#Generation" + ], + "http://www.w3.org/ns/prov#activity": [ + { + "@id": "urn:uuid:d692aa5a-f668-459d-b119-b699f022d2ed" + } + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.023688" + } + ], + "http://www.w3.org/ns/prov#hadRole": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/step1/sort_out" + } + ] + }, + { + "@id": "_:Nea60f11520444b5f98d831b8ae99cf92", + "@type": [ + "http://www.w3.org/ns/prov#Generation" + ], + "http://www.w3.org/ns/prov#activity": [ + { + "@id": "urn:uuid:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff" + } + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.026198" + } + ], + "http://www.w3.org/ns/prov#hadRole": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/primary/wf_out" + } + ] + }, + { + "@id": "urn:hash::sha1:7cb1a4da14ba3e91b983b30e7689e3902bcd2034", + "@type": [ + "http://purl.org/wf4ever/wfprov#Artifact", + "http://www.w3.org/ns/prov#Entity" + ] + }, + { + "@id": "urn:hash::sha1:4e9467350ac0864d8b27655aa01765680f922582", + "@type": [ + "http://purl.org/wf4ever/wfprov#Artifact", + "http://www.w3.org/ns/prov#Entity" + ] + }, + { + "@id": "urn:uuid:d692aa5a-f668-459d-b119-b699f022d2ed", + "@type": [ + "http://www.w3.org/ns/prov#Activity", + "http://purl.org/wf4ever/wfprov#ProcessRun" + ], + "http://www.w3.org/2000/01/rdf-schema#label": [ + { + "@value": "Run of workflow/packed.cwl#main/step1" + } + ], + "http://www.w3.org/ns/prov#qualifiedAssociation": [ + { + "@id": "_:Nde8a69c4c0b14dcba77c466a6e7289ab" + } + ], + "http://www.w3.org/ns/prov#qualifiedEnd": [ + { + "@id": "_:N19cc32d5db61410b91915cc62efebb8d" + } + ], + "http://www.w3.org/ns/prov#qualifiedStart": [ + { + "@id": "_:N28539ea491974e6c8df74ae9b940ef4d" + } + ], + "http://www.w3.org/ns/prov#qualifiedUsage": [ + { + "@id": "_:N114f97a82874447ab7f6b76c159278df" + }, + { + "@id": "_:N3d8924853cff45baa06935bd85bb169c" + }, + { + "@id": "_:Ne776e0203e1d4e59b47d4d5fac3e7efe" + } + ], + "http://www.w3.org/ns/prov#wasAssociatedWith": [ + { + "@id": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89" + } + ] + }, + { + "@id": "_:N114f97a82874447ab7f6b76c159278df", + "@type": [ + "http://www.w3.org/ns/prov#Usage" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.019552" + } + ], + "http://www.w3.org/ns/prov#entity": [ + { + "@id": "https://w3id.org/cwl/prov#None" + } + ], + "http://www.w3.org/ns/prov#hadRole": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/step1/reverse" + } + ] + }, + { + "@id": "_:N3d8924853cff45baa06935bd85bb169c", + "@type": [ + "http://www.w3.org/ns/prov#Usage" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.019105" + } + ], + "http://www.w3.org/ns/prov#entity": [ + { + "@id": "urn:hash::sha1:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2" + } + ], + "http://www.w3.org/ns/prov#hadRole": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/step1/outname" + } + ] + }, + { + "@id": "_:Ne776e0203e1d4e59b47d4d5fac3e7efe", + "@type": [ + "http://www.w3.org/ns/prov#Usage" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.019501" + } + ], + "http://www.w3.org/ns/prov#entity": [ + { + "@id": "urn:uuid:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5" + } + ], + "http://www.w3.org/ns/prov#hadRole": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/step1/sort_in" + } + ] + }, + { + "@id": "_:N19cc32d5db61410b91915cc62efebb8d", + "@type": [ + "http://www.w3.org/ns/prov#End" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.023678" + } + ], + "http://www.w3.org/ns/prov#hadActivity": [ + { + "@id": "urn:uuid:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff" + } + ] + }, + { + "@id": "_:N28539ea491974e6c8df74ae9b940ef4d", + "@type": [ + "http://www.w3.org/ns/prov#Start" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:20.018268" + } + ], + "http://www.w3.org/ns/prov#hadActivity": [ + { + "@id": "urn:uuid:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff" + } + ] + }, + { + "@id": "_:Nde8a69c4c0b14dcba77c466a6e7289ab", + "@type": [ + "http://www.w3.org/ns/prov#Association" + ], + "http://www.w3.org/ns/prov#hadPlan": [ + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/step1" + } + ] + }, + { + "@id": "urn:uuid:9c332986-5c3e-478d-bb55-ab5509e16a72", + "@type": [ + "http://www.w3.org/ns/prov#Agent" + ] + }, + { + "@id": "urn:uuid:dbf26d00-ef02-4dd0-897a-6bf2ec301b89", + "@type": [ + "http://www.w3.org/ns/prov#Agent", + "http://purl.org/wf4ever/wfprov#WorkflowEngine", + "http://www.w3.org/ns/prov#SoftwareAgent" + ], + "http://www.w3.org/2000/01/rdf-schema#label": [ + { + "@value": "cwltool 3.1.20220802125926" + } + ], + "http://www.w3.org/ns/prov#qualifiedStart": [ + { + "@id": "_:N20c43af12cac4851a39b8b971d5a6980" + } + ] + }, + { + "@id": "_:N20c43af12cac4851a39b8b971d5a6980", + "@type": [ + "http://www.w3.org/ns/prov#Start" + ], + "http://www.w3.org/ns/prov#atTime": [ + { + "@type": "http://www.w3.org/2001/XMLSchema#dateTime", + "@value": "2023-05-25T13:31:19.992837" + } + ], + "http://www.w3.org/ns/prov#hadActivity": [ + { + "@id": "urn:uuid:9c332986-5c3e-478d-bb55-ab5509e16a72" + } + ] + }, + { + "@id": "urn:uuid:e95e0d11-7095-4e68-817f-64b1b606d0ec", + "@type": [ + "http://purl.org/wf4ever/wfprov#Artifact", + "http://www.w3.org/ns/prov#Entity", + "http://purl.org/wf4ever/wf4ever#File" + ], + "http://www.w3.org/ns/prov#specializationOf": [ + { + "@id": "urn:hash::sha1:7cb1a4da14ba3e91b983b30e7689e3902bcd2034" + } + ], + "https://w3id.org/cwl/prov#basename": [ + { + "@value": "in.txt" + } + ], + "https://w3id.org/cwl/prov#nameext": [ + { + "@value": ".txt" + } + ], + "https://w3id.org/cwl/prov#nameroot": [ + { + "@value": "in" + } + ] + }, + { + "@id": "arcp://uuid,b0888ccc-a7fd-47ea-a61a-c7801af3e6ff/workflow/packed.cwl#main/step1", + "@type": [ + "http://www.w3.org/ns/prov#Entity", + "http://purl.org/wf4ever/wfdesc#Process", + "http://www.w3.org/ns/prov#Plan" + ] + } +] \ No newline at end of file diff --git a/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.nt b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.nt new file mode 100644 index 0000000..088596e --- /dev/null +++ b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.nt @@ -0,0 +1,108 @@ + . + _:Na193ccf4383d487d8274f814022883a0 . +_:N2a118020dd4a4b8db4986c795765a6ec . + "in.txt_sorted"^^ . + ".txt_sorted"^^ . + . +_:N588a26c421ec47fe92dacea44a265784 . + . + . +_:N588a26c421ec47fe92dacea44a265784 "2023-05-25T13:31:20.019501"^^ . +_:N056c366b367f40bb884b1329d8cdd6c0 "2023-05-25T13:31:19.992952"^^ . + . +_:Na193ccf4383d487d8274f814022883a0 . +_:N2445c5d2944e4925bdebb0b703924cde . + _:N2445c5d2944e4925bdebb0b703924cde . +_:Nd694a7c3fbaa4034a631afb0b48f4c61 . + _:N723625b660994d55bb012bb09c77722d . +_:Na193ccf4383d487d8274f814022883a0 "2023-05-25T13:31:20.019105"^^ . + "in.txt"^^ . + _:N93245f05dfe74a8f919905d4cc62f15d . + _:N9bc3c24fe4e14b0a86dae8c476155c55 . + . + "None"^^ . + . + . +_:Nd694a7c3fbaa4034a631afb0b48f4c61 . + _:N638eeddcd7654169b31961e466409fee . + "Run of workflow/packed.cwl#main"^^ . + . + . +_:N60d0992d196f4635aad501d968b2cc65 "2023-05-25T13:31:20.015892"^^ . + . +_:N2a118020dd4a4b8db4986c795765a6ec . +_:N93245f05dfe74a8f919905d4cc62f15d . + . +_:N9bc3c24fe4e14b0a86dae8c476155c55 . + _:N056c366b367f40bb884b1329d8cdd6c0 . + . + . + . +_:N93245f05dfe74a8f919905d4cc62f15d . + . +_:N056c366b367f40bb884b1329d8cdd6c0 . + . +_:Nf6462c9162f04adb90454dc43e4cc9a5 . + _:Nd694a7c3fbaa4034a631afb0b48f4c61 . +_:N9bc3c24fe4e14b0a86dae8c476155c55 . + . + "in"^^ . + . + _:Nf6462c9162f04adb90454dc43e4cc9a5 . + . + . + "in.txt_sorted"^^ . + . + . +_:Na193ccf4383d487d8274f814022883a0 . + . +_:Nd694a7c3fbaa4034a631afb0b48f4c61 . +_:Nfa840d9cd917483380e1a5bc23c6e0d4 . +_:N93245f05dfe74a8f919905d4cc62f15d . +_:N60d0992d196f4635aad501d968b2cc65 . + _:N60d0992d196f4635aad501d968b2cc65 . + . +_:N9bc3c24fe4e14b0a86dae8c476155c55 "2023-05-25T13:31:20.023688"^^ . + ".txt"^^ . + . +_:N60d0992d196f4635aad501d968b2cc65 . + . +_:N2a118020dd4a4b8db4986c795765a6ec "2023-05-25T13:31:20.026328"^^ . +_:Nfa840d9cd917483380e1a5bc23c6e0d4 "2023-05-25T13:31:19.992837"^^ . +_:Na193ccf4383d487d8274f814022883a0 . +_:N60d0992d196f4635aad501d968b2cc65 . +_:N638eeddcd7654169b31961e466409fee . + . +_:N723625b660994d55bb012bb09c77722d . + _:N588a26c421ec47fe92dacea44a265784 . +_:Nfa840d9cd917483380e1a5bc23c6e0d4 . + _:Nfa840d9cd917483380e1a5bc23c6e0d4 . +_:Nf6462c9162f04adb90454dc43e4cc9a5 . +_:Nf6462c9162f04adb90454dc43e4cc9a5 "2023-05-25T13:31:20.023678"^^ . + "Prospective provenance"^^ . + "in"^^ . +_:N9bc3c24fe4e14b0a86dae8c476155c55 . + . + . + . +_:N638eeddcd7654169b31961e466409fee . + ".txt"^^ . + "Run of workflow/packed.cwl#main/step1"^^ . + _:N2a118020dd4a4b8db4986c795765a6ec . + . +_:N723625b660994d55bb012bb09c77722d . + . +_:N588a26c421ec47fe92dacea44a265784 . + . +_:Nd694a7c3fbaa4034a631afb0b48f4c61 "2023-05-25T13:31:20.026198"^^ . +_:N723625b660994d55bb012bb09c77722d "2023-05-25T13:31:20.018268"^^ . + "cwltool 3.1.20220802125926"^^ . + "2023-05-25T13:31:19.992879"^^ . + "in"^^ . + . +_:N588a26c421ec47fe92dacea44a265784 . +_:N2445c5d2944e4925bdebb0b703924cde . + "in.txt"^^ . + . +_:N93245f05dfe74a8f919905d4cc62f15d "2023-05-25T13:31:20.019552"^^ . +_:N056c366b367f40bb884b1329d8cdd6c0 . diff --git a/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.provn b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.provn new file mode 100644 index 0000000..6e5a217 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.provn @@ -0,0 +1,49 @@ +document + prefix wfprov + prefix wfdesc + prefix cwlprov + prefix foaf + prefix schema + prefix orcid + prefix id + prefix data + prefix sha256 + prefix researchobject + prefix metadata + prefix provenance + prefix wf + prefix input + prefix wf4ever + + agent(id:9c332986-5c3e-478d-bb55-ab5509e16a72) + agent(id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89, [prov:type='wfprov:WorkflowEngine', prov:type='prov:SoftwareAgent', prov:label="cwltool 3.1.20220802125926"]) + wasStartedBy(id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89, -, id:9c332986-5c3e-478d-bb55-ab5509e16a72, 2023-05-25T13:31:19.992837) + activity(id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff, 2023-05-25T13:31:19.992879, -, [prov:type='wfprov:WorkflowRun', prov:label="Run of workflow/packed.cwl#main"]) + wasAssociatedWith(id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff, id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89, wf:main) + wasStartedBy(id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff, -, id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89, 2023-05-25T13:31:19.992952) + entity(wf:main, [prov:type='wfdesc:Workflow', prov:type='prov:Plan', prov:label="Prospective provenance"]) + entity(wf:main/step1, [prov:type='wfdesc:Process', prov:type='prov:Plan']) + entity(wf:main, [wfdesc:hasSubProcess='wf:main/step1', prov:label="Prospective provenance"]) + entity(data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034, [prov:type='wfprov:Artifact']) + entity(id:e95e0d11-7095-4e68-817f-64b1b606d0ec, [prov:type='wf4ever:File', prov:type='wfprov:Artifact', cwlprov:basename="in.txt", cwlprov:nameroot="in", cwlprov:nameext=".txt"]) + specializationOf(id:e95e0d11-7095-4e68-817f-64b1b606d0ec, data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034) + used(id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff, id:e95e0d11-7095-4e68-817f-64b1b606d0ec, 2023-05-25T13:31:20.015892, [prov:role='wf:main/wf_in']) + activity(id:d692aa5a-f668-459d-b119-b699f022d2ed, -, -, [prov:type='wfprov:ProcessRun', prov:label="Run of workflow/packed.cwl#main/step1"]) + wasAssociatedWith(id:d692aa5a-f668-459d-b119-b699f022d2ed, id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89, wf:main/step1) + wasStartedBy(id:d692aa5a-f668-459d-b119-b699f022d2ed, -, id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff, 2023-05-25T13:31:20.018268) + entity(data:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2, [prov:type='wfprov:Artifact', prov:value="in.txt_sorted"]) + used(id:d692aa5a-f668-459d-b119-b699f022d2ed, data:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2, 2023-05-25T13:31:20.019105, [prov:role='wf:main/step1/outname']) + entity(data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034, [prov:type='wfprov:Artifact']) + entity(id:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5, [prov:type='wf4ever:File', prov:type='wfprov:Artifact', cwlprov:basename="in.txt", cwlprov:nameroot="in", cwlprov:nameext=".txt"]) + specializationOf(id:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5, data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034) + used(id:d692aa5a-f668-459d-b119-b699f022d2ed, id:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5, 2023-05-25T13:31:20.019501, [prov:role='wf:main/step1/sort_in']) + entity(cwlprov:None, [prov:label="None"]) + used(id:d692aa5a-f668-459d-b119-b699f022d2ed, cwlprov:None, 2023-05-25T13:31:20.019552, [prov:role='wf:main/step1/reverse']) + entity(data:4e9467350ac0864d8b27655aa01765680f922582, [prov:type='wfprov:Artifact']) + entity(id:c8696b76-423f-4292-b025-5579d9f8f5ca, [prov:type='wf4ever:File', prov:type='wfprov:Artifact', cwlprov:basename="in.txt_sorted", cwlprov:nameroot="in", cwlprov:nameext=".txt_sorted"]) + specializationOf(id:c8696b76-423f-4292-b025-5579d9f8f5ca, data:4e9467350ac0864d8b27655aa01765680f922582) + wasGeneratedBy(id:c8696b76-423f-4292-b025-5579d9f8f5ca, id:d692aa5a-f668-459d-b119-b699f022d2ed, 2023-05-25T13:31:20.023688, [prov:role='wf:main/step1/sort_out']) + wasEndedBy(id:d692aa5a-f668-459d-b119-b699f022d2ed, -, id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff, 2023-05-25T13:31:20.023678) + wasGeneratedBy(id:c8696b76-423f-4292-b025-5579d9f8f5ca, id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff, 2023-05-25T13:31:20.026198, [prov:role='wf:main/primary/wf_out']) + wasEndedBy(id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff, -, id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89, 2023-05-25T13:31:20.026328) +endDocument \ No newline at end of file diff --git a/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.ttl b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.ttl new file mode 100644 index 0000000..028b1eb --- /dev/null +++ b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.ttl @@ -0,0 +1,119 @@ +@prefix cwlprov: . +@prefix data: . +@prefix id: . +@prefix prov: . +@prefix rdfs: . +@prefix wf: . +@prefix wf4ever: . +@prefix wfdesc: . +@prefix wfprov: . +@prefix xsd: . + +id:c8696b76-423f-4292-b025-5579d9f8f5ca a wf4ever:File, + wfprov:Artifact, + prov:Entity ; + prov:qualifiedGeneration [ a prov:Generation ; + prov:activity id:d692aa5a-f668-459d-b119-b699f022d2ed ; + prov:atTime "2023-05-25T13:31:20.023688"^^xsd:dateTime ; + prov:hadRole ], + [ a prov:Generation ; + prov:activity id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff ; + prov:atTime "2023-05-25T13:31:20.026198"^^xsd:dateTime ; + prov:hadRole ] ; + prov:specializationOf data:4e9467350ac0864d8b27655aa01765680f922582 ; + cwlprov:basename "in.txt_sorted"^^xsd:string ; + cwlprov:nameext ".txt_sorted"^^xsd:string ; + cwlprov:nameroot "in"^^xsd:string . + +wf:main a wfdesc:Workflow, + prov:Entity, + prov:Plan ; + rdfs:label "Prospective provenance"^^xsd:string ; + wfdesc:hasSubProcess . + +cwlprov:None a prov:Entity ; + rdfs:label "None"^^xsd:string . + +data:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2 a wfprov:Artifact, + prov:Entity ; + prov:value "in.txt_sorted"^^xsd:string . + +data:4e9467350ac0864d8b27655aa01765680f922582 a wfprov:Artifact, + prov:Entity . + +id:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5 a wf4ever:File, + wfprov:Artifact, + prov:Entity ; + prov:specializationOf data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034 ; + cwlprov:basename "in.txt"^^xsd:string ; + cwlprov:nameext ".txt"^^xsd:string ; + cwlprov:nameroot "in"^^xsd:string . + +id:9c332986-5c3e-478d-bb55-ab5509e16a72 a prov:Agent . + +id:d692aa5a-f668-459d-b119-b699f022d2ed a wfprov:ProcessRun, + prov:Activity ; + rdfs:label "Run of workflow/packed.cwl#main/step1"^^xsd:string ; + prov:qualifiedAssociation [ a prov:Association ; + prov:hadPlan ] ; + prov:qualifiedEnd [ a prov:End ; + prov:atTime "2023-05-25T13:31:20.023678"^^xsd:dateTime ; + prov:hadActivity id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff ] ; + prov:qualifiedStart [ a prov:Start ; + prov:atTime "2023-05-25T13:31:20.018268"^^xsd:dateTime ; + prov:hadActivity id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff ] ; + prov:qualifiedUsage [ a prov:Usage ; + prov:atTime "2023-05-25T13:31:20.019552"^^xsd:dateTime ; + prov:entity cwlprov:None ; + prov:hadRole ], + [ a prov:Usage ; + prov:atTime "2023-05-25T13:31:20.019501"^^xsd:dateTime ; + prov:entity id:4d938dd9-9f31-44f2-b9e4-0555f65e6ef5 ; + prov:hadRole ], + [ a prov:Usage ; + prov:atTime "2023-05-25T13:31:20.019105"^^xsd:dateTime ; + prov:entity data:2651eb956ec4e3a1e0e48e06394c3aa290ba60c2 ; + prov:hadRole ] ; + prov:wasAssociatedWith id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89 . + +id:e95e0d11-7095-4e68-817f-64b1b606d0ec a wf4ever:File, + wfprov:Artifact, + prov:Entity ; + prov:specializationOf data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034 ; + cwlprov:basename "in.txt"^^xsd:string ; + cwlprov:nameext ".txt"^^xsd:string ; + cwlprov:nameroot "in"^^xsd:string . + + a wfdesc:Process, + prov:Entity, + prov:Plan . + +data:7cb1a4da14ba3e91b983b30e7689e3902bcd2034 a wfprov:Artifact, + prov:Entity . + +id:b0888ccc-a7fd-47ea-a61a-c7801af3e6ff a wfprov:WorkflowRun, + prov:Activity ; + rdfs:label "Run of workflow/packed.cwl#main"^^xsd:string ; + prov:qualifiedAssociation [ a prov:Association ; + prov:hadPlan wf:main ] ; + prov:qualifiedEnd [ a prov:End ; + prov:atTime "2023-05-25T13:31:20.026328"^^xsd:dateTime ; + prov:hadActivity id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89 ] ; + prov:qualifiedStart [ a prov:Start ; + prov:atTime "2023-05-25T13:31:19.992952"^^xsd:dateTime ; + prov:hadActivity id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89 ] ; + prov:qualifiedUsage [ a prov:Usage ; + prov:atTime "2023-05-25T13:31:20.015892"^^xsd:dateTime ; + prov:entity id:e95e0d11-7095-4e68-817f-64b1b606d0ec ; + prov:hadRole ] ; + prov:startedAtTime "2023-05-25T13:31:19.992879"^^xsd:dateTime ; + prov:wasAssociatedWith id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89 . + +id:dbf26d00-ef02-4dd0-897a-6bf2ec301b89 a wfprov:WorkflowEngine, + prov:Agent, + prov:SoftwareAgent ; + rdfs:label "cwltool 3.1.20220802125926"^^xsd:string ; + prov:qualifiedStart [ a prov:Start ; + prov:atTime "2023-05-25T13:31:19.992837"^^xsd:dateTime ; + prov:hadActivity id:9c332986-5c3e-478d-bb55-ab5509e16a72 ] . + diff --git a/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.xml b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.xml new file mode 100644 index 0000000..8196a43 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/metadata/provenance/primary.cwlprov.xml @@ -0,0 +1,148 @@ + + + + + cwltool 3.1.20220802125926 + wfprov:WorkflowEngine + + + + + 2023-05-25T13:31:19.992837 + + + 2023-05-25T13:31:19.992879 + Run of workflow/packed.cwl#main + wfprov:WorkflowRun + + + + + + + + + + 2023-05-25T13:31:19.992952 + + + Prospective provenance + wfdesc:Workflow + + + wfdesc:Process + + + Prospective provenance + wf:main/step1 + + + wfprov:Artifact + + + wf4ever:File + wfprov:Artifact + in.txt + .txt + in + + + + + + + + + 2023-05-25T13:31:20.015892 + wf:main/wf_in + + + Run of workflow/packed.cwl#main/step1 + wfprov:ProcessRun + + + + + + + + + + 2023-05-25T13:31:20.018268 + + + wfprov:Artifact + in.txt_sorted + + + + + 2023-05-25T13:31:20.019105 + wf:main/step1/outname + + + wfprov:Artifact + + + wf4ever:File + wfprov:Artifact + in.txt + .txt + in + + + + + + + + + 2023-05-25T13:31:20.019501 + wf:main/step1/sort_in + + + None + + + + + 2023-05-25T13:31:20.019552 + wf:main/step1/reverse + + + wfprov:Artifact + + + wf4ever:File + wfprov:Artifact + in.txt_sorted + .txt_sorted + in + + + + + + + + + 2023-05-25T13:31:20.023688 + wf:main/step1/sort_out + + + + + 2023-05-25T13:31:20.023678 + + + + + 2023-05-25T13:31:20.026198 + wf:main/primary/wf_out + + + + + 2023-05-25T13:31:20.026328 + + diff --git a/tests/data/step-valuefrom-run-1/snapshot/sorttool.cwl b/tests/data/step-valuefrom-run-1/snapshot/sorttool.cwl new file mode 100644 index 0000000..c1c5c6a --- /dev/null +++ b/tests/data/step-valuefrom-run-1/snapshot/sorttool.cwl @@ -0,0 +1,25 @@ +class: CommandLineTool +cwlVersion: v1.0 + +baseCommand: sort + +inputs: + reverse: + type: boolean? + inputBinding: + position: 1 + prefix: "--reverse" + outname: + type: string + inputBinding: + position: 2 + prefix: "--output" + sort_in: + type: File + inputBinding: + position: 3 +outputs: + sort_out: + type: File + outputBinding: + glob: "*sorted" diff --git a/tests/data/step-valuefrom-run-1/snapshot/wf.cwl b/tests/data/step-valuefrom-run-1/snapshot/wf.cwl new file mode 100644 index 0000000..d39d51d --- /dev/null +++ b/tests/data/step-valuefrom-run-1/snapshot/wf.cwl @@ -0,0 +1,22 @@ +class: Workflow +cwlVersion: v1.2 +requirements: + - class: StepInputExpressionRequirement + - class: InlineJavascriptRequirement + +inputs: + wf_in: File + +outputs: + wf_out: + type: File + outputSource: step1/sort_out + +steps: + step1: + run: sorttool.cwl + in: + sort_in: wf_in + outname: + valueFrom: $(inputs.sort_in.basename)_sorted + out: [sort_out] diff --git a/tests/data/step-valuefrom-run-1/tagmanifest-sha1.txt b/tests/data/step-valuefrom-run-1/tagmanifest-sha1.txt new file mode 100644 index 0000000..a7abbde --- /dev/null +++ b/tests/data/step-valuefrom-run-1/tagmanifest-sha1.txt @@ -0,0 +1,14 @@ +4074e294537b34b652c4855efa21b3c96f6a2ae2 workflow/packed.cwl +cf3498d68f01d17e0c9fecfa3e26a514c3b9dfe0 workflow/primary-job.json +efd2a167cea686b3d784ef69b0aaccfe0f057c7c metadata/provenance/primary.cwlprov.xml +b7214dbfe2bcaac96b75c892fdf5fc5052cfa839 metadata/provenance/primary.cwlprov.provn +c0293e86b0c8a83a54018e1d37724dff8da6b449 metadata/provenance/primary.cwlprov.json +ee2505b5b3ee46c50b735a68920760e98034d5e5 metadata/provenance/primary.cwlprov.ttl +46b7cf8b0865e1f11cde462896719c188982c66c metadata/provenance/primary.cwlprov.nt +4e5b066ce52e8667ee29cdbdfdb37002d0752689 metadata/provenance/primary.cwlprov.jsonld +19875f7b118b96c9df691cd0789bc17effa9e61f workflow/primary-output.json +36652fb9ec281719e360bfde5eccef94263ce1b2 snapshot/wf.cwl +179a30922f896206fb163d3d565a6e7c430e9d26 snapshot/sorttool.cwl +d21c0a7327d4de2fdfa37cc7aa2798cacb41f24f metadata/logs/engine.dbf26d00-ef02-4dd0-897a-6bf2ec301b89.txt +5108334b98b1d7699b164993d8960a32426fa1bc metadata/manifest.json +03b7512cf72f682acecb2472a387ed98e9cf3790 bag-info.txt diff --git a/tests/data/step-valuefrom-run-1/tagmanifest-sha256.txt b/tests/data/step-valuefrom-run-1/tagmanifest-sha256.txt new file mode 100644 index 0000000..0bed2c3 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/tagmanifest-sha256.txt @@ -0,0 +1,14 @@ +2224e485fc0be1d7d646e15f7f82918b626adf9b69a5b05661213b0c1507cced workflow/packed.cwl +61a4af604d6fd7aaa0fb035863dd97b34547f77eecaa66115990c27a0a87ab05 workflow/primary-job.json +2b7e96bf9b02116f61e324fe8c3a661e2f458ff70ff2e8f6fc185d68ea8e18fb metadata/provenance/primary.cwlprov.xml +e7863e63f78a80c0f87b48e04b0643804fec122287e68924016397273b3ba269 metadata/provenance/primary.cwlprov.provn +85d52096884d97e8818ab9579b51400a4d3f06cf6f4958539ac27304926f296f metadata/provenance/primary.cwlprov.json +0e7db557528059d96565bdb65e87b1b6a4116c4a7d9d93a91a5e46074475204e metadata/provenance/primary.cwlprov.ttl +a33c6e4649cef86eb566b8626de5d4d5091f5051152d670d27ecd1f2c1f32caa metadata/provenance/primary.cwlprov.nt +d7c2e0a4eb31d6fcfd52aa83bdf763b795b56162b108ec8c7fb265e39b12b701 metadata/provenance/primary.cwlprov.jsonld +d1132df7d1cef84ee468f71b9bb8787e5ae812e48b1acf3cf2e9fbe5f14decff workflow/primary-output.json +4a40021b01358ef3b6e76b777ffd43799aa0511027f057b5f6c7e12c147aa15f snapshot/wf.cwl +332cfdc549e77ba8d1de8d05d10e15ed391bcb1d3e1e252f6953345c8d895d6a snapshot/sorttool.cwl +9e54dc963fa4b4a464b6cd75bdf56ea27c89b11f03965d616918369b3d01d8ad metadata/logs/engine.dbf26d00-ef02-4dd0-897a-6bf2ec301b89.txt +30bf6403fcb95da0ac7757735fe0b701ea5d79e60376d8c2912ffed3bd0556a4 metadata/manifest.json +97e0222aa86610afbca5c81df69ba3afcda4c0bc3550e661781aab4a8ab7cef0 bag-info.txt diff --git a/tests/data/step-valuefrom-run-1/tagmanifest-sha512.txt b/tests/data/step-valuefrom-run-1/tagmanifest-sha512.txt new file mode 100644 index 0000000..fa529ce --- /dev/null +++ b/tests/data/step-valuefrom-run-1/tagmanifest-sha512.txt @@ -0,0 +1,14 @@ +5e3b459ec90cdb2930b2b91d785fdcee503eb933dfe9fe97acde9ea2c1368e73f6e05d489999b1a86b7774bb81bb8f2669a368ce901c453daa9e6f988c417c56 workflow/packed.cwl +75b51938ffe71094b6ad348710137c638af2f690715a9d58de2c3cb4801c0fb6098d6de749268be32f8ac8f7a6e141771ebea53243d32d4a209011a461b25e24 workflow/primary-job.json +59c764370c7feed9393a5b8ce4ce648ef174845d564557e36452ab0d508f51cd406ff9855b65a690913347ff174d345269e01c80f709e0d70ff655c547c64171 metadata/provenance/primary.cwlprov.xml +64823908af7e856854c5629ad706387f3c340b73298fa417d5d301c931d1afef5a66c8c8fb69fa5a4fa08778a2e7ddc612a5b4f8214332991ea7e7c419bf3502 metadata/provenance/primary.cwlprov.provn +4178fb3f461d4cf669cb1354f87e844c94cabe0cd1b60d81fd7823da629806ebe42a6cca1ecf7e1a298260eaba8710425994a36d838ac9032aa2152a4c8e07f6 metadata/provenance/primary.cwlprov.json +1f0fff549bd27fe7dec1132d5a287f8cf9ed189b3187d88a3830305d03d1991c02864c0bf90c8bc8021e8166a53d47d6ce1ac225b1d4c4e4b2fc494346049b80 metadata/provenance/primary.cwlprov.ttl +bc363290becb23cb9227abb40f2bfe8c42f36928d5f65353467754f5443923af203694952f25042ed8e8324bb6b6f0d3a9addb38c2a5b2e84eaead30a8999800 metadata/provenance/primary.cwlprov.nt +afcc838ed97332733596c1b1b13c822a00892f54beca46e6069165da214a4bdcc6e49a2b474333390bfca2736df5fc9d53f57e0a4bc5a4ee1bde9cf513298ab5 metadata/provenance/primary.cwlprov.jsonld +a8da9d9512a52d2b9c252b0b23d6a7d342f53a655de67c31153eb1164be38e70952b123b87eca84d4a577cb23d9f5111accb98a69cab045a69485c4b2cc0bc5f workflow/primary-output.json +dbd5c1e95b428603f2d5b044642bd6eb1fd707cdfa8347b03cc797c1ec266ee4bdd8194588c861ba5496536f77761d954dc64246dfdf49e6e97192c384729e8c snapshot/wf.cwl +0d12fc2f9acd81678addc7e3fc31df52f7bca3e789f56d3eacfd39a93ca7ae5b66084d38149dcd58925c975dfc0a2871ab233f15fc193df1f34ea18bb1d2ebd8 snapshot/sorttool.cwl +8ddb62881a30871c6fc42a1350f3c4b90b0b7cbcb500a48b8afe7d57f074378f89484575f2dcad7a87b0f1d51917aa744abb2fa953cd09076d1d79de54472cc6 metadata/logs/engine.dbf26d00-ef02-4dd0-897a-6bf2ec301b89.txt +5d7be77cef7f715802e2db4c9e7527d531b3f81d39de6810aa797fd86357c0f9979fb055fff7ca098131e163b5c4047005eee330ef97f8eb89635c9795d7979f metadata/manifest.json +f922f4f2c2fc99d4baa4a2d5771ad419110cf6a825ab90b6366b56e0f84e7d44d45c76c8792ea27fb989ced0becd5c68e1b8afcb11cb72d34ef61aa01bc449a7 bag-info.txt diff --git a/tests/data/step-valuefrom-run-1/workflow/packed.cwl b/tests/data/step-valuefrom-run-1/workflow/packed.cwl new file mode 100644 index 0000000..da13402 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/workflow/packed.cwl @@ -0,0 +1,101 @@ +{ + "$graph": [ + { + "class": "CommandLineTool", + "baseCommand": "sort", + "inputs": [ + { + "type": "string", + "inputBinding": { + "position": 2, + "prefix": "--output" + }, + "id": "#sorttool.cwl/outname" + }, + { + "type": [ + "null", + "boolean" + ], + "inputBinding": { + "position": 1, + "prefix": "--reverse" + }, + "id": "#sorttool.cwl/reverse" + }, + { + "type": "File", + "inputBinding": { + "position": 3 + }, + "id": "#sorttool.cwl/sort_in" + } + ], + "id": "#sorttool.cwl", + "hints": [ + { + "class": "LoadListingRequirement", + "loadListing": "deep_listing" + }, + { + "class": "NetworkAccess", + "networkAccess": true + } + ], + "outputs": [ + { + "type": "File", + "outputBinding": { + "glob": "*sorted" + }, + "id": "#sorttool.cwl/sort_out" + } + ] + }, + { + "class": "Workflow", + "requirements": [ + { + "class": "StepInputExpressionRequirement" + }, + { + "class": "InlineJavascriptRequirement" + } + ], + "inputs": [ + { + "type": "File", + "id": "#main/wf_in" + } + ], + "outputs": [ + { + "type": "File", + "outputSource": "#main/step1/sort_out", + "id": "#main/wf_out" + } + ], + "steps": [ + { + "run": "#sorttool.cwl", + "in": [ + { + "valueFrom": "$(inputs.sort_in.basename)_sorted", + "id": "#main/step1/outname" + }, + { + "source": "#main/wf_in", + "id": "#main/step1/sort_in" + } + ], + "out": [ + "#main/step1/sort_out" + ], + "id": "#main/step1" + } + ], + "id": "#main" + } + ], + "cwlVersion": "v1.2" +} \ No newline at end of file diff --git a/tests/data/step-valuefrom-run-1/workflow/primary-job.json b/tests/data/step-valuefrom-run-1/workflow/primary-job.json new file mode 100644 index 0000000..96ca701 --- /dev/null +++ b/tests/data/step-valuefrom-run-1/workflow/primary-job.json @@ -0,0 +1,11 @@ +{ + "wf_in": { + "class": "File", + "location": "../data/7c/7cb1a4da14ba3e91b983b30e7689e3902bcd2034", + "size": 22, + "basename": "in.txt", + "nameroot": "in", + "nameext": ".txt", + "checksum": "sha1$7cb1a4da14ba3e91b983b30e7689e3902bcd2034" + } +} diff --git a/tests/data/step-valuefrom-run-1/workflow/primary-output.json b/tests/data/step-valuefrom-run-1/workflow/primary-output.json new file mode 100644 index 0000000..843710e --- /dev/null +++ b/tests/data/step-valuefrom-run-1/workflow/primary-output.json @@ -0,0 +1,13 @@ +{ + "wf_out": { + "location": "../data/4e/4e9467350ac0864d8b27655aa01765680f922582", + "basename": "in.txt_sorted", + "nameroot": "in", + "nameext": ".txt_sorted", + "class": "File", + "checksum": "sha1$4e9467350ac0864d8b27655aa01765680f922582", + "size": 22, + "http://commonwl.org/cwltool#generation": 0, + "@id": "urn:uuid:c8696b76-423f-4292-b025-5579d9f8f5ca" + } +} diff --git a/tests/test_cwlprov_crate_builder.py b/tests/test_cwlprov_crate_builder.py index 66b94ba..f2a40f2 100644 --- a/tests/test_cwlprov_crate_builder.py +++ b/tests/test_cwlprov_crate_builder.py @@ -970,3 +970,33 @@ def test_multisource(data_dir, tmpdir): } assert int(cat_step["position"]) > int(date_step["position"]) assert int(cat_step["position"]) > int(isodate_step["position"]) + + +def test_step_in_nosource(data_dir, tmpdir): + root = data_dir / "step-valuefrom-run-1" + output = tmpdir / "step-valuefrom-run-1-crate" + license = "Apache-2.0" + builder = ProvCrateBuilder(root, license=license) + crate = builder.build() + crate.write(output) + crate = ROCrate(output) + assert crate.root_dataset["license"] == "Apache-2.0" + workflow = crate.mainEntity + inputs = workflow["input"] + assert len(inputs) == 1 + wf_in = inputs[0] + outputs = workflow["output"] + assert len(outputs) == 1 + wf_out = outputs[0] + tools = workflow["hasPart"] + assert len(tools) == 1 + sorttool = tools[0] + assert len(sorttool["input"]) == 3 + sorttool_input_map = {_.id.rsplit("/", 1)[-1]: _ for _ in sorttool["input"]} + sort_in = sorttool_input_map["sort_in"] + assert len(sorttool["output"]) == 1 + sort_out = sorttool["output"][0] + assert len(workflow["step"]) == 1 + sort_step = workflow["step"][0] + assert set(_connected(workflow)) == {(sort_out.id, wf_out.id)} + assert set(_connected(sort_step)) == {(wf_in.id, sort_in.id)}