diff --git a/force_bdss/cli/tests/test_execution.py b/force_bdss/cli/tests/test_execution.py index d511f79f6f2a4b0a806b12bc50e7c02c216c237d..80f3c878f91a050fa71b4ec04b81bf8e82486d2a 100644 --- a/force_bdss/cli/tests/test_execution.py +++ b/force_bdss/cli/tests/test_execution.py @@ -3,6 +3,8 @@ import subprocess import os from contextlib import contextmanager +from force_bdss.tests import fixtures + @contextmanager def cd(dir): @@ -22,17 +24,17 @@ def fixture_dir(): class TestExecution(unittest.TestCase): def test_plain_invocation_mco(self): - with cd(fixture_dir()): + with cd(fixtures.dirpath()): out = subprocess.check_call(["force_bdss", "test_csv.json"]) self.assertEqual(out, 0) def test_unsupported_file_input(self): - with cd(fixture_dir()): + with cd(fixtures.dirpath()): with self.assertRaises(subprocess.CalledProcessError): subprocess.check_call(["force_bdss", "test_csv_v2.json"]) def test_corrupted_file_input(self): - with cd(fixture_dir()): + with cd(fixtures.dirpath()): with self.assertRaises(subprocess.CalledProcessError): subprocess.check_call(["force_bdss", "test_csv_corrupted.json"]) diff --git a/force_bdss/io/workflow_reader.py b/force_bdss/io/workflow_reader.py index 5b4dab2e9aafdb8ab7e0d85a045dc7e171a7b09c..643da8c303b89fc8bb52255c1d66659b1e733cf9 100644 --- a/force_bdss/io/workflow_reader.py +++ b/force_bdss/io/workflow_reader.py @@ -47,14 +47,15 @@ class WorkflowReader(HasStrictTraits): wf = Workflow() try: - workflow_data = json_data["workflow"] - wf.multi_criteria_optimizer = self._extract_mco(workflow_data) - wf.data_sources[:] = self._extract_data_sources(workflow_data) - wf.kpi_calculators[:] = self._extract_kpi_calculators(workflow_data) + wf_data = json_data["workflow"] + wf.multi_criteria_optimizer = self._extract_mco(wf_data) + wf.data_sources[:] = self._extract_data_sources(wf_data) + wf.kpi_calculators[:] = self._extract_kpi_calculators(wf_data) except KeyError as e: logging.exception("Could not read file") raise InvalidFileException("Could not read file. " "Unable to find key {}".format(e)) + return wf def _extract_mco(self, json_data): registry = self.bundle_registry diff --git a/force_bdss/tests/fixtures/__init__.py b/force_bdss/tests/fixtures/__init__.py index 1c5217a644894c316685b8c0a509c29173d760a8..8ad2b16ba9831f5cd9f3b37cbe8890a6afa7b711 100644 --- a/force_bdss/tests/fixtures/__init__.py +++ b/force_bdss/tests/fixtures/__init__.py @@ -2,4 +2,8 @@ from os.path import join, dirname, abspath def get(filename): - return join(dirname(abspath(__file__)), filename) + return join(dirpath(), filename) + + +def dirpath(): + return dirname(abspath(__file__))