From 494d1e576f99a1d0d54ea303f0a96aa4a655dcb0 Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Thu, 17 May 2018 18:31:29 +0100 Subject: [PATCH] Fixed workflow reader and improved error message --- force_bdss/io/tests/test_workflow_reader.py | 9 +++++---- force_bdss/io/workflow_reader.py | 8 ++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/force_bdss/io/tests/test_workflow_reader.py b/force_bdss/io/tests/test_workflow_reader.py index c85263a..d5e55cb 100644 --- a/force_bdss/io/tests/test_workflow_reader.py +++ b/force_bdss/io/tests/test_workflow_reader.py @@ -4,10 +4,11 @@ from six import StringIO import testfixtures -from force_bdss.factory_registry_plugin import FactoryRegistryPlugin from force_bdss.io.workflow_reader import ( WorkflowReader, InvalidVersionException, InvalidFileException) +from force_bdss.tests.dummy_classes.factory_registry_plugin import \ + DummyFactoryRegistryPlugin try: import mock @@ -17,13 +18,13 @@ except ImportError: class TestWorkflowReader(unittest.TestCase): 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): self.assertEqual(self.wfreader.factory_registry, - self.mock_factory_registry) + self.registry) def test_invalid_version(self): data = { diff --git a/force_bdss/io/workflow_reader.py b/force_bdss/io/workflow_reader.py index 5b76585..4f6ed89 100644 --- a/force_bdss/io/workflow_reader.py +++ b/force_bdss/io/workflow_reader.py @@ -96,8 +96,12 @@ class WorkflowReader(HasStrictTraits): self._extract_notification_listeners(wf_data) except KeyError as e: log.error("Could not read file {}".format(file), exc_info=True) - raise InvalidFileException("Could not read file {}. " - "Unable to find key {}".format(file, e)) + raise InvalidFileException( + "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 def _extract_mco(self, wf_data): -- GitLab