X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=functest%2Fcore%2Funit.py;h=61b5a58d90542b45fe23796b4a77e49107692ce5;hb=578f831fe90f08028c6e88e103175b9bb698b6c5;hp=6799420c7db8ecca50c522fb7261c60a2ec29eba;hpb=def004b361002a71222439aea98143db1a99c4fe;p=functest.git diff --git a/functest/core/unit.py b/functest/core/unit.py index 6799420c7..61b5a58d9 100644 --- a/functest/core/unit.py +++ b/functest/core/unit.py @@ -26,10 +26,11 @@ __author__ = ("Steven Pisarski , " class Suite(testcase.TestCase): """Base model for running unittest.TestSuite.""" + __logger = logging.getLogger(__name__) + def __init__(self, **kwargs): super(Suite, self).__init__(**kwargs) self.suite = None - self.logger = logging.getLogger(__name__) def run(self, **kwargs): """Run the test suite. @@ -61,24 +62,31 @@ class Suite(testcase.TestCase): try: self.suite = unittest.TestLoader().loadTestsFromName(name) except ImportError: - self.logger.error("Can not import %s", name) + self.__logger.error("Can not import %s", name) return testcase.TestCase.EX_RUN_ERROR except KeyError: pass - self.start_time = time.time() - stream = six.StringIO() - result = unittest.TextTestRunner( - stream=stream, verbosity=2).run(self.suite) - self.logger.debug("\n\n%s", stream.getvalue()) - self.stop_time = time.time() - self.details = {"failures": result.failures, - "errors": result.errors} try: + assert self.suite + self.start_time = time.time() + stream = six.StringIO() + result = unittest.TextTestRunner( + stream=stream, verbosity=2).run(self.suite) + self.__logger.debug("\n\n%s", stream.getvalue()) + self.stop_time = time.time() + self.details = { + "testsRun": result.testsRun, + "failures": len(result.failures), + "errors": len(result.errors), + "stream": stream.getvalue()} self.result = 100 * ( (result.testsRun - (len(result.failures) + len(result.errors))) / result.testsRun) return testcase.TestCase.EX_OK + except AssertionError: + self.__logger.error("No suite is defined") + return testcase.TestCase.EX_RUN_ERROR except ZeroDivisionError: - self.logger.error("No test has been run") + self.__logger.error("No test has been run") return testcase.TestCase.EX_RUN_ERROR