aboutsummaryrefslogtreecommitdiffstats
path: root/functest/core/unit.py
diff options
context:
space:
mode:
Diffstat (limited to 'functest/core/unit.py')
-rw-r--r--functest/core/unit.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/functest/core/unit.py b/functest/core/unit.py
index 6799420c..515a2080 100644
--- a/functest/core/unit.py
+++ b/functest/core/unit.py
@@ -26,10 +26,11 @@ __author__ = ("Steven Pisarski <s.pisarski@cablelabs.com>, "
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,28 @@ 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 = {"failures": result.failures,
+ "errors": result.errors}
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