Merge "Define Runner class"
[functest.git] / functest / opnfv_tests / openstack / refstack_client / refstack_client.py
index 37aa9e3..2a2718d 100755 (executable)
@@ -5,7 +5,12 @@
 # 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
+
+from __future__ import division
+
+
 import argparse
+import logging
 import os
 import re
 import sys
@@ -15,19 +20,19 @@ import time
 from functest.core import testcase
 from functest.opnfv_tests.openstack.tempest import conf_utils
 from functest.utils.constants import CONST
-import functest.utils.functest_logger as ft_logger
 import functest.utils.functest_utils as ft_utils
 from tempest_conf import TempestConf
 
 """ logging configuration """
-logger = ft_logger.Logger("refstack_defcore").getLogger()
+logger = logging.getLogger(__name__)
 
 
 class RefstackClient(testcase.TestCase):
 
-    def __init__(self):
-        super(RefstackClient, self).__init__()
-        self.case_name = "refstack_defcore"
+    def __init__(self, **kwargs):
+        if "case_name" not in kwargs:
+            kwargs["case_name"] = "refstack_defcore"
+        super(RefstackClient, self).__init__(**kwargs)
         self.FUNCTEST_TEST = CONST.dir_functest_test
         self.CONF_PATH = CONST.refstack_tempest_conf_path
         self.DEFCORE_LIST = CONST.refstack_defcore_list
@@ -122,7 +127,11 @@ class RefstackClient(testcase.TestCase):
                 skipped_testcases += match + ", "
 
             num_executed = int(num_tests) - int(num_skipped)
-            success_rate = 100 * int(num_success) / int(num_executed)
+
+            try:
+                self.result = 100 * int(num_success) / int(num_executed)
+            except ZeroDivisionError:
+                logger.error("No test has been executed")
 
             self.details = {"tests": int(num_tests),
                             "failures": int(num_failures),
@@ -130,12 +139,10 @@ class RefstackClient(testcase.TestCase):
                             "errors": failed_testcases,
                             "skipped": skipped_testcases}
         except Exception:
-            success_rate = 0
+            self.result = 0
 
-        self.criteria = ft_utils.check_success_rate(
-            self.case_name, success_rate)
-        logger.info("Testcase %s success_rate is %s%%, is marked as %s"
-                    % (self.case_name, success_rate, self.criteria))
+        logger.info("Testcase %s success_rate is %s%%"
+                    % (self.case_name, self.result))
 
     def run(self):
         '''used for functest command line,
@@ -170,7 +177,7 @@ class RefstackClient(testcase.TestCase):
         '''used for manually running,
            python refstack_client.py -c <tempest_conf_path>
            --testlist <testlist_path>
-           can generate a reference tempest.conf by
+           can generate a reference refstack_tempest.conf by
            python tempest_conf.py
         '''
         try:
@@ -192,10 +199,9 @@ class RefstackClient(testcase.TestCase):
         return res
 
 
-class RefstackClientParser(testcase.TestCase):
+class RefstackClientParser(object):
 
     def __init__(self):
-        super(RefstackClientParser, self).__init__()
         self.FUNCTEST_TEST = CONST.dir_functest_test
         self.CONF_PATH = CONST.refstack_tempest_conf_path
         self.DEFCORE_LIST = CONST.refstack_defcore_list
@@ -206,7 +212,7 @@ class RefstackClientParser(testcase.TestCase):
         self.parser = argparse.ArgumentParser()
         self.parser.add_argument(
             '-c', '--config',
-            help='the file path of tempest.conf',
+            help='the file path of refstack_tempest.conf',
             default=self.confpath)
         self.parser.add_argument(
             '-t', '--testlist',
@@ -220,6 +226,7 @@ class RefstackClientParser(testcase.TestCase):
 
 
 if __name__ == '__main__':
+    logging.basicConfig()
     refstackclient = RefstackClient()
     parser = RefstackClientParser()
     args = parser.parse_args(sys.argv[1:])