Source code for ewoksorange.tests.test_ows_conversion
try:
from importlib.resources import files as resource_files
except ImportError:
from importlib_resources import files as resource_files
import pytest
from ewoksorange.bindings import ows_to_ewoks
from ewoksorange.bindings import ewoks_to_ows
from ewoksorange.bindings import graph_is_supported
from ewokscore import load_graph
from ewokscore.tests.examples.graphs import graph_names
from ewokscore.tests.examples.graphs import get_graph
[docs]def test_ows_to_ewoks_sumtask_tutorial(tmpdir):
"""Test conversion of orange worflow files to ewoks and back"""
from orangecontrib.ewokstest import tutorials
filename = resource_files(tutorials).joinpath("sumtask_tutorial.ows")
ewoksgraph = ows_to_ewoks(str(filename))
destination = str(tmpdir / "ewoksgraph.ows")
ewoks_to_ows(ewoksgraph, destination, error_on_duplicates=False)
ewoksgraph2 = ows_to_ewoks(destination)
assert ewoksgraph == ewoksgraph2
[docs]def test_ows_to_ewoks_sumlist_tutorial(tmpdir):
"""Test conversion of orange worflow files to ewoks and back"""
from orangecontrib.ewokstest import tutorials
filename = resource_files(tutorials).joinpath("sumlist_tutorial.ows")
ewoksgraph = ows_to_ewoks(str(filename))
destination = str(tmpdir / "ewoksgraph.ows")
ewoks_to_ows(ewoksgraph, destination)
ewoksgraph2 = ows_to_ewoks(destination)
assert ewoksgraph == ewoksgraph2
[docs]@pytest.mark.parametrize("graph_name", graph_names())
def test_ewoks_to_ows(graph_name, tmpdir):
"""Test conversion of ewoks to orange worflow files and back"""
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)
destination = str(tmpdir / "ewoksgraph2.ows")
if not graph_is_supported(ewoksgraph):
with pytest.raises(RuntimeError):
ewoks_to_ows(ewoksgraph, destination)
return
ewoks_to_ows(ewoksgraph, destination, error_on_duplicates=False)
ewoksgraph2 = ows_to_ewoks(
destination, title_as_node_id=True, preserve_ows_info=False
)
assert ewoksgraph == ewoksgraph2