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
16 from xtesting.core 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.TestCase.EX_OK, self.connection_check.run())
46 testcase.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.TestCase.EX_OK, self.connection_check.run())
62 testcase.TestCase.EX_TESTCASE_FAILED,
63 self.connection_check.is_successful())
64 args[0].assert_called_with(mock.ANY)
65 args[1].assert_called_with(
66 ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
69 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
70 'add_openstack_client_tests')
71 @mock.patch('unittest.TextTestRunner.run',
72 return_value=mock.MagicMock(name='unittest.TextTestResult'))
73 def test_run_1_of_100_ko_criteria(self, *args):
74 self.connection_check.criteria = 90
75 args[0].return_value.testsRun = 100
76 args[0].return_value.failures = ['foo']
77 args[0].return_value.errors = []
78 self.assertEquals(testcase.TestCase.EX_OK, self.connection_check.run())
80 testcase.TestCase.EX_OK, self.connection_check.is_successful())
81 args[0].assert_called_with(mock.ANY)
82 args[1].assert_called_with(
83 ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
87 class APICheckTesting(unittest.TestCase):
89 Ensures the VPingUserdata class can run in Functest. This test does not
90 actually connect with an OpenStack pod.
94 self.os_creds = OSCreds(
95 username='user', password='pass',
96 auth_url='http://foo.com:5000/v3', project_name='bar')
98 self.api_check = api_check.ApiCheck(
99 os_creds=self.os_creds, ext_net_name='foo')
101 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
102 'add_openstack_api_tests')
103 @mock.patch('unittest.TextTestRunner.run',
104 return_value=mock.MagicMock(name='unittest.TextTestResult'))
105 def test_run_success(self, *args):
106 args[0].return_value.testsRun = 100
107 args[0].return_value.failures = []
108 args[0].return_value.errors = []
109 self.assertEquals(testcase.TestCase.EX_OK, self.api_check.run())
111 testcase.TestCase.EX_OK, self.api_check.is_successful())
112 args[0].assert_called_with(mock.ANY)
113 args[1].assert_called_with(
114 ext_net_name='foo', image_metadata=mock.ANY,
115 os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
117 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
118 'add_openstack_api_tests')
119 @mock.patch('unittest.TextTestRunner.run',
120 return_value=mock.MagicMock(name='unittest.TextTestResult'))
121 def test_run_1_of_100_ko(self, *args):
122 args[0].return_value.testsRun = 100
123 args[0].return_value.failures = ['foo']
124 args[0].return_value.errors = []
125 self.assertEquals(testcase.TestCase.EX_OK, self.api_check.run())
127 testcase.TestCase.EX_TESTCASE_FAILED,
128 self.api_check.is_successful())
129 args[0].assert_called_with(mock.ANY)
130 args[1].assert_called_with(
131 ext_net_name='foo', image_metadata=mock.ANY,
132 os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
134 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
135 'add_openstack_api_tests')
136 @mock.patch('unittest.TextTestRunner.run',
137 return_value=mock.MagicMock(name='unittest.TextTestResult'))
138 def test_run_1_of_100_ko_criteria(self, *args):
139 self.api_check.criteria = 90
140 args[0].return_value.testsRun = 100
141 args[0].return_value.failures = ['foo']
142 args[0].return_value.errors = []
143 self.assertEquals(testcase.TestCase.EX_OK, self.api_check.run())
145 testcase.TestCase.EX_OK, self.api_check.is_successful())
146 args[0].assert_called_with(mock.ANY)
147 args[1].assert_called_with(
148 ext_net_name='foo', image_metadata=mock.ANY,
149 os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
152 class HealthCheckTesting(unittest.TestCase):
154 Ensures the VPingUserdata class can run in Functest. This test does not
155 actually connect with an OpenStack pod.
159 self.os_creds = OSCreds(
160 username='user', password='pass',
161 auth_url='http://foo.com:5000/v3', project_name='bar')
163 self.health_check = health_check.HealthCheck(
164 os_creds=self.os_creds, ext_net_name='foo')
166 @mock.patch('snaps.openstack.tests.os_source_file_test.'
167 'OSIntegrationTestCase.parameterize')
168 @mock.patch('unittest.TextTestRunner.run',
169 return_value=mock.MagicMock(name='unittest.TextTestResult'))
170 def test_run_success(self, *args):
171 args[0].return_value.testsRun = 100
172 args[0].return_value.failures = []
173 args[0].return_value.errors = []
174 self.assertEquals(testcase.TestCase.EX_OK, self.health_check.run())
176 testcase.TestCase.EX_OK, self.health_check.is_successful())
177 args[0].assert_called_with(mock.ANY)
178 args[1].assert_called_with(
179 mock.ANY, ext_net_name='foo', flavor_metadata=mock.ANY,
180 image_metadata=mock.ANY, netconf_override=None,
181 os_creds=self.os_creds, use_keystone=True)
183 @mock.patch('snaps.openstack.tests.os_source_file_test.'
184 'OSIntegrationTestCase.parameterize')
185 @mock.patch('unittest.TextTestRunner.run',
186 return_value=mock.MagicMock(name='unittest.TextTestResult'))
187 def test_run_1_of_100_ko(self, *args):
188 args[0].return_value.testsRun = 100
189 args[0].return_value.failures = ['foo']
190 args[0].return_value.errors = []
191 self.assertEquals(testcase.TestCase.EX_OK, self.health_check.run())
193 testcase.TestCase.EX_TESTCASE_FAILED,
194 self.health_check.is_successful())
195 args[0].assert_called_with(mock.ANY)
196 args[1].assert_called_with(
197 mock.ANY, ext_net_name='foo', flavor_metadata=mock.ANY,
198 image_metadata=mock.ANY, netconf_override=None,
199 os_creds=self.os_creds, use_keystone=True)
201 @mock.patch('snaps.openstack.tests.os_source_file_test.'
202 'OSIntegrationTestCase.parameterize')
203 @mock.patch('unittest.TextTestRunner.run',
204 return_value=mock.MagicMock(name='unittest.TextTestResult'))
205 def test_run_1_of_100_ko_criteria(self, *args):
206 self.health_check.criteria = 90
207 args[0].return_value.testsRun = 100
208 args[0].return_value.failures = ['foo']
209 args[0].return_value.errors = []
210 self.assertEquals(testcase.TestCase.EX_OK, self.health_check.run())
212 testcase.TestCase.EX_OK, self.health_check.is_successful())
213 args[0].assert_called_with(mock.ANY)
214 args[1].assert_called_with(
215 mock.ANY, ext_net_name='foo', flavor_metadata=mock.ANY,
216 image_metadata=mock.ANY, netconf_override=None,
217 os_creds=self.os_creds, use_keystone=True)
220 class SmokeTesting(unittest.TestCase):
222 Ensures the VPingUserdata class can run in Functest. This test does not
223 actually connect with an OpenStack pod.
227 self.os_creds = OSCreds(
228 username='user', password='pass',
229 auth_url='http://foo.com:5000/v3', project_name='bar')
231 self.smoke = smoke.SnapsSmoke(
232 os_creds=self.os_creds, ext_net_name='foo')
234 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
235 'add_openstack_integration_tests')
236 @mock.patch('unittest.TextTestRunner.run',
237 return_value=mock.MagicMock(name='unittest.TextTestResult'))
238 def test_run_success(self, *args):
239 args[0].return_value.testsRun = 100
240 args[0].return_value.failures = []
241 args[0].return_value.errors = []
242 self.assertEquals(testcase.TestCase.EX_OK, self.smoke.run())
243 self.assertEquals(testcase.TestCase.EX_OK, self.smoke.is_successful())
244 args[0].assert_called_with(mock.ANY)
245 args[1].assert_called_with(
246 ext_net_name='foo', flavor_metadata=mock.ANY,
247 image_metadata=mock.ANY, netconf_override=None,
248 os_creds=self.os_creds, suite=mock.ANY, use_floating_ips=True,
251 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
252 'add_openstack_integration_tests')
253 @mock.patch('unittest.TextTestRunner.run',
254 return_value=mock.MagicMock(name='unittest.TextTestResult'))
255 def test_run_1_of_100_ko(self, *args):
256 args[0].return_value.testsRun = 100
257 args[0].return_value.failures = ['foo']
258 args[0].return_value.errors = []
259 self.assertEquals(testcase.TestCase.EX_OK, self.smoke.run())
261 testcase.TestCase.EX_TESTCASE_FAILED, self.smoke.is_successful())
262 args[0].assert_called_with(mock.ANY)
263 args[1].assert_called_with(
264 ext_net_name='foo', flavor_metadata=mock.ANY,
265 image_metadata=mock.ANY, netconf_override=mock.ANY,
266 os_creds=self.os_creds, suite=mock.ANY, use_floating_ips=True,
269 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
270 'add_openstack_integration_tests')
271 @mock.patch('unittest.TextTestRunner.run',
272 return_value=mock.MagicMock(name='unittest.TextTestResult'))
273 def test_run_1_of_100_ko_criteria(self, *args):
274 self.smoke.criteria = 90
275 args[0].return_value.testsRun = 100
276 args[0].return_value.failures = ['foo']
277 args[0].return_value.errors = []
278 self.assertEquals(testcase.TestCase.EX_OK, self.smoke.run())
280 testcase.TestCase.EX_OK, self.smoke.is_successful())
281 args[0].assert_called_with(mock.ANY)
282 args[1].assert_called_with(
283 ext_net_name='foo', flavor_metadata=mock.ANY,
284 image_metadata=mock.ANY, netconf_override=None,
285 os_creds=self.os_creds, suite=mock.ANY, use_floating_ips=True,
289 if __name__ == "__main__":
290 logging.disable(logging.CRITICAL)
291 unittest.main(verbosity=2)