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 --- docker/Dockerfile | 4 -- docker/Dockerfile.aarch64 | 4 -- .../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 ++++++++++++++++++++++ requirements.txt | 1 + 7 files changed, 96 insertions(+), 14 deletions(-) create mode 100644 functest/tests/unit/openstack/snaps/__init__.py create mode 100644 functest/tests/unit/openstack/snaps/test_snaps.py diff --git a/docker/Dockerfile b/docker/Dockerfile index ef5967f7f..21ae33437 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -90,7 +90,6 @@ RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/promise ${REP RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/netready ${REPOS_DIR}/netready RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/fds ${REPOS_DIR}/fds RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/sfc ${REPOS_DIR}/sfc -RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/snaps ${REPOS_DIR}/snaps RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/securityscanning ${REPOS_DIR}/securityscanning RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/opera ${REPOS_DIR}/opera @@ -140,9 +139,6 @@ RUN /bin/bash ${REPOS_DIR}/functest/docker/add_images.sh RUN gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 RUN curl -L https://get.rvm.io | bash -s stable -# SNAPS integration -RUN pip install -e ${REPOS_DIR}/snaps/ - # SFC integration RUN /bin/bash -c ". ${REPOS_DIR}/sfc/sfc/tests/functest/setup_scripts/tacker_client_install.sh" RUN cd ${REPOS_DIR}/sfc && pip install -e . diff --git a/docker/Dockerfile.aarch64 b/docker/Dockerfile.aarch64 index e323cb18a..729646119 100644 --- a/docker/Dockerfile.aarch64 +++ b/docker/Dockerfile.aarch64 @@ -87,7 +87,6 @@ RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/parser ${REPO RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/doctor ${REPOS_DIR}/doctor RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/promise ${REPOS_DIR}/promise RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/sfc ${REPOS_DIR}/sfc -RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/snaps ${REPOS_DIR}/snaps RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/securityscanning ${REPOS_DIR}/securityscanning RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/opera ${REPOS_DIR}/opera @@ -134,9 +133,6 @@ RUN /bin/bash ${REPOS_DIR}/functest/docker/add_images.sh RUN gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 RUN curl -L https://get.rvm.io | bash -s stable -# SNAPS integration -RUN pip install -e ${REPOS_DIR}/snaps/ - RUN pip install ${REPOS_DIR}/opera # SFC integration 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 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()) diff --git a/requirements.txt b/requirements.txt index 059775deb..ef6b2f1c8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -39,3 +39,4 @@ PrettyTable>=0.7.1,<0.8 # BSD six>=1.9.0 # MIT git+https://gerrit.opnfv.org/gerrit/releng#egg=opnfv&subdirectory=modules git+https://gerrit.opnfv.org/gerrit/barometer#egg=baro_tests +git+https://gerrit.opnfv.org/gerrit/snaps#egg=snaps -- cgit 1.2.3-korg