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.cluster_template_tests import (
59 CreateClusterTemplateTests)
60 from snaps.openstack.tests.conf.os_credentials_tests import (
61 ProxySettingsUnitTests, OSCredsUnitTests)
62 from snaps.openstack.tests.create_flavor_tests import (
63 CreateFlavorTests, FlavorSettingsUnitTests)
64 from snaps.openstack.tests.create_image_tests import (
65 CreateImageSuccessTests, CreateImageNegativeTests,
66 CreateMultiPartImageTests)
67 from snaps.openstack.tests.create_instance_tests import (
68 CreateInstanceSingleNetworkTests, CreateInstanceOnComputeHost,
69 CreateInstanceSimpleTests, FloatingIpSettingsUnitTests,
70 InstanceSecurityGroupTests, VmInstanceSettingsUnitTests,
71 CreateInstancePortManipulationTests, SimpleHealthCheck,
72 CreateInstanceFromThreePartImage, CreateInstanceMockOfflineTests,
73 CreateInstanceTwoNetTests, CreateInstanceVolumeTests,
74 CreateInstanceIPv6NetworkTests, CreateInstanceExternalNetTests)
75 from snaps.openstack.tests.create_keypairs_tests import (
76 CreateKeypairsTests, KeypairSettingsUnitTests, CreateKeypairsCleanupTests)
77 from snaps.openstack.tests.create_network_tests import (
78 CreateNetworkSuccessTests, NetworkSettingsUnitTests, PortSettingsUnitTests,
79 SubnetSettingsUnitTests, CreateNetworkTypeTests, CreateNetworkIPv6Tests,
80 CreateMultipleNetworkTests, CreateNetworkGatewayTests)
81 from snaps.openstack.tests.create_project_tests import (
82 CreateProjectSuccessTests, ProjectSettingsUnitTests,
83 CreateProjectUserTests)
84 from snaps.openstack.tests.create_qos_tests import (
85 QoSSettingsUnitTests, CreateQoSTests)
86 from snaps.openstack.tests.create_router_tests import (
87 CreateRouterSuccessTests, CreateRouterNegativeTests,
88 RouterSettingsUnitTests, CreateMultipleRouterTests,
89 CreateRouterSecurityGroupTests)
90 from snaps.openstack.tests.create_security_group_tests import (
91 CreateSecurityGroupTests, SecurityGroupRuleSettingsUnitTests,
92 SecurityGroupSettingsUnitTests, CreateMultipleSecurityGroupTests)
93 from snaps.openstack.tests.create_stack_tests import (
94 StackSettingsUnitTests, CreateStackSuccessTests, CreateStackNegativeTests,
95 CreateStackFlavorTests, CreateStackFloatingIpTests,
96 CreateStackNestedResourceTests, CreateStackKeypairTests,
97 CreateStackVolumeTests, CreateStackSecurityGroupTests)
98 from snaps.openstack.tests.create_user_tests import (
99 UserSettingsUnitTests, CreateUserSuccessTests)
100 from snaps.openstack.tests.create_volume_tests import (
101 VolumeSettingsUnitTests, CreateSimpleVolumeSuccessTests,
102 CreateVolumeWithTypeTests, CreateVolumeWithImageTests,
103 CreateSimpleVolumeFailureTests, CreateVolMultipleCredsTests)
104 from snaps.openstack.tests.create_volume_type_tests import (
105 VolumeTypeSettingsUnitTests, CreateSimpleVolumeTypeSuccessTests,
106 CreateVolumeTypeComplexTests)
107 from snaps.openstack.tests.os_source_file_test import (
108 OSComponentTestCase, OSIntegrationTestCase)
109 from snaps.openstack.utils.tests.cinder_utils_tests import (
110 CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
111 CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests,
112 CinderUtilsVolumeTests)
113 from snaps.openstack.utils.tests.glance_utils_tests import (
114 GlanceSmokeTests, GlanceUtilsTests)
115 from snaps.openstack.utils.tests.heat_utils_tests import (
116 HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
117 HeatUtilsCreateComplexStackTests, HeatUtilsFlavorTests,
118 HeatUtilsKeypairTests, HeatUtilsVolumeTests, HeatUtilsSecurityGroupTests)
119 from snaps.openstack.utils.tests.keystone_utils_tests import (
120 KeystoneSmokeTests, KeystoneUtilsTests)
121 from snaps.openstack.utils.tests.neutron_utils_tests import (
122 NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
123 NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
124 NeutronUtilsFloatingIpTests, NeutronUtilsIPv6Tests)
125 from snaps.openstack.utils.tests.nova_utils_tests import (
126 NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
127 NovaUtilsInstanceTests, NovaUtilsInstanceVolumeTests)
128 from snaps.openstack.utils.tests.settings_utils_tests import (
129 SettingsUtilsUnitTests)
130 from snaps.openstack.utils.tests.magnum_utils_tests import (
131 MagnumSmokeTests, MagnumUtilsClusterTypeTests)
132 from snaps.provisioning.tests.ansible_utils_tests import (
133 AnsibleProvisioningTests)
134 from snaps.tests.file_utils_tests import FileUtilsTests
136 __author__ = 'spisarski'
139 def add_unit_tests(suite):
141 Adds tests that do not require external resources
142 :param suite: the unittest.TestSuite object to which to add the tests
143 :return: None as the tests will be adding to the 'suite' parameter object
145 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(FileUtilsTests))
146 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
147 ProxySettingsUnitTests))
148 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
150 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
151 SecurityGroupConfigUnitTests))
152 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
153 SecurityGroupSettingsUnitTests))
154 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
155 SecurityGroupRuleConfigUnitTests))
156 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
157 SecurityGroupRuleSettingsUnitTests))
158 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
159 SecurityGroupDomainObjectTests))
160 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
161 SecurityGroupRuleDomainObjectTests))
162 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
163 image_tests.ImageConfigUnitTests))
164 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
165 creator_tests.ImageSettingsUnitTests))
166 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
167 ImageDomainObjectTests))
168 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
169 FlavorConfigUnitTests))
170 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
171 FlavorSettingsUnitTests))
172 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
173 FlavorDomainObjectTests))
174 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
175 KeypairConfigUnitTests))
176 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
177 KeypairSettingsUnitTests))
178 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
179 KeypairDomainObjectTests))
180 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
181 UserConfigUnitTests))
182 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
183 UserSettingsUnitTests))
184 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
185 UserDomainObjectTests))
186 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
187 ProjectConfigUnitTests))
188 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
189 ProjectSettingsUnitTests))
190 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
191 ProjectDomainObjectTests))
192 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
193 DomainDomainObjectTests))
194 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
195 ComputeQuotasDomainObjectTests))
196 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
197 NetworkQuotasDomainObjectTests))
198 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
199 RoleDomainObjectTests))
200 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
201 NetworkConfigUnitTests))
202 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
203 NetworkSettingsUnitTests))
204 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
206 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
207 SubnetConfigUnitTests))
208 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
209 SubnetSettingsUnitTests))
210 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
212 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
213 PortConfigUnitTests))
214 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
215 PortSettingsUnitTests))
216 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
217 PortDomainObjectTests))
218 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
219 RouterConfigUnitTests))
220 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
221 RouterSettingsUnitTests))
222 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
223 RouterDomainObjectTests))
224 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
225 InterfaceRouterDomainObjectTests))
226 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
227 FloatingIpConfigUnitTests))
228 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
229 FloatingIpSettingsUnitTests))
230 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
231 VmInstanceConfigUnitTests))
232 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
233 VmInstanceSettingsUnitTests))
234 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
235 StackDomainObjectTests))
236 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
237 ResourceDomainObjectTests))
238 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
239 StackConfigUnitTests))
240 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
241 StackSettingsUnitTests))
242 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
243 VolumeTypeDomainObjectTests))
244 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
245 VolumeTypeEncryptionObjectTests))
246 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
247 VolumeDomainObjectTests))
248 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
249 QoSSpecDomainObjectTests))
250 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
251 VmInstDomainObjectTests))
252 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
253 FloatingIpDomainObjectTests))
254 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
256 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
257 QoSSettingsUnitTests))
258 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
259 VolumeTypeConfigUnitTests))
260 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
261 VolumeTypeSettingsUnitTests))
262 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
263 VolumeConfigUnitTests))
264 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
265 VolumeSettingsUnitTests))
266 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
267 ClusterTemplateConfigUnitTests))
268 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
269 ClusterTemplateUnitTests))
270 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
271 SettingsUtilsUnitTests))
274 def add_openstack_client_tests(suite, os_creds, ext_net_name,
275 use_keystone=True, log_level=logging.INFO):
277 Adds tests written to exercise OpenStack client retrieval
278 :param suite: the unittest.TestSuite object to which to add the tests
279 :param os_creds: and instance of OSCreds that holds the credentials
280 required by OpenStack
281 :param ext_net_name: the name of an external network on the cloud under
283 :param use_keystone: when True, tests requiring direct access to Keystone
284 are added as these need to be running on a host that
285 has access to the cloud's private network
286 :param log_level: the logging level
287 :return: None as the tests will be adding to the 'suite' parameter object
289 # Basic connection tests
291 OSComponentTestCase.parameterize(
292 GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
293 log_level=log_level))
297 OSComponentTestCase.parameterize(
298 KeystoneSmokeTests, os_creds=os_creds,
299 ext_net_name=ext_net_name, log_level=log_level))
302 OSComponentTestCase.parameterize(
303 NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
304 log_level=log_level))
306 OSComponentTestCase.parameterize(
307 NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
308 log_level=log_level))
310 OSComponentTestCase.parameterize(
311 HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
312 log_level=log_level))
314 OSComponentTestCase.parameterize(
315 CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
316 log_level=log_level))
319 def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
320 image_metadata=None, log_level=logging.INFO):
322 Adds tests written to exercise all existing OpenStack APIs
323 :param suite: the unittest.TestSuite object to which to add the tests
324 :param os_creds: Instance of OSCreds that holds the credentials
325 required by OpenStack
326 :param ext_net_name: the name of an external network on the cloud under
328 :param use_keystone: when True, tests requiring direct access to Keystone
329 are added as these need to be running on a host that
330 has access to the cloud's private network
331 :param image_metadata: dict() object containing metadata for creating an
332 image with custom config
333 (see YAML files in examples/image-metadata)
334 :param log_level: the logging level
335 :return: None as the tests will be adding to the 'suite' parameter object
337 # Tests the OpenStack API calls
339 suite.addTest(OSComponentTestCase.parameterize(
340 KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
341 log_level=log_level))
342 suite.addTest(OSComponentTestCase.parameterize(
343 CreateUserSuccessTests, os_creds=os_creds,
344 ext_net_name=ext_net_name, log_level=log_level))
345 suite.addTest(OSComponentTestCase.parameterize(
346 CreateProjectSuccessTests, os_creds=os_creds,
347 ext_net_name=ext_net_name, log_level=log_level))
348 suite.addTest(OSComponentTestCase.parameterize(
349 CreateProjectUserTests, os_creds=os_creds,
350 ext_net_name=ext_net_name, log_level=log_level))
352 suite.addTest(OSComponentTestCase.parameterize(
353 GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
354 image_metadata=image_metadata,
355 log_level=log_level))
356 suite.addTest(OSComponentTestCase.parameterize(
357 NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
358 log_level=log_level))
359 suite.addTest(OSComponentTestCase.parameterize(
360 NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
361 log_level=log_level))
362 suite.addTest(OSComponentTestCase.parameterize(
363 NeutronUtilsIPv6Tests, os_creds=os_creds, ext_net_name=ext_net_name,
364 log_level=log_level))
365 suite.addTest(OSComponentTestCase.parameterize(
366 NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
367 log_level=log_level))
368 suite.addTest(OSComponentTestCase.parameterize(
369 NeutronUtilsSecurityGroupTests, os_creds=os_creds,
370 ext_net_name=ext_net_name, log_level=log_level))
371 suite.addTest(OSComponentTestCase.parameterize(
372 NeutronUtilsFloatingIpTests, os_creds=os_creds,
373 ext_net_name=ext_net_name, log_level=log_level))
374 suite.addTest(OSComponentTestCase.parameterize(
375 NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
376 log_level=log_level))
377 suite.addTest(OSComponentTestCase.parameterize(
378 NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
379 log_level=log_level))
380 suite.addTest(OSComponentTestCase.parameterize(
381 NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
382 log_level=log_level, image_metadata=image_metadata))
383 suite.addTest(OSComponentTestCase.parameterize(
384 NovaUtilsInstanceVolumeTests, os_creds=os_creds,
385 ext_net_name=ext_net_name, log_level=log_level,
386 image_metadata=image_metadata))
387 suite.addTest(OSComponentTestCase.parameterize(
388 CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
389 log_level=log_level))
390 suite.addTest(OSComponentTestCase.parameterize(
391 HeatUtilsCreateSimpleStackTests, 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 HeatUtilsCreateComplexStackTests, 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 HeatUtilsFlavorTests, 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 HeatUtilsKeypairTests, 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 HeatUtilsSecurityGroupTests, 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 HeatUtilsVolumeTests, 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 CinderUtilsQoSTests, 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 CinderUtilsVolumeTests, 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 CinderUtilsSimpleVolumeTypeTests, 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 CinderUtilsAddEncryptionTests, os_creds=os_creds,
428 ext_net_name=ext_net_name, log_level=log_level,
429 image_metadata=image_metadata))
430 suite.addTest(OSComponentTestCase.parameterize(
431 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
432 ext_net_name=ext_net_name, log_level=log_level,
433 image_metadata=image_metadata))
436 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
437 use_keystone=True, flavor_metadata=None,
438 image_metadata=None, use_floating_ips=True,
439 log_level=logging.INFO):
441 Adds tests written to exercise all long-running OpenStack integration tests
442 meaning they will be creating VM instances and potentially performing some
443 SSH functions through floatingIPs
444 :param suite: the unittest.TestSuite object to which to add the tests
445 :param os_creds: and instance of OSCreds that holds the credentials
446 required by OpenStack
447 :param ext_net_name: the name of an external network on the cloud under
449 :param use_keystone: when True, tests requiring direct access to Keystone
450 are added as these need to be running on a host that
451 has access to the cloud's private network
452 :param image_metadata: dict() object containing metadata for creating an
453 image with custom config
454 (see YAML files in examples/image-metadata)
455 :param flavor_metadata: dict() object containing the metadata required by
456 your flavor based on your configuration:
457 (i.e. {'hw:mem_page_size': 'large'})
458 :param use_floating_ips: when true, all tests requiring Floating IPs will
459 be added to the suite
460 :param log_level: the logging level
461 :return: None as the tests will be adding to the 'suite' parameter object
463 # Tests the OpenStack API calls via a creator. If use_keystone, objects
464 # will be created with a custom user and project
466 # Creator Object tests
467 suite.addTest(OSIntegrationTestCase.parameterize(
468 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
469 use_keystone=use_keystone,
470 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
471 log_level=log_level))
472 suite.addTest(OSIntegrationTestCase.parameterize(
473 CreateMultipleSecurityGroupTests, 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 CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
479 use_keystone=use_keystone,
480 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
481 log_level=log_level))
482 suite.addTest(OSIntegrationTestCase.parameterize(
483 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
484 use_keystone=use_keystone,
485 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
486 log_level=log_level))
487 suite.addTest(OSIntegrationTestCase.parameterize(
488 CreateMultiPartImageTests, 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 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
494 use_keystone=use_keystone,
495 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
496 log_level=log_level))
497 suite.addTest(OSIntegrationTestCase.parameterize(
498 CreateKeypairsCleanupTests, os_creds=os_creds,
499 ext_net_name=ext_net_name,
500 use_keystone=use_keystone,
501 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
502 log_level=log_level))
503 suite.addTest(OSIntegrationTestCase.parameterize(
504 CreateNetworkSuccessTests, os_creds=os_creds,
505 ext_net_name=ext_net_name, use_keystone=use_keystone,
506 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
507 log_level=log_level))
508 suite.addTest(OSIntegrationTestCase.parameterize(
509 CreateNetworkGatewayTests, os_creds=os_creds,
510 ext_net_name=ext_net_name, use_keystone=use_keystone,
511 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
512 log_level=log_level))
513 suite.addTest(OSIntegrationTestCase.parameterize(
514 CreateNetworkIPv6Tests, os_creds=os_creds,
515 ext_net_name=ext_net_name, use_keystone=use_keystone,
516 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
517 log_level=log_level))
518 suite.addTest(OSIntegrationTestCase.parameterize(
519 CreateMultipleNetworkTests, os_creds=os_creds,
520 ext_net_name=ext_net_name, use_keystone=use_keystone,
521 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
522 log_level=log_level))
523 suite.addTest(OSIntegrationTestCase.parameterize(
524 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
525 use_keystone=use_keystone,
526 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
527 log_level=log_level))
528 suite.addTest(OSIntegrationTestCase.parameterize(
529 CreateRouterNegativeTests, os_creds=os_creds,
530 ext_net_name=ext_net_name, use_keystone=use_keystone,
531 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
532 log_level=log_level))
533 suite.addTest(OSIntegrationTestCase.parameterize(
534 CreateMultipleRouterTests, os_creds=os_creds,
535 ext_net_name=ext_net_name, use_keystone=use_keystone,
536 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
537 log_level=log_level))
538 suite.addTest(OSIntegrationTestCase.parameterize(
539 CreateRouterSecurityGroupTests, os_creds=os_creds,
540 ext_net_name=ext_net_name, use_keystone=use_keystone,
541 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
542 log_level=log_level))
543 suite.addTest(OSIntegrationTestCase.parameterize(
544 CreateQoSTests, os_creds=os_creds,
545 ext_net_name=ext_net_name, use_keystone=use_keystone,
546 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
547 log_level=log_level))
548 suite.addTest(OSIntegrationTestCase.parameterize(
549 CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
550 ext_net_name=ext_net_name, use_keystone=use_keystone,
551 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
552 log_level=log_level))
553 suite.addTest(OSIntegrationTestCase.parameterize(
554 CreateVolumeTypeComplexTests, os_creds=os_creds,
555 ext_net_name=ext_net_name, use_keystone=use_keystone,
556 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
557 log_level=log_level))
558 suite.addTest(OSIntegrationTestCase.parameterize(
559 CreateSimpleVolumeSuccessTests, os_creds=os_creds,
560 ext_net_name=ext_net_name, use_keystone=use_keystone,
561 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
562 log_level=log_level))
563 suite.addTest(OSIntegrationTestCase.parameterize(
564 CreateSimpleVolumeFailureTests, os_creds=os_creds,
565 ext_net_name=ext_net_name, use_keystone=use_keystone,
566 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
567 log_level=log_level))
568 suite.addTest(OSIntegrationTestCase.parameterize(
569 CreateVolumeWithTypeTests, 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 CreateVolumeWithImageTests, 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 CreateVolMultipleCredsTests, 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 suite.addTest(OSIntegrationTestCase.parameterize(
586 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
587 use_keystone=use_keystone,
588 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
589 log_level=log_level))
590 suite.addTest(OSIntegrationTestCase.parameterize(
591 CreateInstanceTwoNetTests, os_creds=os_creds,
592 ext_net_name=ext_net_name, use_keystone=use_keystone,
593 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
594 log_level=log_level))
595 suite.addTest(OSIntegrationTestCase.parameterize(
596 CreateInstanceSimpleTests, os_creds=os_creds,
597 ext_net_name=ext_net_name, use_keystone=use_keystone,
598 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
599 log_level=log_level))
600 suite.addTest(OSIntegrationTestCase.parameterize(
601 CreateInstanceExternalNetTests, os_creds=os_creds,
602 ext_net_name=ext_net_name, use_keystone=use_keystone,
603 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
604 log_level=log_level))
605 suite.addTest(OSIntegrationTestCase.parameterize(
606 CreateInstancePortManipulationTests, os_creds=os_creds,
607 ext_net_name=ext_net_name, use_keystone=use_keystone,
608 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
609 log_level=log_level))
610 suite.addTest(OSIntegrationTestCase.parameterize(
611 InstanceSecurityGroupTests, os_creds=os_creds,
612 ext_net_name=ext_net_name, use_keystone=use_keystone,
613 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
614 log_level=log_level))
615 suite.addTest(OSIntegrationTestCase.parameterize(
616 CreateInstanceOnComputeHost, os_creds=os_creds,
617 ext_net_name=ext_net_name, use_keystone=use_keystone,
618 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
619 log_level=log_level))
620 suite.addTest(OSIntegrationTestCase.parameterize(
621 CreateInstanceFromThreePartImage, os_creds=os_creds,
622 ext_net_name=ext_net_name, use_keystone=use_keystone,
623 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
624 log_level=log_level))
625 suite.addTest(OSIntegrationTestCase.parameterize(
626 CreateInstanceVolumeTests, os_creds=os_creds,
627 ext_net_name=ext_net_name, use_keystone=use_keystone,
628 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
629 log_level=log_level))
630 suite.addTest(OSIntegrationTestCase.parameterize(
631 CreateInstanceIPv6NetworkTests, os_creds=os_creds,
632 ext_net_name=ext_net_name, use_keystone=use_keystone,
633 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
634 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 CreateStackVolumeTests, 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))
645 suite.addTest(OSIntegrationTestCase.parameterize(
646 CreateStackFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
647 use_keystone=use_keystone,
648 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
649 log_level=log_level))
650 suite.addTest(OSIntegrationTestCase.parameterize(
651 CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
652 use_keystone=use_keystone,
653 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
654 log_level=log_level))
655 suite.addTest(OSIntegrationTestCase.parameterize(
656 CreateStackSecurityGroupTests, os_creds=os_creds,
657 ext_net_name=ext_net_name, use_keystone=use_keystone,
658 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
659 log_level=log_level))
660 suite.addTest(OSIntegrationTestCase.parameterize(
661 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
662 use_keystone=use_keystone,
663 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
664 log_level=log_level))
667 suite.addTest(OSIntegrationTestCase.parameterize(
668 CreateInstanceSingleNetworkTests, os_creds=os_creds,
669 ext_net_name=ext_net_name, use_keystone=use_keystone,
670 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
671 log_level=log_level))
672 suite.addTest(OSIntegrationTestCase.parameterize(
673 CreateStackFloatingIpTests, os_creds=os_creds,
674 ext_net_name=ext_net_name, use_keystone=use_keystone,
675 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
676 log_level=log_level))
677 suite.addTest(OSIntegrationTestCase.parameterize(
678 CreateStackNestedResourceTests, os_creds=os_creds,
679 ext_net_name=ext_net_name, use_keystone=use_keystone,
680 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
681 log_level=log_level))
684 def add_ansible_integration_tests(suite, os_creds, ext_net_name,
685 use_keystone=True, flavor_metadata=None,
686 image_metadata=None, log_level=logging.INFO):
688 Adds tests written to exercise all long-running OpenStack integration tests
689 meaning they will be creating VM instances and potentially performing some
690 SSH functions through floatingIPs
691 :param suite: the unittest.TestSuite object to which to add the tests
692 :param os_creds: and instance of OSCreds that holds the credentials
693 required by OpenStack
694 :param ext_net_name: the name of an external network on the cloud under
696 :param use_keystone: when True, tests requiring direct access to Keystone
697 are added as these need to be running on a host that
698 has access to the cloud's private network
699 :param image_metadata: dict() object containing metadata for creating an
700 image with custom config
701 (see YAML files in examples/image-metadata)
702 :param flavor_metadata: dict() object containing the metadata required by
703 your flavor based on your configuration:
704 (i.e. {'hw:mem_page_size': 'large'})
705 :param log_level: the logging level
706 :return: None as the tests will be adding to the 'suite' parameter object
708 suite.addTest(OSIntegrationTestCase.parameterize(
709 AnsibleProvisioningTests, os_creds=os_creds,
710 ext_net_name=ext_net_name, use_keystone=use_keystone,
711 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
712 log_level=log_level))
715 def add_openstack_ci_tests(
716 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
717 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
719 Adds tests written for a CI server to run the tests to validate code
721 :param suite: the unittest.TestSuite object to which to add the tests
722 :param os_creds: and instance of OSCreds that holds the credentials
723 required by OpenStack
724 :param ext_net_name: the name of an external network on the cloud under
726 :param use_keystone: when True, tests requiring direct access to Keystone
727 are added as these need to be running on a host that
728 has access to the cloud's private network
729 :param image_metadata: dict() object containing metadata for creating an
730 image with custom config
731 (see YAML files in examples/image-metadata)
732 :param flavor_metadata: dict() object containing the metadata required by
733 your flavor based on your configuration:
734 (i.e. {'hw:mem_page_size': 'large'})
735 :param use_floating_ips: when true, all tests requiring Floating IPs will
736 be added to the suite
737 :param log_level: the logging level
738 :return: None as the tests will be adding to the 'suite' parameter object
741 add_unit_tests(suite)
743 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
746 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
747 image_metadata, log_level)
749 suite.addTest(OSIntegrationTestCase.parameterize(
750 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
751 use_keystone=use_keystone,
752 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
753 log_level=log_level))
756 suite.addTest(OSIntegrationTestCase.parameterize(
757 CreateInstanceSingleNetworkTests, os_creds=os_creds,
758 ext_net_name=ext_net_name, use_keystone=use_keystone,
759 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
760 log_level=log_level))
762 suite.addTest(OSIntegrationTestCase.parameterize(
763 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
764 use_keystone=use_keystone,
765 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
766 log_level=log_level))
767 suite.addTest(OSIntegrationTestCase.parameterize(
768 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
769 use_keystone=use_keystone,
770 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
771 log_level=log_level))
774 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
775 log_level=logging.INFO):
777 Adds tests that are still in development have not been designed to run
778 successfully against all OpenStack pods
779 :param suite: the unittest.TestSuite object to which to add the tests
780 :param os_creds: Instance of OSCreds that holds the credentials
781 required by OpenStack
782 :param ext_net_name: the name of an external network on the cloud under
784 :param log_level: the logging level
785 :return: None as the tests will be adding to the 'suite' parameter object
787 suite.addTest(OSComponentTestCase.parameterize(
788 CreateNetworkTypeTests, os_creds=os_creds,
789 ext_net_name=ext_net_name, log_level=log_level))
790 suite.addTest(OSComponentTestCase.parameterize(
791 CreateInstanceMockOfflineTests, os_creds=os_creds,
792 ext_net_name=ext_net_name, log_level=log_level))
793 suite.addTest(OSComponentTestCase.parameterize(
794 MagnumSmokeTests, os_creds=os_creds,
795 ext_net_name=ext_net_name, log_level=log_level))
796 suite.addTest(OSComponentTestCase.parameterize(
797 MagnumUtilsClusterTypeTests, os_creds=os_creds,
798 ext_net_name=ext_net_name, log_level=log_level))
799 suite.addTest(OSComponentTestCase.parameterize(
800 CreateClusterTemplateTests, os_creds=os_creds,
801 ext_net_name=ext_net_name, log_level=log_level))