aboutsummaryrefslogtreecommitdiffstats
path: root/functest
diff options
context:
space:
mode:
authorMorgan Richomme <morgan.richomme@orange.com>2017-06-01 12:27:37 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-06-01 12:27:37 +0000
commitcce3644b0b0186676de974d32e02219e2ae5dc50 (patch)
treef73c01e0e3f89104542b68627f9fcc3528d02ef1 /functest
parent86aee2dcf004361b1516f28b0137b7c3fedfe8a5 (diff)
parent6efe98c7450dd3ba9d08ac29bc48cb97a6c5f937 (diff)
Merge "Added unit tests for the connection_check test case."
Diffstat (limited to 'functest')
-rw-r--r--functest/opnfv_tests/openstack/snaps/connection_check.py10
-rw-r--r--functest/opnfv_tests/openstack/snaps/snaps_test_runner.py18
-rw-r--r--functest/tests/unit/openstack/snaps/__init__.py0
-rw-r--r--functest/tests/unit/openstack/snaps/test_snaps.py73
4 files changed, 95 insertions, 6 deletions
diff --git a/functest/opnfv_tests/openstack/snaps/connection_check.py b/functest/opnfv_tests/openstack/snaps/connection_check.py
index f2753aea4..494f74b49 100644
--- a/functest/opnfv_tests/openstack/snaps/connection_check.py
+++ b/functest/opnfv_tests/openstack/snaps/connection_check.py
@@ -1,4 +1,5 @@
-# Copyright (c) 2015 All rights reserved
+# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
+#
# 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
@@ -26,8 +27,15 @@ class ConnectionCheck(SnapsTestRunner):
self.suite = unittest.TestSuite()
+ def run(self, **kwargs):
+ """
+ Builds the test suite then calls super.run()
+ :param kwargs: the arguments to pass on
+ :return:
+ """
test_suite_builder.add_openstack_client_tests(
suite=self.suite,
os_creds=self.os_creds,
ext_net_name=self.ext_net_name,
use_keystone=self.use_keystone)
+ return super(self.__class__, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py b/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
index 5e39946d4..e8a421595 100644
--- a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
+++ b/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
@@ -1,4 +1,5 @@
-# Copyright (c) 2015 All rights reserved
+# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
+#
# 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
@@ -24,11 +25,18 @@ class SnapsTestRunner(unit.Suite):
super(SnapsTestRunner, self).__init__(**kwargs)
self.logger = logging.getLogger(__name__)
- self.os_creds = openstack_tests.get_credentials(
- os_env_file=CONST.__getattribute__('openstack_creds'),
- proxy_settings_str=None, ssh_proxy_cmd=None)
+ if 'os_creds' in kwargs:
+ self.os_creds = kwargs['os_creds']
+ else:
+ self.os_creds = openstack_tests.get_credentials(
+ os_env_file=CONST.__getattribute__('openstack_creds'),
+ proxy_settings_str=None, ssh_proxy_cmd=None)
+
+ if 'ext_net_name' in kwargs:
+ self.ext_net_name = kwargs['ext_net_name']
+ else:
+ self.ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
- self.ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
self.use_fip = CONST.__getattribute__('snaps_use_floating_ips')
self.use_keystone = CONST.__getattribute__('snaps_use_keystone')
scenario = functest_utils.get_scenario()
diff --git a/functest/tests/unit/openstack/snaps/__init__.py b/functest/tests/unit/openstack/snaps/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/functest/tests/unit/openstack/snaps/__init__.py
diff --git a/functest/tests/unit/openstack/snaps/test_snaps.py b/functest/tests/unit/openstack/snaps/test_snaps.py
new file mode 100644
index 000000000..9cfcc0a69
--- /dev/null
+++ b/functest/tests/unit/openstack/snaps/test_snaps.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2017 Cable Television Laboratories, Inc. 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
+
+import mock
+import unittest
+
+from snaps.openstack.os_credentials import OSCreds
+
+from functest.core.testcase import TestCase
+from functest.opnfv_tests.openstack.snaps import connection_check
+
+
+class ConnectionCheckTesting(unittest.TestCase):
+ """
+ Ensures the VPingUserdata class can run in Functest. This test does not
+ actually connect with an OpenStack pod.
+ """
+
+ def setUp(self):
+ self.os_creds = OSCreds(
+ username='user', password='pass',
+ auth_url='http://foo.com:5000/v3', project_name='bar')
+
+ self.connection_check = connection_check.ConnectionCheck(
+ os_creds=self.os_creds, ext_net_name='foo')
+
+ @mock.patch('functest.opnfv_tests.openstack.snaps.connection_check.'
+ 'ConnectionCheck')
+ @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
+ def test_run_success(self, mock_test, add_os_client_tests):
+ result = mock.MagicMock(name='unittest.TextTestResult')
+ result.testsRun = 100
+ result.failures = []
+ result.errors = []
+ with mock.patch('unittest.TextTestRunner.run', return_value=result):
+ self.assertEquals(TestCase.EX_OK, self.connection_check.run())
+ self.assertEquals(TestCase.EX_OK,
+ self.connection_check.is_successful())
+
+ @mock.patch('functest.opnfv_tests.openstack.snaps.connection_check.'
+ 'ConnectionCheck')
+ @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
+ def test_run_1_of_100_failures(self, mock_test, add_os_client_tests):
+ result = mock.MagicMock(name='unittest.TextTestResult')
+ result.testsRun = 100
+ result.failures = ['foo']
+ result.errors = []
+ with mock.patch('unittest.TextTestRunner.run', return_value=result):
+ self.assertEquals(TestCase.EX_OK, self.connection_check.run())
+ self.assertEquals(TestCase.EX_TESTCASE_FAILED,
+ self.connection_check.is_successful())
+
+ @mock.patch('functest.opnfv_tests.openstack.snaps.connection_check.'
+ 'ConnectionCheck')
+ @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
+ def test_run_1_of_100_failures_within_criteria(self, mock_test,
+ add_os_client_tests):
+ self.connection_check.criteria = 90
+ result = mock.MagicMock(name='unittest.TextTestResult')
+ result.testsRun = 100
+ result.failures = ['foo']
+ result.errors = []
+ with mock.patch('unittest.TextTestRunner.run', return_value=result):
+ self.assertEquals(TestCase.EX_OK, self.connection_check.run())
+ self.assertEquals(TestCase.EX_OK,
+ self.connection_check.is_successful())