diff --git a/force_bdss/core/tests/test_verifier.py b/force_bdss/core/tests/test_verifier.py index 6c5ea3569d928820a4469f4f2154a18040aa92b2..97278797273493392eb4464b25a6b5770044bec4 100644 --- a/force_bdss/core/tests/test_verifier.py +++ b/force_bdss/core/tests/test_verifier.py @@ -5,6 +5,7 @@ from force_bdss.core.input_slot_info import InputSlotInfo from force_bdss.core.output_slot_info import OutputSlotInfo from force_bdss.core.verifier import verify_workflow from force_bdss.core.workflow import Workflow +from force_bdss.core.kpi_specification import KPISpecification from force_bdss.tests.dummy_classes.extension_plugin import \ DummyExtensionPlugin @@ -47,6 +48,34 @@ class TestVerifier(unittest.TestCase): self.assertEqual(errors[1].subject, wf.mco.parameters[0]) self.assertIn("empty type", errors[1].error) + def test_kpis_empty_names(self): + wf = self.workflow + mco_factory = self.plugin.mco_factories[0] + wf.mco = mco_factory.create_model() + kpi = KPISpecification(name='', objective='MINIMISE') + wf.mco.kpis.append(kpi) + + errors = verify_workflow(wf) + self.assertEqual(len(errors), 3) + self.assertEqual(errors[1].subject, wf.mco.kpis[0]) + self.assertIn("KPI 0 has empty name", errors[1].error) + + def test_empty_execution_layer(self): + wf = self.workflow + mco_factory = self.plugin.mco_factories[0] + wf.mco = mco_factory.create_model() + parameter_factory = mco_factory.parameter_factories()[0] + wf.mco.parameters.append(parameter_factory.create_model()) + wf.mco.parameters[0].name = "name" + wf.mco.parameters[0].type = "type" + + layer = ExecutionLayer() + wf.execution_layers.append(layer) + errors = verify_workflow(wf) + self.assertEqual(len(errors), 1) + self.assertEqual(errors[0].subject, wf.execution_layers[0]) + self.assertIn("Layer 0 has no data sources", errors[0].error) + def test_data_sources(self): wf = self.workflow mco_factory = self.plugin.mco_factories[0]