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 HeatUtilsFlavorTests, 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 HeatUtilsKeypairTests, 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 HeatUtilsSecurityGroupTests, 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 CinderUtilsQoSTests, 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 CinderUtilsVolumeTests, 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 CinderUtilsSimpleVolumeTypeTests, 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 CinderUtilsAddEncryptionTests, 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 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
361 ext_net_name=ext_net_name, log_level=log_level,
362 image_metadata=image_metadata))
365 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
366 use_keystone=True, flavor_metadata=None,
367 image_metadata=None, use_floating_ips=True,
368 log_level=logging.INFO):
370 Adds tests written to exercise all long-running OpenStack integration tests
371 meaning they will be creating VM instances and potentially performing some
372 SSH functions through floatingIPs
373 :param suite: the unittest.TestSuite object to which to add the tests
374 :param os_creds: and instance of OSCreds that holds the credentials
375 required by OpenStack
376 :param ext_net_name: the name of an external network on the cloud under
378 :param use_keystone: when True, tests requiring direct access to Keystone
379 are added as these need to be running on a host that
380 has access to the cloud's private network
381 :param image_metadata: dict() object containing metadata for creating an
382 image with custom config
383 (see YAML files in examples/image-metadata)
384 :param flavor_metadata: dict() object containing the metadata required by
385 your flavor based on your configuration:
386 (i.e. {'hw:mem_page_size': 'large'})
387 :param use_floating_ips: when true, all tests requiring Floating IPs will
388 be added to the suite
389 :param log_level: the logging level
390 :return: None as the tests will be adding to the 'suite' parameter object
392 # Tests the OpenStack API calls via a creator. If use_keystone, objects
393 # will be created with a custom user and project
395 # Creator Object tests
396 suite.addTest(OSIntegrationTestCase.parameterize(
397 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
398 use_keystone=use_keystone,
399 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
400 log_level=log_level))
401 suite.addTest(OSIntegrationTestCase.parameterize(
402 CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
403 use_keystone=use_keystone,
404 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
405 log_level=log_level))
406 suite.addTest(OSIntegrationTestCase.parameterize(
407 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
408 use_keystone=use_keystone,
409 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
410 log_level=log_level))
411 suite.addTest(OSIntegrationTestCase.parameterize(
412 CreateMultiPartImageTests, os_creds=os_creds,
413 ext_net_name=ext_net_name, use_keystone=use_keystone,
414 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
415 log_level=log_level))
416 suite.addTest(OSIntegrationTestCase.parameterize(
417 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
418 use_keystone=use_keystone,
419 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
420 log_level=log_level))
421 suite.addTest(OSIntegrationTestCase.parameterize(
422 CreateKeypairsCleanupTests, os_creds=os_creds,
423 ext_net_name=ext_net_name,
424 use_keystone=use_keystone,
425 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
426 log_level=log_level))
427 suite.addTest(OSIntegrationTestCase.parameterize(
428 CreateNetworkSuccessTests, os_creds=os_creds,
429 ext_net_name=ext_net_name, use_keystone=use_keystone,
430 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
431 log_level=log_level))
432 suite.addTest(OSIntegrationTestCase.parameterize(
433 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
434 use_keystone=use_keystone,
435 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
436 log_level=log_level))
437 suite.addTest(OSIntegrationTestCase.parameterize(
438 CreateRouterNegativeTests, os_creds=os_creds,
439 ext_net_name=ext_net_name, use_keystone=use_keystone,
440 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
441 log_level=log_level))
442 suite.addTest(OSIntegrationTestCase.parameterize(
443 CreateQoSTests, os_creds=os_creds,
444 ext_net_name=ext_net_name, use_keystone=use_keystone,
445 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
446 log_level=log_level))
447 suite.addTest(OSIntegrationTestCase.parameterize(
448 CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
449 ext_net_name=ext_net_name, use_keystone=use_keystone,
450 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
451 log_level=log_level))
452 suite.addTest(OSIntegrationTestCase.parameterize(
453 CreateVolumeTypeComplexTests, os_creds=os_creds,
454 ext_net_name=ext_net_name, use_keystone=use_keystone,
455 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
456 log_level=log_level))
457 suite.addTest(OSIntegrationTestCase.parameterize(
458 CreateSimpleVolumeSuccessTests, os_creds=os_creds,
459 ext_net_name=ext_net_name, use_keystone=use_keystone,
460 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
461 log_level=log_level))
462 suite.addTest(OSIntegrationTestCase.parameterize(
463 CreateSimpleVolumeFailureTests, os_creds=os_creds,
464 ext_net_name=ext_net_name, use_keystone=use_keystone,
465 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
466 log_level=log_level))
467 suite.addTest(OSIntegrationTestCase.parameterize(
468 CreateVolumeWithTypeTests, os_creds=os_creds,
469 ext_net_name=ext_net_name, use_keystone=use_keystone,
470 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
471 log_level=log_level))
472 suite.addTest(OSIntegrationTestCase.parameterize(
473 CreateVolumeWithImageTests, os_creds=os_creds,
474 ext_net_name=ext_net_name, use_keystone=use_keystone,
475 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
476 log_level=log_level))
479 suite.addTest(OSIntegrationTestCase.parameterize(
480 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
481 use_keystone=use_keystone,
482 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
483 log_level=log_level))
484 suite.addTest(OSIntegrationTestCase.parameterize(
485 CreateInstanceTwoNetTests, 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 CreateInstanceSimpleTests, 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 CreateInstancePortManipulationTests, 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 InstanceSecurityGroupTests, 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 CreateInstanceOnComputeHost, 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))
509 suite.addTest(OSIntegrationTestCase.parameterize(
510 CreateInstanceFromThreePartImage, os_creds=os_creds,
511 ext_net_name=ext_net_name, use_keystone=use_keystone,
512 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
513 log_level=log_level))
514 suite.addTest(OSIntegrationTestCase.parameterize(
515 CreateInstanceVolumeTests, os_creds=os_creds,
516 ext_net_name=ext_net_name, use_keystone=use_keystone,
517 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
518 log_level=log_level))
519 suite.addTest(OSIntegrationTestCase.parameterize(
520 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
521 use_keystone=use_keystone,
522 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
523 log_level=log_level))
524 suite.addTest(OSIntegrationTestCase.parameterize(
525 CreateStackVolumeTests, os_creds=os_creds, ext_net_name=ext_net_name,
526 use_keystone=use_keystone,
527 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
528 log_level=log_level))
529 suite.addTest(OSIntegrationTestCase.parameterize(
530 CreateStackFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
531 use_keystone=use_keystone,
532 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
533 log_level=log_level))
534 suite.addTest(OSIntegrationTestCase.parameterize(
535 CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
536 use_keystone=use_keystone,
537 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
538 log_level=log_level))
539 suite.addTest(OSIntegrationTestCase.parameterize(
540 CreateStackSecurityGroupTests, os_creds=os_creds,
541 ext_net_name=ext_net_name, use_keystone=use_keystone,
542 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
543 log_level=log_level))
544 suite.addTest(OSIntegrationTestCase.parameterize(
545 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
546 use_keystone=use_keystone,
547 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
548 log_level=log_level))
551 suite.addTest(OSIntegrationTestCase.parameterize(
552 CreateInstanceSingleNetworkTests, os_creds=os_creds,
553 ext_net_name=ext_net_name, use_keystone=use_keystone,
554 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
555 log_level=log_level))
556 suite.addTest(OSIntegrationTestCase.parameterize(
557 CreateStackFloatingIpTests, os_creds=os_creds,
558 ext_net_name=ext_net_name, use_keystone=use_keystone,
559 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
560 log_level=log_level))
561 suite.addTest(OSIntegrationTestCase.parameterize(
562 AnsibleProvisioningTests, os_creds=os_creds,
563 ext_net_name=ext_net_name, use_keystone=use_keystone,
564 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
565 log_level=log_level))
568 def add_openstack_ci_tests(
569 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
570 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
572 Adds tests written for a CI server to run the tests to validate code
574 :param suite: the unittest.TestSuite object to which to add the tests
575 :param os_creds: and instance of OSCreds that holds the credentials
576 required by OpenStack
577 :param ext_net_name: the name of an external network on the cloud under
579 :param use_keystone: when True, tests requiring direct access to Keystone
580 are added as these need to be running on a host that
581 has access to the cloud's private network
582 :param image_metadata: dict() object containing metadata for creating an
583 image with custom config
584 (see YAML files in examples/image-metadata)
585 :param flavor_metadata: dict() object containing the metadata required by
586 your flavor based on your configuration:
587 (i.e. {'hw:mem_page_size': 'large'})
588 :param use_floating_ips: when true, all tests requiring Floating IPs will
589 be added to the suite
590 :param log_level: the logging level
591 :return: None as the tests will be adding to the 'suite' parameter object
594 add_unit_tests(suite)
596 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
599 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
600 image_metadata, log_level)
602 suite.addTest(OSIntegrationTestCase.parameterize(
603 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
604 use_keystone=use_keystone,
605 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
606 log_level=log_level))
609 suite.addTest(OSIntegrationTestCase.parameterize(
610 CreateInstanceSingleNetworkTests, os_creds=os_creds,
611 ext_net_name=ext_net_name, use_keystone=use_keystone,
612 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
613 log_level=log_level))
615 suite.addTest(OSIntegrationTestCase.parameterize(
616 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
617 use_keystone=use_keystone,
618 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
619 log_level=log_level))
620 suite.addTest(OSIntegrationTestCase.parameterize(
621 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
622 use_keystone=use_keystone,
623 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
624 log_level=log_level))
627 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
628 log_level=logging.INFO):
630 Adds tests that are still in development have not been designed to run
631 successfully against all OpenStack pods
632 :param suite: the unittest.TestSuite object to which to add the tests
633 :param os_creds: Instance of OSCreds that holds the credentials
634 required by OpenStack
635 :param ext_net_name: the name of an external network on the cloud under
637 :param log_level: the logging level
638 :return: None as the tests will be adding to the 'suite' parameter object
640 suite.addTest(OSComponentTestCase.parameterize(
641 CreateNetworkTypeTests, os_creds=os_creds, ext_net_name=ext_net_name,
642 log_level=log_level))
643 suite.addTest(OSComponentTestCase.parameterize(
644 CreateInstanceMockOfflineTests, os_creds=os_creds,
645 ext_net_name=ext_net_name, log_level=log_level))
646 suite.addTest(OSIntegrationTestCase.parameterize(
647 CreateInstancePubPrivNetTests, os_creds=os_creds,
648 ext_net_name=ext_net_name, log_level=log_level))
649 suite.addTest(OSComponentTestCase.parameterize(
650 HeatUtilsVolumeTests, os_creds=os_creds,
651 ext_net_name=ext_net_name, log_level=log_level))