Increase Rally full criteria
[functest.git] / functest / ci / tier_builder.py
index 44b2725..370ab94 100644 (file)
@@ -1,17 +1,21 @@
 #!/usr/bin/env python
+
+# Copyright (c) 2016 Ericsson AB and others.
 #
-# jose.lausuch@ericsson.com
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
-#
 
-import tier_handler as th
+"""TierBuilder class to parse testcases config file"""
+
 import yaml
 
+import functest.ci.tier_handler as th
+
 
 class TierBuilder(object):
+    # pylint: disable=missing-docstring
 
     def __init__(self, ci_installer, ci_scenario, testcases_file):
         self.ci_installer = ci_installer
@@ -23,8 +27,8 @@ class TierBuilder(object):
         self.generate_tiers()
 
     def read_test_yaml(self):
-        with open(self.testcases_file) as f:
-            self.testcases_yaml = yaml.safe_load(f)
+        with open(self.testcases_file) as tc_file:
+            self.testcases_yaml = yaml.safe_load(tc_file)
 
         self.dic_tier_array = []
         for tier in self.testcases_yaml.get("tiers"):
@@ -36,24 +40,29 @@ class TierBuilder(object):
 
         del self.tier_objects[:]
         for dic_tier in self.dic_tier_array:
-            tier = th.Tier(name=dic_tier['name'],
-                           order=dic_tier['order'],
-                           ci_loop=dic_tier['ci_loop'],
-                           description=dic_tier['description'])
+            tier = th.Tier(
+                name=dic_tier['name'], order=dic_tier['order'],
+                ci_loop=dic_tier['ci_loop'],
+                description=dic_tier['description'])
 
             for dic_testcase in dic_tier['testcases']:
                 installer = dic_testcase['dependencies']['installer']
                 scenario = dic_testcase['dependencies']['scenario']
                 dep = th.Dependency(installer, scenario)
 
-                testcase = th.TestCase(name=dic_testcase['case_name'],
-                                       dependency=dep,
-                                       criteria=dic_testcase['criteria'],
-                                       blocking=dic_testcase['blocking'],
-                                       clean_flag=dic_testcase['clean_flag'],
-                                       description=dic_testcase['description'])
-                if testcase.is_compatible(self.ci_installer, self.ci_scenario):
+                testcase = th.TestCase(
+                    name=dic_testcase['case_name'],
+                    enabled=dic_testcase.get('enabled', True),
+                    dependency=dep, criteria=dic_testcase['criteria'],
+                    blocking=dic_testcase['blocking'],
+                    description=dic_testcase['description'],
+                    project=dic_testcase['project_name'])
+                if (testcase.is_compatible(self.ci_installer,
+                                           self.ci_scenario) and
+                        testcase.is_enabled()):
                     tier.add_test(testcase)
+                else:
+                    tier.skip_test(testcase)
 
             self.tier_objects.append(tier)
 
@@ -72,6 +81,12 @@ class TierBuilder(object):
                 return self.tier_objects[i]
         return None
 
+    def get_tier_name(self, test_name):
+        for i in range(0, len(self.tier_objects)):
+            if self.tier_objects[i].is_test(test_name):
+                return self.tier_objects[i].name
+        return None
+
     def get_test(self, test_name):
         for i in range(0, len(self.tier_objects)):
             if self.tier_objects[i].is_test(test_name):