From dbedb36db63b406c5264be20e100062fc59c5a19 Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Tue, 23 May 2017 16:37:04 +0200 Subject: Rename pytest_suite_runner.py to unit.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It also adds the rst files to include this module in apidoc. Change-Id: Iabbb17bc8601265bd9436c75d1afc0b470df1eb4 Signed-off-by: Cédric Ollivier --- docs/api/apidoc/functest.core.rst | 1 + docs/api/apidoc/functest.core.unit.rst | 7 +++ functest/core/pytest_suite_runner.py | 61 ---------------------- functest/core/unit.py | 61 ++++++++++++++++++++++ .../openstack/snaps/snaps_test_runner.py | 4 +- .../tests/unit/core/test_pytest_suite_runner.py | 10 ++-- 6 files changed, 75 insertions(+), 69 deletions(-) create mode 100644 docs/api/apidoc/functest.core.unit.rst delete mode 100644 functest/core/pytest_suite_runner.py create mode 100644 functest/core/unit.py diff --git a/docs/api/apidoc/functest.core.rst b/docs/api/apidoc/functest.core.rst index 27b2ed1fb..55c795be0 100644 --- a/docs/api/apidoc/functest.core.rst +++ b/docs/api/apidoc/functest.core.rst @@ -14,4 +14,5 @@ Submodules functest.core.feature functest.core.testcase functest.core.vnf + functest.core.unit diff --git a/docs/api/apidoc/functest.core.unit.rst b/docs/api/apidoc/functest.core.unit.rst new file mode 100644 index 000000000..5dd6880ed --- /dev/null +++ b/docs/api/apidoc/functest.core.unit.rst @@ -0,0 +1,7 @@ +functest.core.unit module +========================= + +.. automodule:: functest.core.unit + :members: + :undoc-members: + :show-inheritance: diff --git a/functest/core/pytest_suite_runner.py b/functest/core/pytest_suite_runner.py deleted file mode 100644 index efcef7b66..000000000 --- a/functest/core/pytest_suite_runner.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2015 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 - -# pylint: disable=missing-docstring - -from __future__ import division - -import logging -import time -import unittest - -import six - -from functest.core import testcase - - -class PyTestSuiteRunner(testcase.TestCase): - """ - This superclass is designed to execute pre-configured unittest.TestSuite() - objects - """ - - def __init__(self, **kwargs): - super(PyTestSuiteRunner, self).__init__(**kwargs) - self.suite = None - self.logger = logging.getLogger(__name__) - - def run(self, **kwargs): - """ - Starts test execution from the functest framework - """ - try: - name = kwargs["name"] - try: - self.suite = unittest.TestLoader().loadTestsFromName(name) - except ImportError: - 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: - self.result = 100 * ( - (result.testsRun - (len(result.failures) + - len(result.errors))) / - result.testsRun) - return testcase.TestCase.EX_OK - except ZeroDivisionError: - self.logger.error("No test has been run") - return testcase.TestCase.EX_RUN_ERROR diff --git a/functest/core/unit.py b/functest/core/unit.py new file mode 100644 index 000000000..efcef7b66 --- /dev/null +++ b/functest/core/unit.py @@ -0,0 +1,61 @@ +# Copyright (c) 2015 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 + +# pylint: disable=missing-docstring + +from __future__ import division + +import logging +import time +import unittest + +import six + +from functest.core import testcase + + +class PyTestSuiteRunner(testcase.TestCase): + """ + This superclass is designed to execute pre-configured unittest.TestSuite() + objects + """ + + def __init__(self, **kwargs): + super(PyTestSuiteRunner, self).__init__(**kwargs) + self.suite = None + self.logger = logging.getLogger(__name__) + + def run(self, **kwargs): + """ + Starts test execution from the functest framework + """ + try: + name = kwargs["name"] + try: + self.suite = unittest.TestLoader().loadTestsFromName(name) + except ImportError: + 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: + self.result = 100 * ( + (result.testsRun - (len(result.failures) + + len(result.errors))) / + result.testsRun) + return testcase.TestCase.EX_OK + except ZeroDivisionError: + self.logger.error("No test has been run") + return testcase.TestCase.EX_RUN_ERROR diff --git a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py b/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py index 94b97551a..c180df619 100644 --- a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py +++ b/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py @@ -7,7 +7,7 @@ import logging -from functest.core.pytest_suite_runner import PyTestSuiteRunner +from functest.core import unit from functest.opnfv_tests.openstack.snaps import snaps_utils from functest.utils import functest_utils from functest.utils.constants import CONST @@ -16,7 +16,7 @@ from snaps.openstack import create_flavor from snaps.openstack.tests import openstack_tests -class SnapsTestRunner(PyTestSuiteRunner): +class SnapsTestRunner(unit.PyTestSuiteRunner): """ This test executes the SNAPS Python Tests """ diff --git a/functest/tests/unit/core/test_pytest_suite_runner.py b/functest/tests/unit/core/test_pytest_suite_runner.py index f317cdea2..c11d8853e 100644 --- a/functest/tests/unit/core/test_pytest_suite_runner.py +++ b/functest/tests/unit/core/test_pytest_suite_runner.py @@ -12,20 +12,19 @@ import unittest import mock -from functest.core import pytest_suite_runner +from functest.core import unit from functest.core import testcase class PyTestSuiteRunnerTesting(unittest.TestCase): def setUp(self): - self.psrunner = pytest_suite_runner.PyTestSuiteRunner() + self.psrunner = unit.PyTestSuiteRunner() @mock.patch('unittest.TestLoader') def _test_run(self, mock_class=None, result=mock.Mock(), status=testcase.TestCase.EX_OK): - with mock.patch('functest.core.pytest_suite_runner.' - 'unittest.TextTestRunner.run', + with mock.patch('functest.core.unit.unittest.TextTestRunner.run', return_value=result): self.assertEqual(self.psrunner.run(), status) mock_class.assert_not_called() @@ -78,8 +77,7 @@ class PyTestSuiteRunnerTesting(unittest.TestCase): failures=[]) mock_obj = mock.Mock() mock_class.side_effect = mock_obj - with mock.patch('functest.core.pytest_suite_runner.' - 'unittest.TextTestRunner.run', + with mock.patch('functest.core.unit.unittest.TextTestRunner.run', return_value=mock_result): self.assertEqual(self.psrunner.run(name='foo'), testcase.TestCase.EX_OK) -- cgit 1.2.3-korg