Mercurial > repos > shellac > sam_consensus_v3
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 |