1 # Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs")
2 # and others. All rights reserved.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
19 from snaps.config.tests.keypair_tests import KeypairConfigUnitTests
20 from snaps.config.tests.flavor_tests import FlavorConfigUnitTests
21 import snaps.config.tests.image_tests as image_tests
22 import snaps.openstack.tests.create_image_tests as creator_tests
23 from snaps.domain.test.flavor_tests import FlavorDomainObjectTests
24 from snaps.domain.test.image_tests import ImageDomainObjectTests
25 from snaps.domain.test.keypair_tests import KeypairDomainObjectTests
26 from snaps.domain.test.network_tests import (
27 SecurityGroupDomainObjectTests, SecurityGroupRuleDomainObjectTests,
28 PortDomainObjectTests, RouterDomainObjectTests,
29 InterfaceRouterDomainObjectTests, NetworkObjectTests, SubnetObjectTests)
30 from snaps.domain.test.project_tests import (
31 ProjectDomainObjectTests, DomainDomainObjectTests,
32 ComputeQuotasDomainObjectTests, NetworkQuotasDomainObjectTests)
33 from snaps.domain.test.role_tests import RoleDomainObjectTests
34 from snaps.domain.test.stack_tests import (
35 StackDomainObjectTests, ResourceDomainObjectTests)
36 from snaps.domain.test.user_tests import UserDomainObjectTests
37 from snaps.domain.test.vm_inst_tests import (
38 VmInstDomainObjectTests, FloatingIpDomainObjectTests)
39 from snaps.domain.test.volume_tests import (
40 QoSSpecDomainObjectTests, VolumeTypeDomainObjectTests,
41 VolumeTypeEncryptionObjectTests, VolumeDomainObjectTests)
42 from snaps.openstack.tests.conf.os_credentials_tests import (
43 ProxySettingsUnitTests, OSCredsUnitTests)
44 from snaps.openstack.tests.create_flavor_tests import (
45 CreateFlavorTests, FlavorSettingsUnitTests)
46 from snaps.openstack.tests.create_image_tests import (
47 CreateImageSuccessTests, CreateImageNegativeTests,
48 CreateMultiPartImageTests)
49 from snaps.openstack.tests.create_instance_tests import (
50 CreateInstanceSingleNetworkTests, CreateInstancePubPrivNetTests,
51 CreateInstanceOnComputeHost, CreateInstanceSimpleTests,
52 FloatingIpSettingsUnitTests, InstanceSecurityGroupTests,
53 VmInstanceSettingsUnitTests, CreateInstancePortManipulationTests,
54 SimpleHealthCheck, CreateInstanceFromThreePartImage,
55 CreateInstanceMockOfflineTests, CreateInstanceTwoNetTests,
56 CreateInstanceVolumeTests, CreateInstanceIPv6NetworkTests)
57 from snaps.openstack.tests.create_keypairs_tests import (
58 CreateKeypairsTests, KeypairSettingsUnitTests, CreateKeypairsCleanupTests)
59 from snaps.openstack.tests.create_network_tests import (
60 CreateNetworkSuccessTests, NetworkSettingsUnitTests, PortSettingsUnitTests,
61 SubnetSettingsUnitTests, CreateNetworkTypeTests, CreateNetworkIPv6Tests)
62 from snaps.openstack.tests.create_project_tests import (
63 CreateProjectSuccessTests, ProjectSettingsUnitTests,
64 CreateProjectUserTests)
65 from snaps.openstack.tests.create_qos_tests import (
66 QoSSettingsUnitTests, CreateQoSTests)
67 from snaps.openstack.tests.create_router_tests import (
68 CreateRouterSuccessTests, CreateRouterNegativeTests,
69 RouterSettingsUnitTests)
70 from snaps.openstack.tests.create_security_group_tests import (
71 CreateSecurityGroupTests, SecurityGroupRuleSettingsUnitTests,
72 SecurityGroupSettingsUnitTests)
73 from snaps.openstack.tests.create_stack_tests import (
74 StackSettingsUnitTests, CreateStackSuccessTests, CreateStackNegativeTests,
75 CreateStackFlavorTests, CreateStackFloatingIpTests,
76 CreateStackKeypairTests, CreateStackVolumeTests,
77 CreateStackSecurityGroupTests)
78 from snaps.openstack.tests.create_user_tests import (
79 UserSettingsUnitTests, CreateUserSuccessTests)
80 from snaps.openstack.tests.create_volume_tests import (
81 VolumeSettingsUnitTests, CreateSimpleVolumeSuccessTests,
82 CreateVolumeWithTypeTests, CreateVolumeWithImageTests,
83 CreateSimpleVolumeFailureTests)
84 from snaps.openstack.tests.create_volume_type_tests import (
85 VolumeTypeSettingsUnitTests, CreateSimpleVolumeTypeSuccessTests,
86 CreateVolumeTypeComplexTests)
87 from snaps.openstack.tests.os_source_file_test import (
88 OSComponentTestCase, OSIntegrationTestCase)
89 from snaps.openstack.utils.tests.cinder_utils_tests import (
90 CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
91 CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests,
92 CinderUtilsVolumeTests)
93 from snaps.openstack.utils.tests.glance_utils_tests import (
94 GlanceSmokeTests, GlanceUtilsTests)
95 from snaps.openstack.utils.tests.heat_utils_tests import (
96 HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
97 HeatUtilsCreateComplexStackTests, HeatUtilsFlavorTests,
98 HeatUtilsKeypairTests, HeatUtilsVolumeTests, HeatUtilsSecurityGroupTests)
99 from snaps.openstack.utils.tests.keystone_utils_tests import (
100 KeystoneSmokeTests, KeystoneUtilsTests)
101 from snaps.openstack.utils.tests.neutron_utils_tests import (
102 NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
103 NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
104 NeutronUtilsFloatingIpTests, NeutronUtilsIPv6Tests)
105 from snaps.openstack.utils.tests.nova_utils_tests import (
106 NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
107 NovaUtilsInstanceTests, NovaUtilsInstanceVolumeTests)
108 from snaps.openstack.utils.tests.settings_utils_tests import (
109 SettingsUtilsUnitTests)
110 from snaps.openstack.utils.tests.magnum_utils_tests import (
112 from snaps.provisioning.tests.ansible_utils_tests import (
113 AnsibleProvisioningTests)
114 from snaps.tests.file_utils_tests import FileUtilsTests
116 __author__ = 'spisarski'
119 def add_unit_tests(suite):
121 Adds tests that do not require external resources
122 :param suite: the unittest.TestSuite object to which to add the tests
123 :return: None as the tests will be adding to the 'suite' parameter object
125 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(FileUtilsTests))
126 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
127 SecurityGroupRuleSettingsUnitTests))
128 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
129 ProxySettingsUnitTests))
130 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
132 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
133 SecurityGroupSettingsUnitTests))
134 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
135 SecurityGroupDomainObjectTests))
136 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
137 SecurityGroupRuleDomainObjectTests))
138 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
139 image_tests.ImageConfigUnitTests))
140 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
141 creator_tests.ImageSettingsUnitTests))
142 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
143 ImageDomainObjectTests))
144 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
145 FlavorConfigUnitTests))
146 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
147 FlavorSettingsUnitTests))
148 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
149 FlavorDomainObjectTests))
150 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
151 KeypairConfigUnitTests))
152 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
153 KeypairSettingsUnitTests))
154 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
155 KeypairDomainObjectTests))
156 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
157 UserSettingsUnitTests))
158 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
159 UserDomainObjectTests))
160 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
161 ProjectSettingsUnitTests))
162 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
163 ProjectDomainObjectTests))
164 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
165 DomainDomainObjectTests))
166 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
167 ComputeQuotasDomainObjectTests))
168 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
169 NetworkQuotasDomainObjectTests))
170 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
171 RoleDomainObjectTests))
172 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
173 NetworkSettingsUnitTests))
174 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
176 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
177 SubnetSettingsUnitTests))
178 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
180 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
181 PortSettingsUnitTests))
182 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
183 PortDomainObjectTests))
184 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
185 RouterSettingsUnitTests))
186 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
187 RouterDomainObjectTests))
188 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
189 InterfaceRouterDomainObjectTests))
190 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
191 FloatingIpSettingsUnitTests))
192 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
193 VmInstanceSettingsUnitTests))
194 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
195 StackDomainObjectTests))
196 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
197 ResourceDomainObjectTests))
198 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
199 StackSettingsUnitTests))
200 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
201 VolumeTypeDomainObjectTests))
202 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
203 VolumeTypeEncryptionObjectTests))
204 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
205 VolumeDomainObjectTests))
206 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
207 QoSSpecDomainObjectTests))
208 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
209 VmInstDomainObjectTests))
210 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
211 FloatingIpDomainObjectTests))
212 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
213 QoSSettingsUnitTests))
214 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
215 VolumeTypeSettingsUnitTests))
216 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
217 VolumeSettingsUnitTests))
218 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
219 SettingsUtilsUnitTests))
222 def add_openstack_client_tests(suite, os_creds, ext_net_name,
223 use_keystone=True, log_level=logging.INFO):
225 Adds tests written to exercise OpenStack client retrieval
226 :param suite: the unittest.TestSuite object to which to add the tests
227 :param os_creds: and instance of OSCreds that holds the credentials
228 required by OpenStack
229 :param ext_net_name: the name of an external network on the cloud under
231 :param use_keystone: when True, tests requiring direct access to Keystone
232 are added as these need to be running on a host that
233 has access to the cloud's private network
234 :param log_level: the logging level
235 :return: None as the tests will be adding to the 'suite' parameter object
237 # Basic connection tests
239 OSComponentTestCase.parameterize(
240 GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
241 log_level=log_level))
245 OSComponentTestCase.parameterize(
246 KeystoneSmokeTests, os_creds=os_creds,
247 ext_net_name=ext_net_name, log_level=log_level))
250 OSComponentTestCase.parameterize(
251 NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
252 log_level=log_level))
254 OSComponentTestCase.parameterize(
255 NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
256 log_level=log_level))
258 OSComponentTestCase.parameterize(
259 HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
260 log_level=log_level))
262 OSComponentTestCase.parameterize(
263 CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
264 log_level=log_level))
267 def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
268 image_metadata=None, log_level=logging.INFO):
270 Adds tests written to exercise all existing OpenStack APIs
271 :param suite: the unittest.TestSuite object to which to add the tests
272 :param os_creds: Instance of OSCreds that holds the credentials
273 required by OpenStack
274 :param ext_net_name: the name of an external network on the cloud under
276 :param use_keystone: when True, tests requiring direct access to Keystone
277 are added as these need to be running on a host that
278 has access to the cloud's private network
279 :param image_metadata: dict() object containing metadata for creating an
280 image with custom config
281 (see YAML files in examples/image-metadata)
282 :param log_level: the logging level
283 :return: None as the tests will be adding to the 'suite' parameter object
285 # Tests the OpenStack API calls
287 suite.addTest(OSComponentTestCase.parameterize(
288 KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
289 log_level=log_level))
290 suite.addTest(OSComponentTestCase.parameterize(
291 CreateUserSuccessTests, os_creds=os_creds,
292 ext_net_name=ext_net_name, log_level=log_level))
293 suite.addTest(OSComponentTestCase.parameterize(
294 CreateProjectSuccessTests, os_creds=os_creds,
295 ext_net_name=ext_net_name, log_level=log_level))
296 suite.addTest(OSComponentTestCase.parameterize(
297 CreateProjectUserTests, os_creds=os_creds,
298 ext_net_name=ext_net_name, log_level=log_level))
300 suite.addTest(OSComponentTestCase.parameterize(
301 GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
302 image_metadata=image_metadata,
303 log_level=log_level))
304 suite.addTest(OSComponentTestCase.parameterize(
305 NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
306 log_level=log_level))
307 suite.addTest(OSComponentTestCase.parameterize(
308 NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
309 log_level=log_level))
310 suite.addTest(OSComponentTestCase.parameterize(
311 NeutronUtilsIPv6Tests, os_creds=os_creds, ext_net_name=ext_net_name,
312 log_level=log_level))
313 suite.addTest(OSComponentTestCase.parameterize(
314 NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
315 log_level=log_level))
316 suite.addTest(OSComponentTestCase.parameterize(
317 NeutronUtilsSecurityGroupTests, os_creds=os_creds,
318 ext_net_name=ext_net_name, log_level=log_level))
319 suite.addTest(OSComponentTestCase.parameterize(
320 NeutronUtilsFloatingIpTests, os_creds=os_creds,
321 ext_net_name=ext_net_name, log_level=log_level))
322 suite.addTest(OSComponentTestCase.parameterize(
323 NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
324 log_level=log_level))
325 suite.addTest(OSComponentTestCase.parameterize(
326 NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
327 log_level=log_level))
328 suite.addTest(OSComponentTestCase.parameterize(
329 NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
330 log_level=log_level, image_metadata=image_metadata))
331 suite.addTest(OSComponentTestCase.parameterize(
332 NovaUtilsInstanceVolumeTests, 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 CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
337 log_level=log_level))
338 suite.addTest(OSComponentTestCase.parameterize(
339 HeatUtilsCreateSimpleStackTests, 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 HeatUtilsCreateComplexStackTests, 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 HeatUtilsFlavorTests, 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 HeatUtilsKeypairTests, 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 HeatUtilsSecurityGroupTests, 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 CinderUtilsQoSTests, 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 CinderUtilsVolumeTests, os_creds=os_creds,
364 ext_net_name=ext_net_name, log_level=log_level,
365 image_metadata=image_metadata))
366 suite.addTest(OSComponentTestCase.parameterize(
367 CinderUtilsSimpleVolumeTypeTests, os_creds=os_creds,
368 ext_net_name=ext_net_name, log_level=log_level,
369 image_metadata=image_metadata))
370 suite.addTest(OSComponentTestCase.parameterize(
371 CinderUtilsAddEncryptionTests, os_creds=os_creds,
372 ext_net_name=ext_net_name, log_level=log_level,
373 image_metadata=image_metadata))
374 suite.addTest(OSComponentTestCase.parameterize(
375 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
376 ext_net_name=ext_net_name, log_level=log_level,
377 image_metadata=image_metadata))
380 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
381 use_keystone=True, flavor_metadata=None,
382 image_metadata=None, use_floating_ips=True,
383 log_level=logging.INFO):
385 Adds tests written to exercise all long-running OpenStack integration tests
386 meaning they will be creating VM instances and potentially performing some
387 SSH functions through floatingIPs
388 :param suite: the unittest.TestSuite object to which to add the tests
389 :param os_creds: and instance of OSCreds that holds the credentials
390 required by OpenStack
391 :param ext_net_name: the name of an external network on the cloud under
393 :param use_keystone: when True, tests requiring direct access to Keystone
394 are added as these need to be running on a host that
395 has access to the cloud's private network
396 :param image_metadata: dict() object containing metadata for creating an
397 image with custom config
398 (see YAML files in examples/image-metadata)
399 :param flavor_metadata: dict() object containing the metadata required by
400 your flavor based on your configuration:
401 (i.e. {'hw:mem_page_size': 'large'})
402 :param use_floating_ips: when true, all tests requiring Floating IPs will
403 be added to the suite
404 :param log_level: the logging level
405 :return: None as the tests will be adding to the 'suite' parameter object
407 # Tests the OpenStack API calls via a creator. If use_keystone, objects
408 # will be created with a custom user and project
410 # Creator Object tests
411 suite.addTest(OSIntegrationTestCase.parameterize(
412 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
413 use_keystone=use_keystone,
414 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
415 log_level=log_level))
416 suite.addTest(OSIntegrationTestCase.parameterize(
417 CreateImageSuccessTests, 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 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
423 use_keystone=use_keystone,
424 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
425 log_level=log_level))
426 suite.addTest(OSIntegrationTestCase.parameterize(
427 CreateMultiPartImageTests, os_creds=os_creds,
428 ext_net_name=ext_net_name, use_keystone=use_keystone,
429 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
430 log_level=log_level))
431 suite.addTest(OSIntegrationTestCase.parameterize(
432 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
433 use_keystone=use_keystone,
434 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
435 log_level=log_level))
436 suite.addTest(OSIntegrationTestCase.parameterize(
437 CreateKeypairsCleanupTests, os_creds=os_creds,
438 ext_net_name=ext_net_name,
439 use_keystone=use_keystone,
440 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
441 log_level=log_level))
442 suite.addTest(OSIntegrationTestCase.parameterize(
443 CreateNetworkSuccessTests, 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 CreateNetworkIPv6Tests, 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 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
454 use_keystone=use_keystone,
455 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
456 log_level=log_level))
457 suite.addTest(OSIntegrationTestCase.parameterize(
458 CreateRouterNegativeTests, 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 CreateQoSTests, 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 CreateSimpleVolumeTypeSuccessTests, 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 CreateVolumeTypeComplexTests, 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))
477 suite.addTest(OSIntegrationTestCase.parameterize(
478 CreateSimpleVolumeSuccessTests, os_creds=os_creds,
479 ext_net_name=ext_net_name, use_keystone=use_keystone,
480 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
481 log_level=log_level))
482 suite.addTest(OSIntegrationTestCase.parameterize(
483 CreateSimpleVolumeFailureTests, os_creds=os_creds,
484 ext_net_name=ext_net_name, use_keystone=use_keystone,
485 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
486 log_level=log_level))
487 suite.addTest(OSIntegrationTestCase.parameterize(
488 CreateVolumeWithTypeTests, os_creds=os_creds,
489 ext_net_name=ext_net_name, use_keystone=use_keystone,
490 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
491 log_level=log_level))
492 suite.addTest(OSIntegrationTestCase.parameterize(
493 CreateVolumeWithImageTests, 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))
499 suite.addTest(OSIntegrationTestCase.parameterize(
500 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
501 use_keystone=use_keystone,
502 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
503 log_level=log_level))
504 suite.addTest(OSIntegrationTestCase.parameterize(
505 CreateInstanceTwoNetTests, 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 CreateInstanceSimpleTests, 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 CreateInstancePortManipulationTests, 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 InstanceSecurityGroupTests, os_creds=os_creds,
521 ext_net_name=ext_net_name, use_keystone=use_keystone,
522 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
523 log_level=log_level))
524 suite.addTest(OSIntegrationTestCase.parameterize(
525 CreateInstanceOnComputeHost, os_creds=os_creds,
526 ext_net_name=ext_net_name, use_keystone=use_keystone,
527 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
528 log_level=log_level))
529 suite.addTest(OSIntegrationTestCase.parameterize(
530 CreateInstanceFromThreePartImage, os_creds=os_creds,
531 ext_net_name=ext_net_name, use_keystone=use_keystone,
532 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
533 log_level=log_level))
534 suite.addTest(OSIntegrationTestCase.parameterize(
535 CreateInstanceVolumeTests, os_creds=os_creds,
536 ext_net_name=ext_net_name, use_keystone=use_keystone,
537 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
538 log_level=log_level))
539 suite.addTest(OSIntegrationTestCase.parameterize(
540 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
541 use_keystone=use_keystone,
542 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
543 log_level=log_level))
544 suite.addTest(OSIntegrationTestCase.parameterize(
545 CreateStackVolumeTests, 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))
549 suite.addTest(OSIntegrationTestCase.parameterize(
550 CreateStackFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
551 use_keystone=use_keystone,
552 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
553 log_level=log_level))
554 suite.addTest(OSIntegrationTestCase.parameterize(
555 CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
556 use_keystone=use_keystone,
557 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
558 log_level=log_level))
559 suite.addTest(OSIntegrationTestCase.parameterize(
560 CreateStackSecurityGroupTests, 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 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
566 use_keystone=use_keystone,
567 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
568 log_level=log_level))
571 suite.addTest(OSIntegrationTestCase.parameterize(
572 CreateInstanceSingleNetworkTests, os_creds=os_creds,
573 ext_net_name=ext_net_name, use_keystone=use_keystone,
574 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
575 log_level=log_level))
576 suite.addTest(OSIntegrationTestCase.parameterize(
577 CreateStackFloatingIpTests, os_creds=os_creds,
578 ext_net_name=ext_net_name, use_keystone=use_keystone,
579 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
580 log_level=log_level))
581 suite.addTest(OSIntegrationTestCase.parameterize(
582 AnsibleProvisioningTests, os_creds=os_creds,
583 ext_net_name=ext_net_name, use_keystone=use_keystone,
584 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
585 log_level=log_level))
588 def add_openstack_ci_tests(
589 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
590 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
592 Adds tests written for a CI server to run the tests to validate code
594 :param suite: the unittest.TestSuite object to which to add the tests
595 :param os_creds: and instance of OSCreds that holds the credentials
596 required by OpenStack
597 :param ext_net_name: the name of an external network on the cloud under
599 :param use_keystone: when True, tests requiring direct access to Keystone
600 are added as these need to be running on a host that
601 has access to the cloud's private network
602 :param image_metadata: dict() object containing metadata for creating an
603 image with custom config
604 (see YAML files in examples/image-metadata)
605 :param flavor_metadata: dict() object containing the metadata required by
606 your flavor based on your configuration:
607 (i.e. {'hw:mem_page_size': 'large'})
608 :param use_floating_ips: when true, all tests requiring Floating IPs will
609 be added to the suite
610 :param log_level: the logging level
611 :return: None as the tests will be adding to the 'suite' parameter object
614 add_unit_tests(suite)
616 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
619 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
620 image_metadata, log_level)
622 suite.addTest(OSIntegrationTestCase.parameterize(
623 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
624 use_keystone=use_keystone,
625 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
626 log_level=log_level))
629 suite.addTest(OSIntegrationTestCase.parameterize(
630 CreateInstanceSingleNetworkTests, os_creds=os_creds,
631 ext_net_name=ext_net_name, use_keystone=use_keystone,
632 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
633 log_level=log_level))
635 suite.addTest(OSIntegrationTestCase.parameterize(
636 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
637 use_keystone=use_keystone,
638 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
639 log_level=log_level))
640 suite.addTest(OSIntegrationTestCase.parameterize(
641 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
642 use_keystone=use_keystone,
643 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
644 log_level=log_level))
647 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
648 log_level=logging.INFO):
650 Adds tests that are still in development have not been designed to run
651 successfully against all OpenStack pods
652 :param suite: the unittest.TestSuite object to which to add the tests
653 :param os_creds: Instance of OSCreds that holds the credentials
654 required by OpenStack
655 :param ext_net_name: the name of an external network on the cloud under
657 :param log_level: the logging level
658 :return: None as the tests will be adding to the 'suite' parameter object
660 suite.addTest(OSComponentTestCase.parameterize(
661 CreateNetworkTypeTests, os_creds=os_creds,
662 ext_net_name=ext_net_name, log_level=log_level))
663 suite.addTest(OSComponentTestCase.parameterize(
664 CreateInstanceMockOfflineTests, os_creds=os_creds,
665 ext_net_name=ext_net_name, log_level=log_level))
666 suite.addTest(OSIntegrationTestCase.parameterize(
667 CreateInstancePubPrivNetTests, os_creds=os_creds,
668 ext_net_name=ext_net_name, log_level=log_level))
669 suite.addTest(OSIntegrationTestCase.parameterize(
670 CreateInstanceIPv6NetworkTests, os_creds=os_creds,
671 ext_net_name=ext_net_name, log_level=log_level))
672 suite.addTest(OSComponentTestCase.parameterize(
673 HeatUtilsVolumeTests, os_creds=os_creds,
674 ext_net_name=ext_net_name, log_level=log_level))
675 suite.addTest(OSComponentTestCase.parameterize(
676 MagnumSmokeTests, os_creds=os_creds,
677 ext_net_name=ext_net_name, log_level=log_level))