1 # Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs")
2 # and others. All rights reserved.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
19 from snaps.domain.test.flavor_tests import FlavorDomainObjectTests
20 from snaps.domain.test.image_tests import ImageDomainObjectTests
21 from snaps.domain.test.keypair_tests import KeypairDomainObjectTests
22 from snaps.domain.test.network_tests import (
23 SecurityGroupDomainObjectTests, SecurityGroupRuleDomainObjectTests,
24 PortDomainObjectTests, RouterDomainObjectTests,
25 InterfaceRouterDomainObjectTests, NetworkObjectTests, SubnetObjectTests)
26 from snaps.domain.test.project_tests import (
27 ProjectDomainObjectTests, DomainDomainObjectTests,
28 ComputeQuotasDomainObjectTests, NetworkQuotasDomainObjectTests)
29 from snaps.domain.test.role_tests import RoleDomainObjectTests
30 from snaps.domain.test.stack_tests import (
31 StackDomainObjectTests, ResourceDomainObjectTests)
32 from snaps.domain.test.user_tests import UserDomainObjectTests
33 from snaps.domain.test.vm_inst_tests import (
34 VmInstDomainObjectTests, FloatingIpDomainObjectTests)
35 from snaps.domain.test.volume_tests import (
36 QoSSpecDomainObjectTests, VolumeTypeDomainObjectTests,
37 VolumeTypeEncryptionObjectTests, VolumeDomainObjectTests)
38 from snaps.openstack.tests.conf.os_credentials_tests import (
39 ProxySettingsUnitTests, OSCredsUnitTests)
40 from snaps.openstack.tests.create_flavor_tests import (
41 CreateFlavorTests, FlavorSettingsUnitTests)
42 from snaps.openstack.tests.create_image_tests import (
43 CreateImageSuccessTests, CreateImageNegativeTests, ImageSettingsUnitTests,
44 CreateMultiPartImageTests)
45 from snaps.openstack.tests.create_instance_tests import (
46 CreateInstanceSingleNetworkTests, CreateInstancePubPrivNetTests,
47 CreateInstanceOnComputeHost, CreateInstanceSimpleTests,
48 FloatingIpSettingsUnitTests, InstanceSecurityGroupTests,
49 VmInstanceSettingsUnitTests, CreateInstancePortManipulationTests,
50 SimpleHealthCheck, CreateInstanceFromThreePartImage,
51 CreateInstanceMockOfflineTests, CreateInstanceTwoNetTests,
52 CreateInstanceVolumeTests)
53 from snaps.openstack.tests.create_keypairs_tests import (
54 CreateKeypairsTests, KeypairSettingsUnitTests, CreateKeypairsCleanupTests)
55 from snaps.openstack.tests.create_network_tests import (
56 CreateNetworkSuccessTests, NetworkSettingsUnitTests, PortSettingsUnitTests,
57 SubnetSettingsUnitTests, CreateNetworkTypeTests)
58 from snaps.openstack.tests.create_project_tests import (
59 CreateProjectSuccessTests, ProjectSettingsUnitTests,
60 CreateProjectUserTests)
61 from snaps.openstack.tests.create_qos_tests import (
62 QoSSettingsUnitTests, CreateQoSTests)
63 from snaps.openstack.tests.create_router_tests import (
64 CreateRouterSuccessTests, CreateRouterNegativeTests,
65 RouterSettingsUnitTests)
66 from snaps.openstack.tests.create_security_group_tests import (
67 CreateSecurityGroupTests, SecurityGroupRuleSettingsUnitTests,
68 SecurityGroupSettingsUnitTests)
69 from snaps.openstack.tests.create_stack_tests import (
70 StackSettingsUnitTests, CreateStackSuccessTests, CreateStackNegativeTests,
71 CreateComplexStackTests)
72 from snaps.openstack.tests.create_user_tests import (
73 UserSettingsUnitTests, CreateUserSuccessTests)
74 from snaps.openstack.tests.create_volume_tests import (
75 VolumeSettingsUnitTests, CreateSimpleVolumeSuccessTests,
76 CreateVolumeWithTypeTests, CreateVolumeWithImageTests,
77 CreateSimpleVolumeFailureTests)
78 from snaps.openstack.tests.create_volume_type_tests import (
79 VolumeTypeSettingsUnitTests, CreateSimpleVolumeTypeSuccessTests,
80 CreateVolumeTypeComplexTests)
81 from snaps.openstack.tests.os_source_file_test import (
82 OSComponentTestCase, OSIntegrationTestCase)
83 from snaps.openstack.utils.tests.cinder_utils_tests import (
84 CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
85 CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests,
86 CinderUtilsVolumeTests)
87 from snaps.openstack.utils.tests.glance_utils_tests import (
88 GlanceSmokeTests, GlanceUtilsTests)
89 from snaps.openstack.utils.tests.heat_utils_tests import (
90 HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
91 HeatUtilsCreateComplexStackTests)
92 from snaps.openstack.utils.tests.keystone_utils_tests import (
93 KeystoneSmokeTests, KeystoneUtilsTests)
94 from snaps.openstack.utils.tests.neutron_utils_tests import (
95 NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
96 NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
97 NeutronUtilsFloatingIpTests)
98 from snaps.openstack.utils.tests.nova_utils_tests import (
99 NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
100 NovaUtilsInstanceTests, NovaUtilsInstanceVolumeTests)
101 from snaps.provisioning.tests.ansible_utils_tests import (
102 AnsibleProvisioningTests)
103 from snaps.tests.file_utils_tests import FileUtilsTests
105 __author__ = 'spisarski'
108 def add_unit_tests(suite):
110 Adds tests that do not require external resources
111 :param suite: the unittest.TestSuite object to which to add the tests
112 :return: None as the tests will be adding to the 'suite' parameter object
114 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(FileUtilsTests))
115 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
116 SecurityGroupRuleSettingsUnitTests))
117 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
118 ProxySettingsUnitTests))
119 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
121 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
122 SecurityGroupSettingsUnitTests))
123 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
124 SecurityGroupDomainObjectTests))
125 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
126 SecurityGroupRuleDomainObjectTests))
127 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
128 ImageSettingsUnitTests))
129 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
130 ImageDomainObjectTests))
131 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
132 FlavorSettingsUnitTests))
133 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
134 FlavorDomainObjectTests))
135 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
136 KeypairSettingsUnitTests))
137 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
138 KeypairDomainObjectTests))
139 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
140 UserSettingsUnitTests))
141 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
142 UserDomainObjectTests))
143 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
144 ProjectSettingsUnitTests))
145 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
146 ProjectDomainObjectTests))
147 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
148 DomainDomainObjectTests))
149 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
150 ComputeQuotasDomainObjectTests))
151 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
152 NetworkQuotasDomainObjectTests))
153 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
154 RoleDomainObjectTests))
155 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
156 NetworkSettingsUnitTests))
157 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
159 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
160 SubnetSettingsUnitTests))
161 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
163 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
164 PortSettingsUnitTests))
165 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
166 PortDomainObjectTests))
167 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
168 RouterSettingsUnitTests))
169 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
170 RouterDomainObjectTests))
171 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
172 InterfaceRouterDomainObjectTests))
173 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
174 FloatingIpSettingsUnitTests))
175 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
176 VmInstanceSettingsUnitTests))
177 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
178 StackDomainObjectTests))
179 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
180 ResourceDomainObjectTests))
181 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
182 StackSettingsUnitTests))
183 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
184 VolumeTypeDomainObjectTests))
185 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
186 VolumeTypeEncryptionObjectTests))
187 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
188 VolumeDomainObjectTests))
189 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
190 QoSSpecDomainObjectTests))
191 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
192 VmInstDomainObjectTests))
193 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
194 FloatingIpDomainObjectTests))
195 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
196 QoSSettingsUnitTests))
197 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
198 VolumeTypeSettingsUnitTests))
199 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
200 VolumeSettingsUnitTests))
203 def add_openstack_client_tests(suite, os_creds, ext_net_name,
204 use_keystone=True, log_level=logging.INFO):
206 Adds tests written to exercise OpenStack client retrieval
207 :param suite: the unittest.TestSuite object to which to add the tests
208 :param os_creds: and instance of OSCreds that holds the credentials
209 required by OpenStack
210 :param ext_net_name: the name of an external network on the cloud under
212 :param use_keystone: when True, tests requiring direct access to Keystone
213 are added as these need to be running on a host that
214 has access to the cloud's private network
215 :param log_level: the logging level
216 :return: None as the tests will be adding to the 'suite' parameter object
218 # Basic connection tests
220 OSComponentTestCase.parameterize(
221 GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
222 log_level=log_level))
226 OSComponentTestCase.parameterize(
227 KeystoneSmokeTests, os_creds=os_creds,
228 ext_net_name=ext_net_name, log_level=log_level))
231 OSComponentTestCase.parameterize(
232 NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
233 log_level=log_level))
235 OSComponentTestCase.parameterize(
236 NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
237 log_level=log_level))
239 OSComponentTestCase.parameterize(
240 HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
241 log_level=log_level))
243 OSComponentTestCase.parameterize(
244 CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
245 log_level=log_level))
248 def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
249 image_metadata=None, log_level=logging.INFO):
251 Adds tests written to exercise all existing OpenStack APIs
252 :param suite: the unittest.TestSuite object to which to add the tests
253 :param os_creds: Instance of OSCreds that holds the credentials
254 required by OpenStack
255 :param ext_net_name: the name of an external network on the cloud under
257 :param use_keystone: when True, tests requiring direct access to Keystone
258 are added as these need to be running on a host that
259 has access to the cloud's private network
260 :param image_metadata: dict() object containing metadata for creating an
261 image with custom config
262 (see YAML files in examples/image-metadata)
263 :param log_level: the logging level
264 :return: None as the tests will be adding to the 'suite' parameter object
266 # Tests the OpenStack API calls
268 suite.addTest(OSComponentTestCase.parameterize(
269 KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
270 log_level=log_level))
271 suite.addTest(OSComponentTestCase.parameterize(
272 CreateUserSuccessTests, os_creds=os_creds,
273 ext_net_name=ext_net_name, log_level=log_level))
274 suite.addTest(OSComponentTestCase.parameterize(
275 CreateProjectSuccessTests, os_creds=os_creds,
276 ext_net_name=ext_net_name, log_level=log_level))
277 suite.addTest(OSComponentTestCase.parameterize(
278 CreateProjectUserTests, os_creds=os_creds,
279 ext_net_name=ext_net_name, log_level=log_level))
281 suite.addTest(OSComponentTestCase.parameterize(
282 GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
283 image_metadata=image_metadata,
284 log_level=log_level))
285 suite.addTest(OSComponentTestCase.parameterize(
286 NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
287 log_level=log_level))
288 suite.addTest(OSComponentTestCase.parameterize(
289 NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
290 log_level=log_level))
291 suite.addTest(OSComponentTestCase.parameterize(
292 NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
293 log_level=log_level))
294 suite.addTest(OSComponentTestCase.parameterize(
295 NeutronUtilsSecurityGroupTests, os_creds=os_creds,
296 ext_net_name=ext_net_name, log_level=log_level))
297 suite.addTest(OSComponentTestCase.parameterize(
298 NeutronUtilsFloatingIpTests, os_creds=os_creds,
299 ext_net_name=ext_net_name, log_level=log_level))
300 suite.addTest(OSComponentTestCase.parameterize(
301 NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
302 log_level=log_level))
303 suite.addTest(OSComponentTestCase.parameterize(
304 NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
305 log_level=log_level))
306 suite.addTest(OSComponentTestCase.parameterize(
307 NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
308 log_level=log_level, image_metadata=image_metadata))
309 suite.addTest(OSComponentTestCase.parameterize(
310 NovaUtilsInstanceVolumeTests, os_creds=os_creds,
311 ext_net_name=ext_net_name, log_level=log_level,
312 image_metadata=image_metadata))
313 suite.addTest(OSComponentTestCase.parameterize(
314 CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
315 log_level=log_level))
316 suite.addTest(OSComponentTestCase.parameterize(
317 HeatUtilsCreateSimpleStackTests, os_creds=os_creds,
318 ext_net_name=ext_net_name, log_level=log_level,
319 image_metadata=image_metadata))
320 suite.addTest(OSComponentTestCase.parameterize(
321 HeatUtilsCreateComplexStackTests, os_creds=os_creds,
322 ext_net_name=ext_net_name, log_level=log_level,
323 image_metadata=image_metadata))
324 suite.addTest(OSComponentTestCase.parameterize(
325 CinderUtilsQoSTests, os_creds=os_creds,
326 ext_net_name=ext_net_name, log_level=log_level,
327 image_metadata=image_metadata))
328 suite.addTest(OSComponentTestCase.parameterize(
329 CinderUtilsVolumeTests, os_creds=os_creds,
330 ext_net_name=ext_net_name, log_level=log_level,
331 image_metadata=image_metadata))
332 suite.addTest(OSComponentTestCase.parameterize(
333 CinderUtilsSimpleVolumeTypeTests, os_creds=os_creds,
334 ext_net_name=ext_net_name, log_level=log_level,
335 image_metadata=image_metadata))
336 suite.addTest(OSComponentTestCase.parameterize(
337 CinderUtilsAddEncryptionTests, os_creds=os_creds,
338 ext_net_name=ext_net_name, log_level=log_level,
339 image_metadata=image_metadata))
340 suite.addTest(OSComponentTestCase.parameterize(
341 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
342 ext_net_name=ext_net_name, log_level=log_level,
343 image_metadata=image_metadata))
346 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
347 use_keystone=True, flavor_metadata=None,
348 image_metadata=None, use_floating_ips=True,
349 log_level=logging.INFO):
351 Adds tests written to exercise all long-running OpenStack integration tests
352 meaning they will be creating VM instances and potentially performing some
353 SSH functions through floatingIPs
354 :param suite: the unittest.TestSuite object to which to add the tests
355 :param os_creds: and instance of OSCreds that holds the credentials
356 required by OpenStack
357 :param ext_net_name: the name of an external network on the cloud under
359 :param use_keystone: when True, tests requiring direct access to Keystone
360 are added as these need to be running on a host that
361 has access to the cloud's private network
362 :param image_metadata: dict() object containing metadata for creating an
363 image with custom config
364 (see YAML files in examples/image-metadata)
365 :param flavor_metadata: dict() object containing the metadata required by
366 your flavor based on your configuration:
367 (i.e. {'hw:mem_page_size': 'large'})
368 :param use_floating_ips: when true, all tests requiring Floating IPs will
369 be added to the suite
370 :param log_level: the logging level
371 :return: None as the tests will be adding to the 'suite' parameter object
373 # Tests the OpenStack API calls via a creator. If use_keystone, objects
374 # will be created with a custom user and project
376 # Creator Object tests
377 suite.addTest(OSIntegrationTestCase.parameterize(
378 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
379 use_keystone=use_keystone,
380 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
381 log_level=log_level))
382 suite.addTest(OSIntegrationTestCase.parameterize(
383 CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
384 use_keystone=use_keystone,
385 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
386 log_level=log_level))
387 suite.addTest(OSIntegrationTestCase.parameterize(
388 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
389 use_keystone=use_keystone,
390 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
391 log_level=log_level))
392 suite.addTest(OSIntegrationTestCase.parameterize(
393 CreateMultiPartImageTests, os_creds=os_creds,
394 ext_net_name=ext_net_name, use_keystone=use_keystone,
395 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
396 log_level=log_level))
397 suite.addTest(OSIntegrationTestCase.parameterize(
398 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
399 use_keystone=use_keystone,
400 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
401 log_level=log_level))
402 suite.addTest(OSIntegrationTestCase.parameterize(
403 CreateKeypairsCleanupTests, os_creds=os_creds,
404 ext_net_name=ext_net_name,
405 use_keystone=use_keystone,
406 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
407 log_level=log_level))
408 suite.addTest(OSIntegrationTestCase.parameterize(
409 CreateNetworkSuccessTests, os_creds=os_creds,
410 ext_net_name=ext_net_name, use_keystone=use_keystone,
411 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
412 log_level=log_level))
413 suite.addTest(OSIntegrationTestCase.parameterize(
414 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
415 use_keystone=use_keystone,
416 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
417 log_level=log_level))
418 suite.addTest(OSIntegrationTestCase.parameterize(
419 CreateRouterNegativeTests, os_creds=os_creds,
420 ext_net_name=ext_net_name, use_keystone=use_keystone,
421 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
422 log_level=log_level))
423 suite.addTest(OSIntegrationTestCase.parameterize(
424 CreateQoSTests, os_creds=os_creds,
425 ext_net_name=ext_net_name, use_keystone=use_keystone,
426 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
427 log_level=log_level))
428 suite.addTest(OSIntegrationTestCase.parameterize(
429 CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
430 ext_net_name=ext_net_name, use_keystone=use_keystone,
431 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
432 log_level=log_level))
433 suite.addTest(OSIntegrationTestCase.parameterize(
434 CreateVolumeTypeComplexTests, os_creds=os_creds,
435 ext_net_name=ext_net_name, use_keystone=use_keystone,
436 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
437 log_level=log_level))
438 suite.addTest(OSIntegrationTestCase.parameterize(
439 CreateSimpleVolumeSuccessTests, os_creds=os_creds,
440 ext_net_name=ext_net_name, use_keystone=use_keystone,
441 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
442 log_level=log_level))
443 suite.addTest(OSIntegrationTestCase.parameterize(
444 CreateSimpleVolumeFailureTests, os_creds=os_creds,
445 ext_net_name=ext_net_name, use_keystone=use_keystone,
446 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
447 log_level=log_level))
448 suite.addTest(OSIntegrationTestCase.parameterize(
449 CreateVolumeWithTypeTests, os_creds=os_creds,
450 ext_net_name=ext_net_name, use_keystone=use_keystone,
451 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
452 log_level=log_level))
453 suite.addTest(OSIntegrationTestCase.parameterize(
454 CreateVolumeWithImageTests, os_creds=os_creds,
455 ext_net_name=ext_net_name, use_keystone=use_keystone,
456 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
457 log_level=log_level))
460 suite.addTest(OSIntegrationTestCase.parameterize(
461 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
462 use_keystone=use_keystone,
463 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
464 log_level=log_level))
465 suite.addTest(OSIntegrationTestCase.parameterize(
466 CreateInstanceTwoNetTests, os_creds=os_creds,
467 ext_net_name=ext_net_name, use_keystone=use_keystone,
468 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
469 log_level=log_level))
470 suite.addTest(OSIntegrationTestCase.parameterize(
471 CreateInstanceSimpleTests, os_creds=os_creds,
472 ext_net_name=ext_net_name, use_keystone=use_keystone,
473 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
474 log_level=log_level))
475 suite.addTest(OSIntegrationTestCase.parameterize(
476 CreateInstancePortManipulationTests, os_creds=os_creds,
477 ext_net_name=ext_net_name, use_keystone=use_keystone,
478 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
479 log_level=log_level))
480 suite.addTest(OSIntegrationTestCase.parameterize(
481 InstanceSecurityGroupTests, os_creds=os_creds,
482 ext_net_name=ext_net_name, use_keystone=use_keystone,
483 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
484 log_level=log_level))
485 suite.addTest(OSIntegrationTestCase.parameterize(
486 CreateInstanceOnComputeHost, os_creds=os_creds,
487 ext_net_name=ext_net_name, use_keystone=use_keystone,
488 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
489 log_level=log_level))
490 suite.addTest(OSIntegrationTestCase.parameterize(
491 CreateInstanceFromThreePartImage, os_creds=os_creds,
492 ext_net_name=ext_net_name, use_keystone=use_keystone,
493 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
494 log_level=log_level))
495 suite.addTest(OSIntegrationTestCase.parameterize(
496 CreateInstanceVolumeTests, os_creds=os_creds,
497 ext_net_name=ext_net_name, use_keystone=use_keystone,
498 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
499 log_level=log_level))
500 suite.addTest(OSIntegrationTestCase.parameterize(
501 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
502 use_keystone=use_keystone,
503 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
504 log_level=log_level))
505 suite.addTest(OSIntegrationTestCase.parameterize(
506 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
507 use_keystone=use_keystone,
508 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
509 log_level=log_level))
512 suite.addTest(OSIntegrationTestCase.parameterize(
513 CreateInstanceSingleNetworkTests, os_creds=os_creds,
514 ext_net_name=ext_net_name, use_keystone=use_keystone,
515 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
516 log_level=log_level))
517 suite.addTest(OSIntegrationTestCase.parameterize(
518 CreateComplexStackTests, os_creds=os_creds,
519 ext_net_name=ext_net_name, use_keystone=use_keystone,
520 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
521 log_level=log_level))
522 suite.addTest(OSIntegrationTestCase.parameterize(
523 AnsibleProvisioningTests, os_creds=os_creds,
524 ext_net_name=ext_net_name, use_keystone=use_keystone,
525 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
526 log_level=log_level))
529 def add_openstack_ci_tests(
530 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
531 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
533 Adds tests written for a CI server to run the tests to validate code
535 :param suite: the unittest.TestSuite object to which to add the tests
536 :param os_creds: and instance of OSCreds that holds the credentials
537 required by OpenStack
538 :param ext_net_name: the name of an external network on the cloud under
540 :param use_keystone: when True, tests requiring direct access to Keystone
541 are added as these need to be running on a host that
542 has access to the cloud's private network
543 :param image_metadata: dict() object containing metadata for creating an
544 image with custom config
545 (see YAML files in examples/image-metadata)
546 :param flavor_metadata: dict() object containing the metadata required by
547 your flavor based on your configuration:
548 (i.e. {'hw:mem_page_size': 'large'})
549 :param use_floating_ips: when true, all tests requiring Floating IPs will
550 be added to the suite
551 :param log_level: the logging level
552 :return: None as the tests will be adding to the 'suite' parameter object
555 add_unit_tests(suite)
557 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
560 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
561 image_metadata, log_level)
563 suite.addTest(OSIntegrationTestCase.parameterize(
564 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
565 use_keystone=use_keystone,
566 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
567 log_level=log_level))
570 suite.addTest(OSIntegrationTestCase.parameterize(
571 CreateInstanceSingleNetworkTests, os_creds=os_creds,
572 ext_net_name=ext_net_name, use_keystone=use_keystone,
573 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
574 log_level=log_level))
576 suite.addTest(OSIntegrationTestCase.parameterize(
577 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
578 use_keystone=use_keystone,
579 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
580 log_level=log_level))
581 suite.addTest(OSIntegrationTestCase.parameterize(
582 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
583 use_keystone=use_keystone,
584 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
585 log_level=log_level))
588 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
589 log_level=logging.INFO):
591 Adds tests that are still in development have not been designed to run
592 successfully against all OpenStack pods
593 :param suite: the unittest.TestSuite object to which to add the tests
594 :param os_creds: Instance of OSCreds that holds the credentials
595 required by OpenStack
596 :param ext_net_name: the name of an external network on the cloud under
598 :param log_level: the logging level
599 :return: None as the tests will be adding to the 'suite' parameter object
601 suite.addTest(OSComponentTestCase.parameterize(
602 CreateNetworkTypeTests, os_creds=os_creds, ext_net_name=ext_net_name,
603 log_level=log_level))
604 suite.addTest(OSComponentTestCase.parameterize(
605 CreateInstanceMockOfflineTests, os_creds=os_creds,
606 ext_net_name=ext_net_name, log_level=log_level))
607 suite.addTest(OSIntegrationTestCase.parameterize(
608 CreateInstancePubPrivNetTests, os_creds=os_creds,
609 ext_net_name=ext_net_name, log_level=log_level))