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, CreateInstanceIPv6NetworkTests)
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, CreateNetworkIPv6Tests)
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, NeutronUtilsIPv6Tests)
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 NeutronUtilsIPv6Tests, os_creds=os_creds, ext_net_name=ext_net_name,
300 log_level=log_level))
301 suite.addTest(OSComponentTestCase.parameterize(
302 NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
303 log_level=log_level))
304 suite.addTest(OSComponentTestCase.parameterize(
305 NeutronUtilsSecurityGroupTests, os_creds=os_creds,
306 ext_net_name=ext_net_name, log_level=log_level))
307 suite.addTest(OSComponentTestCase.parameterize(
308 NeutronUtilsFloatingIpTests, os_creds=os_creds,
309 ext_net_name=ext_net_name, log_level=log_level))
310 suite.addTest(OSComponentTestCase.parameterize(
311 NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
312 log_level=log_level))
313 suite.addTest(OSComponentTestCase.parameterize(
314 NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
315 log_level=log_level))
316 suite.addTest(OSComponentTestCase.parameterize(
317 NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
318 log_level=log_level, image_metadata=image_metadata))
319 suite.addTest(OSComponentTestCase.parameterize(
320 NovaUtilsInstanceVolumeTests, os_creds=os_creds,
321 ext_net_name=ext_net_name, log_level=log_level,
322 image_metadata=image_metadata))
323 suite.addTest(OSComponentTestCase.parameterize(
324 CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
325 log_level=log_level))
326 suite.addTest(OSComponentTestCase.parameterize(
327 HeatUtilsCreateSimpleStackTests, os_creds=os_creds,
328 ext_net_name=ext_net_name, log_level=log_level,
329 image_metadata=image_metadata))
330 suite.addTest(OSComponentTestCase.parameterize(
331 HeatUtilsCreateComplexStackTests, os_creds=os_creds,
332 ext_net_name=ext_net_name, log_level=log_level,
333 image_metadata=image_metadata))
334 suite.addTest(OSComponentTestCase.parameterize(
335 HeatUtilsFlavorTests, os_creds=os_creds,
336 ext_net_name=ext_net_name, log_level=log_level,
337 image_metadata=image_metadata))
338 suite.addTest(OSComponentTestCase.parameterize(
339 HeatUtilsKeypairTests, os_creds=os_creds,
340 ext_net_name=ext_net_name, log_level=log_level,
341 image_metadata=image_metadata))
342 suite.addTest(OSComponentTestCase.parameterize(
343 HeatUtilsSecurityGroupTests, os_creds=os_creds,
344 ext_net_name=ext_net_name, log_level=log_level,
345 image_metadata=image_metadata))
346 suite.addTest(OSComponentTestCase.parameterize(
347 CinderUtilsQoSTests, os_creds=os_creds,
348 ext_net_name=ext_net_name, log_level=log_level,
349 image_metadata=image_metadata))
350 suite.addTest(OSComponentTestCase.parameterize(
351 CinderUtilsVolumeTests, 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 CinderUtilsSimpleVolumeTypeTests, 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 CinderUtilsAddEncryptionTests, 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 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
364 ext_net_name=ext_net_name, log_level=log_level,
365 image_metadata=image_metadata))
368 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
369 use_keystone=True, flavor_metadata=None,
370 image_metadata=None, use_floating_ips=True,
371 log_level=logging.INFO):
373 Adds tests written to exercise all long-running OpenStack integration tests
374 meaning they will be creating VM instances and potentially performing some
375 SSH functions through floatingIPs
376 :param suite: the unittest.TestSuite object to which to add the tests
377 :param os_creds: and instance of OSCreds that holds the credentials
378 required by OpenStack
379 :param ext_net_name: the name of an external network on the cloud under
381 :param use_keystone: when True, tests requiring direct access to Keystone
382 are added as these need to be running on a host that
383 has access to the cloud's private network
384 :param image_metadata: dict() object containing metadata for creating an
385 image with custom config
386 (see YAML files in examples/image-metadata)
387 :param flavor_metadata: dict() object containing the metadata required by
388 your flavor based on your configuration:
389 (i.e. {'hw:mem_page_size': 'large'})
390 :param use_floating_ips: when true, all tests requiring Floating IPs will
391 be added to the suite
392 :param log_level: the logging level
393 :return: None as the tests will be adding to the 'suite' parameter object
395 # Tests the OpenStack API calls via a creator. If use_keystone, objects
396 # will be created with a custom user and project
398 # Creator Object tests
399 suite.addTest(OSIntegrationTestCase.parameterize(
400 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
401 use_keystone=use_keystone,
402 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
403 log_level=log_level))
404 suite.addTest(OSIntegrationTestCase.parameterize(
405 CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
406 use_keystone=use_keystone,
407 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
408 log_level=log_level))
409 suite.addTest(OSIntegrationTestCase.parameterize(
410 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
411 use_keystone=use_keystone,
412 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
413 log_level=log_level))
414 suite.addTest(OSIntegrationTestCase.parameterize(
415 CreateMultiPartImageTests, os_creds=os_creds,
416 ext_net_name=ext_net_name, use_keystone=use_keystone,
417 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
418 log_level=log_level))
419 suite.addTest(OSIntegrationTestCase.parameterize(
420 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
421 use_keystone=use_keystone,
422 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
423 log_level=log_level))
424 suite.addTest(OSIntegrationTestCase.parameterize(
425 CreateKeypairsCleanupTests, os_creds=os_creds,
426 ext_net_name=ext_net_name,
427 use_keystone=use_keystone,
428 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
429 log_level=log_level))
430 suite.addTest(OSIntegrationTestCase.parameterize(
431 CreateNetworkSuccessTests, os_creds=os_creds,
432 ext_net_name=ext_net_name, use_keystone=use_keystone,
433 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
434 log_level=log_level))
435 suite.addTest(OSIntegrationTestCase.parameterize(
436 CreateNetworkIPv6Tests, os_creds=os_creds,
437 ext_net_name=ext_net_name, use_keystone=use_keystone,
438 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
439 log_level=log_level))
440 suite.addTest(OSIntegrationTestCase.parameterize(
441 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
442 use_keystone=use_keystone,
443 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
444 log_level=log_level))
445 suite.addTest(OSIntegrationTestCase.parameterize(
446 CreateRouterNegativeTests, os_creds=os_creds,
447 ext_net_name=ext_net_name, use_keystone=use_keystone,
448 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
449 log_level=log_level))
450 suite.addTest(OSIntegrationTestCase.parameterize(
451 CreateQoSTests, os_creds=os_creds,
452 ext_net_name=ext_net_name, use_keystone=use_keystone,
453 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
454 log_level=log_level))
455 suite.addTest(OSIntegrationTestCase.parameterize(
456 CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
457 ext_net_name=ext_net_name, use_keystone=use_keystone,
458 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
459 log_level=log_level))
460 suite.addTest(OSIntegrationTestCase.parameterize(
461 CreateVolumeTypeComplexTests, os_creds=os_creds,
462 ext_net_name=ext_net_name, use_keystone=use_keystone,
463 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
464 log_level=log_level))
465 suite.addTest(OSIntegrationTestCase.parameterize(
466 CreateSimpleVolumeSuccessTests, os_creds=os_creds,
467 ext_net_name=ext_net_name, use_keystone=use_keystone,
468 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
469 log_level=log_level))
470 suite.addTest(OSIntegrationTestCase.parameterize(
471 CreateSimpleVolumeFailureTests, os_creds=os_creds,
472 ext_net_name=ext_net_name, use_keystone=use_keystone,
473 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
474 log_level=log_level))
475 suite.addTest(OSIntegrationTestCase.parameterize(
476 CreateVolumeWithTypeTests, os_creds=os_creds,
477 ext_net_name=ext_net_name, use_keystone=use_keystone,
478 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
479 log_level=log_level))
480 suite.addTest(OSIntegrationTestCase.parameterize(
481 CreateVolumeWithImageTests, os_creds=os_creds,
482 ext_net_name=ext_net_name, use_keystone=use_keystone,
483 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
484 log_level=log_level))
487 suite.addTest(OSIntegrationTestCase.parameterize(
488 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
489 use_keystone=use_keystone,
490 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
491 log_level=log_level))
492 suite.addTest(OSIntegrationTestCase.parameterize(
493 CreateInstanceTwoNetTests, os_creds=os_creds,
494 ext_net_name=ext_net_name, use_keystone=use_keystone,
495 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
496 log_level=log_level))
497 suite.addTest(OSIntegrationTestCase.parameterize(
498 CreateInstanceSimpleTests, os_creds=os_creds,
499 ext_net_name=ext_net_name, use_keystone=use_keystone,
500 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
501 log_level=log_level))
502 suite.addTest(OSIntegrationTestCase.parameterize(
503 CreateInstancePortManipulationTests, os_creds=os_creds,
504 ext_net_name=ext_net_name, use_keystone=use_keystone,
505 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
506 log_level=log_level))
507 suite.addTest(OSIntegrationTestCase.parameterize(
508 InstanceSecurityGroupTests, os_creds=os_creds,
509 ext_net_name=ext_net_name, use_keystone=use_keystone,
510 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
511 log_level=log_level))
512 suite.addTest(OSIntegrationTestCase.parameterize(
513 CreateInstanceOnComputeHost, os_creds=os_creds,
514 ext_net_name=ext_net_name, use_keystone=use_keystone,
515 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
516 log_level=log_level))
517 suite.addTest(OSIntegrationTestCase.parameterize(
518 CreateInstanceFromThreePartImage, os_creds=os_creds,
519 ext_net_name=ext_net_name, use_keystone=use_keystone,
520 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
521 log_level=log_level))
522 suite.addTest(OSIntegrationTestCase.parameterize(
523 CreateInstanceVolumeTests, os_creds=os_creds,
524 ext_net_name=ext_net_name, use_keystone=use_keystone,
525 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
526 log_level=log_level))
527 suite.addTest(OSIntegrationTestCase.parameterize(
528 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
529 use_keystone=use_keystone,
530 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
531 log_level=log_level))
532 suite.addTest(OSIntegrationTestCase.parameterize(
533 CreateStackVolumeTests, os_creds=os_creds, ext_net_name=ext_net_name,
534 use_keystone=use_keystone,
535 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
536 log_level=log_level))
537 suite.addTest(OSIntegrationTestCase.parameterize(
538 CreateStackFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
539 use_keystone=use_keystone,
540 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
541 log_level=log_level))
542 suite.addTest(OSIntegrationTestCase.parameterize(
543 CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
544 use_keystone=use_keystone,
545 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
546 log_level=log_level))
547 suite.addTest(OSIntegrationTestCase.parameterize(
548 CreateStackSecurityGroupTests, os_creds=os_creds,
549 ext_net_name=ext_net_name, use_keystone=use_keystone,
550 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
551 log_level=log_level))
552 suite.addTest(OSIntegrationTestCase.parameterize(
553 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
554 use_keystone=use_keystone,
555 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
556 log_level=log_level))
559 suite.addTest(OSIntegrationTestCase.parameterize(
560 CreateInstanceSingleNetworkTests, os_creds=os_creds,
561 ext_net_name=ext_net_name, use_keystone=use_keystone,
562 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
563 log_level=log_level))
564 suite.addTest(OSIntegrationTestCase.parameterize(
565 CreateStackFloatingIpTests, os_creds=os_creds,
566 ext_net_name=ext_net_name, use_keystone=use_keystone,
567 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
568 log_level=log_level))
569 suite.addTest(OSIntegrationTestCase.parameterize(
570 AnsibleProvisioningTests, os_creds=os_creds,
571 ext_net_name=ext_net_name, use_keystone=use_keystone,
572 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
573 log_level=log_level))
576 def add_openstack_ci_tests(
577 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
578 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
580 Adds tests written for a CI server to run the tests to validate code
582 :param suite: the unittest.TestSuite object to which to add the tests
583 :param os_creds: and instance of OSCreds that holds the credentials
584 required by OpenStack
585 :param ext_net_name: the name of an external network on the cloud under
587 :param use_keystone: when True, tests requiring direct access to Keystone
588 are added as these need to be running on a host that
589 has access to the cloud's private network
590 :param image_metadata: dict() object containing metadata for creating an
591 image with custom config
592 (see YAML files in examples/image-metadata)
593 :param flavor_metadata: dict() object containing the metadata required by
594 your flavor based on your configuration:
595 (i.e. {'hw:mem_page_size': 'large'})
596 :param use_floating_ips: when true, all tests requiring Floating IPs will
597 be added to the suite
598 :param log_level: the logging level
599 :return: None as the tests will be adding to the 'suite' parameter object
602 add_unit_tests(suite)
604 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
607 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
608 image_metadata, log_level)
610 suite.addTest(OSIntegrationTestCase.parameterize(
611 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
612 use_keystone=use_keystone,
613 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
614 log_level=log_level))
617 suite.addTest(OSIntegrationTestCase.parameterize(
618 CreateInstanceSingleNetworkTests, os_creds=os_creds,
619 ext_net_name=ext_net_name, use_keystone=use_keystone,
620 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
621 log_level=log_level))
623 suite.addTest(OSIntegrationTestCase.parameterize(
624 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
625 use_keystone=use_keystone,
626 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
627 log_level=log_level))
628 suite.addTest(OSIntegrationTestCase.parameterize(
629 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
630 use_keystone=use_keystone,
631 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
632 log_level=log_level))
635 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
636 log_level=logging.INFO):
638 Adds tests that are still in development have not been designed to run
639 successfully against all OpenStack pods
640 :param suite: the unittest.TestSuite object to which to add the tests
641 :param os_creds: Instance of OSCreds that holds the credentials
642 required by OpenStack
643 :param ext_net_name: the name of an external network on the cloud under
645 :param log_level: the logging level
646 :return: None as the tests will be adding to the 'suite' parameter object
648 suite.addTest(OSComponentTestCase.parameterize(
649 CreateNetworkTypeTests, os_creds=os_creds,
650 ext_net_name=ext_net_name, log_level=log_level))
651 suite.addTest(OSComponentTestCase.parameterize(
652 CreateInstanceMockOfflineTests, os_creds=os_creds,
653 ext_net_name=ext_net_name, log_level=log_level))
654 suite.addTest(OSIntegrationTestCase.parameterize(
655 CreateInstancePubPrivNetTests, os_creds=os_creds,
656 ext_net_name=ext_net_name, log_level=log_level))
657 suite.addTest(OSIntegrationTestCase.parameterize(
658 CreateInstanceIPv6NetworkTests, os_creds=os_creds,
659 ext_net_name=ext_net_name, log_level=log_level))
660 suite.addTest(OSComponentTestCase.parameterize(
661 HeatUtilsVolumeTests, os_creds=os_creds,
662 ext_net_name=ext_net_name, log_level=log_level))