1+ import itertools
12import textwrap
23from contextlib import ExitStack as does_not_raise # noqa: N813
34from subprocess import CalledProcessError
@@ -15,6 +16,36 @@ class DummyTask:
1516 pass
1617
1718
19+ @pytest .mark .end_to_end
20+ @pytest .mark .parametrize (
21+ "dependencies, products" ,
22+ itertools .product (
23+ ([], ["in.txt" ], ["in_1.txt" , "in_2.txt" ]),
24+ (["out.txt" ], ["out_1.txt" , "out_2.txt" ]),
25+ ),
26+ )
27+ def test_normal_flow_w_varying_dependencies_products (tmp_path , dependencies , products ):
28+ source = f"""
29+ import pytask
30+ from pathlib import Path
31+
32+
33+ @pytask.mark.depends_on({ dependencies } )
34+ @pytask.mark.produces({ products } )
35+ def task_dummy(depends_on, produces):
36+ if not isinstance(produces, list):
37+ produces = [produces]
38+ for product in produces:
39+ product.touch()
40+ """
41+ tmp_path .joinpath ("task_dummy.py" ).write_text (textwrap .dedent (source ))
42+ for dependency in dependencies :
43+ tmp_path .joinpath (dependency ).touch ()
44+
45+ session = main ({"paths" : tmp_path })
46+ assert session .exit_code == 0
47+
48+
1849@pytest .mark .unit
1950@pytest .mark .parametrize (
2051 "found_latexmk, expectation" ,
0 commit comments