Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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()
Ejemplo n.º 4
0
 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"}
                                 ],
                             },
                         }
                     ]
                 }
             ],
         },
     )
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
 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]
Ejemplo n.º 9
0
 def setUp(self):
     self.registry = DummyFactoryRegistry()
     self.wfreader = WorkflowReader(self.registry)
     self.working_data = fixtures.get("test_workflow_reader.json")
Ejemplo n.º 10
0
 def setUp(self):
     factory_registry = DummyFactoryRegistry()
     self.mcomodel_factory = factory_registry.mco_factories[0]