From 6efe98c7450dd3ba9d08ac29bc48cb97a6c5f937 Mon Sep 17 00:00:00 2001 From: spisarski Date: Fri, 26 May 2017 09:05:35 -0600 Subject: Added unit tests for the connection_check test case. JIRA: FUNCTEST-813 Change-Id: Ib851a3942e181b1a91cad695504613868a340d15 Signed-off-by: spisarski --- .../openstack/snaps/connection_check.py | 10 ++- .../openstack/snaps/snaps_test_runner.py | 18 ++++-- functest/tests/unit/openstack/snaps/__init__.py | 0 functest/tests/unit/openstack/snaps/test_snaps.py | 73 ++++++++++++++++++++++ 4 files changed, 95 insertions(+), 6 deletions(-) create mode 100644 functest/tests/unit/openstack/snaps/__init__.py create mode 100644 functest/tests/unit/openstack/snaps/test_snaps.py (limited to 'functest') diff --git a/functest/opnfv_tests/openstack/snaps/connection_check.py b/functest/opnfv_tests/openstack/snaps/connection_check.py index f2753aea..494f74b4 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 5e39946d..e8a42159 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 00000000..e69de29b 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 00000000..9cfcc0a6 --- /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()) -- cgit 1.2.3-korg