From d02dfbc1990be8e2cdcb8e4e99bbe2ee71edfc0d Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Thu, 20 Jul 2017 10:06:09 +0100 Subject: [PATCH] Introduced "workflow" key in the json dump --- force_bdss/cli/tests/fixtures/test_csv.json | 62 ++++++++++--------- .../cli/tests/fixtures/test_csv_v2.json | 4 +- force_bdss/io/tests/test_workflow_reader.py | 3 +- force_bdss/io/workflow_reader.py | 10 +-- 4 files changed, 43 insertions(+), 36 deletions(-) diff --git a/force_bdss/cli/tests/fixtures/test_csv.json b/force_bdss/cli/tests/fixtures/test_csv.json index b58994d..1c15b0f 100644 --- a/force_bdss/cli/tests/fixtures/test_csv.json +++ b/force_bdss/cli/tests/fixtures/test_csv.json @@ -1,38 +1,40 @@ { "version": "1", - "multi_criteria_optimizer": { - "id": "force.bdss.bundles.enthought.dakota", - "model_data": { - "value_types": ["DUMMY"] - } - }, - "data_sources": [ - { - "id": "force.bdss.bundles.enthought.csv_extractor", + "workflow": { + "multi_criteria_optimizer": { + "id": "force.bdss.bundles.enthought.dakota", "model_data": { - "filename": "foo.csv", - "row": 3, - "column": 5, - "cuba_type": "PRESSURE" + "value_types": ["DUMMY"] } }, - { - "id": "force.bdss.bundles.enthought.csv_extractor", - "model_data": { - "filename": "foo.csv", - "row": 3, - "column": 5, - "cuba_type": "PRESSURE" + "data_sources": [ + { + "id": "force.bdss.bundles.enthought.csv_extractor", + "model_data": { + "filename": "foo.csv", + "row": 3, + "column": 5, + "cuba_type": "PRESSURE" + } + }, + { + "id": "force.bdss.bundles.enthought.csv_extractor", + "model_data": { + "filename": "foo.csv", + "row": 3, + "column": 5, + "cuba_type": "PRESSURE" + } } - } - ], - "kpi_calculators": [ - { - "id": "force.bdss.bundles.enthought.kpi_adder", - "model_data": { - "cuba_type_in": "PRESSURE", - "cuba_type_out": "TOTAL_PRESSURE" + ], + "kpi_calculators": [ + { + "id": "force.bdss.bundles.enthought.kpi_adder", + "model_data": { + "cuba_type_in": "PRESSURE", + "cuba_type_out": "TOTAL_PRESSURE" + } } - } - ] + ] + } } diff --git a/force_bdss/cli/tests/fixtures/test_csv_v2.json b/force_bdss/cli/tests/fixtures/test_csv_v2.json index a6963bb..2479fa8 100644 --- a/force_bdss/cli/tests/fixtures/test_csv_v2.json +++ b/force_bdss/cli/tests/fixtures/test_csv_v2.json @@ -1,3 +1,5 @@ { - "version": "2" + "version": "2", + "workflow": { + } } diff --git a/force_bdss/io/tests/test_workflow_reader.py b/force_bdss/io/tests/test_workflow_reader.py index 46ab124..53c73f4 100644 --- a/force_bdss/io/tests/test_workflow_reader.py +++ b/force_bdss/io/tests/test_workflow_reader.py @@ -24,7 +24,8 @@ class TestWorkflowReader(unittest.TestCase): def test_invalid_version(self): data = { - "version": "2" + "version": "2", + "workflow": {} } with self.assertRaises(InvalidVersionException): diff --git a/force_bdss/io/workflow_reader.py b/force_bdss/io/workflow_reader.py index db64510..5b4dab2 100644 --- a/force_bdss/io/workflow_reader.py +++ b/force_bdss/io/workflow_reader.py @@ -47,12 +47,14 @@ class WorkflowReader(HasStrictTraits): wf = Workflow() try: - wf.multi_criteria_optimizer = self._extract_mco(json_data) - wf.data_sources[:] = self._extract_data_sources(json_data) - wf.kpi_calculators[:] = self._extract_kpi_calculators(json_data) + 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) except KeyError as e: logging.exception("Could not read file") - raise InvalidFileException("Could not read file. {}".format(e)) + raise InvalidFileException("Could not read file. " + "Unable to find key {}".format(e)) def _extract_mco(self, json_data): registry = self.bundle_registry -- GitLab