Skip to content
Snippets Groups Projects
Commit 494d1e57 authored by Stefano Borini's avatar Stefano Borini
Browse files

Fixed workflow reader and improved error message

parent 3f658656
No related branches found
No related tags found
1 merge request!130Safer plugin import - 2
...@@ -4,10 +4,11 @@ from six import StringIO ...@@ -4,10 +4,11 @@ from six import StringIO
import testfixtures import testfixtures
from force_bdss.factory_registry_plugin import FactoryRegistryPlugin
from force_bdss.io.workflow_reader import ( from force_bdss.io.workflow_reader import (
WorkflowReader, WorkflowReader,
InvalidVersionException, InvalidFileException) InvalidVersionException, InvalidFileException)
from force_bdss.tests.dummy_classes.factory_registry_plugin import \
DummyFactoryRegistryPlugin
try: try:
import mock import mock
...@@ -17,13 +18,13 @@ except ImportError: ...@@ -17,13 +18,13 @@ except ImportError:
class TestWorkflowReader(unittest.TestCase): class TestWorkflowReader(unittest.TestCase):
def setUp(self): def setUp(self):
self.mock_factory_registry = mock.Mock(spec=FactoryRegistryPlugin) self.registry = DummyFactoryRegistryPlugin()
self.wfreader = WorkflowReader(self.mock_factory_registry) self.wfreader = WorkflowReader(self.registry)
def test_initialization(self): def test_initialization(self):
self.assertEqual(self.wfreader.factory_registry, self.assertEqual(self.wfreader.factory_registry,
self.mock_factory_registry) self.registry)
def test_invalid_version(self): def test_invalid_version(self):
data = { data = {
......
...@@ -96,8 +96,12 @@ class WorkflowReader(HasStrictTraits): ...@@ -96,8 +96,12 @@ class WorkflowReader(HasStrictTraits):
self._extract_notification_listeners(wf_data) self._extract_notification_listeners(wf_data)
except KeyError as e: except KeyError as e:
log.error("Could not read file {}".format(file), exc_info=True) log.error("Could not read file {}".format(file), exc_info=True)
raise InvalidFileException("Could not read file {}. " raise InvalidFileException(
"Unable to find key {}".format(file, e)) "Could not read file {}. "
"Unable to find key {}."
"The plugin responsible for the missing "
"key may be missing or broken.".format(file, e)
)
return wf return wf
def _extract_mco(self, wf_data): def _extract_mco(self, wf_data):
......
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