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