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.config.tests.qos_tests import QoSConfigUnitTests
20 from snaps.config.tests.stack_tests import StackConfigUnitTests
21 from snaps.config.tests.router_tests import RouterConfigUnitTests
22 from snaps.config.tests.user_tests import UserConfigUnitTests
23 from snaps.config.tests.project_tests import ProjectConfigUnitTests
24 from snaps.config.tests.keypair_tests import KeypairConfigUnitTests
25 from snaps.config.tests.flavor_tests import FlavorConfigUnitTests
26 import snaps.config.tests.image_tests as image_tests
27 import snaps.openstack.tests.create_image_tests as creator_tests
28 from snaps.domain.test.flavor_tests import FlavorDomainObjectTests
29 from snaps.domain.test.image_tests import ImageDomainObjectTests
30 from snaps.domain.test.keypair_tests import KeypairDomainObjectTests
31 from snaps.domain.test.network_tests import (
32 SecurityGroupDomainObjectTests, SecurityGroupRuleDomainObjectTests,
33 PortDomainObjectTests, RouterDomainObjectTests,
34 InterfaceRouterDomainObjectTests, NetworkObjectTests, SubnetObjectTests)
35 from snaps.domain.test.project_tests import (
36 ProjectDomainObjectTests, DomainDomainObjectTests,
37 ComputeQuotasDomainObjectTests, NetworkQuotasDomainObjectTests)
38 from snaps.domain.test.role_tests import RoleDomainObjectTests
39 from snaps.domain.test.stack_tests import (
40 StackDomainObjectTests, ResourceDomainObjectTests)
41 from snaps.domain.test.user_tests import UserDomainObjectTests
42 from snaps.domain.test.vm_inst_tests import (
43 VmInstDomainObjectTests, FloatingIpDomainObjectTests)
44 from snaps.domain.test.volume_tests import (
45 QoSSpecDomainObjectTests, VolumeTypeDomainObjectTests,
46 VolumeTypeEncryptionObjectTests, VolumeDomainObjectTests)
47 from snaps.openstack.tests.conf.os_credentials_tests import (
48 ProxySettingsUnitTests, OSCredsUnitTests)
49 from snaps.openstack.tests.create_flavor_tests import (
50 CreateFlavorTests, FlavorSettingsUnitTests)
51 from snaps.openstack.tests.create_image_tests import (
52 CreateImageSuccessTests, CreateImageNegativeTests,
53 CreateMultiPartImageTests)
54 from snaps.openstack.tests.create_instance_tests import (
55 CreateInstanceSingleNetworkTests, CreateInstancePubPrivNetTests,
56 CreateInstanceOnComputeHost, CreateInstanceSimpleTests,
57 FloatingIpSettingsUnitTests, InstanceSecurityGroupTests,
58 VmInstanceSettingsUnitTests, CreateInstancePortManipulationTests,
59 SimpleHealthCheck, CreateInstanceFromThreePartImage,
60 CreateInstanceMockOfflineTests, CreateInstanceTwoNetTests,
61 CreateInstanceVolumeTests, CreateInstanceIPv6NetworkTests)
62 from snaps.openstack.tests.create_keypairs_tests import (
63 CreateKeypairsTests, KeypairSettingsUnitTests, CreateKeypairsCleanupTests)
64 from snaps.openstack.tests.create_network_tests import (
65 CreateNetworkSuccessTests, NetworkSettingsUnitTests, PortSettingsUnitTests,
66 SubnetSettingsUnitTests, CreateNetworkTypeTests, CreateNetworkIPv6Tests)
67 from snaps.openstack.tests.create_project_tests import (
68 CreateProjectSuccessTests, ProjectSettingsUnitTests,
69 CreateProjectUserTests)
70 from snaps.openstack.tests.create_qos_tests import (
71 QoSSettingsUnitTests, CreateQoSTests)
72 from snaps.openstack.tests.create_router_tests import (
73 CreateRouterSuccessTests, CreateRouterNegativeTests,
74 RouterSettingsUnitTests)
75 from snaps.openstack.tests.create_security_group_tests import (
76 CreateSecurityGroupTests, SecurityGroupRuleSettingsUnitTests,
77 SecurityGroupSettingsUnitTests)
78 from snaps.openstack.tests.create_stack_tests import (
79 StackSettingsUnitTests, CreateStackSuccessTests, CreateStackNegativeTests,
80 CreateStackFlavorTests, CreateStackFloatingIpTests,
81 CreateStackKeypairTests, CreateStackVolumeTests,
82 CreateStackSecurityGroupTests)
83 from snaps.openstack.tests.create_user_tests import (
84 UserSettingsUnitTests, CreateUserSuccessTests)
85 from snaps.openstack.tests.create_volume_tests import (
86 VolumeSettingsUnitTests, CreateSimpleVolumeSuccessTests,
87 CreateVolumeWithTypeTests, CreateVolumeWithImageTests,
88 CreateSimpleVolumeFailureTests)
89 from snaps.openstack.tests.create_volume_type_tests import (
90 VolumeTypeSettingsUnitTests, CreateSimpleVolumeTypeSuccessTests,
91 CreateVolumeTypeComplexTests)
92 from snaps.openstack.tests.os_source_file_test import (
93 OSComponentTestCase, OSIntegrationTestCase)
94 from snaps.openstack.utils.tests.cinder_utils_tests import (
95 CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
96 CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests,
97 CinderUtilsVolumeTests)
98 from snaps.openstack.utils.tests.glance_utils_tests import (
99 GlanceSmokeTests, GlanceUtilsTests)
100 from snaps.openstack.utils.tests.heat_utils_tests import (
101 HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
102 HeatUtilsCreateComplexStackTests, HeatUtilsFlavorTests,
103 HeatUtilsKeypairTests, HeatUtilsVolumeTests, HeatUtilsSecurityGroupTests)
104 from snaps.openstack.utils.tests.keystone_utils_tests import (
105 KeystoneSmokeTests, KeystoneUtilsTests)
106 from snaps.openstack.utils.tests.neutron_utils_tests import (
107 NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
108 NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
109 NeutronUtilsFloatingIpTests, NeutronUtilsIPv6Tests)
110 from snaps.openstack.utils.tests.nova_utils_tests import (
111 NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
112 NovaUtilsInstanceTests, NovaUtilsInstanceVolumeTests)
113 from snaps.openstack.utils.tests.settings_utils_tests import (
114 SettingsUtilsUnitTests)
115 from snaps.openstack.utils.tests.magnum_utils_tests import (
117 from snaps.provisioning.tests.ansible_utils_tests import (
118 AnsibleProvisioningTests)
119 from snaps.tests.file_utils_tests import FileUtilsTests
121 __author__ = 'spisarski'
124 def add_unit_tests(suite):
126 Adds tests that do not require external resources
127 :param suite: the unittest.TestSuite object to which to add the tests
128 :return: None as the tests will be adding to the 'suite' parameter object
130 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(FileUtilsTests))
131 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
132 SecurityGroupRuleSettingsUnitTests))
133 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
134 ProxySettingsUnitTests))
135 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
137 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
138 SecurityGroupSettingsUnitTests))
139 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
140 SecurityGroupDomainObjectTests))
141 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
142 SecurityGroupRuleDomainObjectTests))
143 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
144 image_tests.ImageConfigUnitTests))
145 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
146 creator_tests.ImageSettingsUnitTests))
147 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
148 ImageDomainObjectTests))
149 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
150 FlavorConfigUnitTests))
151 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
152 FlavorSettingsUnitTests))
153 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
154 FlavorDomainObjectTests))
155 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
156 KeypairConfigUnitTests))
157 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
158 KeypairSettingsUnitTests))
159 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
160 KeypairDomainObjectTests))
161 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
162 UserConfigUnitTests))
163 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
164 UserSettingsUnitTests))
165 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
166 UserDomainObjectTests))
167 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
168 ProjectConfigUnitTests))
169 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
170 ProjectSettingsUnitTests))
171 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
172 ProjectDomainObjectTests))
173 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
174 DomainDomainObjectTests))
175 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
176 ComputeQuotasDomainObjectTests))
177 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
178 NetworkQuotasDomainObjectTests))
179 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
180 RoleDomainObjectTests))
181 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
182 NetworkSettingsUnitTests))
183 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
185 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
186 SubnetSettingsUnitTests))
187 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
189 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
190 PortSettingsUnitTests))
191 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
192 PortDomainObjectTests))
193 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
194 RouterConfigUnitTests))
195 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
196 RouterSettingsUnitTests))
197 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
198 RouterDomainObjectTests))
199 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
200 InterfaceRouterDomainObjectTests))
201 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
202 FloatingIpSettingsUnitTests))
203 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
204 VmInstanceSettingsUnitTests))
205 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
206 StackDomainObjectTests))
207 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
208 ResourceDomainObjectTests))
209 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
210 StackConfigUnitTests))
211 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
212 StackSettingsUnitTests))
213 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
214 VolumeTypeDomainObjectTests))
215 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
216 VolumeTypeEncryptionObjectTests))
217 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
218 VolumeDomainObjectTests))
219 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
220 QoSSpecDomainObjectTests))
221 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
222 VmInstDomainObjectTests))
223 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
224 FloatingIpDomainObjectTests))
225 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
227 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
228 QoSSettingsUnitTests))
229 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
230 VolumeTypeSettingsUnitTests))
231 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
232 VolumeSettingsUnitTests))
233 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
234 SettingsUtilsUnitTests))
237 def add_openstack_client_tests(suite, os_creds, ext_net_name,
238 use_keystone=True, log_level=logging.INFO):
240 Adds tests written to exercise OpenStack client retrieval
241 :param suite: the unittest.TestSuite object to which to add the tests
242 :param os_creds: and instance of OSCreds that holds the credentials
243 required by OpenStack
244 :param ext_net_name: the name of an external network on the cloud under
246 :param use_keystone: when True, tests requiring direct access to Keystone
247 are added as these need to be running on a host that
248 has access to the cloud's private network
249 :param log_level: the logging level
250 :return: None as the tests will be adding to the 'suite' parameter object
252 # Basic connection tests
254 OSComponentTestCase.parameterize(
255 GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
256 log_level=log_level))
260 OSComponentTestCase.parameterize(
261 KeystoneSmokeTests, os_creds=os_creds,
262 ext_net_name=ext_net_name, log_level=log_level))
265 OSComponentTestCase.parameterize(
266 NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
267 log_level=log_level))
269 OSComponentTestCase.parameterize(
270 NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
271 log_level=log_level))
273 OSComponentTestCase.parameterize(
274 HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
275 log_level=log_level))
277 OSComponentTestCase.parameterize(
278 CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
279 log_level=log_level))
282 def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
283 image_metadata=None, log_level=logging.INFO):
285 Adds tests written to exercise all existing OpenStack APIs
286 :param suite: the unittest.TestSuite object to which to add the tests
287 :param os_creds: Instance of OSCreds that holds the credentials
288 required by OpenStack
289 :param ext_net_name: the name of an external network on the cloud under
291 :param use_keystone: when True, tests requiring direct access to Keystone
292 are added as these need to be running on a host that
293 has access to the cloud's private network
294 :param image_metadata: dict() object containing metadata for creating an
295 image with custom config
296 (see YAML files in examples/image-metadata)
297 :param log_level: the logging level
298 :return: None as the tests will be adding to the 'suite' parameter object
300 # Tests the OpenStack API calls
302 suite.addTest(OSComponentTestCase.parameterize(
303 KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
304 log_level=log_level))
305 suite.addTest(OSComponentTestCase.parameterize(
306 CreateUserSuccessTests, os_creds=os_creds,
307 ext_net_name=ext_net_name, log_level=log_level))
308 suite.addTest(OSComponentTestCase.parameterize(
309 CreateProjectSuccessTests, os_creds=os_creds,
310 ext_net_name=ext_net_name, log_level=log_level))
311 suite.addTest(OSComponentTestCase.parameterize(
312 CreateProjectUserTests, os_creds=os_creds,
313 ext_net_name=ext_net_name, log_level=log_level))
315 suite.addTest(OSComponentTestCase.parameterize(
316 GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
317 image_metadata=image_metadata,
318 log_level=log_level))
319 suite.addTest(OSComponentTestCase.parameterize(
320 NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
321 log_level=log_level))
322 suite.addTest(OSComponentTestCase.parameterize(
323 NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
324 log_level=log_level))
325 suite.addTest(OSComponentTestCase.parameterize(
326 NeutronUtilsIPv6Tests, os_creds=os_creds, ext_net_name=ext_net_name,
327 log_level=log_level))
328 suite.addTest(OSComponentTestCase.parameterize(
329 NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
330 log_level=log_level))
331 suite.addTest(OSComponentTestCase.parameterize(
332 NeutronUtilsSecurityGroupTests, os_creds=os_creds,
333 ext_net_name=ext_net_name, log_level=log_level))
334 suite.addTest(OSComponentTestCase.parameterize(
335 NeutronUtilsFloatingIpTests, os_creds=os_creds,
336 ext_net_name=ext_net_name, log_level=log_level))
337 suite.addTest(OSComponentTestCase.parameterize(
338 NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
339 log_level=log_level))
340 suite.addTest(OSComponentTestCase.parameterize(
341 NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
342 log_level=log_level))
343 suite.addTest(OSComponentTestCase.parameterize(
344 NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
345 log_level=log_level, image_metadata=image_metadata))
346 suite.addTest(OSComponentTestCase.parameterize(
347 NovaUtilsInstanceVolumeTests, os_creds=os_creds,
348 ext_net_name=ext_net_name, log_level=log_level,
349 image_metadata=image_metadata))
350 suite.addTest(OSComponentTestCase.parameterize(
351 CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
352 log_level=log_level))
353 suite.addTest(OSComponentTestCase.parameterize(
354 HeatUtilsCreateSimpleStackTests, os_creds=os_creds,
355 ext_net_name=ext_net_name, log_level=log_level,
356 image_metadata=image_metadata))
357 suite.addTest(OSComponentTestCase.parameterize(
358 HeatUtilsCreateComplexStackTests, os_creds=os_creds,
359 ext_net_name=ext_net_name, log_level=log_level,
360 image_metadata=image_metadata))
361 suite.addTest(OSComponentTestCase.parameterize(
362 HeatUtilsFlavorTests, os_creds=os_creds,
363 ext_net_name=ext_net_name, log_level=log_level,
364 image_metadata=image_metadata))
365 suite.addTest(OSComponentTestCase.parameterize(
366 HeatUtilsKeypairTests, os_creds=os_creds,
367 ext_net_name=ext_net_name, log_level=log_level,
368 image_metadata=image_metadata))
369 suite.addTest(OSComponentTestCase.parameterize(
370 HeatUtilsSecurityGroupTests, os_creds=os_creds,
371 ext_net_name=ext_net_name, log_level=log_level,
372 image_metadata=image_metadata))
373 suite.addTest(OSComponentTestCase.parameterize(
374 CinderUtilsQoSTests, os_creds=os_creds,
375 ext_net_name=ext_net_name, log_level=log_level,
376 image_metadata=image_metadata))
377 suite.addTest(OSComponentTestCase.parameterize(
378 CinderUtilsVolumeTests, os_creds=os_creds,
379 ext_net_name=ext_net_name, log_level=log_level,
380 image_metadata=image_metadata))
381 suite.addTest(OSComponentTestCase.parameterize(
382 CinderUtilsSimpleVolumeTypeTests, os_creds=os_creds,
383 ext_net_name=ext_net_name, log_level=log_level,
384 image_metadata=image_metadata))
385 suite.addTest(OSComponentTestCase.parameterize(
386 CinderUtilsAddEncryptionTests, os_creds=os_creds,
387 ext_net_name=ext_net_name, log_level=log_level,
388 image_metadata=image_metadata))
389 suite.addTest(OSComponentTestCase.parameterize(
390 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
391 ext_net_name=ext_net_name, log_level=log_level,
392 image_metadata=image_metadata))
395 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
396 use_keystone=True, flavor_metadata=None,
397 image_metadata=None, use_floating_ips=True,
398 log_level=logging.INFO):
400 Adds tests written to exercise all long-running OpenStack integration tests
401 meaning they will be creating VM instances and potentially performing some
402 SSH functions through floatingIPs
403 :param suite: the unittest.TestSuite object to which to add the tests
404 :param os_creds: and instance of OSCreds that holds the credentials
405 required by OpenStack
406 :param ext_net_name: the name of an external network on the cloud under
408 :param use_keystone: when True, tests requiring direct access to Keystone
409 are added as these need to be running on a host that
410 has access to the cloud's private network
411 :param image_metadata: dict() object containing metadata for creating an
412 image with custom config
413 (see YAML files in examples/image-metadata)
414 :param flavor_metadata: dict() object containing the metadata required by
415 your flavor based on your configuration:
416 (i.e. {'hw:mem_page_size': 'large'})
417 :param use_floating_ips: when true, all tests requiring Floating IPs will
418 be added to the suite
419 :param log_level: the logging level
420 :return: None as the tests will be adding to the 'suite' parameter object
422 # Tests the OpenStack API calls via a creator. If use_keystone, objects
423 # will be created with a custom user and project
425 # Creator Object tests
426 suite.addTest(OSIntegrationTestCase.parameterize(
427 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
428 use_keystone=use_keystone,
429 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
430 log_level=log_level))
431 suite.addTest(OSIntegrationTestCase.parameterize(
432 CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
433 use_keystone=use_keystone,
434 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
435 log_level=log_level))
436 suite.addTest(OSIntegrationTestCase.parameterize(
437 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
438 use_keystone=use_keystone,
439 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
440 log_level=log_level))
441 suite.addTest(OSIntegrationTestCase.parameterize(
442 CreateMultiPartImageTests, os_creds=os_creds,
443 ext_net_name=ext_net_name, use_keystone=use_keystone,
444 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
445 log_level=log_level))
446 suite.addTest(OSIntegrationTestCase.parameterize(
447 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
448 use_keystone=use_keystone,
449 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
450 log_level=log_level))
451 suite.addTest(OSIntegrationTestCase.parameterize(
452 CreateKeypairsCleanupTests, os_creds=os_creds,
453 ext_net_name=ext_net_name,
454 use_keystone=use_keystone,
455 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
456 log_level=log_level))
457 suite.addTest(OSIntegrationTestCase.parameterize(
458 CreateNetworkSuccessTests, os_creds=os_creds,
459 ext_net_name=ext_net_name, use_keystone=use_keystone,
460 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
461 log_level=log_level))
462 suite.addTest(OSIntegrationTestCase.parameterize(
463 CreateNetworkIPv6Tests, os_creds=os_creds,
464 ext_net_name=ext_net_name, use_keystone=use_keystone,
465 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
466 log_level=log_level))
467 suite.addTest(OSIntegrationTestCase.parameterize(
468 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
469 use_keystone=use_keystone,
470 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
471 log_level=log_level))
472 suite.addTest(OSIntegrationTestCase.parameterize(
473 CreateRouterNegativeTests, os_creds=os_creds,
474 ext_net_name=ext_net_name, use_keystone=use_keystone,
475 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
476 log_level=log_level))
477 suite.addTest(OSIntegrationTestCase.parameterize(
478 CreateQoSTests, os_creds=os_creds,
479 ext_net_name=ext_net_name, use_keystone=use_keystone,
480 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
481 log_level=log_level))
482 suite.addTest(OSIntegrationTestCase.parameterize(
483 CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
484 ext_net_name=ext_net_name, use_keystone=use_keystone,
485 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
486 log_level=log_level))
487 suite.addTest(OSIntegrationTestCase.parameterize(
488 CreateVolumeTypeComplexTests, os_creds=os_creds,
489 ext_net_name=ext_net_name, use_keystone=use_keystone,
490 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
491 log_level=log_level))
492 suite.addTest(OSIntegrationTestCase.parameterize(
493 CreateSimpleVolumeSuccessTests, os_creds=os_creds,
494 ext_net_name=ext_net_name, use_keystone=use_keystone,
495 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
496 log_level=log_level))
497 suite.addTest(OSIntegrationTestCase.parameterize(
498 CreateSimpleVolumeFailureTests, os_creds=os_creds,
499 ext_net_name=ext_net_name, use_keystone=use_keystone,
500 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
501 log_level=log_level))
502 suite.addTest(OSIntegrationTestCase.parameterize(
503 CreateVolumeWithTypeTests, os_creds=os_creds,
504 ext_net_name=ext_net_name, use_keystone=use_keystone,
505 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
506 log_level=log_level))
507 suite.addTest(OSIntegrationTestCase.parameterize(
508 CreateVolumeWithImageTests, os_creds=os_creds,
509 ext_net_name=ext_net_name, use_keystone=use_keystone,
510 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
511 log_level=log_level))
514 suite.addTest(OSIntegrationTestCase.parameterize(
515 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
516 use_keystone=use_keystone,
517 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
518 log_level=log_level))
519 suite.addTest(OSIntegrationTestCase.parameterize(
520 CreateInstanceTwoNetTests, os_creds=os_creds,
521 ext_net_name=ext_net_name, use_keystone=use_keystone,
522 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
523 log_level=log_level))
524 suite.addTest(OSIntegrationTestCase.parameterize(
525 CreateInstanceSimpleTests, os_creds=os_creds,
526 ext_net_name=ext_net_name, use_keystone=use_keystone,
527 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
528 log_level=log_level))
529 suite.addTest(OSIntegrationTestCase.parameterize(
530 CreateInstancePortManipulationTests, os_creds=os_creds,
531 ext_net_name=ext_net_name, use_keystone=use_keystone,
532 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
533 log_level=log_level))
534 suite.addTest(OSIntegrationTestCase.parameterize(
535 InstanceSecurityGroupTests, os_creds=os_creds,
536 ext_net_name=ext_net_name, use_keystone=use_keystone,
537 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
538 log_level=log_level))
539 suite.addTest(OSIntegrationTestCase.parameterize(
540 CreateInstanceOnComputeHost, os_creds=os_creds,
541 ext_net_name=ext_net_name, use_keystone=use_keystone,
542 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
543 log_level=log_level))
544 suite.addTest(OSIntegrationTestCase.parameterize(
545 CreateInstanceFromThreePartImage, os_creds=os_creds,
546 ext_net_name=ext_net_name, use_keystone=use_keystone,
547 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
548 log_level=log_level))
549 suite.addTest(OSIntegrationTestCase.parameterize(
550 CreateInstanceVolumeTests, os_creds=os_creds,
551 ext_net_name=ext_net_name, use_keystone=use_keystone,
552 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
553 log_level=log_level))
554 suite.addTest(OSIntegrationTestCase.parameterize(
555 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
556 use_keystone=use_keystone,
557 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
558 log_level=log_level))
559 suite.addTest(OSIntegrationTestCase.parameterize(
560 CreateStackVolumeTests, os_creds=os_creds, ext_net_name=ext_net_name,
561 use_keystone=use_keystone,
562 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
563 log_level=log_level))
564 suite.addTest(OSIntegrationTestCase.parameterize(
565 CreateStackFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
566 use_keystone=use_keystone,
567 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
568 log_level=log_level))
569 suite.addTest(OSIntegrationTestCase.parameterize(
570 CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
571 use_keystone=use_keystone,
572 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
573 log_level=log_level))
574 suite.addTest(OSIntegrationTestCase.parameterize(
575 CreateStackSecurityGroupTests, os_creds=os_creds,
576 ext_net_name=ext_net_name, use_keystone=use_keystone,
577 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
578 log_level=log_level))
579 suite.addTest(OSIntegrationTestCase.parameterize(
580 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
581 use_keystone=use_keystone,
582 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
583 log_level=log_level))
586 suite.addTest(OSIntegrationTestCase.parameterize(
587 CreateInstanceSingleNetworkTests, os_creds=os_creds,
588 ext_net_name=ext_net_name, use_keystone=use_keystone,
589 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
590 log_level=log_level))
591 suite.addTest(OSIntegrationTestCase.parameterize(
592 CreateStackFloatingIpTests, os_creds=os_creds,
593 ext_net_name=ext_net_name, use_keystone=use_keystone,
594 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
595 log_level=log_level))
596 suite.addTest(OSIntegrationTestCase.parameterize(
597 AnsibleProvisioningTests, os_creds=os_creds,
598 ext_net_name=ext_net_name, use_keystone=use_keystone,
599 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
600 log_level=log_level))
603 def add_openstack_ci_tests(
604 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
605 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
607 Adds tests written for a CI server to run the tests to validate code
609 :param suite: the unittest.TestSuite object to which to add the tests
610 :param os_creds: and instance of OSCreds that holds the credentials
611 required by OpenStack
612 :param ext_net_name: the name of an external network on the cloud under
614 :param use_keystone: when True, tests requiring direct access to Keystone
615 are added as these need to be running on a host that
616 has access to the cloud's private network
617 :param image_metadata: dict() object containing metadata for creating an
618 image with custom config
619 (see YAML files in examples/image-metadata)
620 :param flavor_metadata: dict() object containing the metadata required by
621 your flavor based on your configuration:
622 (i.e. {'hw:mem_page_size': 'large'})
623 :param use_floating_ips: when true, all tests requiring Floating IPs will
624 be added to the suite
625 :param log_level: the logging level
626 :return: None as the tests will be adding to the 'suite' parameter object
629 add_unit_tests(suite)
631 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
634 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
635 image_metadata, log_level)
637 suite.addTest(OSIntegrationTestCase.parameterize(
638 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
639 use_keystone=use_keystone,
640 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
641 log_level=log_level))
644 suite.addTest(OSIntegrationTestCase.parameterize(
645 CreateInstanceSingleNetworkTests, os_creds=os_creds,
646 ext_net_name=ext_net_name, use_keystone=use_keystone,
647 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
648 log_level=log_level))
650 suite.addTest(OSIntegrationTestCase.parameterize(
651 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
652 use_keystone=use_keystone,
653 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
654 log_level=log_level))
655 suite.addTest(OSIntegrationTestCase.parameterize(
656 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
657 use_keystone=use_keystone,
658 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
659 log_level=log_level))
662 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
663 log_level=logging.INFO):
665 Adds tests that are still in development have not been designed to run
666 successfully against all OpenStack pods
667 :param suite: the unittest.TestSuite object to which to add the tests
668 :param os_creds: Instance of OSCreds that holds the credentials
669 required by OpenStack
670 :param ext_net_name: the name of an external network on the cloud under
672 :param log_level: the logging level
673 :return: None as the tests will be adding to the 'suite' parameter object
675 suite.addTest(OSComponentTestCase.parameterize(
676 CreateNetworkTypeTests, os_creds=os_creds,
677 ext_net_name=ext_net_name, log_level=log_level))
678 suite.addTest(OSComponentTestCase.parameterize(
679 CreateInstanceMockOfflineTests, os_creds=os_creds,
680 ext_net_name=ext_net_name, log_level=log_level))
681 suite.addTest(OSIntegrationTestCase.parameterize(
682 CreateInstancePubPrivNetTests, os_creds=os_creds,
683 ext_net_name=ext_net_name, log_level=log_level))
684 suite.addTest(OSIntegrationTestCase.parameterize(
685 CreateInstanceIPv6NetworkTests, os_creds=os_creds,
686 ext_net_name=ext_net_name, log_level=log_level))
687 suite.addTest(OSComponentTestCase.parameterize(
688 HeatUtilsVolumeTests, os_creds=os_creds,
689 ext_net_name=ext_net_name, log_level=log_level))
690 suite.addTest(OSComponentTestCase.parameterize(
691 MagnumSmokeTests, os_creds=os_creds,
692 ext_net_name=ext_net_name, log_level=log_level))