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)
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 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)
89 from snaps.openstack.tests.create_security_group_tests import (
90 CreateSecurityGroupTests, SecurityGroupRuleSettingsUnitTests,
91 SecurityGroupSettingsUnitTests, CreateMultipleSecurityGroupTests)
92 from snaps.openstack.tests.create_stack_tests import (
93 StackSettingsUnitTests, CreateStackSuccessTests, CreateStackNegativeTests,
94 CreateStackFlavorTests, CreateStackFloatingIpTests,
95 CreateStackNestedResourceTests, CreateStackKeypairTests,
96 CreateStackVolumeTests, CreateStackSecurityGroupTests)
97 from snaps.openstack.tests.create_user_tests import (
98 UserSettingsUnitTests, CreateUserSuccessTests)
99 from snaps.openstack.tests.create_volume_tests import (
100 VolumeSettingsUnitTests, CreateSimpleVolumeSuccessTests,
101 CreateVolumeWithTypeTests, CreateVolumeWithImageTests,
102 CreateSimpleVolumeFailureTests)
103 from snaps.openstack.tests.create_volume_type_tests import (
104 VolumeTypeSettingsUnitTests, CreateSimpleVolumeTypeSuccessTests,
105 CreateVolumeTypeComplexTests)
106 from snaps.openstack.tests.os_source_file_test import (
107 OSComponentTestCase, OSIntegrationTestCase)
108 from snaps.openstack.utils.tests.cinder_utils_tests import (
109 CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
110 CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests,
111 CinderUtilsVolumeTests)
112 from snaps.openstack.utils.tests.glance_utils_tests import (
113 GlanceSmokeTests, GlanceUtilsTests)
114 from snaps.openstack.utils.tests.heat_utils_tests import (
115 HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
116 HeatUtilsCreateComplexStackTests, HeatUtilsFlavorTests,
117 HeatUtilsKeypairTests, HeatUtilsVolumeTests, HeatUtilsSecurityGroupTests)
118 from snaps.openstack.utils.tests.keystone_utils_tests import (
119 KeystoneSmokeTests, KeystoneUtilsTests)
120 from snaps.openstack.utils.tests.neutron_utils_tests import (
121 NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
122 NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
123 NeutronUtilsFloatingIpTests, NeutronUtilsIPv6Tests)
124 from snaps.openstack.utils.tests.nova_utils_tests import (
125 NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
126 NovaUtilsInstanceTests, NovaUtilsInstanceVolumeTests)
127 from snaps.openstack.utils.tests.settings_utils_tests import (
128 SettingsUtilsUnitTests)
129 from snaps.openstack.utils.tests.magnum_utils_tests import (
130 MagnumSmokeTests, MagnumUtilsClusterTypeTests)
131 from snaps.provisioning.tests.ansible_utils_tests import (
132 AnsibleProvisioningTests)
133 from snaps.tests.file_utils_tests import FileUtilsTests
135 __author__ = 'spisarski'
138 def add_unit_tests(suite):
140 Adds tests that do not require external resources
141 :param suite: the unittest.TestSuite object to which to add the tests
142 :return: None as the tests will be adding to the 'suite' parameter object
144 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(FileUtilsTests))
145 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
146 ProxySettingsUnitTests))
147 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
149 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
150 SecurityGroupConfigUnitTests))
151 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
152 SecurityGroupSettingsUnitTests))
153 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
154 SecurityGroupRuleConfigUnitTests))
155 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
156 SecurityGroupRuleSettingsUnitTests))
157 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
158 SecurityGroupDomainObjectTests))
159 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
160 SecurityGroupRuleDomainObjectTests))
161 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
162 image_tests.ImageConfigUnitTests))
163 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
164 creator_tests.ImageSettingsUnitTests))
165 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
166 ImageDomainObjectTests))
167 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
168 FlavorConfigUnitTests))
169 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
170 FlavorSettingsUnitTests))
171 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
172 FlavorDomainObjectTests))
173 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
174 KeypairConfigUnitTests))
175 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
176 KeypairSettingsUnitTests))
177 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
178 KeypairDomainObjectTests))
179 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
180 UserConfigUnitTests))
181 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
182 UserSettingsUnitTests))
183 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
184 UserDomainObjectTests))
185 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
186 ProjectConfigUnitTests))
187 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
188 ProjectSettingsUnitTests))
189 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
190 ProjectDomainObjectTests))
191 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
192 DomainDomainObjectTests))
193 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
194 ComputeQuotasDomainObjectTests))
195 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
196 NetworkQuotasDomainObjectTests))
197 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
198 RoleDomainObjectTests))
199 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
200 NetworkConfigUnitTests))
201 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
202 NetworkSettingsUnitTests))
203 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
205 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
206 SubnetConfigUnitTests))
207 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
208 SubnetSettingsUnitTests))
209 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
211 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
212 PortConfigUnitTests))
213 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
214 PortSettingsUnitTests))
215 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
216 PortDomainObjectTests))
217 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
218 RouterConfigUnitTests))
219 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
220 RouterSettingsUnitTests))
221 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
222 RouterDomainObjectTests))
223 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
224 InterfaceRouterDomainObjectTests))
225 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
226 FloatingIpConfigUnitTests))
227 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
228 FloatingIpSettingsUnitTests))
229 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
230 VmInstanceConfigUnitTests))
231 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
232 VmInstanceSettingsUnitTests))
233 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
234 StackDomainObjectTests))
235 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
236 ResourceDomainObjectTests))
237 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
238 StackConfigUnitTests))
239 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
240 StackSettingsUnitTests))
241 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
242 VolumeTypeDomainObjectTests))
243 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
244 VolumeTypeEncryptionObjectTests))
245 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
246 VolumeDomainObjectTests))
247 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
248 QoSSpecDomainObjectTests))
249 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
250 VmInstDomainObjectTests))
251 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
252 FloatingIpDomainObjectTests))
253 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
255 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
256 QoSSettingsUnitTests))
257 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
258 VolumeTypeConfigUnitTests))
259 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
260 VolumeTypeSettingsUnitTests))
261 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
262 VolumeConfigUnitTests))
263 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
264 VolumeSettingsUnitTests))
265 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
266 ClusterTemplateConfigUnitTests))
267 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
268 ClusterTemplateUnitTests))
269 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
270 SettingsUtilsUnitTests))
273 def add_openstack_client_tests(suite, os_creds, ext_net_name,
274 use_keystone=True, log_level=logging.INFO):
276 Adds tests written to exercise OpenStack client retrieval
277 :param suite: the unittest.TestSuite object to which to add the tests
278 :param os_creds: and instance of OSCreds that holds the credentials
279 required by OpenStack
280 :param ext_net_name: the name of an external network on the cloud under
282 :param use_keystone: when True, tests requiring direct access to Keystone
283 are added as these need to be running on a host that
284 has access to the cloud's private network
285 :param log_level: the logging level
286 :return: None as the tests will be adding to the 'suite' parameter object
288 # Basic connection tests
290 OSComponentTestCase.parameterize(
291 GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
292 log_level=log_level))
296 OSComponentTestCase.parameterize(
297 KeystoneSmokeTests, os_creds=os_creds,
298 ext_net_name=ext_net_name, log_level=log_level))
301 OSComponentTestCase.parameterize(
302 NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
303 log_level=log_level))
305 OSComponentTestCase.parameterize(
306 NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
307 log_level=log_level))
309 OSComponentTestCase.parameterize(
310 HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
311 log_level=log_level))
313 OSComponentTestCase.parameterize(
314 CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
315 log_level=log_level))
318 def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
319 image_metadata=None, log_level=logging.INFO):
321 Adds tests written to exercise all existing OpenStack APIs
322 :param suite: the unittest.TestSuite object to which to add the tests
323 :param os_creds: Instance of OSCreds that holds the credentials
324 required by OpenStack
325 :param ext_net_name: the name of an external network on the cloud under
327 :param use_keystone: when True, tests requiring direct access to Keystone
328 are added as these need to be running on a host that
329 has access to the cloud's private network
330 :param image_metadata: dict() object containing metadata for creating an
331 image with custom config
332 (see YAML files in examples/image-metadata)
333 :param log_level: the logging level
334 :return: None as the tests will be adding to the 'suite' parameter object
336 # Tests the OpenStack API calls
338 suite.addTest(OSComponentTestCase.parameterize(
339 KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
340 log_level=log_level))
341 suite.addTest(OSComponentTestCase.parameterize(
342 CreateUserSuccessTests, os_creds=os_creds,
343 ext_net_name=ext_net_name, log_level=log_level))
344 suite.addTest(OSComponentTestCase.parameterize(
345 CreateProjectSuccessTests, os_creds=os_creds,
346 ext_net_name=ext_net_name, log_level=log_level))
347 suite.addTest(OSComponentTestCase.parameterize(
348 CreateProjectUserTests, os_creds=os_creds,
349 ext_net_name=ext_net_name, log_level=log_level))
351 suite.addTest(OSComponentTestCase.parameterize(
352 GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
353 image_metadata=image_metadata,
354 log_level=log_level))
355 suite.addTest(OSComponentTestCase.parameterize(
356 NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
357 log_level=log_level))
358 suite.addTest(OSComponentTestCase.parameterize(
359 NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
360 log_level=log_level))
361 suite.addTest(OSComponentTestCase.parameterize(
362 NeutronUtilsIPv6Tests, os_creds=os_creds, ext_net_name=ext_net_name,
363 log_level=log_level))
364 suite.addTest(OSComponentTestCase.parameterize(
365 NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
366 log_level=log_level))
367 suite.addTest(OSComponentTestCase.parameterize(
368 NeutronUtilsSecurityGroupTests, os_creds=os_creds,
369 ext_net_name=ext_net_name, log_level=log_level))
370 suite.addTest(OSComponentTestCase.parameterize(
371 NeutronUtilsFloatingIpTests, os_creds=os_creds,
372 ext_net_name=ext_net_name, log_level=log_level))
373 suite.addTest(OSComponentTestCase.parameterize(
374 NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
375 log_level=log_level))
376 suite.addTest(OSComponentTestCase.parameterize(
377 NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
378 log_level=log_level))
379 suite.addTest(OSComponentTestCase.parameterize(
380 NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
381 log_level=log_level, image_metadata=image_metadata))
382 suite.addTest(OSComponentTestCase.parameterize(
383 NovaUtilsInstanceVolumeTests, os_creds=os_creds,
384 ext_net_name=ext_net_name, log_level=log_level,
385 image_metadata=image_metadata))
386 suite.addTest(OSComponentTestCase.parameterize(
387 CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
388 log_level=log_level))
389 suite.addTest(OSComponentTestCase.parameterize(
390 HeatUtilsCreateSimpleStackTests, os_creds=os_creds,
391 ext_net_name=ext_net_name, log_level=log_level,
392 image_metadata=image_metadata))
393 suite.addTest(OSComponentTestCase.parameterize(
394 HeatUtilsCreateComplexStackTests, os_creds=os_creds,
395 ext_net_name=ext_net_name, log_level=log_level,
396 image_metadata=image_metadata))
397 suite.addTest(OSComponentTestCase.parameterize(
398 HeatUtilsFlavorTests, os_creds=os_creds,
399 ext_net_name=ext_net_name, log_level=log_level,
400 image_metadata=image_metadata))
401 suite.addTest(OSComponentTestCase.parameterize(
402 HeatUtilsKeypairTests, os_creds=os_creds,
403 ext_net_name=ext_net_name, log_level=log_level,
404 image_metadata=image_metadata))
405 suite.addTest(OSComponentTestCase.parameterize(
406 HeatUtilsSecurityGroupTests, os_creds=os_creds,
407 ext_net_name=ext_net_name, log_level=log_level,
408 image_metadata=image_metadata))
409 suite.addTest(OSComponentTestCase.parameterize(
410 HeatUtilsVolumeTests, os_creds=os_creds,
411 ext_net_name=ext_net_name, log_level=log_level,
412 image_metadata=image_metadata))
413 suite.addTest(OSComponentTestCase.parameterize(
414 CinderUtilsQoSTests, os_creds=os_creds,
415 ext_net_name=ext_net_name, log_level=log_level,
416 image_metadata=image_metadata))
417 suite.addTest(OSComponentTestCase.parameterize(
418 CinderUtilsVolumeTests, os_creds=os_creds,
419 ext_net_name=ext_net_name, log_level=log_level,
420 image_metadata=image_metadata))
421 suite.addTest(OSComponentTestCase.parameterize(
422 CinderUtilsSimpleVolumeTypeTests, os_creds=os_creds,
423 ext_net_name=ext_net_name, log_level=log_level,
424 image_metadata=image_metadata))
425 suite.addTest(OSComponentTestCase.parameterize(
426 CinderUtilsAddEncryptionTests, os_creds=os_creds,
427 ext_net_name=ext_net_name, log_level=log_level,
428 image_metadata=image_metadata))
429 suite.addTest(OSComponentTestCase.parameterize(
430 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
431 ext_net_name=ext_net_name, log_level=log_level,
432 image_metadata=image_metadata))
435 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
436 use_keystone=True, flavor_metadata=None,
437 image_metadata=None, use_floating_ips=True,
438 log_level=logging.INFO):
440 Adds tests written to exercise all long-running OpenStack integration tests
441 meaning they will be creating VM instances and potentially performing some
442 SSH functions through floatingIPs
443 :param suite: the unittest.TestSuite object to which to add the tests
444 :param os_creds: and instance of OSCreds that holds the credentials
445 required by OpenStack
446 :param ext_net_name: the name of an external network on the cloud under
448 :param use_keystone: when True, tests requiring direct access to Keystone
449 are added as these need to be running on a host that
450 has access to the cloud's private network
451 :param image_metadata: dict() object containing metadata for creating an
452 image with custom config
453 (see YAML files in examples/image-metadata)
454 :param flavor_metadata: dict() object containing the metadata required by
455 your flavor based on your configuration:
456 (i.e. {'hw:mem_page_size': 'large'})
457 :param use_floating_ips: when true, all tests requiring Floating IPs will
458 be added to the suite
459 :param log_level: the logging level
460 :return: None as the tests will be adding to the 'suite' parameter object
462 # Tests the OpenStack API calls via a creator. If use_keystone, objects
463 # will be created with a custom user and project
465 # Creator Object tests
466 suite.addTest(OSIntegrationTestCase.parameterize(
467 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
468 use_keystone=use_keystone,
469 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
470 log_level=log_level))
471 suite.addTest(OSIntegrationTestCase.parameterize(
472 CreateMultipleSecurityGroupTests, os_creds=os_creds,
473 ext_net_name=ext_net_name, use_keystone=use_keystone,
474 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
475 log_level=log_level))
476 suite.addTest(OSIntegrationTestCase.parameterize(
477 CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
478 use_keystone=use_keystone,
479 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
480 log_level=log_level))
481 suite.addTest(OSIntegrationTestCase.parameterize(
482 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
483 use_keystone=use_keystone,
484 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
485 log_level=log_level))
486 suite.addTest(OSIntegrationTestCase.parameterize(
487 CreateMultiPartImageTests, os_creds=os_creds,
488 ext_net_name=ext_net_name, use_keystone=use_keystone,
489 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
490 log_level=log_level))
491 suite.addTest(OSIntegrationTestCase.parameterize(
492 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
493 use_keystone=use_keystone,
494 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
495 log_level=log_level))
496 suite.addTest(OSIntegrationTestCase.parameterize(
497 CreateKeypairsCleanupTests, os_creds=os_creds,
498 ext_net_name=ext_net_name,
499 use_keystone=use_keystone,
500 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
501 log_level=log_level))
502 suite.addTest(OSIntegrationTestCase.parameterize(
503 CreateNetworkSuccessTests, os_creds=os_creds,
504 ext_net_name=ext_net_name, use_keystone=use_keystone,
505 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
506 log_level=log_level))
507 suite.addTest(OSIntegrationTestCase.parameterize(
508 CreateNetworkGatewayTests, os_creds=os_creds,
509 ext_net_name=ext_net_name, use_keystone=use_keystone,
510 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
511 log_level=log_level))
512 suite.addTest(OSIntegrationTestCase.parameterize(
513 CreateNetworkIPv6Tests, os_creds=os_creds,
514 ext_net_name=ext_net_name, use_keystone=use_keystone,
515 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
516 log_level=log_level))
517 suite.addTest(OSIntegrationTestCase.parameterize(
518 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
519 use_keystone=use_keystone,
520 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
521 log_level=log_level))
522 suite.addTest(OSIntegrationTestCase.parameterize(
523 CreateRouterNegativeTests, os_creds=os_creds,
524 ext_net_name=ext_net_name, use_keystone=use_keystone,
525 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
526 log_level=log_level))
527 suite.addTest(OSIntegrationTestCase.parameterize(
528 CreateQoSTests, os_creds=os_creds,
529 ext_net_name=ext_net_name, use_keystone=use_keystone,
530 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
531 log_level=log_level))
532 suite.addTest(OSIntegrationTestCase.parameterize(
533 CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
534 ext_net_name=ext_net_name, use_keystone=use_keystone,
535 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
536 log_level=log_level))
537 suite.addTest(OSIntegrationTestCase.parameterize(
538 CreateVolumeTypeComplexTests, os_creds=os_creds,
539 ext_net_name=ext_net_name, use_keystone=use_keystone,
540 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
541 log_level=log_level))
542 suite.addTest(OSIntegrationTestCase.parameterize(
543 CreateSimpleVolumeSuccessTests, os_creds=os_creds,
544 ext_net_name=ext_net_name, use_keystone=use_keystone,
545 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
546 log_level=log_level))
547 suite.addTest(OSIntegrationTestCase.parameterize(
548 CreateSimpleVolumeFailureTests, os_creds=os_creds,
549 ext_net_name=ext_net_name, use_keystone=use_keystone,
550 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
551 log_level=log_level))
552 suite.addTest(OSIntegrationTestCase.parameterize(
553 CreateVolumeWithTypeTests, os_creds=os_creds,
554 ext_net_name=ext_net_name, use_keystone=use_keystone,
555 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
556 log_level=log_level))
557 suite.addTest(OSIntegrationTestCase.parameterize(
558 CreateVolumeWithImageTests, os_creds=os_creds,
559 ext_net_name=ext_net_name, use_keystone=use_keystone,
560 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
561 log_level=log_level))
564 suite.addTest(OSIntegrationTestCase.parameterize(
565 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
566 use_keystone=use_keystone,
567 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
568 log_level=log_level))
569 suite.addTest(OSIntegrationTestCase.parameterize(
570 CreateInstanceTwoNetTests, os_creds=os_creds,
571 ext_net_name=ext_net_name, use_keystone=use_keystone,
572 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
573 log_level=log_level))
574 suite.addTest(OSIntegrationTestCase.parameterize(
575 CreateInstanceSimpleTests, os_creds=os_creds,
576 ext_net_name=ext_net_name, use_keystone=use_keystone,
577 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
578 log_level=log_level))
579 suite.addTest(OSIntegrationTestCase.parameterize(
580 CreateInstancePortManipulationTests, os_creds=os_creds,
581 ext_net_name=ext_net_name, use_keystone=use_keystone,
582 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
583 log_level=log_level))
584 suite.addTest(OSIntegrationTestCase.parameterize(
585 InstanceSecurityGroupTests, os_creds=os_creds,
586 ext_net_name=ext_net_name, use_keystone=use_keystone,
587 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
588 log_level=log_level))
589 suite.addTest(OSIntegrationTestCase.parameterize(
590 CreateInstanceOnComputeHost, os_creds=os_creds,
591 ext_net_name=ext_net_name, use_keystone=use_keystone,
592 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
593 log_level=log_level))
594 suite.addTest(OSIntegrationTestCase.parameterize(
595 CreateInstanceFromThreePartImage, os_creds=os_creds,
596 ext_net_name=ext_net_name, use_keystone=use_keystone,
597 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
598 log_level=log_level))
599 suite.addTest(OSIntegrationTestCase.parameterize(
600 CreateInstanceVolumeTests, os_creds=os_creds,
601 ext_net_name=ext_net_name, use_keystone=use_keystone,
602 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
603 log_level=log_level))
604 suite.addTest(OSIntegrationTestCase.parameterize(
605 CreateInstanceIPv6NetworkTests, os_creds=os_creds,
606 ext_net_name=ext_net_name, use_keystone=use_keystone,
607 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
608 log_level=log_level))
609 suite.addTest(OSIntegrationTestCase.parameterize(
610 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
611 use_keystone=use_keystone,
612 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
613 log_level=log_level))
614 suite.addTest(OSIntegrationTestCase.parameterize(
615 CreateStackVolumeTests, os_creds=os_creds, ext_net_name=ext_net_name,
616 use_keystone=use_keystone,
617 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
618 log_level=log_level))
619 suite.addTest(OSIntegrationTestCase.parameterize(
620 CreateStackFlavorTests, 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))
624 suite.addTest(OSIntegrationTestCase.parameterize(
625 CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
626 use_keystone=use_keystone,
627 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
628 log_level=log_level))
629 suite.addTest(OSIntegrationTestCase.parameterize(
630 CreateStackSecurityGroupTests, os_creds=os_creds,
631 ext_net_name=ext_net_name, use_keystone=use_keystone,
632 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
633 log_level=log_level))
634 suite.addTest(OSIntegrationTestCase.parameterize(
635 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
636 use_keystone=use_keystone,
637 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
638 log_level=log_level))
641 suite.addTest(OSIntegrationTestCase.parameterize(
642 CreateInstanceSingleNetworkTests, os_creds=os_creds,
643 ext_net_name=ext_net_name, use_keystone=use_keystone,
644 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
645 log_level=log_level))
646 suite.addTest(OSIntegrationTestCase.parameterize(
647 CreateStackFloatingIpTests, os_creds=os_creds,
648 ext_net_name=ext_net_name, use_keystone=use_keystone,
649 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
650 log_level=log_level))
651 suite.addTest(OSIntegrationTestCase.parameterize(
652 CreateStackNestedResourceTests, os_creds=os_creds,
653 ext_net_name=ext_net_name, use_keystone=use_keystone,
654 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
655 log_level=log_level))
656 suite.addTest(OSIntegrationTestCase.parameterize(
657 AnsibleProvisioningTests, os_creds=os_creds,
658 ext_net_name=ext_net_name, use_keystone=use_keystone,
659 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
660 log_level=log_level))
663 def add_openstack_ci_tests(
664 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
665 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
667 Adds tests written for a CI server to run the tests to validate code
669 :param suite: the unittest.TestSuite object to which to add the tests
670 :param os_creds: and instance of OSCreds that holds the credentials
671 required by OpenStack
672 :param ext_net_name: the name of an external network on the cloud under
674 :param use_keystone: when True, tests requiring direct access to Keystone
675 are added as these need to be running on a host that
676 has access to the cloud's private network
677 :param image_metadata: dict() object containing metadata for creating an
678 image with custom config
679 (see YAML files in examples/image-metadata)
680 :param flavor_metadata: dict() object containing the metadata required by
681 your flavor based on your configuration:
682 (i.e. {'hw:mem_page_size': 'large'})
683 :param use_floating_ips: when true, all tests requiring Floating IPs will
684 be added to the suite
685 :param log_level: the logging level
686 :return: None as the tests will be adding to the 'suite' parameter object
689 add_unit_tests(suite)
691 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
694 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
695 image_metadata, log_level)
697 suite.addTest(OSIntegrationTestCase.parameterize(
698 SimpleHealthCheck, 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 suite.addTest(OSIntegrationTestCase.parameterize(
705 CreateInstanceSingleNetworkTests, os_creds=os_creds,
706 ext_net_name=ext_net_name, use_keystone=use_keystone,
707 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
708 log_level=log_level))
710 suite.addTest(OSIntegrationTestCase.parameterize(
711 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
712 use_keystone=use_keystone,
713 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
714 log_level=log_level))
715 suite.addTest(OSIntegrationTestCase.parameterize(
716 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
717 use_keystone=use_keystone,
718 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
719 log_level=log_level))
722 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
723 log_level=logging.INFO):
725 Adds tests that are still in development have not been designed to run
726 successfully against all OpenStack pods
727 :param suite: the unittest.TestSuite object to which to add the tests
728 :param os_creds: Instance of OSCreds that holds the credentials
729 required by OpenStack
730 :param ext_net_name: the name of an external network on the cloud under
732 :param log_level: the logging level
733 :return: None as the tests will be adding to the 'suite' parameter object
735 suite.addTest(OSComponentTestCase.parameterize(
736 CreateNetworkTypeTests, os_creds=os_creds,
737 ext_net_name=ext_net_name, log_level=log_level))
738 suite.addTest(OSComponentTestCase.parameterize(
739 CreateInstanceMockOfflineTests, os_creds=os_creds,
740 ext_net_name=ext_net_name, log_level=log_level))
741 suite.addTest(OSComponentTestCase.parameterize(
742 MagnumSmokeTests, os_creds=os_creds,
743 ext_net_name=ext_net_name, log_level=log_level))
744 suite.addTest(OSComponentTestCase.parameterize(
745 MagnumUtilsClusterTypeTests, os_creds=os_creds,
746 ext_net_name=ext_net_name, log_level=log_level))
747 suite.addTest(OSComponentTestCase.parameterize(
748 CreateClusterTemplateTests, os_creds=os_creds,
749 ext_net_name=ext_net_name, log_level=log_level))