comparison env/lib/python3.9/site-packages/cwltool/tests/test_override.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 import json
2 from io import StringIO
3 from typing import Dict, List
4
5 import pytest
6
7 from cwltool.main import main
8
9 from .util import get_data, needs_docker
10
11 override_parameters = [
12 (
13 [get_data("tests/override/echo.cwl"), get_data("tests/override/echo-job.yml")],
14 {"out": "zing hello1\n"},
15 ),
16 (
17 [
18 "--overrides",
19 get_data("tests/override/ov.yml"),
20 get_data("tests/override/echo.cwl"),
21 get_data("tests/override/echo-job.yml"),
22 ],
23 {"out": "zing hello2\n"},
24 ),
25 (
26 [
27 get_data("tests/override/echo.cwl"),
28 get_data("tests/override/echo-job-ov.yml"),
29 ],
30 {"out": "zing hello3\n"},
31 ),
32 ([get_data("tests/override/echo-job-ov2.yml")], {"out": "zing hello4\n"}),
33 (
34 [
35 "--overrides",
36 get_data("tests/override/ov.yml"),
37 get_data("tests/override/echo-wf.cwl"),
38 get_data("tests/override/echo-job.yml"),
39 ],
40 {"out": "zing hello2\n"},
41 ),
42 (
43 [
44 "--overrides",
45 get_data("tests/override/ov2.yml"),
46 get_data("tests/override/echo-wf.cwl"),
47 get_data("tests/override/echo-job.yml"),
48 ],
49 {"out": "zing hello5\n"},
50 ),
51 (
52 [
53 "--overrides",
54 get_data("tests/override/ov3.yml"),
55 get_data("tests/override/echo-wf.cwl"),
56 get_data("tests/override/echo-job.yml"),
57 ],
58 {"out": "zing hello6\n"},
59 ),
60 (
61 [
62 get_data("tests/override/env-tool_v1.1.cwl"),
63 get_data("tests/override/env-tool_cwl-requirement_override.yaml"),
64 ],
65 {"value": "hello test env"},
66 ),
67 (
68 [
69 "--enable-dev",
70 get_data("tests/override/env-tool_cwl-requirement_override_default.yaml"),
71 ],
72 {"value": "hello test env"},
73 ),
74 ]
75
76
77 @needs_docker
78 @pytest.mark.parametrize("parameters,result", override_parameters)
79 def test_overrides(parameters: List[str], result: Dict[str, str]) -> None:
80 sio = StringIO()
81
82 assert main(parameters, stdout=sio) == 0
83 assert json.loads(sio.getvalue()) == result
84
85
86 failing_override_parameters = [
87 (
88 [
89 get_data("tests/override/env-tool.cwl"),
90 get_data("tests/override/env-tool_cwl-requirement_override.yaml"),
91 ],
92 "`cwl:requirements` in the input object is not part of CWL v1.0. You can "
93 "adjust to use `cwltool:overrides` instead; or you can set the cwlVersion to "
94 "v1.1",
95 ),
96 (
97 [
98 get_data("tests/override/env-tool_v1.1.0-dev1.cwl"),
99 get_data("tests/override/env-tool_cwl-requirement_override.yaml"),
100 ],
101 "Version 'v1.1.0-dev1' is a development or deprecated version.\n"
102 " Update your document to a stable version (v1.0, v1.1, v1.2) or use --enable-dev to "
103 "enable support for development and deprecated versions.",
104 ),
105 (
106 [
107 get_data(
108 "tests/override/env-tool_cwl-requirement_override_default_wrongver.yaml"
109 )
110 ],
111 "`cwl:requirements` in the input object is not part of CWL v1.0. You can "
112 "adjust to use `cwltool:overrides` instead; or you can set the cwlVersion to "
113 "v1.1 or greater.",
114 ),
115 (
116 [get_data("tests/override/env-tool_cwl-requirement_override_default.yaml")],
117 "Version 'v1.1.0-dev1' is a development or deprecated version.\n"
118 " Update your document to a stable version (v1.0, v1.1, v1.2) or use --enable-dev to "
119 "enable support for development and deprecated versions.",
120 ),
121 ]
122
123
124 @needs_docker
125 @pytest.mark.parametrize("parameters,expected_error", failing_override_parameters)
126 def test_overrides_fails(parameters: List[str], expected_error: str) -> None:
127 sio = StringIO()
128
129 assert main(parameters, stderr=sio) == 1
130 stderr = sio.getvalue()
131 assert expected_error in stderr, stderr