Merge "parser integration bugfix"
[functest.git] / ci / tier_handler.py
index 20a47e9..1eadfba 100644 (file)
@@ -29,6 +29,7 @@ def split_text(text, max_len):
 
 
 class Tier:
+
     def __init__(self, name, order, ci_loop, description=""):
         self.tests_array = []
         self.name = name
@@ -102,23 +103,29 @@ class Tier:
 
 
 class TestCase:
-    def __init__(self, name, dependency, criteria, description=""):
+
+    def __init__(self, name, dependency, criteria, blocking, description=""):
         self.name = name
         self.dependency = dependency
         self.description = description
         self.criteria = criteria
+        self.blocking = blocking
+
+    @staticmethod
+    def is_none(item):
+        return item is None or item is ""
 
     def is_compatible(self, ci_installer, ci_scenario):
         try:
-            if ci_installer is not None:
+            if not self.is_none(ci_installer):
                 if re.search(self.dependency.get_installer(),
                              ci_installer) is None:
                     return False
-            if ci_scenario is not None:
+            if not self.is_none(ci_scenario):
                 if re.search(self.dependency.get_scenario(),
                              ci_scenario) is None:
                     return False
-            return not (ci_scenario is None and ci_installer is None)
+            return True
         except TypeError:
             return False
 
@@ -128,6 +135,9 @@ class TestCase:
     def get_criteria(self):
         return self.criteria
 
+    def is_blocking(self):
+        return self.blocking
+
     def __str__(self):
         lines = split_text(self.description, LINE_LENGTH - 6)
 
@@ -151,6 +161,7 @@ class TestCase:
 
 
 class Dependency:
+
     def __init__(self, installer, scenario):
         self.installer = installer
         self.scenario = scenario