Skip to content
Snippets Groups Projects
Unverified Commit 82dffe0e authored by Stefano Borini's avatar Stefano Borini Committed by GitHub
Browse files

Merge pull request #167 from force-h2020/make-workflow-accessible-via-application

Make workflow accessible via application
parents 10696bfe d304805f
No related branches found
No related tags found
No related merge requests found
......@@ -6,8 +6,9 @@ from stevedore.exception import NoMatches
from envisage.api import Application
from envisage.core_plugin import CorePlugin
from traits.api import Unicode, Bool
from traits.api import Unicode, Bool, Property
from force_bdss.ids import InternalPluginID
from .factory_registry_plugin import FactoryRegistryPlugin
from .core_evaluation_driver import CoreEvaluationDriver
from .core_mco_driver import CoreMCODriver
......@@ -28,6 +29,9 @@ class BDSSApplication(Application):
#: coordination of the MCO itself. See design notes for more details.
evaluate = Bool()
#: Gives the currently opened workflow
workflow = Property()
def __init__(self, evaluate, workflow_filepath):
self.evaluate = evaluate
self.workflow_filepath = workflow_filepath
......@@ -53,6 +57,15 @@ class BDSSApplication(Application):
super(BDSSApplication, self).__init__(plugins=plugins)
def _get_workflow(self):
if self.evaluate:
plugin = self.get_plugin(
InternalPluginID.CORE_EVALUATION_DRIVER_ID)
else:
plugin = self.get_plugin(InternalPluginID.CORE_MCO_DRIVER_ID)
return plugin.workflow
def _import_extensions(plugins, ext):
"""Service routine extracted for testing.
......
......@@ -8,6 +8,8 @@ from force_bdss.bdss_application import (
_load_failure_callback,
_import_extensions
)
from force_bdss.core.workflow import Workflow
from force_bdss.tests import fixtures
try:
import mock
......@@ -48,3 +50,18 @@ class TestBDSSApplication(unittest.TestCase):
_import_extensions(plugins, ext)
self.assertEqual(plugins[0], plugin)
def test_workflow(self):
with testfixtures.LogCapture():
with warnings.catch_warnings():
warnings.simplefilter("ignore")
app = BDSSApplication(False, fixtures.get("test_empty.json"))
self.assertIsInstance(app.workflow, Workflow)
with testfixtures.LogCapture():
with warnings.catch_warnings():
warnings.simplefilter("ignore")
app = BDSSApplication(True, fixtures.get("test_empty.json"))
self.assertIsInstance(app.workflow, Workflow)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment