Skip to content

Commit f66d923

Browse files
committed
tests: add testdata retriever that returns a Path
1 parent 5042e2a commit f66d923

File tree

8 files changed

+184
-296
lines changed

8 files changed

+184
-296
lines changed

tests/test_extensions.py

Lines changed: 22 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
1-
from pathlib import Path
2-
31
from cwl_utils.parser import cwl_v1_0, cwl_v1_1, cwl_v1_2, load_document_by_uri
42

5-
from .util import get_data
3+
from .util import get_path
64

75

86
def test_cuda_requirement_v1_0() -> None:
97
"""Test that CUDARequirement objects are correctly loaded for CWL v1.0."""
10-
uri = (
11-
Path(get_data("testdata/extensions/cuda-requirement_v1_0.cwl"))
12-
.resolve()
13-
.as_uri()
14-
)
8+
uri = get_path("testdata/extensions/cuda-requirement_v1_0.cwl").as_uri()
159
cwl_obj = load_document_by_uri(uri)
1610
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_0.CUDARequirement)
1711
cwl_dict = cwl_obj.save(top=True)
@@ -20,11 +14,7 @@ def test_cuda_requirement_v1_0() -> None:
2014

2115
def test_cuda_requirement_v1_1() -> None:
2216
"""Test that CUDARequirement objects are correctly loaded for CWL v1.1."""
23-
uri = (
24-
Path(get_data("testdata/extensions/cuda-requirement_v1_1.cwl"))
25-
.resolve()
26-
.as_uri()
27-
)
17+
uri = get_path("testdata/extensions/cuda-requirement_v1_1.cwl").as_uri()
2818
cwl_obj = load_document_by_uri(uri)
2919
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_1.CUDARequirement)
3020
cwl_dict = cwl_obj.save(top=True)
@@ -33,11 +23,7 @@ def test_cuda_requirement_v1_1() -> None:
3323

3424
def test_cuda_requirement_v1_2() -> None:
3525
"""Test that CUDARequirement objects are correctly loaded for CWL v1.2."""
36-
uri = (
37-
Path(get_data("testdata/extensions/cuda-requirement_v1_2.cwl"))
38-
.resolve()
39-
.as_uri()
40-
)
26+
uri = get_path("testdata/extensions/cuda-requirement_v1_2.cwl").as_uri()
4127
cwl_obj = load_document_by_uri(uri)
4228
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_2.CUDARequirement)
4329
cwl_dict = cwl_obj.save(top=True)
@@ -46,11 +32,7 @@ def test_cuda_requirement_v1_2() -> None:
4632

4733
def test_load_listing_requirement_v1_0() -> None:
4834
"""Test that LoadListingRequirement objects are correctly loaded for CWL v1.0."""
49-
uri = (
50-
Path(get_data("testdata/extensions/load-listing-requirement_v1_0.cwl"))
51-
.resolve()
52-
.as_uri()
53-
)
35+
uri = get_path("testdata/extensions/load-listing-requirement_v1_0.cwl").as_uri()
5436
cwl_obj = load_document_by_uri(uri)
5537
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_0.LoadListingRequirement)
5638
cwl_dict = cwl_obj.save(top=True)
@@ -59,11 +41,7 @@ def test_load_listing_requirement_v1_0() -> None:
5941

6042
def test_loop_v1_2() -> None:
6143
"""Test that Loop and LoopInput objects are correctly loaded for CWL v1.2."""
62-
uri = (
63-
Path(get_data("testdata/extensions/single-var-loop_v1_2.cwl"))
64-
.resolve()
65-
.as_uri()
66-
)
44+
uri = get_path("testdata/extensions/single-var-loop_v1_2.cwl").as_uri()
6745
cwl_obj = load_document_by_uri(uri)
6846
cwl_step = next(iter(cwl_obj.steps))
6947
loop_req = next(iter(cwl_step.requirements))
@@ -75,11 +53,7 @@ def test_loop_v1_2() -> None:
7553

7654
def test_inplace_update_requirement_v1_0() -> None:
7755
"""Test that InplaceUpdateRequirement objects are correctly loaded for CWL v1.0."""
78-
uri = (
79-
Path(get_data("testdata/extensions/inplace-update-requirement_v1_0.cwl"))
80-
.resolve()
81-
.as_uri()
82-
)
56+
uri = get_path("testdata/extensions/inplace-update-requirement_v1_0.cwl").as_uri()
8357
cwl_obj = load_document_by_uri(uri)
8458
assert isinstance(
8559
next(iter(cwl_obj.requirements)), cwl_v1_0.InplaceUpdateRequirement
@@ -90,11 +64,7 @@ def test_inplace_update_requirement_v1_0() -> None:
9064

9165
def test_mpi_requirement_v1_0() -> None:
9266
"""Test that MPIRequirement objects are correctly loaded for CWL v1.0."""
93-
uri = (
94-
Path(get_data("testdata/extensions/mpi-requirement_v1_0.cwl"))
95-
.resolve()
96-
.as_uri()
97-
)
67+
uri = get_path("testdata/extensions/mpi-requirement_v1_0.cwl").as_uri()
9868
cwl_obj = load_document_by_uri(uri)
9969
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_0.MPIRequirement)
10070
cwl_dict = cwl_obj.save(top=True)
@@ -103,11 +73,7 @@ def test_mpi_requirement_v1_0() -> None:
10373

10474
def test_mpi_requirement_v1_1() -> None:
10575
"""Test that MPIRequirement objects are correctly loaded for CWL v1.1."""
106-
uri = (
107-
Path(get_data("testdata/extensions/mpi-requirement_v1_1.cwl"))
108-
.resolve()
109-
.as_uri()
110-
)
76+
uri = get_path("testdata/extensions/mpi-requirement_v1_1.cwl").as_uri()
11177
cwl_obj = load_document_by_uri(uri)
11278
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_1.MPIRequirement)
11379
cwl_dict = cwl_obj.save(top=True)
@@ -116,11 +82,7 @@ def test_mpi_requirement_v1_1() -> None:
11682

11783
def test_mpi_requirement_v1_2() -> None:
11884
"""Test that MPIRequirement objects are correctly loaded for CWL v1.2."""
119-
uri = (
120-
Path(get_data("testdata/extensions/mpi-requirement_v1_2.cwl"))
121-
.resolve()
122-
.as_uri()
123-
)
85+
uri = get_path("testdata/extensions/mpi-requirement_v1_2.cwl").as_uri()
12486
cwl_obj = load_document_by_uri(uri)
12587
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_2.MPIRequirement)
12688
cwl_dict = cwl_obj.save(top=True)
@@ -129,9 +91,7 @@ def test_mpi_requirement_v1_2() -> None:
12991

13092
def test_network_access_v1_0() -> None:
13193
"""Test that NetworkAccess objects are correctly loaded for CWL v1.0."""
132-
uri = (
133-
Path(get_data("testdata/extensions/network-access_v1_0.cwl")).resolve().as_uri()
134-
)
94+
uri = get_path("testdata/extensions/network-access_v1_0.cwl").as_uri()
13595
cwl_obj = load_document_by_uri(uri)
13696
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_0.NetworkAccess)
13797
cwl_dict = cwl_obj.save(top=True)
@@ -140,11 +100,7 @@ def test_network_access_v1_0() -> None:
140100

141101
def test_process_generator_v1_0() -> None:
142102
"""Test that ProcessGenerator objects are correctly loaded for CWL v1.0."""
143-
uri = (
144-
Path(get_data("testdata/extensions/process-generator_v1_0.cwl"))
145-
.resolve()
146-
.as_uri()
147-
)
103+
uri = get_path("testdata/extensions/process-generator_v1_0.cwl").as_uri()
148104
cwl_obj = load_document_by_uri(uri)
149105
assert isinstance(cwl_obj, cwl_v1_0.ProcessGenerator)
150106
cwl_dict = cwl_obj.save(top=True)
@@ -153,11 +109,7 @@ def test_process_generator_v1_0() -> None:
153109

154110
def test_process_generator_v1_1() -> None:
155111
"""Test that ProcessGenerator objects are correctly loaded for CWL v1.1."""
156-
uri = (
157-
Path(get_data("testdata/extensions/process-generator_v1_1.cwl"))
158-
.resolve()
159-
.as_uri()
160-
)
112+
uri = get_path("testdata/extensions/process-generator_v1_1.cwl").as_uri()
161113
cwl_obj = load_document_by_uri(uri)
162114
assert isinstance(cwl_obj, cwl_v1_1.ProcessGenerator)
163115
cwl_dict = cwl_obj.save(top=True)
@@ -166,11 +118,7 @@ def test_process_generator_v1_1() -> None:
166118

167119
def test_process_generator_v1_2() -> None:
168120
"""Test that ProcessGenerator objects are correctly loaded for CWL v1.2."""
169-
uri = (
170-
Path(get_data("testdata/extensions/process-generator_v1_2.cwl"))
171-
.resolve()
172-
.as_uri()
173-
)
121+
uri = get_path("testdata/extensions/process-generator_v1_2.cwl").as_uri()
174122
cwl_obj = load_document_by_uri(uri)
175123
assert isinstance(cwl_obj, cwl_v1_2.ProcessGenerator)
176124
cwl_dict = cwl_obj.save(top=True)
@@ -179,7 +127,7 @@ def test_process_generator_v1_2() -> None:
179127

180128
def test_secrets_v1_0() -> None:
181129
"""Test that Secrets objects are correctly loaded for CWL v1.0."""
182-
uri = Path(get_data("testdata/extensions/secrets_v1_0.cwl")).resolve().as_uri()
130+
uri = get_path("testdata/extensions/secrets_v1_0.cwl").as_uri()
183131
cwl_obj = load_document_by_uri(uri)
184132
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_0.Secrets)
185133
cwl_dict = cwl_obj.save(top=True)
@@ -188,7 +136,7 @@ def test_secrets_v1_0() -> None:
188136

189137
def test_secrets_v1_1() -> None:
190138
"""Test that Secrets objects are correctly loaded for CWL v1.1."""
191-
uri = Path(get_data("testdata/extensions/secrets_v1_1.cwl")).resolve().as_uri()
139+
uri = get_path("testdata/extensions/secrets_v1_1.cwl").as_uri()
192140
cwl_obj = load_document_by_uri(uri)
193141
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_1.Secrets)
194142
cwl_dict = cwl_obj.save(top=True)
@@ -197,7 +145,7 @@ def test_secrets_v1_1() -> None:
197145

198146
def test_secrets_v1_2() -> None:
199147
"""Test that Secrets objects are correctly loaded for CWL v1.2."""
200-
uri = Path(get_data("testdata/extensions/secrets_v1_2.cwl")).resolve().as_uri()
148+
uri = get_path("testdata/extensions/secrets_v1_2.cwl").as_uri()
201149
cwl_obj = load_document_by_uri(uri)
202150
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_2.Secrets)
203151
cwl_dict = cwl_obj.save(top=True)
@@ -206,7 +154,7 @@ def test_secrets_v1_2() -> None:
206154

207155
def test_shm_size_v1_0() -> None:
208156
"""Test that ShmSize objects are correctly loaded for CWL v1.0."""
209-
uri = Path(get_data("testdata/extensions/shm-size_v1_0.cwl")).resolve().as_uri()
157+
uri = get_path("testdata/extensions/shm-size_v1_0.cwl").as_uri()
210158
cwl_obj = load_document_by_uri(uri)
211159
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_0.ShmSize)
212160
cwl_dict = cwl_obj.save(top=True)
@@ -215,7 +163,7 @@ def test_shm_size_v1_0() -> None:
215163

216164
def test_shm_size_v1_1() -> None:
217165
"""Test that ShmSize objects are correctly loaded for CWL v1.1."""
218-
uri = Path(get_data("testdata/extensions/shm-size_v1_1.cwl")).resolve().as_uri()
166+
uri = get_path("testdata/extensions/shm-size_v1_1.cwl").as_uri()
219167
cwl_obj = load_document_by_uri(uri)
220168
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_1.ShmSize)
221169
cwl_dict = cwl_obj.save(top=True)
@@ -224,7 +172,7 @@ def test_shm_size_v1_1() -> None:
224172

225173
def test_shm_size_v1_2() -> None:
226174
"""Test that ShmSize objects are correctly loaded for CWL v1.2."""
227-
uri = Path(get_data("testdata/extensions/shm-size_v1_2.cwl")).resolve().as_uri()
175+
uri = get_path("testdata/extensions/shm-size_v1_2.cwl").as_uri()
228176
cwl_obj = load_document_by_uri(uri)
229177
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_2.ShmSize)
230178
cwl_dict = cwl_obj.save(top=True)
@@ -233,7 +181,7 @@ def test_shm_size_v1_2() -> None:
233181

234182
def test_time_limit_v1_0() -> None:
235183
"""Test that TimeLimit objects are correctly loaded for CWL v1.0."""
236-
uri = Path(get_data("testdata/extensions/time-limit_v1_0.cwl")).resolve().as_uri()
184+
uri = get_path("testdata/extensions/time-limit_v1_0.cwl").as_uri()
237185
cwl_obj = load_document_by_uri(uri)
238186
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_0.TimeLimit)
239187
cwl_dict = cwl_obj.save(top=True)
@@ -242,7 +190,7 @@ def test_time_limit_v1_0() -> None:
242190

243191
def test_work_reuse_v1_0() -> None:
244192
"""Test that WorkReuse objects are correctly loaded for CWL v1.0."""
245-
uri = Path(get_data("testdata/extensions/work-reuse_v1_0.cwl")).resolve().as_uri()
193+
uri = get_path("testdata/extensions/work-reuse_v1_0.cwl").as_uri()
246194
cwl_obj = load_document_by_uri(uri)
247195
assert isinstance(next(iter(cwl_obj.requirements)), cwl_v1_0.WorkReuse)
248196
cwl_dict = cwl_obj.save(top=True)

tests/test_format.py

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from cwl_utils.parser import load_document_by_uri
1818
from cwl_utils.types import CWLObjectType
1919

20-
from .util import get_data
20+
from .util import get_path
2121

2222

2323
def _create_file(format_: Optional[str] = None) -> CWLObjectType:
@@ -34,8 +34,9 @@ def _create_file(format_: Optional[str] = None) -> CWLObjectType:
3434
return obj
3535

3636

37-
def _load_format(fetchurl: str) -> Graph:
37+
def _load_format(fetchpath: Path) -> Graph:
3838
fetcher = DefaultFetcher({}, requests.Session())
39+
fetchurl = fetchpath.as_uri()
3940
content = fetcher.fetch_text(fetchurl)
4041
graph = Graph()
4142
for fmt in ["xml", "turtle", "rdfa"]:
@@ -47,8 +48,8 @@ def _load_format(fetchurl: str) -> Graph:
4748
return graph
4849

4950

50-
EDAM = _load_format(Path(get_data("testdata/EDAM_subset.owl")).as_uri())
51-
GX = _load_format(Path(get_data("testdata/gx_edam.ttl")).as_uri())
51+
EDAM = _load_format(get_path("testdata/EDAM_subset.owl"))
52+
GX = _load_format(get_path("testdata/gx_edam.ttl"))
5253

5354

5455
def test_check_format() -> None:
@@ -137,55 +138,47 @@ def test_check_format_no_ontology() -> None:
137138

138139
def test_loading_options_graph_property_v1_0() -> None:
139140
"""Test that RDFLib Graph representations of $schema properties are correctly loaded, CWL v1.0."""
140-
uri = Path(get_data("testdata/formattest2_v1_0.cwl")).resolve().as_uri()
141+
uri = get_path("testdata/formattest2_v1_0.cwl").as_uri()
141142
cwl_obj = load_document_by_uri(uri)
142143
assert to_isomorphic(cwl_obj.loadingOptions.graph) == to_isomorphic(EDAM)
143144

144145

145146
def test_loading_options_graph_property_v1_1() -> None:
146147
"""Test that RDFLib Graph representations of $schema properties are correctly loaded, CWL v1.1."""
147-
uri = Path(get_data("testdata/formattest2_v1_1.cwl")).resolve().as_uri()
148+
uri = get_path("testdata/formattest2_v1_1.cwl").as_uri()
148149
cwl_obj = load_document_by_uri(uri)
149150
assert to_isomorphic(cwl_obj.loadingOptions.graph) == to_isomorphic(EDAM)
150151

151152

152153
def test_loading_options_graph_property_v1_2() -> None:
153154
"""Test that RDFLib Graph representations of $schema properties are correctly loaded, CWL v1.2."""
154-
uri = Path(get_data("testdata/formattest2.cwl")).resolve().as_uri()
155+
uri = get_path("testdata/formattest2.cwl").as_uri()
155156
cwl_obj = load_document_by_uri(uri)
156157
assert to_isomorphic(cwl_obj.loadingOptions.graph) == to_isomorphic(EDAM)
157158

158159

159160
def test_loading_options_missing_graph_v1_0() -> None:
160161
"""Affirm that v1.0 documents without $schema still produce an empty graph property."""
161-
uri = Path(get_data("testdata/workflow_input_format_expr.cwl")).resolve().as_uri()
162+
uri = get_path("testdata/workflow_input_format_expr.cwl").as_uri()
162163
cwl_obj = load_document_by_uri(uri)
163164
assert to_isomorphic(cwl_obj.loadingOptions.graph) == to_isomorphic(Graph())
164165

165166

166167
def test_loading_options_missing_graph_v1_1() -> None:
167168
"""Affirm that v1.1 documents without $schema still produce an empty graph property."""
168-
uri = (
169-
Path(get_data("testdata/workflow_input_format_expr_v1_1.cwl"))
170-
.resolve()
171-
.as_uri()
172-
)
169+
uri = get_path("testdata/workflow_input_format_expr_v1_1.cwl").as_uri()
173170
cwl_obj = load_document_by_uri(uri)
174171
assert to_isomorphic(cwl_obj.loadingOptions.graph) == to_isomorphic(Graph())
175172

176173

177174
def test_loading_options_missing_graph_v1_2() -> None:
178175
"""Affirm that v1.2 documents without $schema still produce an empty graph property."""
179-
uri = (
180-
Path(get_data("testdata/workflow_input_format_expr_v1_2.cwl"))
181-
.resolve()
182-
.as_uri()
183-
)
176+
uri = get_path("testdata/workflow_input_format_expr_v1_2.cwl").as_uri()
184177
cwl_obj = load_document_by_uri(uri)
185178
assert to_isomorphic(cwl_obj.loadingOptions.graph) == to_isomorphic(Graph())
186179

187180

188181
def test_loading_format_without_schema_v1_0() -> None:
189182
"""Test that format fields without accompanying schemas are tolerated, CWL v1.0."""
190-
uri = Path(get_data("testdata/revsort-run-1-packed.cwl")).resolve().as_uri()
183+
uri = get_path("testdata/revsort-run-1-packed.cwl").as_uri()
191184
load_document_by_uri(uri)

tests/test_graph_split.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from cwl_utils.graph_split import graph_split
99

10-
from .util import get_data
10+
from .util import get_path
1111

1212
URI = (
1313
"https://gist.githubusercontent.com/altairwei/"
@@ -25,5 +25,5 @@ def test_graph_split(tmp_path: Path) -> None:
2525

2626
def test_graph_split_offline(tmp_path: Path) -> None:
2727
"""Confirm that a local provided example produces no exception."""
28-
with open(get_data("testdata/js-expr-req-wf.cwl")) as handle:
28+
with get_path("testdata/js-expr-req-wf.cwl").open() as handle:
2929
graph_split(handle, tmp_path, "yaml", "main.cwl", True)

0 commit comments

Comments
 (0)