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.cluster_template_tests import (
20 ClusterTemplateConfigUnitTests)
21 from snaps.config.tests.network_tests import (
22 NetworkConfigUnitTests, SubnetConfigUnitTests, PortConfigUnitTests)
23 from snaps.config.tests.security_group_tests import (
24 SecurityGroupConfigUnitTests, SecurityGroupRuleConfigUnitTests)
25 from snaps.config.tests.vm_inst_tests import (
26 VmInstanceConfigUnitTests, FloatingIpConfigUnitTests)
27 from snaps.config.tests.volume_tests import VolumeConfigUnitTests
28 from snaps.config.tests.volume_type_tests import VolumeTypeConfigUnitTests
29 from snaps.config.tests.qos_tests import QoSConfigUnitTests
30 from snaps.config.tests.stack_tests import StackConfigUnitTests
31 from snaps.config.tests.router_tests import RouterConfigUnitTests
32 from snaps.config.tests.user_tests import UserConfigUnitTests
33 from snaps.config.tests.project_tests import ProjectConfigUnitTests
34 from snaps.config.tests.keypair_tests import KeypairConfigUnitTests
35 from snaps.config.tests.flavor_tests import FlavorConfigUnitTests
36 import snaps.config.tests.image_tests as image_tests
37 import snaps.openstack.tests.create_image_tests as creator_tests
38 from snaps.domain.test.cluster_template_tests import ClusterTemplateUnitTests
39 from snaps.domain.test.flavor_tests import FlavorDomainObjectTests
40 from snaps.domain.test.image_tests import ImageDomainObjectTests
41 from snaps.domain.test.keypair_tests import KeypairDomainObjectTests
42 from snaps.domain.test.network_tests import (
43 SecurityGroupDomainObjectTests, SecurityGroupRuleDomainObjectTests,
44 PortDomainObjectTests, RouterDomainObjectTests,
45 InterfaceRouterDomainObjectTests, NetworkObjectTests, SubnetObjectTests)
46 from snaps.domain.test.project_tests import (
47 ProjectDomainObjectTests, DomainDomainObjectTests,
48 ComputeQuotasDomainObjectTests, NetworkQuotasDomainObjectTests)
49 from snaps.domain.test.role_tests import RoleDomainObjectTests
50 from snaps.domain.test.stack_tests import (
51 StackDomainObjectTests, ResourceDomainObjectTests)
52 from snaps.domain.test.user_tests import UserDomainObjectTests
53 from snaps.domain.test.vm_inst_tests import (
54 VmInstDomainObjectTests, FloatingIpDomainObjectTests)
55 from snaps.domain.test.volume_tests import (
56 QoSSpecDomainObjectTests, VolumeTypeDomainObjectTests,
57 VolumeTypeEncryptionObjectTests, VolumeDomainObjectTests)
58 from snaps.openstack.tests.conf.os_credentials_tests import (
59 ProxySettingsUnitTests, OSCredsUnitTests)
60 from snaps.openstack.tests.create_flavor_tests import (
61 CreateFlavorTests, FlavorSettingsUnitTests)
62 from snaps.openstack.tests.create_image_tests import (
63 CreateImageSuccessTests, CreateImageNegativeTests,
64 CreateMultiPartImageTests)
65 from snaps.openstack.tests.create_instance_tests import (
66 CreateInstanceSingleNetworkTests, CreateInstancePubPrivNetTests,
67 CreateInstanceOnComputeHost, CreateInstanceSimpleTests,
68 FloatingIpSettingsUnitTests, InstanceSecurityGroupTests,
69 VmInstanceSettingsUnitTests, CreateInstancePortManipulationTests,
70 SimpleHealthCheck, CreateInstanceFromThreePartImage,
71 CreateInstanceMockOfflineTests, CreateInstanceTwoNetTests,
72 CreateInstanceVolumeTests, CreateInstanceIPv6NetworkTests)
73 from snaps.openstack.tests.create_keypairs_tests import (
74 CreateKeypairsTests, KeypairSettingsUnitTests, CreateKeypairsCleanupTests)
75 from snaps.openstack.tests.create_network_tests import (
76 CreateNetworkSuccessTests, NetworkSettingsUnitTests, PortSettingsUnitTests,
77 SubnetSettingsUnitTests, CreateNetworkTypeTests, CreateNetworkIPv6Tests)
78 from snaps.openstack.tests.create_project_tests import (
79 CreateProjectSuccessTests, ProjectSettingsUnitTests,
80 CreateProjectUserTests)
81 from snaps.openstack.tests.create_qos_tests import (
82 QoSSettingsUnitTests, CreateQoSTests)
83 from snaps.openstack.tests.create_router_tests import (
84 CreateRouterSuccessTests, CreateRouterNegativeTests,
85 RouterSettingsUnitTests)
86 from snaps.openstack.tests.create_security_group_tests import (
87 CreateSecurityGroupTests, SecurityGroupRuleSettingsUnitTests,
88 SecurityGroupSettingsUnitTests)
89 from snaps.openstack.tests.create_stack_tests import (
90 StackSettingsUnitTests, CreateStackSuccessTests, CreateStackNegativeTests,
91 CreateStackFlavorTests, CreateStackFloatingIpTests,
92 CreateStackKeypairTests, CreateStackVolumeTests,
93 CreateStackSecurityGroupTests)
94 from snaps.openstack.tests.create_user_tests import (
95 UserSettingsUnitTests, CreateUserSuccessTests)
96 from snaps.openstack.tests.create_volume_tests import (
97 VolumeSettingsUnitTests, CreateSimpleVolumeSuccessTests,
98 CreateVolumeWithTypeTests, CreateVolumeWithImageTests,
99 CreateSimpleVolumeFailureTests)
100 from snaps.openstack.tests.create_volume_type_tests import (
101 VolumeTypeSettingsUnitTests, CreateSimpleVolumeTypeSuccessTests,
102 CreateVolumeTypeComplexTests)
103 from snaps.openstack.tests.os_source_file_test import (
104 OSComponentTestCase, OSIntegrationTestCase)
105 from snaps.openstack.utils.tests.cinder_utils_tests import (
106 CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
107 CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests,
108 CinderUtilsVolumeTests)
109 from snaps.openstack.utils.tests.glance_utils_tests import (
110 GlanceSmokeTests, GlanceUtilsTests)
111 from snaps.openstack.utils.tests.heat_utils_tests import (
112 HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
113 HeatUtilsCreateComplexStackTests, HeatUtilsFlavorTests,
114 HeatUtilsKeypairTests, HeatUtilsVolumeTests, HeatUtilsSecurityGroupTests)
115 from snaps.openstack.utils.tests.keystone_utils_tests import (
116 KeystoneSmokeTests, KeystoneUtilsTests)
117 from snaps.openstack.utils.tests.neutron_utils_tests import (
118 NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
119 NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
120 NeutronUtilsFloatingIpTests, NeutronUtilsIPv6Tests)
121 from snaps.openstack.utils.tests.nova_utils_tests import (
122 NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
123 NovaUtilsInstanceTests, NovaUtilsInstanceVolumeTests)
124 from snaps.openstack.utils.tests.settings_utils_tests import (
125 SettingsUtilsUnitTests)
126 from snaps.openstack.utils.tests.magnum_utils_tests import (
127 MagnumSmokeTests, MagnumUtilsClusterTypeTests)
128 from snaps.provisioning.tests.ansible_utils_tests import (
129 AnsibleProvisioningTests)
130 from snaps.tests.file_utils_tests import FileUtilsTests
132 __author__ = 'spisarski'
135 def add_unit_tests(suite):
137 Adds tests that do not require external resources
138 :param suite: the unittest.TestSuite object to which to add the tests
139 :return: None as the tests will be adding to the 'suite' parameter object
141 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(FileUtilsTests))
142 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
143 ProxySettingsUnitTests))
144 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
146 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
147 SecurityGroupConfigUnitTests))
148 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
149 SecurityGroupSettingsUnitTests))
150 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
151 SecurityGroupRuleConfigUnitTests))
152 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
153 SecurityGroupRuleSettingsUnitTests))
154 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
155 SecurityGroupDomainObjectTests))
156 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
157 SecurityGroupRuleDomainObjectTests))
158 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
159 image_tests.ImageConfigUnitTests))
160 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
161 creator_tests.ImageSettingsUnitTests))
162 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
163 ImageDomainObjectTests))
164 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
165 FlavorConfigUnitTests))
166 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
167 FlavorSettingsUnitTests))
168 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
169 FlavorDomainObjectTests))
170 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
171 KeypairConfigUnitTests))
172 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
173 KeypairSettingsUnitTests))
174 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
175 KeypairDomainObjectTests))
176 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
177 UserConfigUnitTests))
178 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
179 UserSettingsUnitTests))
180 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
181 UserDomainObjectTests))
182 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
183 ProjectConfigUnitTests))
184 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
185 ProjectSettingsUnitTests))
186 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
187 ProjectDomainObjectTests))
188 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
189 DomainDomainObjectTests))
190 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
191 ComputeQuotasDomainObjectTests))
192 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
193 NetworkQuotasDomainObjectTests))
194 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
195 RoleDomainObjectTests))
196 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
197 NetworkConfigUnitTests))
198 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
199 NetworkSettingsUnitTests))
200 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
202 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
203 SubnetConfigUnitTests))
204 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
205 SubnetSettingsUnitTests))
206 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
208 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
209 PortConfigUnitTests))
210 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
211 PortSettingsUnitTests))
212 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
213 PortDomainObjectTests))
214 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
215 RouterConfigUnitTests))
216 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
217 RouterSettingsUnitTests))
218 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
219 RouterDomainObjectTests))
220 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
221 InterfaceRouterDomainObjectTests))
222 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
223 FloatingIpConfigUnitTests))
224 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
225 FloatingIpSettingsUnitTests))
226 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
227 VmInstanceConfigUnitTests))
228 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
229 VmInstanceSettingsUnitTests))
230 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
231 StackDomainObjectTests))
232 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
233 ResourceDomainObjectTests))
234 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
235 StackConfigUnitTests))
236 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
237 StackSettingsUnitTests))
238 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
239 VolumeTypeDomainObjectTests))
240 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
241 VolumeTypeEncryptionObjectTests))
242 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
243 VolumeDomainObjectTests))
244 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
245 QoSSpecDomainObjectTests))
246 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
247 VmInstDomainObjectTests))
248 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
249 FloatingIpDomainObjectTests))
250 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
252 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
253 QoSSettingsUnitTests))
254 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
255 VolumeTypeConfigUnitTests))
256 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
257 VolumeTypeSettingsUnitTests))
258 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
259 VolumeConfigUnitTests))
260 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
261 VolumeSettingsUnitTests))
262 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
263 ClusterTemplateConfigUnitTests))
264 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
265 ClusterTemplateUnitTests))
266 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
267 SettingsUtilsUnitTests))
270 def add_openstack_client_tests(suite, os_creds, ext_net_name,
271 use_keystone=True, log_level=logging.INFO):
273 Adds tests written to exercise OpenStack client retrieval
274 :param suite: the unittest.TestSuite object to which to add the tests
275 :param os_creds: and instance of OSCreds that holds the credentials
276 required by OpenStack
277 :param ext_net_name: the name of an external network on the cloud under
279 :param use_keystone: when True, tests requiring direct access to Keystone
280 are added as these need to be running on a host that
281 has access to the cloud's private network
282 :param log_level: the logging level
283 :return: None as the tests will be adding to the 'suite' parameter object
285 # Basic connection tests
287 OSComponentTestCase.parameterize(
288 GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
289 log_level=log_level))
293 OSComponentTestCase.parameterize(
294 KeystoneSmokeTests, os_creds=os_creds,
295 ext_net_name=ext_net_name, log_level=log_level))
298 OSComponentTestCase.parameterize(
299 NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
300 log_level=log_level))
302 OSComponentTestCase.parameterize(
303 NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
304 log_level=log_level))
306 OSComponentTestCase.parameterize(
307 HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
308 log_level=log_level))
310 OSComponentTestCase.parameterize(
311 CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
312 log_level=log_level))
315 def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
316 image_metadata=None, log_level=logging.INFO):
318 Adds tests written to exercise all existing OpenStack APIs
319 :param suite: the unittest.TestSuite object to which to add the tests
320 :param os_creds: Instance of OSCreds that holds the credentials
321 required by OpenStack
322 :param ext_net_name: the name of an external network on the cloud under
324 :param use_keystone: when True, tests requiring direct access to Keystone
325 are added as these need to be running on a host that
326 has access to the cloud's private network
327 :param image_metadata: dict() object containing metadata for creating an
328 image with custom config
329 (see YAML files in examples/image-metadata)
330 :param log_level: the logging level
331 :return: None as the tests will be adding to the 'suite' parameter object
333 # Tests the OpenStack API calls
335 suite.addTest(OSComponentTestCase.parameterize(
336 KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
337 log_level=log_level))
338 suite.addTest(OSComponentTestCase.parameterize(
339 CreateUserSuccessTests, os_creds=os_creds,
340 ext_net_name=ext_net_name, log_level=log_level))
341 suite.addTest(OSComponentTestCase.parameterize(
342 CreateProjectSuccessTests, os_creds=os_creds,
343 ext_net_name=ext_net_name, log_level=log_level))
344 suite.addTest(OSComponentTestCase.parameterize(
345 CreateProjectUserTests, os_creds=os_creds,
346 ext_net_name=ext_net_name, log_level=log_level))
348 suite.addTest(OSComponentTestCase.parameterize(
349 GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
350 image_metadata=image_metadata,
351 log_level=log_level))
352 suite.addTest(OSComponentTestCase.parameterize(
353 NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
354 log_level=log_level))
355 suite.addTest(OSComponentTestCase.parameterize(
356 NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
357 log_level=log_level))
358 suite.addTest(OSComponentTestCase.parameterize(
359 NeutronUtilsIPv6Tests, os_creds=os_creds, ext_net_name=ext_net_name,
360 log_level=log_level))
361 suite.addTest(OSComponentTestCase.parameterize(
362 NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
363 log_level=log_level))
364 suite.addTest(OSComponentTestCase.parameterize(
365 NeutronUtilsSecurityGroupTests, os_creds=os_creds,
366 ext_net_name=ext_net_name, log_level=log_level))
367 suite.addTest(OSComponentTestCase.parameterize(
368 NeutronUtilsFloatingIpTests, os_creds=os_creds,
369 ext_net_name=ext_net_name, log_level=log_level))
370 suite.addTest(OSComponentTestCase.parameterize(
371 NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
372 log_level=log_level))
373 suite.addTest(OSComponentTestCase.parameterize(
374 NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
375 log_level=log_level))
376 suite.addTest(OSComponentTestCase.parameterize(
377 NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
378 log_level=log_level, image_metadata=image_metadata))
379 suite.addTest(OSComponentTestCase.parameterize(
380 NovaUtilsInstanceVolumeTests, os_creds=os_creds,
381 ext_net_name=ext_net_name, log_level=log_level,
382 image_metadata=image_metadata))
383 suite.addTest(OSComponentTestCase.parameterize(
384 CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
385 log_level=log_level))
386 suite.addTest(OSComponentTestCase.parameterize(
387 HeatUtilsCreateSimpleStackTests, os_creds=os_creds,
388 ext_net_name=ext_net_name, log_level=log_level,
389 image_metadata=image_metadata))
390 suite.addTest(OSComponentTestCase.parameterize(
391 HeatUtilsCreateComplexStackTests, os_creds=os_creds,
392 ext_net_name=ext_net_name, log_level=log_level,
393 image_metadata=image_metadata))
394 suite.addTest(OSComponentTestCase.parameterize(
395 HeatUtilsFlavorTests, os_creds=os_creds,
396 ext_net_name=ext_net_name, log_level=log_level,
397 image_metadata=image_metadata))
398 suite.addTest(OSComponentTestCase.parameterize(
399 HeatUtilsKeypairTests, os_creds=os_creds,
400 ext_net_name=ext_net_name, log_level=log_level,
401 image_metadata=image_metadata))
402 suite.addTest(OSComponentTestCase.parameterize(
403 HeatUtilsSecurityGroupTests, os_creds=os_creds,
404 ext_net_name=ext_net_name, log_level=log_level,
405 image_metadata=image_metadata))
406 suite.addTest(OSComponentTestCase.parameterize(
407 HeatUtilsVolumeTests, os_creds=os_creds,
408 ext_net_name=ext_net_name, log_level=log_level,
409 image_metadata=image_metadata))
410 suite.addTest(OSComponentTestCase.parameterize(
411 CinderUtilsQoSTests, os_creds=os_creds,
412 ext_net_name=ext_net_name, log_level=log_level,
413 image_metadata=image_metadata))
414 suite.addTest(OSComponentTestCase.parameterize(
415 CinderUtilsVolumeTests, os_creds=os_creds,
416 ext_net_name=ext_net_name, log_level=log_level,
417 image_metadata=image_metadata))
418 suite.addTest(OSComponentTestCase.parameterize(
419 CinderUtilsSimpleVolumeTypeTests, os_creds=os_creds,
420 ext_net_name=ext_net_name, log_level=log_level,
421 image_metadata=image_metadata))
422 suite.addTest(OSComponentTestCase.parameterize(
423 CinderUtilsAddEncryptionTests, os_creds=os_creds,
424 ext_net_name=ext_net_name, log_level=log_level,
425 image_metadata=image_metadata))
426 suite.addTest(OSComponentTestCase.parameterize(
427 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
428 ext_net_name=ext_net_name, log_level=log_level,
429 image_metadata=image_metadata))
432 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
433 use_keystone=True, flavor_metadata=None,
434 image_metadata=None, use_floating_ips=True,
435 log_level=logging.INFO):
437 Adds tests written to exercise all long-running OpenStack integration tests
438 meaning they will be creating VM instances and potentially performing some
439 SSH functions through floatingIPs
440 :param suite: the unittest.TestSuite object to which to add the tests
441 :param os_creds: and instance of OSCreds that holds the credentials
442 required by OpenStack
443 :param ext_net_name: the name of an external network on the cloud under
445 :param use_keystone: when True, tests requiring direct access to Keystone
446 are added as these need to be running on a host that
447 has access to the cloud's private network
448 :param image_metadata: dict() object containing metadata for creating an
449 image with custom config
450 (see YAML files in examples/image-metadata)
451 :param flavor_metadata: dict() object containing the metadata required by
452 your flavor based on your configuration:
453 (i.e. {'hw:mem_page_size': 'large'})
454 :param use_floating_ips: when true, all tests requiring Floating IPs will
455 be added to the suite
456 :param log_level: the logging level
457 :return: None as the tests will be adding to the 'suite' parameter object
459 # Tests the OpenStack API calls via a creator. If use_keystone, objects
460 # will be created with a custom user and project
462 # Creator Object tests
463 suite.addTest(OSIntegrationTestCase.parameterize(
464 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
465 use_keystone=use_keystone,
466 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
467 log_level=log_level))
468 suite.addTest(OSIntegrationTestCase.parameterize(
469 CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
470 use_keystone=use_keystone,
471 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
472 log_level=log_level))
473 suite.addTest(OSIntegrationTestCase.parameterize(
474 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
475 use_keystone=use_keystone,
476 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
477 log_level=log_level))
478 suite.addTest(OSIntegrationTestCase.parameterize(
479 CreateMultiPartImageTests, os_creds=os_creds,
480 ext_net_name=ext_net_name, use_keystone=use_keystone,
481 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
482 log_level=log_level))
483 suite.addTest(OSIntegrationTestCase.parameterize(
484 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
485 use_keystone=use_keystone,
486 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
487 log_level=log_level))
488 suite.addTest(OSIntegrationTestCase.parameterize(
489 CreateKeypairsCleanupTests, os_creds=os_creds,
490 ext_net_name=ext_net_name,
491 use_keystone=use_keystone,
492 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
493 log_level=log_level))
494 suite.addTest(OSIntegrationTestCase.parameterize(
495 CreateNetworkSuccessTests, os_creds=os_creds,
496 ext_net_name=ext_net_name, use_keystone=use_keystone,
497 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
498 log_level=log_level))
499 suite.addTest(OSIntegrationTestCase.parameterize(
500 CreateNetworkIPv6Tests, os_creds=os_creds,
501 ext_net_name=ext_net_name, use_keystone=use_keystone,
502 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
503 log_level=log_level))
504 suite.addTest(OSIntegrationTestCase.parameterize(
505 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
506 use_keystone=use_keystone,
507 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
508 log_level=log_level))
509 suite.addTest(OSIntegrationTestCase.parameterize(
510 CreateRouterNegativeTests, 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 CreateQoSTests, 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 CreateSimpleVolumeTypeSuccessTests, 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 CreateVolumeTypeComplexTests, 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 CreateSimpleVolumeSuccessTests, 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 CreateSimpleVolumeFailureTests, 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 CreateVolumeWithTypeTests, os_creds=os_creds,
541 ext_net_name=ext_net_name, use_keystone=use_keystone,
542 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
543 log_level=log_level))
544 suite.addTest(OSIntegrationTestCase.parameterize(
545 CreateVolumeWithImageTests, os_creds=os_creds,
546 ext_net_name=ext_net_name, use_keystone=use_keystone,
547 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
548 log_level=log_level))
551 suite.addTest(OSIntegrationTestCase.parameterize(
552 SimpleHealthCheck, 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 CreateInstanceTwoNetTests, 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 CreateInstanceSimpleTests, os_creds=os_creds,
563 ext_net_name=ext_net_name, use_keystone=use_keystone,
564 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
565 log_level=log_level))
566 suite.addTest(OSIntegrationTestCase.parameterize(
567 CreateInstancePortManipulationTests, os_creds=os_creds,
568 ext_net_name=ext_net_name, use_keystone=use_keystone,
569 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
570 log_level=log_level))
571 suite.addTest(OSIntegrationTestCase.parameterize(
572 InstanceSecurityGroupTests, 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 CreateInstanceOnComputeHost, 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 CreateInstanceFromThreePartImage, 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))
586 suite.addTest(OSIntegrationTestCase.parameterize(
587 CreateInstanceVolumeTests, os_creds=os_creds,
588 ext_net_name=ext_net_name, use_keystone=use_keystone,
589 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
590 log_level=log_level))
591 suite.addTest(OSIntegrationTestCase.parameterize(
592 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
593 use_keystone=use_keystone,
594 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
595 log_level=log_level))
596 suite.addTest(OSIntegrationTestCase.parameterize(
597 CreateStackVolumeTests, os_creds=os_creds, ext_net_name=ext_net_name,
598 use_keystone=use_keystone,
599 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
600 log_level=log_level))
601 suite.addTest(OSIntegrationTestCase.parameterize(
602 CreateStackFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
603 use_keystone=use_keystone,
604 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
605 log_level=log_level))
606 suite.addTest(OSIntegrationTestCase.parameterize(
607 CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
608 use_keystone=use_keystone,
609 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
610 log_level=log_level))
611 suite.addTest(OSIntegrationTestCase.parameterize(
612 CreateStackSecurityGroupTests, os_creds=os_creds,
613 ext_net_name=ext_net_name, use_keystone=use_keystone,
614 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
615 log_level=log_level))
616 suite.addTest(OSIntegrationTestCase.parameterize(
617 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
618 use_keystone=use_keystone,
619 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
620 log_level=log_level))
623 suite.addTest(OSIntegrationTestCase.parameterize(
624 CreateInstanceSingleNetworkTests, os_creds=os_creds,
625 ext_net_name=ext_net_name, use_keystone=use_keystone,
626 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
627 log_level=log_level))
628 suite.addTest(OSIntegrationTestCase.parameterize(
629 CreateStackFloatingIpTests, os_creds=os_creds,
630 ext_net_name=ext_net_name, use_keystone=use_keystone,
631 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
632 log_level=log_level))
633 suite.addTest(OSIntegrationTestCase.parameterize(
634 CreateInstancePubPrivNetTests, os_creds=os_creds,
635 ext_net_name=ext_net_name, use_keystone=use_keystone,
636 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
637 log_level=log_level))
638 suite.addTest(OSIntegrationTestCase.parameterize(
639 AnsibleProvisioningTests, os_creds=os_creds,
640 ext_net_name=ext_net_name, use_keystone=use_keystone,
641 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
642 log_level=log_level))
645 def add_openstack_ci_tests(
646 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
647 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
649 Adds tests written for a CI server to run the tests to validate code
651 :param suite: the unittest.TestSuite object to which to add the tests
652 :param os_creds: and instance of OSCreds that holds the credentials
653 required by OpenStack
654 :param ext_net_name: the name of an external network on the cloud under
656 :param use_keystone: when True, tests requiring direct access to Keystone
657 are added as these need to be running on a host that
658 has access to the cloud's private network
659 :param image_metadata: dict() object containing metadata for creating an
660 image with custom config
661 (see YAML files in examples/image-metadata)
662 :param flavor_metadata: dict() object containing the metadata required by
663 your flavor based on your configuration:
664 (i.e. {'hw:mem_page_size': 'large'})
665 :param use_floating_ips: when true, all tests requiring Floating IPs will
666 be added to the suite
667 :param log_level: the logging level
668 :return: None as the tests will be adding to the 'suite' parameter object
671 add_unit_tests(suite)
673 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
676 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
677 image_metadata, log_level)
679 suite.addTest(OSIntegrationTestCase.parameterize(
680 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
681 use_keystone=use_keystone,
682 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
683 log_level=log_level))
686 suite.addTest(OSIntegrationTestCase.parameterize(
687 CreateInstanceSingleNetworkTests, os_creds=os_creds,
688 ext_net_name=ext_net_name, use_keystone=use_keystone,
689 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
690 log_level=log_level))
692 suite.addTest(OSIntegrationTestCase.parameterize(
693 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
694 use_keystone=use_keystone,
695 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
696 log_level=log_level))
697 suite.addTest(OSIntegrationTestCase.parameterize(
698 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
699 use_keystone=use_keystone,
700 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
701 log_level=log_level))
704 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
705 log_level=logging.INFO):
707 Adds tests that are still in development have not been designed to run
708 successfully against all OpenStack pods
709 :param suite: the unittest.TestSuite object to which to add the tests
710 :param os_creds: Instance of OSCreds that holds the credentials
711 required by OpenStack
712 :param ext_net_name: the name of an external network on the cloud under
714 :param log_level: the logging level
715 :return: None as the tests will be adding to the 'suite' parameter object
717 suite.addTest(OSComponentTestCase.parameterize(
718 CreateNetworkTypeTests, os_creds=os_creds,
719 ext_net_name=ext_net_name, log_level=log_level))
720 suite.addTest(OSComponentTestCase.parameterize(
721 CreateInstanceMockOfflineTests, os_creds=os_creds,
722 ext_net_name=ext_net_name, log_level=log_level))
723 suite.addTest(OSIntegrationTestCase.parameterize(
724 CreateInstanceIPv6NetworkTests, os_creds=os_creds,
725 ext_net_name=ext_net_name, log_level=log_level))
726 suite.addTest(OSComponentTestCase.parameterize(
727 MagnumSmokeTests, os_creds=os_creds,
728 ext_net_name=ext_net_name, log_level=log_level))
729 suite.addTest(OSComponentTestCase.parameterize(
730 MagnumUtilsClusterTypeTests, os_creds=os_creds,
731 ext_net_name=ext_net_name, log_level=log_level))