From e98be297ea911c9185fc263cd325b558a0a20ea9 Mon Sep 17 00:00:00 2001 From: spisarski Date: Thu, 1 Jun 2017 08:04:24 -0600 Subject: Added unit tests for api_check, health_check, and smoke tests. In addition to the creation of the unit tests, this patch simplifies the mocks for connection check as there was an unused annotation. This patch also refactors the building of the test suite from the constructor to the run() method. JIRA: FUNCTEST-813 Change-Id: I7ff5d0389db36141a33ee3a8f76e04b922f8a95f Signed-off-by: spisarski --- functest/tests/unit/openstack/snaps/test_snaps.py | 169 ++++++++++++++++++++-- 1 file changed, 156 insertions(+), 13 deletions(-) (limited to 'functest/tests/unit/openstack/snaps') diff --git a/functest/tests/unit/openstack/snaps/test_snaps.py b/functest/tests/unit/openstack/snaps/test_snaps.py index 9cfcc0a6..7cf53b39 100644 --- a/functest/tests/unit/openstack/snaps/test_snaps.py +++ b/functest/tests/unit/openstack/snaps/test_snaps.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python - # Copyright (c) 2017 Cable Television Laboratories, Inc. and others. # # All rights reserved. This program and the accompanying materials @@ -9,12 +7,14 @@ # http://www.apache.org/licenses/LICENSE-2.0 import mock +import os import unittest from snaps.openstack.os_credentials import OSCreds from functest.core.testcase import TestCase -from functest.opnfv_tests.openstack.snaps import connection_check +from functest.opnfv_tests.openstack.snaps import (connection_check, api_check, + health_check, smoke) class ConnectionCheckTesting(unittest.TestCase): @@ -31,10 +31,8 @@ class ConnectionCheckTesting(unittest.TestCase): 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): + def test_run_success(self, add_os_client_tests): result = mock.MagicMock(name='unittest.TextTestResult') result.testsRun = 100 result.failures = [] @@ -44,10 +42,8 @@ class ConnectionCheckTesting(unittest.TestCase): 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): + def test_run_1_of_100_failures(self, add_os_client_tests): result = mock.MagicMock(name='unittest.TextTestResult') result.testsRun = 100 result.failures = ['foo'] @@ -57,11 +53,8 @@ class ConnectionCheckTesting(unittest.TestCase): 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): + def test_run_1_of_100_failures_within_criteria(self, add_os_client_tests): self.connection_check.criteria = 90 result = mock.MagicMock(name='unittest.TextTestResult') result.testsRun = 100 @@ -71,3 +64,153 @@ class ConnectionCheckTesting(unittest.TestCase): self.assertEquals(TestCase.EX_OK, self.connection_check.run()) self.assertEquals(TestCase.EX_OK, self.connection_check.is_successful()) + + +class APICheckTesting(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.api_check = api_check.ApiCheck( + os_creds=self.os_creds, ext_net_name='foo') + + @mock.patch('snaps.test_suite_builder.add_openstack_api_tests') + def test_run_success(self, add_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.api_check.run()) + self.assertEquals(TestCase.EX_OK, + self.api_check.is_successful()) + + @mock.patch('snaps.test_suite_builder.add_openstack_api_tests') + def test_run_1_of_100_failures(self, add_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.api_check.run()) + self.assertEquals(TestCase.EX_TESTCASE_FAILED, + self.api_check.is_successful()) + + @mock.patch('snaps.test_suite_builder.add_openstack_api_tests') + def test_run_1_of_100_failures_within_criteria(self, add_tests): + self.api_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.api_check.run()) + self.assertEquals(TestCase.EX_OK, + self.api_check.is_successful()) + + +class HealthCheckTesting(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.health_check = health_check.HealthCheck( + os_creds=self.os_creds, ext_net_name='foo') + + @mock.patch('snaps.test_suite_builder.add_openstack_client_tests') + def test_run_success(self, add_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.health_check.run()) + self.assertEquals(TestCase.EX_OK, + self.health_check.is_successful()) + + @mock.patch('snaps.test_suite_builder.add_openstack_client_tests') + def test_run_1_of_100_failures(self, add_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.health_check.run()) + self.assertEquals(TestCase.EX_TESTCASE_FAILED, + self.health_check.is_successful()) + + @mock.patch('snaps.test_suite_builder.add_openstack_client_tests') + def test_run_1_of_100_failures_within_criteria(self, add_tests): + self.health_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.health_check.run()) + self.assertEquals(TestCase.EX_OK, + self.health_check.is_successful()) + + +class SmokeTesting(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.smoke = smoke.SnapsSmoke( + os_creds=self.os_creds, ext_net_name='foo') + + @mock.patch('snaps.test_suite_builder.add_openstack_integration_tests') + @mock.patch('os.path.join', return_value=os.getcwd()) + def test_run_success(self, add_tests, cwd): + 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.smoke.run()) + self.assertEquals(TestCase.EX_OK, + self.smoke.is_successful()) + + @mock.patch('snaps.test_suite_builder.add_openstack_integration_tests') + @mock.patch('os.path.join', return_value=os.getcwd()) + def test_run_1_of_100_failures(self, add_tests, cwd): + 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.smoke.run()) + self.assertEquals(TestCase.EX_TESTCASE_FAILED, + self.smoke.is_successful()) + + @mock.patch('snaps.test_suite_builder.add_openstack_integration_tests') + @mock.patch('os.path.join', return_value=os.getcwd()) + def test_run_1_of_100_failures_within_criteria(self, add_tests, cwd): + self.smoke.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.smoke.run()) + self.assertEquals(TestCase.EX_OK, + self.smoke.is_successful()) -- cgit 1.2.3-korg