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 (
19 connection_check, api_check, health_check, smoke)
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 @mock.patch('unittest.TextTestRunner.run',
39 return_value=mock.MagicMock(name='unittest.TextTestResult'))
40 def test_run_success(self, *args):
41 args[0].return_value.testsRun = 100
42 args[0].return_value.failures = []
43 args[0].return_value.errors = []
44 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
46 TestCase.EX_OK, self.connection_check.is_successful())
47 args[0].assert_called_with(mock.ANY)
48 args[1].assert_called_with(
49 ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
52 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
53 'add_openstack_client_tests')
54 @mock.patch('unittest.TextTestRunner.run',
55 return_value=mock.MagicMock(name='unittest.TextTestResult'))
56 def test_run_1_of_100_ko(self, *args):
57 args[0].return_value.testsRun = 100
58 args[0].return_value.failures = ['foo']
59 args[0].return_value.errors = []
60 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
62 TestCase.EX_TESTCASE_FAILED, self.connection_check.is_successful())
63 args[0].assert_called_with(mock.ANY)
64 args[1].assert_called_with(
65 ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
68 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
69 'add_openstack_client_tests')
70 @mock.patch('unittest.TextTestRunner.run',
71 return_value=mock.MagicMock(name='unittest.TextTestResult'))
72 def test_run_1_of_100_ko_criteria(self, *args):
73 self.connection_check.criteria = 90
74 args[0].return_value.testsRun = 100
75 args[0].return_value.failures = ['foo']
76 args[0].return_value.errors = []
77 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
79 TestCase.EX_OK, self.connection_check.is_successful())
80 args[0].assert_called_with(mock.ANY)
81 args[1].assert_called_with(
82 ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
86 class APICheckTesting(unittest.TestCase):
88 Ensures the VPingUserdata class can run in Functest. This test does not
89 actually connect with an OpenStack pod.
93 self.os_creds = OSCreds(
94 username='user', password='pass',
95 auth_url='http://foo.com:5000/v3', project_name='bar')
97 self.api_check = api_check.ApiCheck(
98 os_creds=self.os_creds, ext_net_name='foo')
100 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
101 'add_openstack_api_tests')
102 @mock.patch('unittest.TextTestRunner.run',
103 return_value=mock.MagicMock(name='unittest.TextTestResult'))
104 def test_run_success(self, *args):
105 args[0].return_value.testsRun = 100
106 args[0].return_value.failures = []
107 args[0].return_value.errors = []
108 self.assertEquals(TestCase.EX_OK, self.api_check.run())
110 TestCase.EX_OK, self.api_check.is_successful())
111 args[0].assert_called_with(mock.ANY)
112 args[1].assert_called_with(
113 ext_net_name='foo', image_metadata=mock.ANY,
114 os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
116 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
117 'add_openstack_api_tests')
118 @mock.patch('unittest.TextTestRunner.run',
119 return_value=mock.MagicMock(name='unittest.TextTestResult'))
120 def test_run_1_of_100_ko(self, *args):
121 args[0].return_value.testsRun = 100
122 args[0].return_value.failures = ['foo']
123 args[0].return_value.errors = []
124 self.assertEquals(TestCase.EX_OK, self.api_check.run())
126 TestCase.EX_TESTCASE_FAILED, self.api_check.is_successful())
127 args[0].assert_called_with(mock.ANY)
128 args[1].assert_called_with(
129 ext_net_name='foo', image_metadata=mock.ANY,
130 os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
132 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
133 'add_openstack_api_tests')
134 @mock.patch('unittest.TextTestRunner.run',
135 return_value=mock.MagicMock(name='unittest.TextTestResult'))
136 def test_run_1_of_100_ko_criteria(self, *args):
137 self.api_check.criteria = 90
138 args[0].return_value.testsRun = 100
139 args[0].return_value.failures = ['foo']
140 args[0].return_value.errors = []
141 self.assertEquals(TestCase.EX_OK, self.api_check.run())
143 TestCase.EX_OK, self.api_check.is_successful())
144 args[0].assert_called_with(mock.ANY)
145 args[1].assert_called_with(
146 ext_net_name='foo', image_metadata=mock.ANY,
147 os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
150 class HealthCheckTesting(unittest.TestCase):
152 Ensures the VPingUserdata class can run in Functest. This test does not
153 actually connect with an OpenStack pod.
157 self.os_creds = OSCreds(
158 username='user', password='pass',
159 auth_url='http://foo.com:5000/v3', project_name='bar')
161 self.health_check = health_check.HealthCheck(
162 os_creds=self.os_creds, ext_net_name='foo')
164 @mock.patch('snaps.openstack.tests.os_source_file_test.'
165 'OSIntegrationTestCase.parameterize')
166 @mock.patch('unittest.TextTestRunner.run',
167 return_value=mock.MagicMock(name='unittest.TextTestResult'))
168 def test_run_success(self, *args):
169 args[0].return_value.testsRun = 100
170 args[0].return_value.failures = []
171 args[0].return_value.errors = []
172 self.assertEquals(TestCase.EX_OK, self.health_check.run())
174 TestCase.EX_OK, self.health_check.is_successful())
175 args[0].assert_called_with(mock.ANY)
176 args[1].assert_called_with(
177 mock.ANY, ext_net_name='foo', flavor_metadata=None,
178 image_metadata=mock.ANY, netconf_override=None,
179 os_creds=self.os_creds, use_keystone=True)
181 @mock.patch('snaps.openstack.tests.os_source_file_test.'
182 'OSIntegrationTestCase.parameterize')
183 @mock.patch('unittest.TextTestRunner.run',
184 return_value=mock.MagicMock(name='unittest.TextTestResult'))
185 def test_run_1_of_100_ko(self, *args):
186 args[0].return_value.testsRun = 100
187 args[0].return_value.failures = ['foo']
188 args[0].return_value.errors = []
189 self.assertEquals(TestCase.EX_OK, self.health_check.run())
191 TestCase.EX_TESTCASE_FAILED, self.health_check.is_successful())
192 args[0].assert_called_with(mock.ANY)
193 args[1].assert_called_with(
194 mock.ANY, ext_net_name='foo', flavor_metadata=None,
195 image_metadata=mock.ANY, netconf_override=None,
196 os_creds=self.os_creds, use_keystone=True)
198 @mock.patch('snaps.openstack.tests.os_source_file_test.'
199 'OSIntegrationTestCase.parameterize')
200 @mock.patch('unittest.TextTestRunner.run',
201 return_value=mock.MagicMock(name='unittest.TextTestResult'))
202 def test_run_1_of_100_ko_criteria(self, *args):
203 self.health_check.criteria = 90
204 args[0].return_value.testsRun = 100
205 args[0].return_value.failures = ['foo']
206 args[0].return_value.errors = []
207 self.assertEquals(TestCase.EX_OK, self.health_check.run())
209 TestCase.EX_OK, self.health_check.is_successful())
210 args[0].assert_called_with(mock.ANY)
211 args[1].assert_called_with(
212 mock.ANY, ext_net_name='foo', flavor_metadata=None,
213 image_metadata=mock.ANY, netconf_override=None,
214 os_creds=self.os_creds, use_keystone=True)
217 class SmokeTesting(unittest.TestCase):
219 Ensures the VPingUserdata class can run in Functest. This test does not
220 actually connect with an OpenStack pod.
224 self.os_creds = OSCreds(
225 username='user', password='pass',
226 auth_url='http://foo.com:5000/v3', project_name='bar')
228 self.smoke = smoke.SnapsSmoke(
229 os_creds=self.os_creds, ext_net_name='foo')
231 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
232 'add_openstack_integration_tests')
233 @mock.patch('unittest.TextTestRunner.run',
234 return_value=mock.MagicMock(name='unittest.TextTestResult'))
235 def test_run_success(self, *args):
236 args[0].return_value.testsRun = 100
237 args[0].return_value.failures = []
238 args[0].return_value.errors = []
239 self.assertEquals(TestCase.EX_OK, self.smoke.run())
240 self.assertEquals(TestCase.EX_OK, self.smoke.is_successful())
241 args[0].assert_called_with(mock.ANY)
242 args[1].assert_called_with(
243 ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
244 netconf_override=None, os_creds=self.os_creds,
245 suite=mock.ANY, use_floating_ips=True, use_keystone=True)
247 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
248 'add_openstack_integration_tests')
249 @mock.patch('unittest.TextTestRunner.run',
250 return_value=mock.MagicMock(name='unittest.TextTestResult'))
251 def test_run_1_of_100_ko(self, *args):
252 args[0].return_value.testsRun = 100
253 args[0].return_value.failures = ['foo']
254 args[0].return_value.errors = []
255 self.assertEquals(TestCase.EX_OK, self.smoke.run())
257 TestCase.EX_TESTCASE_FAILED, self.smoke.is_successful())
258 args[0].assert_called_with(mock.ANY)
259 args[1].assert_called_with(
260 ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
261 netconf_override=mock.ANY, os_creds=self.os_creds,
262 suite=mock.ANY, use_floating_ips=True, use_keystone=True)
264 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
265 'add_openstack_integration_tests')
266 @mock.patch('unittest.TextTestRunner.run',
267 return_value=mock.MagicMock(name='unittest.TextTestResult'))
268 def test_run_1_of_100_ko_criteria(self, *args):
269 self.smoke.criteria = 90
270 args[0].return_value.testsRun = 100
271 args[0].return_value.failures = ['foo']
272 args[0].return_value.errors = []
273 self.assertEquals(TestCase.EX_OK, self.smoke.run())
275 TestCase.EX_OK, self.smoke.is_successful())
276 args[0].assert_called_with(mock.ANY)
277 args[1].assert_called_with(
278 ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
279 netconf_override=None, os_creds=self.os_creds,
280 suite=mock.ANY, use_floating_ips=True, use_keystone=True)
283 if __name__ == "__main__":
284 logging.disable(logging.CRITICAL)
285 unittest.main(verbosity=2)