Skip to content

Commit a5febdc

Browse files
davidjshermanmr-c
authored andcommitted
Unit test call cwltool.main with parsed args only, w/wo provenance
1 parent 8ff1fd0 commit a5febdc

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

tests/test_main_parsed_args.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import io
2+
from pathlib import Path
3+
4+
from cwltool.argparser import arg_parser
5+
from cwltool.main import main
6+
7+
from .util import get_data
8+
9+
10+
def test_main_parsed_args(tmp_path: Path) -> None:
11+
"""Affirm that main can be called with parsed args only."""
12+
stdout = io.StringIO()
13+
stderr = io.StringIO()
14+
15+
unparsed_args = [get_data("tests/echo.cwl"), "--inp", "Hello"]
16+
parsed_args = arg_parser().parse_args(unparsed_args)
17+
18+
try:
19+
assert main(args=parsed_args, stdout=stdout, stderr=stderr) == 0
20+
except SystemExit as err:
21+
assert err.code == 0
22+
23+
24+
def test_main_parsed_args_provenance(tmp_path: Path) -> None:
25+
"""Affirm that main can be called with parsed args only, requesting provenance."""
26+
stdout = io.StringIO()
27+
stderr = io.StringIO()
28+
29+
prov_folder = tmp_path / "provenance" # will be created if necessary
30+
31+
unparsed_args = ["--provenance", str(prov_folder), get_data("tests/echo.cwl"), "--inp", "Hello"]
32+
parsed_args = arg_parser().parse_args(unparsed_args)
33+
34+
try:
35+
assert main(args=parsed_args, stdout=stdout, stderr=stderr) == 0
36+
except SystemExit as err:
37+
assert err.code == 0
38+
39+
manifest_file = prov_folder / "metadata" / "manifest.json"
40+
assert manifest_file.is_file(), f"Can't find RO-Crate manifest {manifest_file}"

0 commit comments

Comments
 (0)