dovetail tool: bugfix: cannot load pre/post condition from config file 67/27967/1
authorxudan <xudan16@huawei.com>
Fri, 3 Feb 2017 03:52:11 +0000 (03:52 +0000)
committerxudan <xudan16@huawei.com>
Fri, 3 Feb 2017 03:55:43 +0000 (03:55 +0000)
JIRA: DOVETAIL-342

Change-Id: If98905b6724c0a990d789a7ce914aeecac72d7c4
Signed-off-by: xudan <xudan16@huawei.com>
dovetail/testcase.py

index ed7b832..9b6b1d7 100644 (file)
@@ -105,24 +105,28 @@ class Testcase(object):
     def pre_condition(self):
         try:
             pre_condition = self.testcase['validate']['pre_condition']
-            if pre_condition == '':
-                pre_condition = self.pre_condition_cls(self.validate_type())
+        except KeyError:
+            pre_condition = ''
+        if pre_condition:
             return pre_condition
-        except:
+        pre_condition = self.pre_condition_cls(self.validate_type())
+        if not pre_condition:
             self.logger.debug('testcase:%s pre_condition is empty',
                               self.name())
-            return ''
+        return pre_condition
 
     def post_condition(self):
         try:
             post_condition = self.testcase['validate']['post_condition']
-            if post_condition == '':
-                post_condition = self.post_condition_cls(self.validate_type())
+        except KeyError:
+            post_condition = ''
+        if post_condition:
             return post_condition
-        except:
+        post_condition = self.post_condition_cls(self.validate_type())
+        if not post_condition:
             self.logger.debug('testcae:%s post_condition is empty',
                               self.name())
-            return ''
+        return post_condition
 
     def run(self):
         runner = TestRunnerFactory.create(self)
@@ -151,11 +155,17 @@ class Testcase(object):
 
     @staticmethod
     def pre_condition_cls(validate_type):
-        return dt_cfg.dovetail_config[validate_type]['pre_condition']
+        try:
+            return dt_cfg.dovetail_config[validate_type]['pre_condition']
+        except KeyError:
+            return None
 
     @staticmethod
     def post_condition_cls(validate_type):
-        return dt_cfg.dovetail_config[validate_type]['post_condition']
+        try:
+            return dt_cfg.dovetail_config[validate_type]['post_condition']
+        except KeyError:
+            return None
 
     @classmethod
     def update_validate_testcase(cls, testcase_name):