Source code for ewoksorange.tests.test_examples
import pytest
from ewokscore.tests.examples.graphs import graph_names
from ewokscore.tests.examples.graphs import get_graph
from ewokscore.tests.test_examples import assert_convert_graph
from ewokscore.tests.utils.results import assert_execute_graph_tasks
from ewokscore import load_graph
from ewoksorange import convert_graph
from ewoksorange import graph_is_supported
[docs]@pytest.mark.parametrize("graph_name", graph_names())
def test_execute_graph(graph_name, tmpdir, ewoks_orange_canvas):
"""Test graph execution like the Orange canvas would do it"""
graph, expected = get_graph(graph_name)
ewoksgraph = load_graph(graph)
varinfo = {"root_uri": str(tmpdir)}
if not graph_is_supported(ewoksgraph):
pytest.skip("graph not supported by orange")
ewoks_orange_canvas.load_graph(
ewoksgraph, varinfo=varinfo, error_on_duplicates=False, tmpdir=tmpdir
)
ewoks_orange_canvas.start_workflow()
ewoks_orange_canvas.wait_widgets(timeout=10)
assert_execute_graph_tasks(ewoksgraph, dict(), expected, varinfo=varinfo)
[docs]@pytest.mark.parametrize("graph_name", graph_names())
def test_convert_graph(graph_name, tmpdir):
graph, _ = get_graph(graph_name)
ewoksgraph = load_graph(graph)
ewoksgraph.graph.graph.pop("ows", None)
for node_id, node_attrs in ewoksgraph.graph.nodes.items():
node_attrs["label"] = node_id
node_attrs.pop("ows", None)
node_attrs.pop("uiProps", None)
representations = [
(
{
"representation": "ows",
"title_as_node_id": True,
"preserve_ows_info": False,
},
{"representation": "ows"},
"ows",
)
]
if graph_is_supported(ewoksgraph):
assert_convert_graph(
convert_graph, ewoksgraph, tmpdir, representations=representations
)
else:
with pytest.raises(RuntimeError):
assert_convert_graph(
convert_graph, ewoksgraph, tmpdir, representations=representations
)