aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2017-06-01 08:04:24 -0600
committerspisarski <s.pisarski@cablelabs.com>2017-06-20 07:44:48 -0600
commite98be297ea911c9185fc263cd325b558a0a20ea9 (patch)
tree6f0e1a1845ce6e7474621cba58576a3273fd59c7
parentcce3644b0b0186676de974d32e02219e2ae5dc50 (diff)
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 <s.pisarski@cablelabs.com>
-rw-r--r--functest/opnfv_tests/openstack/snaps/api_check.py10
-rw-r--r--functest/opnfv_tests/openstack/snaps/health_check.py10
-rw-r--r--functest/opnfv_tests/openstack/snaps/smoke.py10
-rw-r--r--functest/tests/unit/openstack/snaps/test_snaps.py169
4 files changed, 183 insertions, 16 deletions
diff --git a/functest/opnfv_tests/openstack/snaps/api_check.py b/functest/opnfv_tests/openstack/snaps/api_check.py
index 50f67094b..43518cb4e 100644
--- a/functest/opnfv_tests/openstack/snaps/api_check.py
+++ b/functest/opnfv_tests/openstack/snaps/api_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 ApiCheck(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_api_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/health_check.py b/functest/opnfv_tests/openstack/snaps/health_check.py
index 0daddcdd2..4e94460c2 100644
--- a/functest/opnfv_tests/openstack/snaps/health_check.py
+++ b/functest/opnfv_tests/openstack/snaps/health_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
@@ -28,6 +29,12 @@ class HealthCheck(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:
+ """
image_custom_config = None
if hasattr(CONST, 'snaps_images_cirros'):
@@ -39,3 +46,4 @@ class HealthCheck(SnapsTestRunner):
use_keystone=self.use_keystone,
flavor_metadata=self.flavor_metadata,
image_metadata=image_custom_config))
+ return super(self.__class__, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/smoke.py b/functest/opnfv_tests/openstack/snaps/smoke.py
index d9f95e90c..c3c55c7c3 100644
--- a/functest/opnfv_tests/openstack/snaps/smoke.py
+++ b/functest/opnfv_tests/openstack/snaps/smoke.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
@@ -28,6 +29,12 @@ class SnapsSmoke(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:
+ """
image_config = None
if hasattr(CONST, 'snaps_images_cirros'):
image_config = CONST.__getattribute__('snaps_images_cirros')
@@ -47,3 +54,4 @@ class SnapsSmoke(SnapsTestRunner):
flavor_metadata=self.flavor_metadata,
image_metadata=image_config,
use_floating_ips=self.use_fip)
+ return super(self.__class__, self).run()
diff --git a/functest/tests/unit/openstack/snaps/test_snaps.py b/functest/tests/unit/openstack/snaps/test_snaps.py
index 9cfcc0a69..7cf53b394 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())