1 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
3 # All rights reserved. This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # pylint: disable=missing-docstring
15 from snaps.openstack.os_credentials import OSCreds
17 from functest.core.testcase import TestCase
18 from functest.opnfv_tests.openstack.snaps import (connection_check, api_check,
22 class ConnectionCheckTesting(unittest.TestCase):
24 Ensures the VPingUserdata class can run in Functest. This test does not
25 actually connect with an OpenStack pod.
29 self.os_creds = OSCreds(
30 username='user', password='pass',
31 auth_url='http://foo.com:5000/v3', project_name='bar')
33 self.connection_check = connection_check.ConnectionCheck(
34 os_creds=self.os_creds, ext_net_name='foo')
36 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
37 'add_openstack_client_tests')
38 def test_run_success(self, add_os_client_tests):
39 result = mock.MagicMock(name='unittest.TextTestResult')
43 with mock.patch('unittest.TextTestRunner.run', return_value=result):
44 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
45 self.assertEquals(TestCase.EX_OK,
46 self.connection_check.is_successful())
48 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
49 'add_openstack_client_tests')
50 def test_run_1_of_100_failures(self, add_os_client_tests):
51 result = mock.MagicMock(name='unittest.TextTestResult')
53 result.failures = ['foo']
55 with mock.patch('unittest.TextTestRunner.run', return_value=result):
56 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
57 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
58 self.connection_check.is_successful())
60 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
61 'add_openstack_client_tests')
62 def test_run_1_of_100_failures_within_criteria(self, add_os_client_tests):
63 self.connection_check.criteria = 90
64 result = mock.MagicMock(name='unittest.TextTestResult')
66 result.failures = ['foo']
68 with mock.patch('unittest.TextTestRunner.run', return_value=result):
69 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
70 self.assertEquals(TestCase.EX_OK,
71 self.connection_check.is_successful())
74 class APICheckTesting(unittest.TestCase):
76 Ensures the VPingUserdata class can run in Functest. This test does not
77 actually connect with an OpenStack pod.
81 self.os_creds = OSCreds(
82 username='user', password='pass',
83 auth_url='http://foo.com:5000/v3', project_name='bar')
85 self.api_check = api_check.ApiCheck(
86 os_creds=self.os_creds, ext_net_name='foo')
88 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
89 'add_openstack_api_tests')
90 def test_run_success(self, add_tests):
91 result = mock.MagicMock(name='unittest.TextTestResult')
95 with mock.patch('unittest.TextTestRunner.run', return_value=result):
96 self.assertEquals(TestCase.EX_OK, self.api_check.run())
97 self.assertEquals(TestCase.EX_OK,
98 self.api_check.is_successful())
100 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
101 'add_openstack_api_tests')
102 def test_run_1_of_100_failures(self, add_tests):
103 result = mock.MagicMock(name='unittest.TextTestResult')
104 result.testsRun = 100
105 result.failures = ['foo']
107 with mock.patch('unittest.TextTestRunner.run', return_value=result):
108 self.assertEquals(TestCase.EX_OK, self.api_check.run())
109 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
110 self.api_check.is_successful())
112 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
113 'add_openstack_api_tests')
114 def test_run_1_of_100_failures_within_criteria(self, add_tests):
115 self.api_check.criteria = 90
116 result = mock.MagicMock(name='unittest.TextTestResult')
117 result.testsRun = 100
118 result.failures = ['foo']
120 with mock.patch('unittest.TextTestRunner.run', return_value=result):
121 self.assertEquals(TestCase.EX_OK, self.api_check.run())
122 self.assertEquals(TestCase.EX_OK,
123 self.api_check.is_successful())
126 class HealthCheckTesting(unittest.TestCase):
128 Ensures the VPingUserdata class can run in Functest. This test does not
129 actually connect with an OpenStack pod.
133 self.os_creds = OSCreds(
134 username='user', password='pass',
135 auth_url='http://foo.com:5000/v3', project_name='bar')
137 self.health_check = health_check.HealthCheck(
138 os_creds=self.os_creds, ext_net_name='foo')
140 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
141 'add_openstack_client_tests')
142 def test_run_success(self, add_tests):
143 result = mock.MagicMock(name='unittest.TextTestResult')
144 result.testsRun = 100
147 with mock.patch('unittest.TextTestRunner.run', return_value=result):
148 self.assertEquals(TestCase.EX_OK, self.health_check.run())
149 self.assertEquals(TestCase.EX_OK,
150 self.health_check.is_successful())
152 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
153 'add_openstack_client_tests')
154 def test_run_1_of_100_failures(self, add_tests):
155 result = mock.MagicMock(name='unittest.TextTestResult')
156 result.testsRun = 100
157 result.failures = ['foo']
159 with mock.patch('unittest.TextTestRunner.run', return_value=result):
160 self.assertEquals(TestCase.EX_OK, self.health_check.run())
161 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
162 self.health_check.is_successful())
164 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
165 'add_openstack_client_tests')
166 def test_run_1_of_100_failures_within_criteria(self, add_tests):
167 self.health_check.criteria = 90
168 result = mock.MagicMock(name='unittest.TextTestResult')
169 result.testsRun = 100
170 result.failures = ['foo']
172 with mock.patch('unittest.TextTestRunner.run', return_value=result):
173 self.assertEquals(TestCase.EX_OK, self.health_check.run())
174 self.assertEquals(TestCase.EX_OK,
175 self.health_check.is_successful())
178 class SmokeTesting(unittest.TestCase):
180 Ensures the VPingUserdata class can run in Functest. This test does not
181 actually connect with an OpenStack pod.
185 self.os_creds = OSCreds(
186 username='user', password='pass',
187 auth_url='http://foo.com:5000/v3', project_name='bar')
189 self.smoke = smoke.SnapsSmoke(
190 os_creds=self.os_creds, ext_net_name='foo')
192 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
193 'add_openstack_integration_tests')
194 @mock.patch('os.path.join', return_value=os.getcwd())
195 def test_run_success(self, add_tests, cwd):
196 result = mock.MagicMock(name='unittest.TextTestResult')
197 result.testsRun = 100
200 with mock.patch('unittest.TextTestRunner.run', return_value=result):
201 self.assertEquals(TestCase.EX_OK, self.smoke.run())
202 self.assertEquals(TestCase.EX_OK,
203 self.smoke.is_successful())
205 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
206 'add_openstack_integration_tests')
207 @mock.patch('os.path.join', return_value=os.getcwd())
208 def test_run_1_of_100_failures(self, add_tests, cwd):
209 result = mock.MagicMock(name='unittest.TextTestResult')
210 result.testsRun = 100
211 result.failures = ['foo']
213 with mock.patch('unittest.TextTestRunner.run', return_value=result):
214 self.assertEquals(TestCase.EX_OK, self.smoke.run())
215 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
216 self.smoke.is_successful())
218 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
219 'add_openstack_integration_tests')
220 @mock.patch('os.path.join', return_value=os.getcwd())
221 def test_run_1_of_100_failures_within_criteria(self, add_tests, cwd):
222 self.smoke.criteria = 90
223 result = mock.MagicMock(name='unittest.TextTestResult')
224 result.testsRun = 100
225 result.failures = ['foo']
227 with mock.patch('unittest.TextTestRunner.run', return_value=result):
228 self.assertEquals(TestCase.EX_OK, self.smoke.run())
229 self.assertEquals(TestCase.EX_OK,
230 self.smoke.is_successful())