Fix missing directory when calling bgpvpn tests
[functest.git] / ci / tier_handler.py
index dd0d10c..e50fbe6 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
@@ -74,7 +75,7 @@ class Tier:
         return self.ci_loop
 
     def __str__(self):
-        lines = split_text(self.description, LINE_LENGTH-6)
+        lines = split_text(self.description, LINE_LENGTH - 6)
 
         out = ""
         out += ("+%s+\n" % ("=" * (LINE_LENGTH - 2)))
@@ -102,25 +103,39 @@ class Tier:
 
 
 class TestCase:
-    def __init__(self, name, dependency, description=""):
+
+    def __init__(self, name, dependency, criteria, blocking, description=""):
         self.name = name
         self.dependency = dependency
         self.description = description
+        self.criteria = criteria
+        self.blocking = blocking
 
     def is_compatible(self, ci_installer, ci_scenario):
-        if re.search(self.dependency.get_installer(), ci_installer) is None:
-            return False
-
-        if re.search(self.dependency.get_scenario(), ci_scenario) is None:
+        try:
+            if ci_installer is not None:
+                if re.search(self.dependency.get_installer(),
+                             ci_installer) is None:
+                    return False
+            if ci_scenario is not None:
+                if re.search(self.dependency.get_scenario(),
+                             ci_scenario) is None:
+                    return False
+            return not (ci_scenario is None and ci_installer is None)
+        except TypeError:
             return False
 
-        return True
-
     def get_name(self):
         return self.name
 
+    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)
+        lines = split_text(self.description, LINE_LENGTH - 6)
 
         out = ""
         out += ("+%s+\n" % ("=" * (LINE_LENGTH - 2)))
@@ -129,6 +144,8 @@ class TestCase:
         out += ("| Description:".ljust(LINE_LENGTH - 1) + "|\n")
         for line in lines:
             out += ("|    " + line.ljust(LINE_LENGTH - 7) + " |\n")
+        out += ("| Criteria:  " +
+                self.criteria.ljust(LINE_LENGTH - 14) + "|\n")
         out += ("| Dependencies:".ljust(LINE_LENGTH - 1) + "|\n")
         installer = self.dependency.get_installer()
         scenario = self.dependency.get_scenario()
@@ -140,6 +157,7 @@ class TestCase:
 
 
 class Dependency:
+
     def __init__(self, installer, scenario):
         self.installer = installer
         self.scenario = scenario