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