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