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