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.domain.test.flavor_tests import FlavorDomainObjectTests
20 from snaps.domain.test.image_tests import ImageDomainObjectTests
21 from snaps.domain.test.keypair_tests import KeypairDomainObjectTests
22 from snaps.domain.test.network_tests import (
23 SecurityGroupDomainObjectTests, SecurityGroupRuleDomainObjectTests,
24 PortDomainObjectTests, RouterDomainObjectTests,
25 InterfaceRouterDomainObjectTests, NetworkObjectTests, SubnetObjectTests)
26 from snaps.domain.test.project_tests import (
27 ProjectDomainObjectTests, DomainDomainObjectTests,
28 ComputeQuotasDomainObjectTests, NetworkQuotasDomainObjectTests)
29 from snaps.domain.test.role_tests import RoleDomainObjectTests
30 from snaps.domain.test.stack_tests import (
31 StackDomainObjectTests, ResourceDomainObjectTests)
32 from snaps.domain.test.user_tests import UserDomainObjectTests
33 from snaps.domain.test.vm_inst_tests import (
34 VmInstDomainObjectTests, FloatingIpDomainObjectTests)
35 from snaps.domain.test.volume_tests import (
36 QoSSpecDomainObjectTests, VolumeTypeDomainObjectTests,
37 VolumeTypeEncryptionObjectTests)
38 from snaps.openstack.tests.conf.os_credentials_tests import (
39 ProxySettingsUnitTests, OSCredsUnitTests)
40 from snaps.openstack.tests.create_flavor_tests import (
41 CreateFlavorTests, FlavorSettingsUnitTests)
42 from snaps.openstack.tests.create_image_tests import (
43 CreateImageSuccessTests, CreateImageNegativeTests, ImageSettingsUnitTests,
44 CreateMultiPartImageTests)
45 from snaps.openstack.tests.create_instance_tests import (
46 CreateInstanceSingleNetworkTests, CreateInstancePubPrivNetTests,
47 CreateInstanceOnComputeHost, CreateInstanceSimpleTests,
48 FloatingIpSettingsUnitTests, InstanceSecurityGroupTests,
49 VmInstanceSettingsUnitTests, CreateInstancePortManipulationTests,
50 SimpleHealthCheck, CreateInstanceFromThreePartImage,
51 CreateInstanceMockOfflineTests, CreateInstanceTwoNetTests)
52 from snaps.openstack.tests.create_keypairs_tests import (
53 CreateKeypairsTests, KeypairSettingsUnitTests, CreateKeypairsCleanupTests)
54 from snaps.openstack.tests.create_network_tests import (
55 CreateNetworkSuccessTests, NetworkSettingsUnitTests, PortSettingsUnitTests,
56 SubnetSettingsUnitTests, CreateNetworkTypeTests)
57 from snaps.openstack.tests.create_project_tests import (
58 CreateProjectSuccessTests, ProjectSettingsUnitTests,
59 CreateProjectUserTests)
60 from snaps.openstack.tests.create_qos_tests import (
61 QoSSettingsUnitTests, CreateQoSTests)
62 from snaps.openstack.tests.create_router_tests import (
63 CreateRouterSuccessTests, CreateRouterNegativeTests,
64 RouterSettingsUnitTests)
65 from snaps.openstack.tests.create_security_group_tests import (
66 CreateSecurityGroupTests, SecurityGroupRuleSettingsUnitTests,
67 SecurityGroupSettingsUnitTests)
68 from snaps.openstack.tests.create_stack_tests import (
69 StackSettingsUnitTests, CreateStackSuccessTests, CreateStackNegativeTests,
70 CreateComplexStackTests)
71 from snaps.openstack.tests.create_user_tests import (
72 UserSettingsUnitTests, CreateUserSuccessTests)
73 from snaps.openstack.tests.create_volume_type_tests import (
74 VolumeTypeSettingsUnitTests, CreateSimpleVolumeTypeSuccessTests,
75 CreateVolumeTypeComplexTests)
76 from snaps.openstack.tests.os_source_file_test import (
77 OSComponentTestCase, OSIntegrationTestCase)
78 from snaps.openstack.utils.tests.cinder_utils_tests import (
79 CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
80 CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests)
81 from snaps.openstack.utils.tests.glance_utils_tests import (
82 GlanceSmokeTests, GlanceUtilsTests)
83 from snaps.openstack.utils.tests.heat_utils_tests import (
84 HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
85 HeatUtilsCreateComplexStackTests)
86 from snaps.openstack.utils.tests.keystone_utils_tests import (
87 KeystoneSmokeTests, KeystoneUtilsTests)
88 from snaps.openstack.utils.tests.neutron_utils_tests import (
89 NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
90 NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
91 NeutronUtilsFloatingIpTests)
92 from snaps.openstack.utils.tests.nova_utils_tests import (
93 NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
94 NovaUtilsInstanceTests)
95 from snaps.provisioning.tests.ansible_utils_tests import (
96 AnsibleProvisioningTests)
97 from snaps.tests.file_utils_tests import FileUtilsTests
99 __author__ = 'spisarski'
102 def add_unit_tests(suite):
104 Adds tests that do not require external resources
105 :param suite: the unittest.TestSuite object to which to add the tests
106 :return: None as the tests will be adding to the 'suite' parameter object
108 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(FileUtilsTests))
109 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
110 SecurityGroupRuleSettingsUnitTests))
111 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
112 ProxySettingsUnitTests))
113 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
115 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
116 SecurityGroupSettingsUnitTests))
117 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
118 SecurityGroupDomainObjectTests))
119 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
120 SecurityGroupRuleDomainObjectTests))
121 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
122 ImageSettingsUnitTests))
123 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
124 ImageDomainObjectTests))
125 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
126 FlavorSettingsUnitTests))
127 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
128 FlavorDomainObjectTests))
129 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
130 KeypairSettingsUnitTests))
131 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
132 KeypairDomainObjectTests))
133 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
134 UserSettingsUnitTests))
135 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
136 UserDomainObjectTests))
137 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
138 ProjectSettingsUnitTests))
139 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
140 ProjectDomainObjectTests))
141 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
142 DomainDomainObjectTests))
143 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
144 ComputeQuotasDomainObjectTests))
145 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
146 NetworkQuotasDomainObjectTests))
147 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
148 RoleDomainObjectTests))
149 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
150 NetworkSettingsUnitTests))
151 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
153 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
154 SubnetSettingsUnitTests))
155 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
157 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
158 PortSettingsUnitTests))
159 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
160 PortDomainObjectTests))
161 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
162 RouterSettingsUnitTests))
163 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
164 RouterDomainObjectTests))
165 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
166 InterfaceRouterDomainObjectTests))
167 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
168 FloatingIpSettingsUnitTests))
169 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
170 VmInstanceSettingsUnitTests))
171 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
172 StackDomainObjectTests))
173 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
174 ResourceDomainObjectTests))
175 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
176 StackSettingsUnitTests))
177 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
178 VolumeTypeDomainObjectTests))
179 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
180 VolumeTypeEncryptionObjectTests))
181 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
182 QoSSpecDomainObjectTests))
183 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
184 VmInstDomainObjectTests))
185 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
186 FloatingIpDomainObjectTests))
187 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
188 QoSSettingsUnitTests))
189 suite.addTest(unittest.TestLoader().loadTestsFromTestCase(
190 VolumeTypeSettingsUnitTests))
193 def add_openstack_client_tests(suite, os_creds, ext_net_name,
194 use_keystone=True, log_level=logging.INFO):
196 Adds tests written to exercise OpenStack client retrieval
197 :param suite: the unittest.TestSuite object to which to add the tests
198 :param os_creds: and instance of OSCreds that holds the credentials
199 required by OpenStack
200 :param ext_net_name: the name of an external network on the cloud under
202 :param use_keystone: when True, tests requiring direct access to Keystone
203 are added as these need to be running on a host that
204 has access to the cloud's private network
205 :param log_level: the logging level
206 :return: None as the tests will be adding to the 'suite' parameter object
208 # Basic connection tests
210 OSComponentTestCase.parameterize(
211 GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
212 log_level=log_level))
216 OSComponentTestCase.parameterize(
217 KeystoneSmokeTests, os_creds=os_creds,
218 ext_net_name=ext_net_name, log_level=log_level))
221 OSComponentTestCase.parameterize(
222 NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
223 log_level=log_level))
225 OSComponentTestCase.parameterize(
226 NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
227 log_level=log_level))
229 OSComponentTestCase.parameterize(
230 HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
231 log_level=log_level))
233 OSComponentTestCase.parameterize(
234 CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
235 log_level=log_level))
238 def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
239 image_metadata=None, log_level=logging.INFO):
241 Adds tests written to exercise all existing OpenStack APIs
242 :param suite: the unittest.TestSuite object to which to add the tests
243 :param os_creds: Instance of OSCreds that holds the credentials
244 required by OpenStack
245 :param ext_net_name: the name of an external network on the cloud under
247 :param use_keystone: when True, tests requiring direct access to Keystone
248 are added as these need to be running on a host that
249 has access to the cloud's private network
250 :param image_metadata: dict() object containing metadata for creating an
251 image with custom config
252 (see YAML files in examples/image-metadata)
253 :param log_level: the logging level
254 :return: None as the tests will be adding to the 'suite' parameter object
256 # Tests the OpenStack API calls
258 suite.addTest(OSComponentTestCase.parameterize(
259 KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
260 log_level=log_level))
261 suite.addTest(OSComponentTestCase.parameterize(
262 CreateUserSuccessTests, os_creds=os_creds,
263 ext_net_name=ext_net_name, log_level=log_level))
264 suite.addTest(OSComponentTestCase.parameterize(
265 CreateProjectSuccessTests, os_creds=os_creds,
266 ext_net_name=ext_net_name, log_level=log_level))
267 suite.addTest(OSComponentTestCase.parameterize(
268 CreateProjectUserTests, os_creds=os_creds,
269 ext_net_name=ext_net_name, log_level=log_level))
271 suite.addTest(OSComponentTestCase.parameterize(
272 GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
273 image_metadata=image_metadata,
274 log_level=log_level))
275 suite.addTest(OSComponentTestCase.parameterize(
276 NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
277 log_level=log_level))
278 suite.addTest(OSComponentTestCase.parameterize(
279 NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
280 log_level=log_level))
281 suite.addTest(OSComponentTestCase.parameterize(
282 NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
283 log_level=log_level))
284 suite.addTest(OSComponentTestCase.parameterize(
285 NeutronUtilsSecurityGroupTests, os_creds=os_creds,
286 ext_net_name=ext_net_name, log_level=log_level))
287 suite.addTest(OSComponentTestCase.parameterize(
288 NeutronUtilsFloatingIpTests, os_creds=os_creds,
289 ext_net_name=ext_net_name, log_level=log_level))
290 suite.addTest(OSComponentTestCase.parameterize(
291 NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
292 log_level=log_level))
293 suite.addTest(OSComponentTestCase.parameterize(
294 NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
295 log_level=log_level))
296 suite.addTest(OSComponentTestCase.parameterize(
297 NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
298 log_level=log_level, image_metadata=image_metadata))
299 suite.addTest(OSComponentTestCase.parameterize(
300 CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
301 log_level=log_level))
302 suite.addTest(OSComponentTestCase.parameterize(
303 HeatUtilsCreateSimpleStackTests, os_creds=os_creds,
304 ext_net_name=ext_net_name, log_level=log_level,
305 image_metadata=image_metadata))
306 suite.addTest(OSComponentTestCase.parameterize(
307 HeatUtilsCreateComplexStackTests, os_creds=os_creds,
308 ext_net_name=ext_net_name, log_level=log_level,
309 image_metadata=image_metadata))
310 suite.addTest(OSComponentTestCase.parameterize(
311 CinderUtilsQoSTests, os_creds=os_creds,
312 ext_net_name=ext_net_name, log_level=log_level,
313 image_metadata=image_metadata))
314 suite.addTest(OSComponentTestCase.parameterize(
315 CinderUtilsSimpleVolumeTypeTests, os_creds=os_creds,
316 ext_net_name=ext_net_name, log_level=log_level,
317 image_metadata=image_metadata))
318 suite.addTest(OSComponentTestCase.parameterize(
319 CinderUtilsAddEncryptionTests, os_creds=os_creds,
320 ext_net_name=ext_net_name, log_level=log_level,
321 image_metadata=image_metadata))
322 suite.addTest(OSComponentTestCase.parameterize(
323 CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
324 ext_net_name=ext_net_name, log_level=log_level,
325 image_metadata=image_metadata))
328 def add_openstack_integration_tests(suite, os_creds, ext_net_name,
329 use_keystone=True, flavor_metadata=None,
330 image_metadata=None, use_floating_ips=True,
331 log_level=logging.INFO):
333 Adds tests written to exercise all long-running OpenStack integration tests
334 meaning they will be creating VM instances and potentially performing some
335 SSH functions through floatingIPs
336 :param suite: the unittest.TestSuite object to which to add the tests
337 :param os_creds: and instance of OSCreds that holds the credentials
338 required by OpenStack
339 :param ext_net_name: the name of an external network on the cloud under
341 :param use_keystone: when True, tests requiring direct access to Keystone
342 are added as these need to be running on a host that
343 has access to the cloud's private network
344 :param image_metadata: dict() object containing metadata for creating an
345 image with custom config
346 (see YAML files in examples/image-metadata)
347 :param flavor_metadata: dict() object containing the metadata required by
348 your flavor based on your configuration:
349 (i.e. {'hw:mem_page_size': 'large'})
350 :param use_floating_ips: when true, all tests requiring Floating IPs will
351 be added to the suite
352 :param log_level: the logging level
353 :return: None as the tests will be adding to the 'suite' parameter object
355 # Tests the OpenStack API calls via a creator. If use_keystone, objects
356 # will be created with a custom user and project
358 # Creator Object tests
359 suite.addTest(OSIntegrationTestCase.parameterize(
360 CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
361 use_keystone=use_keystone,
362 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
363 log_level=log_level))
364 suite.addTest(OSIntegrationTestCase.parameterize(
365 CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
366 use_keystone=use_keystone,
367 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
368 log_level=log_level))
369 suite.addTest(OSIntegrationTestCase.parameterize(
370 CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
371 use_keystone=use_keystone,
372 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
373 log_level=log_level))
374 suite.addTest(OSIntegrationTestCase.parameterize(
375 CreateMultiPartImageTests, os_creds=os_creds,
376 ext_net_name=ext_net_name, use_keystone=use_keystone,
377 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
378 log_level=log_level))
379 suite.addTest(OSIntegrationTestCase.parameterize(
380 CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
381 use_keystone=use_keystone,
382 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
383 log_level=log_level))
384 suite.addTest(OSIntegrationTestCase.parameterize(
385 CreateKeypairsCleanupTests, os_creds=os_creds,
386 ext_net_name=ext_net_name,
387 use_keystone=use_keystone,
388 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
389 log_level=log_level))
390 suite.addTest(OSIntegrationTestCase.parameterize(
391 CreateNetworkSuccessTests, os_creds=os_creds,
392 ext_net_name=ext_net_name, use_keystone=use_keystone,
393 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
394 log_level=log_level))
395 suite.addTest(OSIntegrationTestCase.parameterize(
396 CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
397 use_keystone=use_keystone,
398 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
399 log_level=log_level))
400 suite.addTest(OSIntegrationTestCase.parameterize(
401 CreateRouterNegativeTests, os_creds=os_creds,
402 ext_net_name=ext_net_name, use_keystone=use_keystone,
403 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
404 log_level=log_level))
405 suite.addTest(OSIntegrationTestCase.parameterize(
406 CreateQoSTests, os_creds=os_creds,
407 ext_net_name=ext_net_name, use_keystone=use_keystone,
408 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
409 log_level=log_level))
410 suite.addTest(OSIntegrationTestCase.parameterize(
411 CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
412 ext_net_name=ext_net_name, use_keystone=use_keystone,
413 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
414 log_level=log_level))
415 suite.addTest(OSIntegrationTestCase.parameterize(
416 CreateVolumeTypeComplexTests, os_creds=os_creds,
417 ext_net_name=ext_net_name, use_keystone=use_keystone,
418 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
419 log_level=log_level))
422 suite.addTest(OSIntegrationTestCase.parameterize(
423 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
424 use_keystone=use_keystone,
425 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
426 log_level=log_level))
427 suite.addTest(OSIntegrationTestCase.parameterize(
428 CreateInstanceTwoNetTests, os_creds=os_creds,
429 ext_net_name=ext_net_name, use_keystone=use_keystone,
430 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
431 log_level=log_level))
432 suite.addTest(OSIntegrationTestCase.parameterize(
433 CreateInstanceSimpleTests, os_creds=os_creds,
434 ext_net_name=ext_net_name, use_keystone=use_keystone,
435 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
436 log_level=log_level))
437 suite.addTest(OSIntegrationTestCase.parameterize(
438 CreateInstancePortManipulationTests, os_creds=os_creds,
439 ext_net_name=ext_net_name, use_keystone=use_keystone,
440 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
441 log_level=log_level))
442 suite.addTest(OSIntegrationTestCase.parameterize(
443 InstanceSecurityGroupTests, os_creds=os_creds,
444 ext_net_name=ext_net_name, use_keystone=use_keystone,
445 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
446 log_level=log_level))
447 suite.addTest(OSIntegrationTestCase.parameterize(
448 CreateInstanceOnComputeHost, os_creds=os_creds,
449 ext_net_name=ext_net_name, use_keystone=use_keystone,
450 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
451 log_level=log_level))
452 suite.addTest(OSIntegrationTestCase.parameterize(
453 CreateInstanceFromThreePartImage, os_creds=os_creds,
454 ext_net_name=ext_net_name, use_keystone=use_keystone,
455 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
456 log_level=log_level))
457 suite.addTest(OSIntegrationTestCase.parameterize(
458 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
459 use_keystone=use_keystone,
460 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
461 log_level=log_level))
462 suite.addTest(OSIntegrationTestCase.parameterize(
463 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
464 use_keystone=use_keystone,
465 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
466 log_level=log_level))
469 suite.addTest(OSIntegrationTestCase.parameterize(
470 CreateInstanceSingleNetworkTests, os_creds=os_creds,
471 ext_net_name=ext_net_name, use_keystone=use_keystone,
472 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
473 log_level=log_level))
474 suite.addTest(OSIntegrationTestCase.parameterize(
475 CreateComplexStackTests, os_creds=os_creds,
476 ext_net_name=ext_net_name, use_keystone=use_keystone,
477 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
478 log_level=log_level))
479 suite.addTest(OSIntegrationTestCase.parameterize(
480 AnsibleProvisioningTests, os_creds=os_creds,
481 ext_net_name=ext_net_name, use_keystone=use_keystone,
482 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
483 log_level=log_level))
486 def add_openstack_ci_tests(
487 suite, os_creds, ext_net_name, use_keystone=True, flavor_metadata=None,
488 image_metadata=None, use_floating_ips=True, log_level=logging.INFO):
490 Adds tests written for a CI server to run the tests to validate code
492 :param suite: the unittest.TestSuite object to which to add the tests
493 :param os_creds: and instance of OSCreds that holds the credentials
494 required by OpenStack
495 :param ext_net_name: the name of an external network on the cloud under
497 :param use_keystone: when True, tests requiring direct access to Keystone
498 are added as these need to be running on a host that
499 has access to the cloud's private network
500 :param image_metadata: dict() object containing metadata for creating an
501 image with custom config
502 (see YAML files in examples/image-metadata)
503 :param flavor_metadata: dict() object containing the metadata required by
504 your flavor based on your configuration:
505 (i.e. {'hw:mem_page_size': 'large'})
506 :param use_floating_ips: when true, all tests requiring Floating IPs will
507 be added to the suite
508 :param log_level: the logging level
509 :return: None as the tests will be adding to the 'suite' parameter object
512 add_unit_tests(suite)
514 add_openstack_client_tests(suite, os_creds, ext_net_name, use_keystone,
517 add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone,
518 image_metadata, log_level)
520 suite.addTest(OSIntegrationTestCase.parameterize(
521 SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
522 use_keystone=use_keystone,
523 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
524 log_level=log_level))
527 suite.addTest(OSIntegrationTestCase.parameterize(
528 CreateInstanceSingleNetworkTests, 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))
533 suite.addTest(OSIntegrationTestCase.parameterize(
534 CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
535 use_keystone=use_keystone,
536 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
537 log_level=log_level))
538 suite.addTest(OSIntegrationTestCase.parameterize(
539 CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
540 use_keystone=use_keystone,
541 flavor_metadata=flavor_metadata, image_metadata=image_metadata,
542 log_level=log_level))
545 def add_openstack_staging_tests(suite, os_creds, ext_net_name,
546 log_level=logging.INFO):
548 Adds tests that are still in development have not been designed to run
549 successfully against all OpenStack pods
550 :param suite: the unittest.TestSuite object to which to add the tests
551 :param os_creds: Instance of OSCreds that holds the credentials
552 required by OpenStack
553 :param ext_net_name: the name of an external network on the cloud under
555 :param log_level: the logging level
556 :return: None as the tests will be adding to the 'suite' parameter object
558 suite.addTest(OSComponentTestCase.parameterize(
559 CreateNetworkTypeTests, os_creds=os_creds, ext_net_name=ext_net_name,
560 log_level=log_level))
561 suite.addTest(OSComponentTestCase.parameterize(
562 CreateInstanceMockOfflineTests, os_creds=os_creds,
563 ext_net_name=ext_net_name, log_level=log_level))
564 suite.addTest(OSIntegrationTestCase.parameterize(
565 CreateInstancePubPrivNetTests, os_creds=os_creds,
566 ext_net_name=ext_net_name, log_level=log_level))