def test__extract_execution_layers(self): registry = DummyFactoryRegistry() with open(fixtures.get("test_workflow_reader.json")) as f: data = json.load(f) workflow_data = data["workflow"] exec_layers = Workflow._extract_execution_layers( registry, workflow_data ) self.assertEqual(1, len(exec_layers)) self.assertIsInstance(exec_layers[0], ExecutionLayer) self.assertEqual(1, len(exec_layers[0].data_sources)) data_source = exec_layers[0].data_sources[0] self.assertIsInstance(data_source, DummyDataSourceModel) input_slots = data_source.input_slot_info self.assertEqual(1, len(input_slots)) self.assertIsInstance(input_slots[0], InputSlotInfo) self.assertEqual("input_slot_name", input_slots[0].name) output_slots = data_source.output_slot_info self.assertEqual(1, len(output_slots)) self.assertIsInstance(output_slots[0], OutputSlotInfo) self.assertEqual("output_slot_name", output_slots[0].name)
def test_persistent_wfdata(self): registry = DummyFactoryRegistry() json_path = fixtures.get("test_workflow_reader.json") with open(json_path) as f: data = json.load(f) reference_data = deepcopy(data) _ = Workflow.from_json(registry, data["workflow"]) self.assertDictEqual(data, reference_data)
def test_from_json(self): registry = DummyFactoryRegistry() factory = registry.data_source_factories[0] model_data = { "input_slot_info": [ { "source": "Environment", "name": "foo" }, { "source": "Environment", "name": "bar" }, ], "output_slot_info": [{ "name": "baz" }, { "name": "quux" }], } model = DummyDataSourceModel.from_json(factory, model_data) self.assertDictEqual( model.__getstate__(), { "model_data": model_data, "id": "force.bdss.enthought.plugin.test.v0.factory." "dummy_data_source", }, ) # Test the initial dict did not change self.assertDictEqual( model_data, { "input_slot_info": [ { "source": "Environment", "name": "foo" }, { "source": "Environment", "name": "bar" }, ], "output_slot_info": [{ "name": "baz" }, { "name": "quux" }], }, ) # Test notification events with self.assertTraitChanges(model, "event", count=1): model.notify_start_event() with self.assertTraitChanges(model, "event", count=1): model.notify_finish_event()
def test_from_json(self): registry = DummyFactoryRegistry() json_path = fixtures.get("test_workflow_reader.json") with open(json_path) as f: data = json.load(f) wf = Workflow.from_json(registry, data["workflow"]) workflow_state = wf.__getstate__() self.assertDictEqual( workflow_state, { "mco_model": { "id": "force.bdss.enthought.plugin.test.v0.factory." "dummy_mco", "model_data": { "parameters": [ { "id": "force.bdss.enthought.plugin." "test.v0.factory." "dummy_mco.parameter.dummy_mco_parameter", "model_data": {"x": 0, "name": "", "type": ""}, } ], "kpis": [], }, }, "notification_listeners": [ { "id": "force.bdss.enthought.plugin.test.v0.factory." "dummy_notification_listener", "model_data": {}, } ], "execution_layers": [ { "data_sources": [ { "id": "force.bdss.enthought.plugin.test.v0." "factory.dummy_data_source", "model_data": { "input_slot_info": [ { "name": "input_slot_name", "source": "Environment", } ], "output_slot_info": [ {"name": "output_slot_name"} ], }, } ] } ], }, )
def test__extract_notification_listeners(self): registry = DummyFactoryRegistry() with open(fixtures.get("test_workflow_reader.json")) as f: data = json.load(f) workflow_data = data["workflow"] listeners = Workflow._extract_notification_listeners( registry, workflow_data ) self.assertEqual(1, len(listeners)) self.assertIsInstance(listeners[0], BaseNotificationListenerModel)
def test_create_workflow(self): json_data = { "version": "1", "workflow": { "mco_model": None, "execution_layers": [], "notification_listeners": [] } } ui = DummyContributedUI(workflow_data=json_data) factory_registry = DummyFactoryRegistry() workflow = ui.create_workflow(factory_registry) self.assertIsInstance(workflow, Workflow)
def test__extract_mco_model(self): registry = DummyFactoryRegistry() with open(fixtures.get("test_workflow_reader.json")) as f: data = json.load(f) workflow_data = data["workflow"] mco_model = Workflow._extract_mco_model(registry, workflow_data) mco_factory = registry.mco_factories[0] expected_mco_model = mco_factory.model_class self.assertIsInstance(mco_model, expected_mco_model) self.assertEqual(0, len(mco_model.kpis)) self.assertEqual(1, len(mco_model.parameters)) self.assertIsInstance(mco_model.parameters[0], DummyMCOParameter)
def setUp(self): self.registry = DummyFactoryRegistry() self.mco_factory = self.registry.mco_factories[0] self.mco_parameter_factory = self.mco_factory.parameter_factories[0] self.data_source_factory = self.registry.data_source_factories[0]
def setUp(self): self.registry = DummyFactoryRegistry() self.wfreader = WorkflowReader(self.registry) self.working_data = fixtures.get("test_workflow_reader.json")
def setUp(self): factory_registry = DummyFactoryRegistry() self.mcomodel_factory = factory_registry.mco_factories[0]