aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2017-04-02 10:29:51 +0200
committerCédric Ollivier <cedric.ollivier@orange.com>2017-04-04 15:16:52 +0200
commitdb9767d6871b3601265b46645d2ff7656f3a0bb4 (patch)
tree5bb11c71443f8b63e2c7968a8306299c9b291f68
parent582ebd448508625ed2c9f362aaafc3fc46e60df0 (diff)
Add unit tests for feature
They partially cover feature but already highlight bugs. Several tests are skipped to allow merging. Their decorators could be removed as soon as feature is fixed. I think bad-continuation is false positive so it's disabled (pep8 and flake8 return ok). JIRA: FUNCTEST-779 Change-Id: I89b9e2ec0388eea2471d941b2c653deca7fbddf6 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
-rw-r--r--functest/tests/unit/core/test_feature.py108
-rwxr-xr-xrun_unit_tests.sh2
2 files changed, 109 insertions, 1 deletions
diff --git a/functest/tests/unit/core/test_feature.py b/functest/tests/unit/core/test_feature.py
new file mode 100644
index 000000000..0ed178a1d
--- /dev/null
+++ b/functest/tests/unit/core/test_feature.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2017 Orange and others.
+#
+# 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
+
+import logging
+import unittest
+
+import mock
+
+from functest.core import feature
+from functest.core import testcase
+from functest.utils import constants
+
+
+class FeatureInitTesting(unittest.TestCase):
+
+ logging.disable(logging.CRITICAL)
+
+ @unittest.skip("JIRA: FUNCTEST-780")
+ def test_init_with_wrong_repo(self):
+ with self.assertRaises(ValueError):
+ feature.Feature(repo='foo')
+
+ def test_init(self):
+ barometer = feature.Feature(repo='dir_repo_barometer')
+ self.assertEqual(barometer.project_name, "functest")
+ self.assertEqual(barometer.case_name, "")
+ self.assertEqual(
+ barometer.repo,
+ constants.CONST.__getattribute__('dir_repo_barometer'))
+
+
+class FeatureTesting(unittest.TestCase):
+
+ logging.disable(logging.CRITICAL)
+
+ def setUp(self):
+ self.feature = feature.Feature(repo='dir_repo_barometer')
+
+ @unittest.skip("JIRA: FUNCTEST-781")
+ def test_prepare_ko(self):
+ # pylint: disable=bad-continuation
+ with mock.patch.object(
+ self.feature, 'prepare',
+ return_value=testcase.TestCase.EX_RUN_ERROR) as mock_object:
+ self.assertEqual(self.feature.run(),
+ testcase.TestCase.EX_RUN_ERROR)
+ mock_object.assert_called_once_with()
+
+ @unittest.skip("JIRA: FUNCTEST-781")
+ def test_prepare_exc(self):
+ with mock.patch.object(self.feature, 'prepare',
+ side_effect=Exception) as mock_object:
+ self.assertEqual(self.feature.run(),
+ testcase.TestCase.EX_RUN_ERROR)
+ mock_object.assert_called_once_with()
+
+ @unittest.skip("JIRA: FUNCTEST-781")
+ def test_post_ko(self):
+ # pylint: disable=bad-continuation
+ with mock.patch.object(
+ self.feature, 'post',
+ return_value=testcase.TestCase.EX_RUN_ERROR) as mock_object:
+ self.assertEqual(self.feature.run(),
+ testcase.TestCase.EX_RUN_ERROR)
+ mock_object.assert_called_once_with()
+
+ @unittest.skip("JIRA: FUNCTEST-781")
+ def test_post_exc(self):
+ with mock.patch.object(self.feature, 'post',
+ side_effect=Exception) as mock_object:
+ self.assertEqual(self.feature.run(),
+ testcase.TestCase.EX_RUN_ERROR)
+ mock_object.assert_called_once_with()
+
+ @unittest.skip("JIRA: FUNCTEST-778")
+ def test_execute_ko(self):
+ with mock.patch.object(self.feature, 'execute',
+ return_value=1) as mock_object:
+ self.assertEqual(self.feature.run(),
+ testcase.TestCase.EX_RUN_ERROR)
+ mock_object.assert_called_once_with()
+
+ @unittest.skip("JIRA: FUNCTEST-778")
+ def test_execute_exc(self):
+ with mock.patch.object(self.feature, 'execute',
+ side_effect=Exception) as mock_object:
+ self.assertEqual(self.feature.run(),
+ testcase.TestCase.EX_RUN_ERROR)
+ mock_object.assert_called_once_with()
+
+ def test_run(self):
+ with mock.patch.object(self.feature, 'execute',
+ return_value=0) as mock_object:
+ self.assertEqual(self.feature.run(),
+ testcase.TestCase.EX_OK)
+ mock_object.assert_called_once_with()
+
+
+if __name__ == "__main__":
+ unittest.main(verbosity=2)
diff --git a/run_unit_tests.sh b/run_unit_tests.sh
index 0ed1f7b3b..917c8eee8 100755
--- a/run_unit_tests.sh
+++ b/run_unit_tests.sh
@@ -40,7 +40,7 @@ nosetests --with-xunit \
--cover-tests \
--cover-package=functest.ci \
--cover-package=functest.cli \
- --cover-package=functest.core.testcase \
+ --cover-package=functest.core \
--cover-package=functest.opnfv_tests.sdn.odl.odl \
--cover-package=functest.opnfv_tests.vnf.ims \
--cover-package=functest.utils \