Source code for ewoks.tests.test_cli

import os
import sys
import pytest

from ewoks.__main__ import main
from ewokscore import load_graph
from ewokscore.tests.examples.graphs import graph_names
from ewokscore.tests.examples.graphs import get_graph
from ewokscore.tests.utils.results import assert_execute_graph_default_result


[docs]@pytest.mark.parametrize("graph_name", graph_names()) @pytest.mark.parametrize("scheme", (None, "json")) @pytest.mark.parametrize("engine", (None, "dask", "ppf")) def test_execute(graph_name, scheme, engine, tmpdir): graph, expected = get_graph(graph_name) argv = [sys.executable, "execute", graph_name, "--test", "--merge-outputs"] if engine: argv += ["--engine", engine] if engine == "ppf": argv += ["--outputs", "end"] else: argv += ["--outputs", "all"] if scheme: argv += ["--data-root-uri", str(tmpdir), "--data-scheme", scheme] varinfo = {"root_uri": str(tmpdir), "scheme": scheme} else: varinfo = None keep = graph ewoksgraph = load_graph(graph) non_dag = ewoksgraph.is_cyclic or ewoksgraph.has_conditional_links results = main(argv=argv, shell=False) assert len(results) == 1 if non_dag and engine != "ppf": assert isinstance(results[0], RuntimeError) else: assert_execute_graph_default_result(ewoksgraph, results[0], expected, varinfo) assert keep == graph
[docs]@pytest.mark.parametrize("graph_name", graph_names()) def test_convert(graph_name, tmpdir): destination = str(tmpdir / f"{graph_name}.json") argv = [ sys.executable, "convert", graph_name, destination, "--test", "-s", "indent=2", ] main(argv=argv, shell=False) assert os.path.exists(destination)