From a9361422e1c40167d91771fc17bb91da617ebb29 Mon Sep 17 00:00:00 2001
From: James Johnson <jjohnson@enthought.com>
Date: Thu, 5 Jul 2018 10:37:29 +0100
Subject: [PATCH] Added empty default to kpi specification, flake8 for
 verifier, test for default kpi

---
 force_bdss/core/kpi_specification.py   |  2 +-
 force_bdss/core/tests/test_verifier.py | 10 ++++++----
 force_bdss/core/verifier.py            |  8 ++++----
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/force_bdss/core/kpi_specification.py b/force_bdss/core/kpi_specification.py
index f675939..003229b 100644
--- a/force_bdss/core/kpi_specification.py
+++ b/force_bdss/core/kpi_specification.py
@@ -8,4 +8,4 @@ class KPISpecification(HasStrictTraits):
     name = Identifier()
 
     #: The expected outcome of the procedure relative to this KPI.
-    objective = Enum("MINIMISE")
+    objective = Enum("", "MINIMISE")
diff --git a/force_bdss/core/tests/test_verifier.py b/force_bdss/core/tests/test_verifier.py
index 9727879..22b462f 100644
--- a/force_bdss/core/tests/test_verifier.py
+++ b/force_bdss/core/tests/test_verifier.py
@@ -34,7 +34,7 @@ class TestVerifier(unittest.TestCase):
         self.assertEqual(errors[0].subject, wf.mco)
         self.assertIn("no defined parameters", errors[0].error)
 
-    def test_parameters_empty_names(self):
+    def test_empty_parameter_options(self):
         wf = self.workflow
         mco_factory = self.plugin.mco_factories[0]
         wf.mco = mco_factory.create_model()
@@ -48,17 +48,19 @@ 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):
+    def test_empty_kpi_options(self):
         wf = self.workflow
         mco_factory = self.plugin.mco_factories[0]
         wf.mco = mco_factory.create_model()
-        kpi = KPISpecification(name='', objective='MINIMISE')
+        kpi = KPISpecification(name='', objective='')
         wf.mco.kpis.append(kpi)
 
         errors = verify_workflow(wf)
-        self.assertEqual(len(errors), 3)
+
+        self.assertEqual(len(errors), 4)
         self.assertEqual(errors[1].subject, wf.mco.kpis[0])
         self.assertIn("KPI 0 has empty name", errors[1].error)
+        self.assertIn("KPI 0 has empty objective", errors[2].error)
 
     def test_empty_execution_layer(self):
         wf = self.workflow
diff --git a/force_bdss/core/verifier.py b/force_bdss/core/verifier.py
index 95f8880..5964bd9 100644
--- a/force_bdss/core/verifier.py
+++ b/force_bdss/core/verifier.py
@@ -122,8 +122,8 @@ def _check_data_source(data_source_model, layer_number):
                 subject=data_source_model,
                 error="Undefined name for input "
                       "parameter {} from {} in layer {}".format(idx,
-                                                              factory.name,
-                                                              layer_number)))
+                                                                factory.name,
+                                                                layer_number)))
 
     if len(output_slots) != len(data_source_model.output_slot_info):
         errors.append(VerifierError(
@@ -137,7 +137,7 @@ def _check_data_source(data_source_model, layer_number):
                 subject=data_source_model,
                 error="Undefined name for output "
                       "parameter {} from {} in layer {}".format(idx,
-                                                              factory.name,
-                                                              layer_number)))
+                                                                factory.name,
+                                                                layer_number)))
 
     return errors
-- 
GitLab