From 9c79ccfda0a239a02baf329f6e4e595a369bc0ef Mon Sep 17 00:00:00 2001 From: woutdenolf Date: Tue, 6 Jul 2021 13:12:54 +0200 Subject: [PATCH 1/2] Register example Addon with "python -m ewoksorange.canvas --with_example" --- README.md | 14 +++++++++ ewoksorange/canvas/__main__.py | 29 +++++++++++++------ .../examples/ewoks_example_addon/README.md | 1 + 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 1607a17..e02eb3e 100644 --- a/README.md +++ b/README.md @@ -1 +1,15 @@ # EwoksOrange: Orange binding for Ewoks + +Launch the Orange canvas with the example Addon + +```bash +python -m ewoksorange.canvas --with_example +``` + +or alternatively install the example Addon and launch the Orange canvas normally + +```bash +python -m pip install ewoksorange/tests/examples/ewoks_example_addon + +python -m Orange.canvas +``` diff --git a/ewoksorange/canvas/__main__.py b/ewoksorange/canvas/__main__.py index 34ade9b..46fc001 100644 --- a/ewoksorange/canvas/__main__.py +++ b/ewoksorange/canvas/__main__.py @@ -1,12 +1,12 @@ """Main entry point - python -m ewoksorange.canvas + python -m ewoksorange.canvas --with_example -Which is equivalent too +Which is equivalent to python -m Orange.canvas -Exists in case we need to register things before launching the canvas +but it registers the example Addon before launching. """ @@ -14,12 +14,23 @@ import sys from Orange.canvas.__main__ import main as _main -def main(**kw): - # Register an addon library with wasn't registered at runtime. - # import orange3unregistered - # from ewoksorange.registration import register_addon_package - # register_addon_package(orange3unregistered, distroname="ewoks_example_addon") - _main(**kw) +def main(argv=None): + if argv is None: + argv = sys.argv + try: + argv.pop(argv.index("--with_example")) + except ValueError: + with_example = False + else: + with_example = True + + if with_example: + from ewoksorange.registration import register_addon_package + from ewoksorange.tests.examples import ewoks_example_addon + + register_addon_package(ewoks_example_addon) + + _main(argv) if __name__ == "__main__": diff --git a/ewoksorange/tests/examples/ewoks_example_addon/README.md b/ewoksorange/tests/examples/ewoks_example_addon/README.md index fc90ad3..e81321f 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/README.md +++ b/ewoksorange/tests/examples/ewoks_example_addon/README.md @@ -11,6 +11,7 @@ python -m pip install ewoksorange/tests/examples/ewoks_example_addon/ -vv ## Register without installation ```python +from ewoksorange.registration import register_addon_package from ewoksorange.test.examples import ewoks_example_addon register_addon_package(ewoks_example_addon) -- GitLab From ac87bab56d6a1fae94abd5846ec8a397b90be770 Mon Sep 17 00:00:00 2001 From: woutdenolf Date: Tue, 6 Jul 2021 13:13:12 +0200 Subject: [PATCH 2/2] ewokscore.tests.examples: API change --- .../orangecontrib/customcategory/adder1.py | 2 +- .../orangecontrib/customcategory/adder2.py | 2 +- .../tutorials/sumtask_tutorial1.ows | 2 +- .../customsubcategory/adder1.py | 2 +- .../customsubcategory/adder2.py | 2 +- .../tutorials/sumtask_tutorial3.ows | 2 +- .../evaluate/submodule/adder1.py | 2 +- .../evaluate/submodule/adder2.py | 2 +- .../submodule/tutorials/sumtask_tutorial2.ows | 2 +- ewoksorange/tests/test_examples.py | 25 +++++++++++++++++++ ewoksorange/tests/test_orange_job.py | 19 -------------- ewoksorange/tests/test_ows_conversion.py | 13 +++++++--- 12 files changed, 44 insertions(+), 31 deletions(-) create mode 100644 ewoksorange/tests/test_examples.py delete mode 100644 ewoksorange/tests/test_orange_job.py diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/adder1.py b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/adder1.py index b6b0c6c..3f1f895 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/adder1.py +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/adder1.py @@ -2,7 +2,7 @@ from Orange.widgets import gui from ewoksorange.bindings import OWEwoksWidget from ewoksorange.gui.parameterform import ParameterForm -from ewokscore.tests.examples.tasks import SumTask +from ewokscore.tests.examples.tasks.sumtask import SumTask __all__ = ["Adder1"] diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/adder2.py b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/adder2.py index 2090218..53d6002 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/adder2.py +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/adder2.py @@ -2,7 +2,7 @@ from Orange.widgets import gui from ewoksorange.bindings import OWEwoksWidget from ewoksorange.gui.parameterform import ParameterForm -from ewokscore.tests.examples.tasks import SumTask +from ewokscore.tests.examples.tasks.sumtask import SumTask __all__ = ["Adder2"] diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/tutorials/sumtask_tutorial1.ows b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/tutorials/sumtask_tutorial1.ows index 592396e..fd05552 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/tutorials/sumtask_tutorial1.ows +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customcategory/tutorials/sumtask_tutorial1.ows @@ -1,5 +1,5 @@ - + diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/adder1.py b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/adder1.py index b6b0c6c..3f1f895 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/adder1.py +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/adder1.py @@ -2,7 +2,7 @@ from Orange.widgets import gui from ewoksorange.bindings import OWEwoksWidget from ewoksorange.gui.parameterform import ParameterForm -from ewokscore.tests.examples.tasks import SumTask +from ewokscore.tests.examples.tasks.sumtask import SumTask __all__ = ["Adder1"] diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/adder2.py b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/adder2.py index 2090218..53d6002 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/adder2.py +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/adder2.py @@ -2,7 +2,7 @@ from Orange.widgets import gui from ewoksorange.bindings import OWEwoksWidget from ewoksorange.gui.parameterform import ParameterForm -from ewokscore.tests.examples.tasks import SumTask +from ewokscore.tests.examples.tasks.sumtask import SumTask __all__ = ["Adder2"] diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/tutorials/sumtask_tutorial3.ows b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/tutorials/sumtask_tutorial3.ows index c59666b..1ec548e 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/tutorials/sumtask_tutorial3.ows +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/customsupercategory/customsubcategory/tutorials/sumtask_tutorial3.ows @@ -1,5 +1,5 @@ - + diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/adder1.py b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/adder1.py index b6b0c6c..3f1f895 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/adder1.py +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/adder1.py @@ -2,7 +2,7 @@ from Orange.widgets import gui from ewoksorange.bindings import OWEwoksWidget from ewoksorange.gui.parameterform import ParameterForm -from ewokscore.tests.examples.tasks import SumTask +from ewokscore.tests.examples.tasks.sumtask import SumTask __all__ = ["Adder1"] diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/adder2.py b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/adder2.py index 2090218..53d6002 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/adder2.py +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/adder2.py @@ -2,7 +2,7 @@ from Orange.widgets import gui from ewoksorange.bindings import OWEwoksWidget from ewoksorange.gui.parameterform import ParameterForm -from ewokscore.tests.examples.tasks import SumTask +from ewokscore.tests.examples.tasks.sumtask import SumTask __all__ = ["Adder2"] diff --git a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/tutorials/sumtask_tutorial2.ows b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/tutorials/sumtask_tutorial2.ows index d6e7d8b..8788e33 100644 --- a/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/tutorials/sumtask_tutorial2.ows +++ b/ewoksorange/tests/examples/ewoks_example_addon/orangecontrib/evaluate/submodule/tutorials/sumtask_tutorial2.ows @@ -1,5 +1,5 @@ - + diff --git a/ewoksorange/tests/test_examples.py b/ewoksorange/tests/test_examples.py new file mode 100644 index 0000000..a376224 --- /dev/null +++ b/ewoksorange/tests/test_examples.py @@ -0,0 +1,25 @@ +import sys +import logging +import pytest +from ewoksorange import execute_graph +from ewokscore.tests.examples.graphs import get_graph +from ewokscore.tests.utils import assert_taskgraph_result +from ewokscore import load_graph + +logging.getLogger("orange").setLevel(logging.DEBUG) +logging.getLogger("orange").addHandler(logging.StreamHandler(sys.stdout)) +logging.getLogger("ewoksorange").setLevel(logging.DEBUG) +logging.getLogger("ewoksorange").addHandler(logging.StreamHandler(sys.stdout)) + + +@pytest.mark.parametrize("graph_name", ["acyclic2", "cyclic1"]) +def test_execute_graph(graph_name, tmpdir): + graph, expected = get_graph(graph_name) + ewoksgraph = load_graph(graph) + varinfo = {"root_uri": str(tmpdir)} + if ewoksgraph.is_cyclic or ewoksgraph.has_conditional_links: + with pytest.raises(RuntimeError): + execute_graph(graph, varinfo=varinfo) + else: + execute_graph(graph, varinfo=varinfo) + assert_taskgraph_result(ewoksgraph, expected, varinfo=varinfo) diff --git a/ewoksorange/tests/test_orange_job.py b/ewoksorange/tests/test_orange_job.py deleted file mode 100644 index 1dd90a9..0000000 --- a/ewoksorange/tests/test_orange_job.py +++ /dev/null @@ -1,19 +0,0 @@ -import sys -import logging -import pytest -from ewoksorange import execute_graph -from ewokscore.tests.examples import graphs -from ewokscore.tests.utils import assert_taskgraph_result - -logging.getLogger("orange").setLevel(logging.DEBUG) -logging.getLogger("orange").addHandler(logging.StreamHandler(sys.stdout)) -logging.getLogger("ewoksorange").setLevel(logging.DEBUG) -logging.getLogger("ewoksorange").addHandler(logging.StreamHandler(sys.stdout)) - - -@pytest.mark.skip("TODO: hashes are different due to static input") -def test_execute_graph(tmpdir): - varinfo = {"root_uri": str(tmpdir)} - graph, expected = graphs.acyclic_graph1() - execute_graph(graph, varinfo=varinfo) - assert_taskgraph_result(graph, expected, varinfo) diff --git a/ewoksorange/tests/test_ows_conversion.py b/ewoksorange/tests/test_ows_conversion.py index 074d8f2..4254fc3 100644 --- a/ewoksorange/tests/test_ows_conversion.py +++ b/ewoksorange/tests/test_ows_conversion.py @@ -2,9 +2,11 @@ try: from importlib import resources except ImportError: import importlib_resources as resources +import pytest from ewoksorange import owsconvert from ewokscore import load_graph -from ewokscore.tests.examples import graphs +from ewokscore.tests.examples.graphs import graph_names +from ewokscore.tests.examples.graphs import get_graph def test_ows_to_ewoks(tmpdir, register_ewoks_example_addon): @@ -19,11 +21,16 @@ def test_ows_to_ewoks(tmpdir, register_ewoks_example_addon): assert ewoksgraph == ewoksgraph2 -def test_ewoks_to_ows(tmpdir): - graph, _ = graphs.acyclic_graph1() +@pytest.mark.parametrize("graph_name", graph_names()) +def test_ewoks_to_ows(graph_name, tmpdir): + graph, _ = get_graph(graph_name) ewoksgraph = load_graph(graph) destination = str(tmpdir / "ewoksgraph2.ows") + if ewoksgraph.is_cyclic or ewoksgraph.has_conditional_links: + with pytest.raises(RuntimeError): + owsconvert.ewoks_to_ows(ewoksgraph, destination) + return owsconvert.ewoks_to_ows(ewoksgraph, destination) ewoksgraph2 = owsconvert.ows_to_ewoks(destination) -- GitLab