3 # All rights reserved. This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
6 # http://www.apache.org/licenses/LICENSE-2.0
15 from functest.utils import openstack_utils
16 from functest.utils.constants import CONST
19 class OSUtilsTesting(unittest.TestCase):
21 def _get_env_cred_dict(self, os_prefix=''):
22 return {'OS_USERNAME': os_prefix + 'username',
23 'OS_PASSWORD': os_prefix + 'password',
24 'OS_AUTH_URL': os_prefix + 'auth_url',
25 'OS_TENANT_NAME': os_prefix + 'tenant_name',
26 'OS_USER_DOMAIN_NAME': os_prefix + 'user_domain_name',
27 'OS_PROJECT_DOMAIN_NAME': os_prefix + 'project_domain_name',
28 'OS_PROJECT_NAME': os_prefix + 'project_name',
29 'OS_ENDPOINT_TYPE': os_prefix + 'endpoint_type',
30 'OS_REGION_NAME': os_prefix + 'region_name',
31 'OS_CACERT': os_prefix + 'https_cacert',
32 'OS_INSECURE': os_prefix + 'https_insecure'}
34 def _get_os_env_vars(self):
35 return {'username': 'test_username', 'password': 'test_password',
36 'auth_url': 'test_auth_url', 'tenant_name': 'test_tenant_name',
37 'user_domain_name': 'test_user_domain_name',
38 'project_domain_name': 'test_project_domain_name',
39 'project_name': 'test_project_name',
40 'endpoint_type': 'test_endpoint_type',
41 'region_name': 'test_region_name',
42 'https_cacert': 'test_https_cacert',
43 'https_insecure': 'test_https_insecure'}
46 self.env_vars = ['OS_AUTH_URL', 'OS_USERNAME', 'OS_PASSWORD']
47 self.tenant_name = 'test_tenant_name'
48 self.env_cred_dict = self._get_env_cred_dict()
49 self.os_environs = self._get_env_cred_dict(os_prefix='test_')
50 self.os_env_vars = self._get_os_env_vars()
52 mock_obj = mock.Mock()
53 attrs = {'name': 'test_flavor',
56 mock_obj.configure_mock(**attrs)
57 self.flavor = mock_obj
59 mock_obj = mock.Mock()
60 attrs = {'name': 'test_aggregate',
62 'hosts': ['host_name']}
63 mock_obj.configure_mock(**attrs)
64 self.aggregate = mock_obj
66 mock_obj = mock.Mock()
67 attrs = {'id': 'instance_id',
68 'name': 'test_instance',
70 mock_obj.configure_mock(**attrs)
71 self.instance = mock_obj
73 mock_obj = mock.Mock()
74 attrs = {'id': 'azone_id',
75 'zoneName': 'test_azone',
77 mock_obj.configure_mock(**attrs)
78 self.availability_zone = mock_obj
80 mock_obj = mock.Mock()
81 attrs = {'floating_network_id': 'floating_id',
82 'floating_ip_address': 'test_floating_ip'}
83 mock_obj.configure_mock(**attrs)
84 self.floating_ip = mock_obj
86 mock_obj = mock.Mock()
87 attrs = {'id': 'hypervisor_id',
88 'hypervisor_hostname': 'test_hostname',
90 mock_obj.configure_mock(**attrs)
91 self.hypervisor = mock_obj
93 mock_obj = mock.Mock()
94 attrs = {'id': 'image_id',
96 mock_obj.configure_mock(**attrs)
99 mock_obj = mock.Mock()
100 self.mock_return = mock_obj
102 self.nova_client = mock.Mock()
103 attrs = {'servers.list.return_value': [self.instance],
104 'servers.get.return_value': self.instance,
105 'servers.find.return_value': self.instance,
106 'servers.create.return_value': self.instance,
107 'flavors.list.return_value': [self.flavor],
108 'flavors.find.return_value': self.flavor,
109 'servers.add_floating_ip.return_value': mock.Mock(),
110 'servers.force_delete.return_value': mock.Mock(),
111 'aggregates.list.return_value': [self.aggregate],
112 'aggregates.add_host.return_value': mock.Mock(),
113 'aggregates.remove_host.return_value': mock.Mock(),
114 'aggregates.get.return_value': self.aggregate,
115 'aggregates.delete.return_value': mock.Mock(),
116 'availability_zones.list.return_value':
117 [self.availability_zone],
118 'hypervisors.list.return_value': [self.hypervisor],
119 'create.return_value': mock.Mock(),
120 'add_security_group.return_value': mock.Mock(),
121 'images.list.return_value': [self.image],
122 'images.delete.return_value': mock.Mock(),
124 self.nova_client.configure_mock(**attrs)
126 self.glance_client = mock.Mock()
127 attrs = {'images.list.return_value': [self.image],
128 'images.create.return_value': self.image,
129 'images.upload.return_value': mock.Mock()}
130 self.glance_client.configure_mock(**attrs)
132 mock_obj = mock.Mock()
133 attrs = {'id': 'volume_id',
134 'name': 'test_volume'}
135 mock_obj.configure_mock(**attrs)
136 self.volume = mock_obj
138 self.cinder_client = mock.Mock()
139 attrs = {'volumes.list.return_value': [self.volume],
140 'quotas.update.return_value': mock.Mock(),
141 'volumes.detach.return_value': mock.Mock(),
142 'volumes.force_delete.return_value': mock.Mock(),
143 'volumes.delete.return_value': mock.Mock()
145 self.cinder_client.configure_mock(**attrs)
147 self.resource = mock.Mock()
148 attrs = {'id': 'resource_test_id',
149 'name': 'resource_test_name'
152 self.heat_client = mock.Mock()
153 attrs = {'resources.get.return_value': self.resource}
154 self.heat_client.configure_mock(**attrs)
156 mock_obj = mock.Mock()
157 attrs = {'id': 'tenant_id',
158 'name': 'test_tenant'}
159 mock_obj.configure_mock(**attrs)
160 self.tenant = mock_obj
162 mock_obj = mock.Mock()
163 attrs = {'id': 'user_id',
165 mock_obj.configure_mock(**attrs)
168 mock_obj = mock.Mock()
169 attrs = {'id': 'role_id',
171 mock_obj.configure_mock(**attrs)
174 mock_obj = mock.Mock()
175 attrs = {'id': 'domain_id',
176 'name': 'test_domain'}
177 mock_obj.configure_mock(**attrs)
178 self.domain = mock_obj
180 self.keystone_client = mock.Mock()
181 attrs = {'projects.list.return_value': [self.tenant],
182 'tenants.list.return_value': [self.tenant],
183 'users.list.return_value': [self.user],
184 'roles.list.return_value': [self.role],
185 'domains.list.return_value': [self.domain],
186 'projects.create.return_value': self.tenant,
187 'tenants.create.return_value': self.tenant,
188 'users.create.return_value': self.user,
189 'roles.grant.return_value': mock.Mock(),
190 'roles.add_user_role.return_value': mock.Mock(),
191 'projects.delete.return_value': mock.Mock(),
192 'tenants.delete.return_value': mock.Mock(),
193 'users.delete.return_value': mock.Mock(),
195 self.keystone_client.configure_mock(**attrs)
197 self.router = {'id': 'router_id',
198 'name': 'test_router'}
200 self.subnet = {'id': 'subnet_id',
201 'name': 'test_subnet'}
203 self.networks = [{'id': 'network_id',
204 'name': 'test_network',
205 'router:external': False,
207 'subnets': [self.subnet]},
208 {'id': 'network_id1',
209 'name': 'test_network1',
210 'router:external': True,
212 'subnets': [self.subnet]}]
214 self.port = {'id': 'port_id',
217 self.sec_group = {'id': 'sec_group_id',
218 'name': 'test_sec_group'}
220 self.sec_group_rule = {'id': 'sec_group_rule_id',
221 'direction': 'direction',
222 'protocol': 'protocol',
223 'port_range_max': 'port_max',
224 'security_group_id': self.sec_group['id'],
225 'port_range_min': 'port_min'}
226 self.neutron_floatingip = {'id': 'fip_id',
227 'floating_ip_address': 'test_ip'}
228 self.neutron_client = mock.Mock()
229 attrs = {'list_networks.return_value': {'networks': self.networks},
230 'list_routers.return_value': {'routers': [self.router]},
231 'list_ports.return_value': {'ports': [self.port]},
232 'list_subnets.return_value': {'subnets': [self.subnet]},
233 'create_network.return_value': {'network': self.networks[0]},
234 'create_subnet.return_value': {'subnets': [self.subnet]},
235 'create_router.return_value': {'router': self.router},
236 'create_port.return_value': {'port': self.port},
237 'create_floatingip.return_value': {'floatingip':
238 self.neutron_floatingip},
239 'update_network.return_value': mock.Mock(),
240 'update_port.return_value': {'port': self.port},
241 'add_interface_router.return_value': mock.Mock(),
242 'add_gateway_router.return_value': mock.Mock(),
243 'delete_network.return_value': mock.Mock(),
244 'delete_subnet.return_value': mock.Mock(),
245 'delete_router.return_value': mock.Mock(),
246 'delete_port.return_value': mock.Mock(),
247 'remove_interface_router.return_value': mock.Mock(),
248 'remove_gateway_router.return_value': mock.Mock(),
249 'list_security_groups.return_value': {'security_groups':
251 'list_security_group_rules.'
252 'return_value': {'security_group_rules':
253 [self.sec_group_rule]},
254 'create_security_group_rule.return_value': mock.Mock(),
255 'create_security_group.return_value': {'security_group':
257 'update_quota.return_value': mock.Mock(),
258 'delete_security_group.return_value': mock.Mock(),
259 'list_floatingips.return_value': {'floatingips':
261 'delete_floatingip.return_value': mock.Mock(),
263 self.neutron_client.configure_mock(**attrs)
265 self.empty_client = mock.Mock()
266 attrs = {'list_networks.return_value': {'networks': []},
267 'list_routers.return_value': {'routers': []},
268 'list_ports.return_value': {'ports': []},
269 'list_subnets.return_value': {'subnets': []}}
270 self.empty_client.configure_mock(**attrs)
272 @mock.patch('functest.utils.openstack_utils.os.getenv',
274 def test_is_keystone_v3_missing_identity(self, mock_os_getenv):
275 self.assertEqual(openstack_utils.is_keystone_v3(), False)
277 @mock.patch('functest.utils.openstack_utils.os.getenv',
279 def test_is_keystone_v3_default(self, mock_os_getenv):
280 self.assertEqual(openstack_utils.is_keystone_v3(), True)
282 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
284 def test_get_rc_env_vars_missing_identity(self, mock_get_rc_env):
285 exp_resp = self.env_vars
286 exp_resp.extend(['OS_TENANT_NAME'])
287 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
289 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
291 def test_get_rc_env_vars_default(self, mock_get_rc_env):
292 exp_resp = self.env_vars
293 exp_resp.extend(['OS_PROJECT_NAME',
294 'OS_USER_DOMAIN_NAME',
295 'OS_PROJECT_DOMAIN_NAME'])
296 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
298 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
299 def test_check_credentials_missing_env(self, mock_get_rc_env):
300 exp_resp = self.env_vars
301 exp_resp.extend(['OS_TENANT_NAME'])
302 mock_get_rc_env.return_value = exp_resp
303 with mock.patch.dict('functest.utils.openstack_utils.os.environ', {},
305 self.assertEqual(openstack_utils.check_credentials(), False)
307 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
308 def test_check_credentials_default(self, mock_get_rc_env):
309 exp_resp = ['OS_TENANT_NAME']
310 mock_get_rc_env.return_value = exp_resp
311 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
312 {'OS_TENANT_NAME': self.tenant_name},
314 self.assertEqual(openstack_utils.check_credentials(), True)
316 def test_get_env_cred_dict(self):
317 self.assertDictEqual(openstack_utils.get_env_cred_dict(),
320 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
321 def test_get_credentials_default(self, mock_get_rc_env):
322 mock_get_rc_env.return_value = self.env_cred_dict.keys()
323 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
326 self.assertDictEqual(openstack_utils.get_credentials(),
329 def _get_credentials_missing_env(self, var):
330 dic = copy.deepcopy(self.os_environs)
332 with mock.patch('functest.utils.openstack_utils.get_rc_env_vars',
333 return_value=self.env_cred_dict.keys()), \
334 mock.patch.dict('functest.utils.openstack_utils.os.environ',
337 self.assertRaises(openstack_utils.MissingEnvVar,
338 lambda: openstack_utils.get_credentials())
340 def test_get_credentials_missing_username(self):
341 self._get_credentials_missing_env('OS_USERNAME')
343 def test_get_credentials_missing_password(self):
344 self._get_credentials_missing_env('OS_PASSWORD')
346 def test_get_credentials_missing_auth_url(self):
347 self._get_credentials_missing_env('OS_AUTH_URL')
349 def test_get_credentials_missing_tenantname(self):
350 self._get_credentials_missing_env('OS_TENANT_NAME')
352 def test_get_credentials_missing_domainname(self):
353 self._get_credentials_missing_env('OS_USER_DOMAIN_NAME')
355 def test_get_credentials_missing_projectname(self):
356 self._get_credentials_missing_env('OS_PROJECT_NAME')
358 def test_get_credentials_missing_endpoint_type(self):
359 self._get_credentials_missing_env('OS_ENDPOINT_TYPE')
361 def _test_source_credentials(self, msg, key='OS_TENANT_NAME',
368 with mock.patch('__builtin__.open', mock.mock_open(read_data=msg),
370 m.return_value.__iter__ = lambda self: iter(self.readline, '')
371 openstack_utils.source_credentials(f)
372 m.assert_called_once_with(f, 'r')
373 self.assertEqual(os.environ[key], value)
375 def test_source_credentials(self):
376 self._test_source_credentials('OS_TENANT_NAME=admin')
377 self._test_source_credentials('OS_TENANT_NAME= admin')
378 self._test_source_credentials('OS_TENANT_NAME = admin')
379 self._test_source_credentials('OS_TENANT_NAME = "admin"')
380 self._test_source_credentials('export OS_TENANT_NAME=admin')
381 self._test_source_credentials('export OS_TENANT_NAME =admin')
382 self._test_source_credentials('export OS_TENANT_NAME = admin')
383 self._test_source_credentials('export OS_TENANT_NAME = "admin"')
384 # This test will fail as soon as rc_file is fixed
385 self._test_source_credentials(
386 'export "\'OS_TENANT_NAME\'" = "\'admin\'"')
388 @mock.patch('functest.utils.openstack_utils.os.getenv',
390 def test_get_keystone_client_version_missing_env(self, mock_os_getenv):
391 self.assertEqual(openstack_utils.get_keystone_client_version(),
392 openstack_utils.DEFAULT_API_VERSION)
394 @mock.patch('functest.utils.openstack_utils.logger.info')
395 @mock.patch('functest.utils.openstack_utils.os.getenv',
397 def test_get_keystone_client_version_default(self, mock_os_getenv,
399 self.assertEqual(openstack_utils.get_keystone_client_version(),
401 mock_logger_info.assert_called_once_with("OS_IDENTITY_API_VERSION is "
402 "set in env as '%s'", '3')
404 @mock.patch('functest.utils.openstack_utils.get_session')
405 @mock.patch('functest.utils.openstack_utils.keystoneclient.Client')
406 @mock.patch('functest.utils.openstack_utils.get_keystone_client_version',
408 @mock.patch('functest.utils.openstack_utils.os.getenv',
409 return_value='public')
410 def test_get_keystone_client_with_interface(self, mock_os_getenv,
411 mock_keystoneclient_version,
414 mock_keystone_obj = mock.Mock()
415 mock_session_obj = mock.Mock()
416 mock_key_client.return_value = mock_keystone_obj
417 mock_get_session.return_value = mock_session_obj
418 self.assertEqual(openstack_utils.get_keystone_client(),
420 mock_key_client.assert_called_once_with('3',
421 session=mock_session_obj,
424 @mock.patch('functest.utils.openstack_utils.get_session')
425 @mock.patch('functest.utils.openstack_utils.keystoneclient.Client')
426 @mock.patch('functest.utils.openstack_utils.get_keystone_client_version',
428 @mock.patch('functest.utils.openstack_utils.os.getenv',
429 return_value='admin')
430 def test_get_keystone_client_no_interface(self, mock_os_getenv,
431 mock_keystoneclient_version,
434 mock_keystone_obj = mock.Mock()
435 mock_session_obj = mock.Mock()
436 mock_key_client.return_value = mock_keystone_obj
437 mock_get_session.return_value = mock_session_obj
438 self.assertEqual(openstack_utils.get_keystone_client(),
440 mock_key_client.assert_called_once_with('3',
441 session=mock_session_obj,
444 @mock.patch('functest.utils.openstack_utils.os.getenv',
446 def test_get_nova_client_version_missing_env(self, mock_os_getenv):
447 self.assertEqual(openstack_utils.get_nova_client_version(),
448 openstack_utils.DEFAULT_API_VERSION)
450 @mock.patch('functest.utils.openstack_utils.logger.info')
451 @mock.patch('functest.utils.openstack_utils.os.getenv',
453 def test_get_nova_client_version_default(self, mock_os_getenv,
455 self.assertEqual(openstack_utils.get_nova_client_version(),
457 mock_logger_info.assert_called_once_with("OS_COMPUTE_API_VERSION is "
458 "set in env as '%s'", '3')
460 def test_get_nova_client(self):
461 mock_nova_obj = mock.Mock()
462 mock_session_obj = mock.Mock()
463 with mock.patch('functest.utils.openstack_utils'
464 '.get_nova_client_version', return_value='3'), \
465 mock.patch('functest.utils.openstack_utils'
466 '.novaclient.Client',
467 return_value=mock_nova_obj) \
468 as mock_nova_client, \
469 mock.patch('functest.utils.openstack_utils.get_session',
470 return_value=mock_session_obj):
471 self.assertEqual(openstack_utils.get_nova_client(),
473 mock_nova_client.assert_called_once_with('3',
474 session=mock_session_obj)
476 @mock.patch('functest.utils.openstack_utils.os.getenv',
478 def test_get_cinder_client_version_missing_env(self, mock_os_getenv):
479 self.assertEqual(openstack_utils.get_cinder_client_version(),
480 openstack_utils.DEFAULT_API_VERSION)
482 @mock.patch('functest.utils.openstack_utils.logger.info')
483 @mock.patch('functest.utils.openstack_utils.os.getenv',
485 def test_get_cinder_client_version_default(self, mock_os_getenv,
487 self.assertEqual(openstack_utils.get_cinder_client_version(),
489 mock_logger_info.assert_called_once_with("OS_VOLUME_API_VERSION is "
490 "set in env as '%s'", '3')
492 def test_get_cinder_client(self):
493 mock_cinder_obj = mock.Mock()
494 mock_session_obj = mock.Mock()
495 with mock.patch('functest.utils.openstack_utils'
496 '.get_cinder_client_version', return_value='3'), \
497 mock.patch('functest.utils.openstack_utils'
498 '.cinderclient.Client',
499 return_value=mock_cinder_obj) \
500 as mock_cind_client, \
501 mock.patch('functest.utils.openstack_utils.get_session',
502 return_value=mock_session_obj):
503 self.assertEqual(openstack_utils.get_cinder_client(),
505 mock_cind_client.assert_called_once_with('3',
506 session=mock_session_obj)
508 @mock.patch('functest.utils.openstack_utils.os.getenv',
510 def test_get_neutron_client_version_missing_env(self, mock_os_getenv):
511 self.assertEqual(openstack_utils.get_neutron_client_version(),
512 openstack_utils.DEFAULT_API_VERSION)
514 @mock.patch('functest.utils.openstack_utils.logger.info')
515 @mock.patch('functest.utils.openstack_utils.os.getenv',
517 def test_get_neutron_client_version_default(self, mock_os_getenv,
519 self.assertEqual(openstack_utils.get_neutron_client_version(),
521 mock_logger_info.assert_called_once_with("OS_NETWORK_API_VERSION is "
522 "set in env as '%s'", '3')
524 def test_get_neutron_client(self):
525 mock_neutron_obj = mock.Mock()
526 mock_session_obj = mock.Mock()
527 with mock.patch('functest.utils.openstack_utils'
528 '.get_neutron_client_version', return_value='3'), \
529 mock.patch('functest.utils.openstack_utils'
530 '.neutronclient.Client',
531 return_value=mock_neutron_obj) \
532 as mock_neut_client, \
533 mock.patch('functest.utils.openstack_utils.get_session',
534 return_value=mock_session_obj):
535 self.assertEqual(openstack_utils.get_neutron_client(),
537 mock_neut_client.assert_called_once_with('3',
538 session=mock_session_obj)
540 @mock.patch('functest.utils.openstack_utils.os.getenv',
542 def test_get_glance_client_version_missing_env(self, mock_os_getenv):
543 self.assertEqual(openstack_utils.get_glance_client_version(),
544 openstack_utils.DEFAULT_API_VERSION)
546 @mock.patch('functest.utils.openstack_utils.logger.info')
547 @mock.patch('functest.utils.openstack_utils.os.getenv',
549 def test_get_glance_client_version_default(self, mock_os_getenv,
551 self.assertEqual(openstack_utils.get_glance_client_version(),
553 mock_logger_info.assert_called_once_with("OS_IMAGE_API_VERSION is "
554 "set in env as '%s'", '3')
556 def test_get_glance_client(self):
557 mock_glance_obj = mock.Mock()
558 mock_session_obj = mock.Mock()
559 with mock.patch('functest.utils.openstack_utils'
560 '.get_glance_client_version', return_value='3'), \
561 mock.patch('functest.utils.openstack_utils'
562 '.glanceclient.Client',
563 return_value=mock_glance_obj) \
564 as mock_glan_client, \
565 mock.patch('functest.utils.openstack_utils.get_session',
566 return_value=mock_session_obj):
567 self.assertEqual(openstack_utils.get_glance_client(),
569 mock_glan_client.assert_called_once_with('3',
570 session=mock_session_obj)
572 @mock.patch('functest.utils.openstack_utils.os.getenv',
574 def test_get_heat_client_version_missing_env(self, mock_os_getenv):
575 self.assertEqual(openstack_utils.get_heat_client_version(),
576 openstack_utils.DEFAULT_HEAT_API_VERSION)
578 @mock.patch('functest.utils.openstack_utils.logger.info')
579 @mock.patch('functest.utils.openstack_utils.os.getenv', return_value='1')
580 def test_get_heat_client_version_default(self, mock_os_getenv,
582 self.assertEqual(openstack_utils.get_heat_client_version(), '1')
583 mock_logger_info.assert_called_once_with(
584 "OS_ORCHESTRATION_API_VERSION is set in env as '%s'", '1')
586 def test_get_heat_client(self):
587 mock_heat_obj = mock.Mock()
588 mock_session_obj = mock.Mock()
589 with mock.patch('functest.utils.openstack_utils'
590 '.get_heat_client_version', return_value='1'), \
591 mock.patch('functest.utils.openstack_utils'
592 '.heatclient.Client',
593 return_value=mock_heat_obj) \
594 as mock_heat_client, \
595 mock.patch('functest.utils.openstack_utils.get_session',
596 return_value=mock_session_obj):
597 self.assertEqual(openstack_utils.get_heat_client(),
599 mock_heat_client.assert_called_once_with('1',
600 session=mock_session_obj)
602 def test_get_instances_default(self):
603 self.assertEqual(openstack_utils.get_instances(self.nova_client),
606 @mock.patch('functest.utils.openstack_utils.logger.error')
607 def test_get_instances_exception(self, mock_logger_error):
608 self.assertEqual(openstack_utils.
609 get_instances(Exception),
611 self.assertTrue(mock_logger_error.called)
613 def test_get_instance_status_default(self):
614 self.assertEqual(openstack_utils.get_instance_status(self.nova_client,
618 @mock.patch('functest.utils.openstack_utils.logger.error')
619 def test_get_instance_status_exception(self, mock_logger_error):
620 self.assertEqual(openstack_utils.
621 get_instance_status(Exception,
624 self.assertTrue(mock_logger_error.called)
626 def test_get_instance_by_name_default(self):
627 self.assertEqual(openstack_utils.
628 get_instance_by_name(self.nova_client,
632 @mock.patch('functest.utils.openstack_utils.logger.error')
633 def test_get_instance_by_name_exception(self, mock_logger_error):
634 self.assertEqual(openstack_utils.
635 get_instance_by_name(Exception,
638 self.assertTrue(mock_logger_error.called)
640 def test_get_flavor_id_default(self):
641 self.assertEqual(openstack_utils.
642 get_flavor_id(self.nova_client,
646 def test_get_flavor_id_by_ram_range_default(self):
647 self.assertEqual(openstack_utils.
648 get_flavor_id_by_ram_range(self.nova_client,
652 def test_get_aggregates_default(self):
653 self.assertEqual(openstack_utils.
654 get_aggregates(self.nova_client),
657 @mock.patch('functest.utils.openstack_utils.logger.error')
658 def test_get_aggregates_exception(self, mock_logger_error):
659 self.assertEqual(openstack_utils.
660 get_aggregates(Exception),
662 self.assertTrue(mock_logger_error.called)
664 def test_get_aggregate_id_default(self):
665 with mock.patch('functest.utils.openstack_utils.get_aggregates',
666 return_value=[self.aggregate]):
667 self.assertEqual(openstack_utils.
668 get_aggregate_id(self.nova_client,
672 @mock.patch('functest.utils.openstack_utils.logger.error')
673 def test_get_aggregate_id_exception(self, mock_logger_error):
674 self.assertEqual(openstack_utils.
675 get_aggregate_id(Exception,
678 self.assertTrue(mock_logger_error.called)
680 def test_get_availability_zone_names_default(self):
681 with mock.patch('functest.utils.openstack_utils'
682 '.get_availability_zones',
683 return_value=[self.availability_zone]):
684 self.assertEqual(openstack_utils.
685 get_availability_zone_names(self.nova_client),
688 @mock.patch('functest.utils.openstack_utils.logger.error')
689 def test_get_availability_zone_names_exception(self, mock_logger_error):
690 self.assertEqual(openstack_utils.
691 get_availability_zone_names(Exception),
693 self.assertTrue(mock_logger_error.called)
695 def test_get_availability_zones_default(self):
696 self.assertEqual(openstack_utils.
697 get_availability_zones(self.nova_client),
698 [self.availability_zone])
700 @mock.patch('functest.utils.openstack_utils.logger.error')
701 def test_get_availability_zones_exception(self, mock_logger_error):
702 self.assertEqual(openstack_utils.
703 get_availability_zones(Exception),
705 self.assertTrue(mock_logger_error.called)
707 def test_get_floating_ips_default(self):
708 self.assertEqual(openstack_utils.
709 get_floating_ips(self.neutron_client),
712 @mock.patch('functest.utils.openstack_utils.logger.error')
713 def test_get_floating_ips_exception(self, mock_logger_error):
714 self.assertEqual(openstack_utils.
715 get_floating_ips(Exception),
717 self.assertTrue(mock_logger_error.called)
719 def test_get_hypervisors_default(self):
720 self.assertEqual(openstack_utils.
721 get_hypervisors(self.nova_client),
724 @mock.patch('functest.utils.openstack_utils.logger.error')
725 def test_get_hypervisors_exception(self, mock_logger_error):
726 self.assertEqual(openstack_utils.
727 get_hypervisors(Exception),
729 self.assertTrue(mock_logger_error.called)
731 def test_create_aggregate_default(self):
732 self.assertTrue(openstack_utils.
733 create_aggregate(self.nova_client,
737 @mock.patch('functest.utils.openstack_utils.logger.error')
738 def test_create_aggregate_exception(self, mock_logger_error):
739 self.assertEqual(openstack_utils.
740 create_aggregate(Exception,
744 self.assertTrue(mock_logger_error.called)
746 def test_add_host_to_aggregate_default(self):
747 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
748 self.assertTrue(openstack_utils.
749 add_host_to_aggregate(self.nova_client,
753 @mock.patch('functest.utils.openstack_utils.logger.error')
754 def test_add_host_to_aggregate_exception(self, mock_logger_error):
755 self.assertEqual(openstack_utils.
756 add_host_to_aggregate(Exception,
760 self.assertTrue(mock_logger_error.called)
762 def test_create_aggregate_with_host_default(self):
763 with mock.patch('functest.utils.openstack_utils.create_aggregate'), \
764 mock.patch('functest.utils.openstack_utils.'
765 'add_host_to_aggregate'):
766 self.assertTrue(openstack_utils.
767 create_aggregate_with_host(self.nova_client,
772 @mock.patch('functest.utils.openstack_utils.logger.error')
773 def test_create_aggregate_with_host_exception(self, mock_logger_error):
774 with mock.patch('functest.utils.openstack_utils.create_aggregate',
775 side_effect=Exception):
776 self.assertEqual(openstack_utils.
777 create_aggregate_with_host(Exception,
782 self.assertTrue(mock_logger_error.called)
784 def test_create_instance_default(self):
785 with mock.patch('functest.utils.openstack_utils.'
787 return_value=self.nova_client):
788 self.assertEqual(openstack_utils.
789 create_instance('test_flavor',
794 @mock.patch('functest.utils.openstack_utils.logger.error')
795 def test_create_instance_exception(self, mock_logger_error):
796 with mock.patch('functest.utils.openstack_utils.'
798 return_value=self.nova_client):
799 self.nova_client.flavors.find.side_effect = Exception
800 self.assertEqual(openstack_utils.
801 create_instance('test_flavor',
805 self.assertTrue(mock_logger_error)
807 def test_create_floating_ip_default(self):
808 with mock.patch('functest.utils.openstack_utils.'
809 'get_external_net_id',
810 return_value='external_net_id'):
811 exp_resp = {'fip_addr': 'test_ip', 'fip_id': 'fip_id'}
812 self.assertEqual(openstack_utils.
813 create_floating_ip(self.neutron_client),
816 @mock.patch('functest.utils.openstack_utils.logger.error')
817 def test_create_floating_ip_exception(self, mock_logger_error):
818 with mock.patch('functest.utils.openstack_utils.'
819 'get_external_net_id',
820 return_value='external_net_id'):
821 self.assertEqual(openstack_utils.
822 create_floating_ip(Exception),
824 self.assertTrue(mock_logger_error)
826 def test_add_floating_ip_default(self):
827 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
828 self.assertTrue(openstack_utils.
829 add_floating_ip(self.nova_client,
831 'test_floatingip_addr'))
833 @mock.patch('functest.utils.openstack_utils.logger.error')
834 def test_add_floating_ip_exception(self, mock_logger_error):
835 self.assertFalse(openstack_utils.
836 add_floating_ip(Exception,
838 'test_floatingip_addr'))
839 self.assertTrue(mock_logger_error.called)
841 def test_delete_instance_default(self):
842 self.assertTrue(openstack_utils.
843 delete_instance(self.nova_client,
846 @mock.patch('functest.utils.openstack_utils.logger.error')
847 def test_delete_instance_exception(self, mock_logger_error):
848 self.assertFalse(openstack_utils.
849 delete_instance(Exception,
851 self.assertTrue(mock_logger_error.called)
853 def test_delete_floating_ip_default(self):
854 self.assertTrue(openstack_utils.
855 delete_floating_ip(self.neutron_client,
858 @mock.patch('functest.utils.openstack_utils.logger.error')
859 def test_delete_floating_ip_exception(self, mock_logger_error):
860 self.assertFalse(openstack_utils.
861 delete_floating_ip(Exception,
863 self.assertTrue(mock_logger_error.called)
865 def test_remove_host_from_aggregate_default(self):
866 with mock.patch('functest.utils.openstack_utils.'
868 self.assertTrue(openstack_utils.
869 remove_host_from_aggregate(self.nova_client,
873 @mock.patch('functest.utils.openstack_utils.logger.error')
874 def test_remove_host_from_aggregate_exception(self, mock_logger_error):
875 with mock.patch('functest.utils.openstack_utils.'
876 'get_aggregate_id', side_effect=Exception):
877 self.assertFalse(openstack_utils.
878 remove_host_from_aggregate(self.nova_client,
881 self.assertTrue(mock_logger_error.called)
883 def test_remove_hosts_from_aggregate_default(self):
884 with mock.patch('functest.utils.openstack_utils.'
885 'get_aggregate_id'), \
886 mock.patch('functest.utils.openstack_utils.'
887 'remove_host_from_aggregate',
890 openstack_utils.remove_hosts_from_aggregate(self.nova_client,
892 mock_method.assert_any_call(self.nova_client,
896 def test_delete_aggregate_default(self):
897 with mock.patch('functest.utils.openstack_utils.'
898 'remove_hosts_from_aggregate'):
899 self.assertTrue(openstack_utils.
900 delete_aggregate(self.nova_client,
903 @mock.patch('functest.utils.openstack_utils.logger.error')
904 def test_delete_aggregate_exception(self, mock_logger_error):
905 with mock.patch('functest.utils.openstack_utils.'
906 'remove_hosts_from_aggregate', side_effect=Exception):
907 self.assertFalse(openstack_utils.
908 delete_aggregate(self.nova_client,
910 self.assertTrue(mock_logger_error.called)
912 def test_get_network_list_default(self):
913 self.assertEqual(openstack_utils.
914 get_network_list(self.neutron_client),
917 def test_get_network_list_missing_network(self):
918 self.assertEqual(openstack_utils.
919 get_network_list(self.empty_client),
922 def test_get_router_list_default(self):
923 self.assertEqual(openstack_utils.
924 get_router_list(self.neutron_client),
927 def test_get_router_list_missing_router(self):
928 self.assertEqual(openstack_utils.
929 get_router_list(self.empty_client),
932 def test_get_port_list_default(self):
933 self.assertEqual(openstack_utils.
934 get_port_list(self.neutron_client),
937 def test_get_port_list_missing_port(self):
938 self.assertEqual(openstack_utils.
939 get_port_list(self.empty_client),
942 def test_get_network_id_default(self):
943 self.assertEqual(openstack_utils.
944 get_network_id(self.neutron_client,
948 def test_get_subnet_id_default(self):
949 self.assertEqual(openstack_utils.
950 get_subnet_id(self.neutron_client,
954 def test_get_router_id_default(self):
955 self.assertEqual(openstack_utils.
956 get_router_id(self.neutron_client,
960 def test_get_private_net_default(self):
961 self.assertEqual(openstack_utils.
962 get_private_net(self.neutron_client),
965 def test_get_private_net_missing_net(self):
966 self.assertEqual(openstack_utils.
967 get_private_net(self.empty_client),
970 def test_get_external_net_default(self):
971 self.assertEqual(openstack_utils.
972 get_external_net(self.neutron_client),
975 def test_get_external_net_missing_net(self):
976 self.assertEqual(openstack_utils.
977 get_external_net(self.empty_client),
980 def test_get_external_net_id_default(self):
981 self.assertEqual(openstack_utils.
982 get_external_net_id(self.neutron_client),
985 def test_get_external_net_id_missing_net(self):
986 self.assertEqual(openstack_utils.
987 get_external_net_id(self.empty_client),
990 def test_check_neutron_net_default(self):
991 self.assertTrue(openstack_utils.
992 check_neutron_net(self.neutron_client,
995 def test_check_neutron_net_missing_net(self):
996 self.assertFalse(openstack_utils.
997 check_neutron_net(self.empty_client,
1000 def test_create_neutron_net_default(self):
1001 self.assertEqual(openstack_utils.
1002 create_neutron_net(self.neutron_client,
1006 @mock.patch('functest.utils.openstack_utils.logger.error')
1007 def test_create_neutron_net_exception(self, mock_logger_error):
1008 self.assertEqual(openstack_utils.
1009 create_neutron_net(Exception,
1012 self.assertTrue(mock_logger_error.called)
1014 def test_create_neutron_subnet_default(self):
1015 self.assertEqual(openstack_utils.
1016 create_neutron_subnet(self.neutron_client,
1022 @mock.patch('functest.utils.openstack_utils.logger.error')
1023 def test_create_neutron_subnet_exception(self, mock_logger_error):
1024 self.assertEqual(openstack_utils.
1025 create_neutron_subnet(Exception,
1030 self.assertTrue(mock_logger_error.called)
1032 def test_create_neutron_router_default(self):
1033 self.assertEqual(openstack_utils.
1034 create_neutron_router(self.neutron_client,
1038 @mock.patch('functest.utils.openstack_utils.logger.error')
1039 def test_create_neutron_router_exception(self, mock_logger_error):
1040 self.assertEqual(openstack_utils.
1041 create_neutron_router(Exception,
1044 self.assertTrue(mock_logger_error.called)
1046 def test_create_neutron_port_default(self):
1047 self.assertEqual(openstack_utils.
1048 create_neutron_port(self.neutron_client,
1054 @mock.patch('functest.utils.openstack_utils.logger.error')
1055 def test_create_neutron_port_exception(self, mock_logger_error):
1056 self.assertEqual(openstack_utils.
1057 create_neutron_port(Exception,
1062 self.assertTrue(mock_logger_error.called)
1064 def test_update_neutron_net_default(self):
1065 self.assertTrue(openstack_utils.
1066 update_neutron_net(self.neutron_client,
1069 @mock.patch('functest.utils.openstack_utils.logger.error')
1070 def test_update_neutron_net_exception(self, mock_logger_error):
1071 self.assertFalse(openstack_utils.
1072 update_neutron_net(Exception,
1074 self.assertTrue(mock_logger_error.called)
1076 def test_update_neutron_port_default(self):
1077 self.assertEqual(openstack_utils.
1078 update_neutron_port(self.neutron_client,
1083 @mock.patch('functest.utils.openstack_utils.logger.error')
1084 def test_update_neutron_port_exception(self, mock_logger_error):
1085 self.assertEqual(openstack_utils.
1086 update_neutron_port(Exception,
1090 self.assertTrue(mock_logger_error.called)
1092 def test_add_interface_router_default(self):
1093 self.assertTrue(openstack_utils.
1094 add_interface_router(self.neutron_client,
1098 @mock.patch('functest.utils.openstack_utils.logger.error')
1099 def test_add_interface_router_exception(self, mock_logger_error):
1100 self.assertFalse(openstack_utils.
1101 add_interface_router(Exception,
1104 self.assertTrue(mock_logger_error.called)
1106 def test_add_gateway_router_default(self):
1107 with mock.patch('functest.utils.openstack_utils.'
1108 'get_external_net_id',
1109 return_value='network_id'):
1110 self.assertTrue(openstack_utils.
1111 add_gateway_router(self.neutron_client,
1114 @mock.patch('functest.utils.openstack_utils.logger.error')
1115 def test_add_gateway_router_exception(self, mock_logger_error):
1116 with mock.patch('functest.utils.openstack_utils.'
1117 'get_external_net_id',
1118 return_value='network_id'):
1119 self.assertFalse(openstack_utils.
1120 add_gateway_router(Exception,
1122 self.assertTrue(mock_logger_error.called)
1124 def test_delete_neutron_net_default(self):
1125 self.assertTrue(openstack_utils.
1126 delete_neutron_net(self.neutron_client,
1129 @mock.patch('functest.utils.openstack_utils.logger.error')
1130 def test_delete_neutron_net_exception(self, mock_logger_error):
1131 self.assertFalse(openstack_utils.
1132 delete_neutron_net(Exception,
1134 self.assertTrue(mock_logger_error.called)
1136 def test_delete_neutron_subnet_default(self):
1137 self.assertTrue(openstack_utils.
1138 delete_neutron_subnet(self.neutron_client,
1141 @mock.patch('functest.utils.openstack_utils.logger.error')
1142 def test_delete_neutron_subnet_exception(self, mock_logger_error):
1143 self.assertFalse(openstack_utils.
1144 delete_neutron_subnet(Exception,
1146 self.assertTrue(mock_logger_error.called)
1148 def test_delete_neutron_router_default(self):
1149 self.assertTrue(openstack_utils.
1150 delete_neutron_router(self.neutron_client,
1153 @mock.patch('functest.utils.openstack_utils.logger.error')
1154 def test_delete_neutron_router_exception(self, mock_logger_error):
1155 self.assertFalse(openstack_utils.
1156 delete_neutron_router(Exception,
1158 self.assertTrue(mock_logger_error.called)
1160 def test_delete_neutron_port_default(self):
1161 self.assertTrue(openstack_utils.
1162 delete_neutron_port(self.neutron_client,
1165 @mock.patch('functest.utils.openstack_utils.logger.error')
1166 def test_delete_neutron_port_exception(self, mock_logger_error):
1167 self.assertFalse(openstack_utils.
1168 delete_neutron_port(Exception,
1170 self.assertTrue(mock_logger_error.called)
1172 def test_remove_interface_router_default(self):
1173 self.assertTrue(openstack_utils.
1174 remove_interface_router(self.neutron_client,
1178 @mock.patch('functest.utils.openstack_utils.logger.error')
1179 def test_remove_interface_router_exception(self, mock_logger_error):
1180 self.assertFalse(openstack_utils.
1181 remove_interface_router(Exception,
1184 self.assertTrue(mock_logger_error.called)
1186 def test_remove_gateway_router_default(self):
1187 self.assertTrue(openstack_utils.
1188 remove_gateway_router(self.neutron_client,
1191 @mock.patch('functest.utils.openstack_utils.logger.error')
1192 def test_remove_gateway_router_exception(self, mock_logger_error):
1193 self.assertFalse(openstack_utils.
1194 remove_gateway_router(Exception,
1196 self.assertTrue(mock_logger_error.called)
1198 def test_get_security_groups_default(self):
1199 self.assertEqual(openstack_utils.
1200 get_security_groups(self.neutron_client),
1203 @mock.patch('functest.utils.openstack_utils.logger.error')
1204 def test_get_security_groups_exception(self, mock_logger_error):
1205 self.assertEqual(openstack_utils.
1206 get_security_groups(Exception),
1208 self.assertTrue(mock_logger_error.called)
1210 def test_get_security_group_id_default(self):
1211 with mock.patch('functest.utils.openstack_utils.'
1212 'get_security_groups',
1213 return_value=[self.sec_group]):
1214 self.assertEqual(openstack_utils.
1215 get_security_group_id(self.neutron_client,
1219 def test_get_security_group_rules_default(self):
1220 self.assertEqual(openstack_utils.
1221 get_security_group_rules(self.neutron_client,
1222 self.sec_group['id']),
1223 [self.sec_group_rule])
1225 @mock.patch('functest.utils.openstack_utils.logger.error')
1226 def test_get_security_group_rules_exception(self, mock_logger_error):
1227 self.assertEqual(openstack_utils.
1228 get_security_group_rules(Exception,
1231 self.assertTrue(mock_logger_error.called)
1233 def test_check_security_group_rules_not_exists(self):
1234 self.assertEqual(openstack_utils.
1235 check_security_group_rules(self.neutron_client,
1243 def test_check_security_group_rules_exists(self):
1244 self.assertEqual(openstack_utils.
1245 check_security_group_rules(self.neutron_client,
1246 self.sec_group['id'],
1253 @mock.patch('functest.utils.openstack_utils.logger.error')
1254 def test_check_security_group_rules_exception(self, mock_logger_error):
1255 self.assertEqual(openstack_utils.
1256 check_security_group_rules(Exception,
1263 self.assertTrue(mock_logger_error.called)
1265 def test_create_security_group_default(self):
1266 self.assertEqual(openstack_utils.
1267 create_security_group(self.neutron_client,
1272 @mock.patch('functest.utils.openstack_utils.logger.error')
1273 def test_create_security_group_exception(self, mock_logger_error):
1274 self.assertEqual(openstack_utils.
1275 create_security_group(Exception,
1279 self.assertTrue(mock_logger_error.called)
1281 def test_create_secgroup_rule_default(self):
1282 self.assertTrue(openstack_utils.
1283 create_secgroup_rule(self.neutron_client,
1289 self.assertTrue(openstack_utils.
1290 create_secgroup_rule(self.neutron_client,
1295 @mock.patch('functest.utils.openstack_utils.logger.error')
1296 def test_create_secgroup_rule_invalid_port_range(self, mock_logger_error):
1297 self.assertFalse(openstack_utils.
1298 create_secgroup_rule(self.neutron_client,
1304 @mock.patch('functest.utils.openstack_utils.logger.error')
1305 def test_create_secgroup_rule_exception(self, mock_logger_error):
1306 self.assertFalse(openstack_utils.
1307 create_secgroup_rule(Exception,
1312 @mock.patch('functest.utils.openstack_utils.logger.info')
1313 def test_create_security_group_full_default(self, mock_logger_info):
1314 with mock.patch('functest.utils.openstack_utils.'
1315 'get_security_group_id',
1316 return_value='sg_id'):
1317 self.assertEqual(openstack_utils.
1318 create_security_group_full(self.neutron_client,
1322 self.assertTrue(mock_logger_info)
1324 @mock.patch('functest.utils.openstack_utils.logger.info')
1325 @mock.patch('functest.utils.openstack_utils.logger.error')
1326 def test_create_security_group_full_sec_group_fail(self,
1329 with mock.patch('functest.utils.openstack_utils.'
1330 'get_security_group_id',
1332 mock.patch('functest.utils.openstack_utils.'
1333 'create_security_group',
1334 return_value=False):
1335 self.assertEqual(openstack_utils.
1336 create_security_group_full(self.neutron_client,
1340 self.assertTrue(mock_logger_error)
1341 self.assertTrue(mock_logger_info)
1343 @mock.patch('functest.utils.openstack_utils.logger.debug')
1344 @mock.patch('functest.utils.openstack_utils.logger.info')
1345 @mock.patch('functest.utils.openstack_utils.logger.error')
1346 def test_create_security_group_full_secgroup_rule_fail(self,
1350 with mock.patch('functest.utils.openstack_utils.'
1351 'get_security_group_id',
1353 mock.patch('functest.utils.openstack_utils.'
1354 'create_security_group',
1355 return_value={'id': 'sg_id',
1356 'name': 'sg_name'}), \
1357 mock.patch('functest.utils.openstack_utils.'
1358 'create_secgroup_rule',
1359 return_value=False):
1360 self.assertEqual(openstack_utils.
1361 create_security_group_full(self.neutron_client,
1365 self.assertTrue(mock_logger_error)
1366 self.assertTrue(mock_logger_info)
1367 self.assertTrue(mock_logger_debug)
1369 def test_add_secgroup_to_instance_default(self):
1370 self.assertTrue(openstack_utils.
1371 add_secgroup_to_instance(self.nova_client,
1375 @mock.patch('functest.utils.openstack_utils.logger.error')
1376 def test_add_secgroup_to_instance_exception(self, mock_logger_error):
1377 self.assertFalse(openstack_utils.
1378 add_secgroup_to_instance(Exception,
1381 self.assertTrue(mock_logger_error.called)
1383 def test_update_sg_quota_default(self):
1384 self.assertTrue(openstack_utils.
1385 update_sg_quota(self.neutron_client,
1390 @mock.patch('functest.utils.openstack_utils.logger.error')
1391 def test_update_sg_quota_exception(self, mock_logger_error):
1392 self.assertFalse(openstack_utils.
1393 update_sg_quota(Exception,
1397 self.assertTrue(mock_logger_error.called)
1399 def test_delete_security_group_default(self):
1400 self.assertTrue(openstack_utils.
1401 delete_security_group(self.neutron_client,
1404 @mock.patch('functest.utils.openstack_utils.logger.error')
1405 def test_delete_security_group_exception(self, mock_logger_error):
1406 self.assertFalse(openstack_utils.
1407 delete_security_group(Exception,
1409 self.assertTrue(mock_logger_error.called)
1411 def test_get_images_default(self):
1412 self.assertEqual(openstack_utils.
1413 get_images(self.glance_client),
1416 @mock.patch('functest.utils.openstack_utils.logger.error')
1417 def test_get_images_exception(self, mock_logger_error):
1418 self.assertEqual(openstack_utils.
1419 get_images(Exception),
1421 self.assertTrue(mock_logger_error.called)
1423 def test_get_image_id_default(self):
1424 self.assertEqual(openstack_utils.
1425 get_image_id(self.glance_client,
1429 # create_glance_image, get_or_create_image
1430 @mock.patch('functest.utils.openstack_utils.logger.error')
1431 def test_create_glance_image_file_present(self, mock_logger_error):
1432 with mock.patch('functest.utils.openstack_utils.'
1434 return_value=False):
1435 self.assertEqual(openstack_utils.
1436 create_glance_image(self.glance_client,
1440 self.assertTrue(mock_logger_error.called)
1442 @mock.patch('functest.utils.openstack_utils.logger.info')
1443 def test_create_glance_image_already_exist(self, mock_logger_info):
1444 with mock.patch('functest.utils.openstack_utils.'
1446 return_value=True), \
1447 mock.patch('functest.utils.openstack_utils.get_image_id',
1448 return_value='image_id'):
1449 self.assertEqual(openstack_utils.
1450 create_glance_image(self.glance_client,
1454 self.assertTrue(mock_logger_info.called)
1456 @mock.patch('functest.utils.openstack_utils.logger.info')
1457 def test_create_glance_image_default(self, mock_logger_info):
1458 with mock.patch('functest.utils.openstack_utils.'
1460 return_value=True), \
1461 mock.patch('functest.utils.openstack_utils.get_image_id',
1463 mock.patch('__builtin__.open',
1464 mock.mock_open(read_data='1')) as m:
1465 self.assertEqual(openstack_utils.
1466 create_glance_image(self.glance_client,
1470 m.assert_called_once_with('file_path')
1471 self.assertTrue(mock_logger_info.called)
1473 @mock.patch('functest.utils.openstack_utils.logger.error')
1474 def test_create_glance_image_exception(self, mock_logger_error):
1475 with mock.patch('functest.utils.openstack_utils.'
1477 return_value=True), \
1478 mock.patch('functest.utils.openstack_utils.get_image_id',
1479 side_effect=Exception):
1480 self.assertEqual(openstack_utils.
1481 create_glance_image(self.glance_client,
1485 self.assertTrue(mock_logger_error.called)
1487 def test_delete_glance_image_default(self):
1488 self.assertTrue(openstack_utils.
1489 delete_glance_image(self.nova_client,
1492 @mock.patch('functest.utils.openstack_utils.logger.error')
1493 def test_delete_glance_image_exception(self, mock_logger_error):
1494 self.assertFalse(openstack_utils.
1495 delete_glance_image(Exception,
1497 self.assertTrue(mock_logger_error.called)
1499 def test_get_volumes_default(self):
1500 self.assertEqual(openstack_utils.
1501 get_volumes(self.cinder_client),
1504 @mock.patch('functest.utils.openstack_utils.logger.error')
1505 def test_get_volumes_exception(self, mock_logger_error):
1506 self.assertEqual(openstack_utils.
1507 get_volumes(Exception),
1509 self.assertTrue(mock_logger_error.called)
1511 def test_update_cinder_quota_default(self):
1512 self.assertTrue(openstack_utils.
1513 update_cinder_quota(self.cinder_client,
1519 @mock.patch('functest.utils.openstack_utils.logger.error')
1520 def test_update_cinder_quota_exception(self, mock_logger_error):
1521 self.assertFalse(openstack_utils.
1522 update_cinder_quota(Exception,
1527 self.assertTrue(mock_logger_error.called)
1529 def test_delete_volume_default(self):
1530 self.assertTrue(openstack_utils.
1531 delete_volume(self.cinder_client,
1535 self.assertTrue(openstack_utils.
1536 delete_volume(self.cinder_client,
1540 @mock.patch('functest.utils.openstack_utils.logger.error')
1541 def test_delete_volume_exception(self, mock_logger_error):
1542 self.assertFalse(openstack_utils.
1543 delete_volume(Exception,
1546 self.assertTrue(mock_logger_error.called)
1548 def test_get_tenants_default(self):
1549 with mock.patch('functest.utils.openstack_utils.'
1550 'is_keystone_v3', return_value=True):
1551 self.assertEqual(openstack_utils.
1552 get_tenants(self.keystone_client),
1554 with mock.patch('functest.utils.openstack_utils.'
1555 'is_keystone_v3', return_value=False):
1556 self.assertEqual(openstack_utils.
1557 get_tenants(self.keystone_client),
1560 @mock.patch('functest.utils.openstack_utils.logger.error')
1561 def test_get_tenants_exception(self, mock_logger_error):
1562 self.assertEqual(openstack_utils.
1563 get_tenants(Exception),
1565 self.assertTrue(mock_logger_error.called)
1567 def test_get_users_default(self):
1568 self.assertEqual(openstack_utils.
1569 get_users(self.keystone_client),
1572 @mock.patch('functest.utils.openstack_utils.logger.error')
1573 def test_get_users_exception(self, mock_logger_error):
1574 self.assertEqual(openstack_utils.
1575 get_users(Exception),
1577 self.assertTrue(mock_logger_error.called)
1579 def test_get_tenant_id_default(self):
1580 self.assertEqual(openstack_utils.
1581 get_tenant_id(self.keystone_client,
1585 def test_get_user_id_default(self):
1586 self.assertEqual(openstack_utils.
1587 get_user_id(self.keystone_client,
1591 def test_get_role_id_default(self):
1592 self.assertEqual(openstack_utils.
1593 get_role_id(self.keystone_client,
1597 def test_get_domain_id_default(self):
1598 self.assertEqual(openstack_utils.
1599 get_domain_id(self.keystone_client,
1603 def test_create_tenant_default(self):
1604 with mock.patch('functest.utils.openstack_utils.'
1605 'is_keystone_v3', return_value=True):
1606 CONST.__setattr__('OS_PROJECT_DOMAIN_NAME', 'Default')
1607 self.assertEqual(openstack_utils.
1608 create_tenant(self.keystone_client,
1612 with mock.patch('functest.utils.openstack_utils.'
1613 'is_keystone_v3', return_value=False):
1614 self.assertEqual(openstack_utils.
1615 create_tenant(self.keystone_client,
1620 @mock.patch('functest.utils.openstack_utils.logger.error')
1621 def test_create_tenant_exception(self, mock_logger_error):
1622 self.assertEqual(openstack_utils.
1623 create_tenant(Exception,
1627 self.assertTrue(mock_logger_error.called)
1629 def test_create_user_default(self):
1630 with mock.patch('functest.utils.openstack_utils.'
1631 'is_keystone_v3', return_value=True):
1632 self.assertEqual(openstack_utils.
1633 create_user(self.keystone_client,
1639 with mock.patch('functest.utils.openstack_utils.'
1640 'is_keystone_v3', return_value=False):
1641 self.assertEqual(openstack_utils.
1642 create_user(self.keystone_client,
1649 @mock.patch('functest.utils.openstack_utils.logger.error')
1650 def test_create_user_exception(self, mock_logger_error):
1651 self.assertEqual(openstack_utils.
1652 create_user(Exception,
1658 self.assertTrue(mock_logger_error.called)
1660 def test_add_role_user_default(self):
1661 with mock.patch('functest.utils.openstack_utils.'
1662 'is_keystone_v3', return_value=True):
1663 self.assertTrue(openstack_utils.
1664 add_role_user(self.keystone_client,
1669 with mock.patch('functest.utils.openstack_utils.'
1670 'is_keystone_v3', return_value=False):
1671 self.assertTrue(openstack_utils.
1672 add_role_user(self.keystone_client,
1677 @mock.patch('functest.utils.openstack_utils.logger.error')
1678 def test_add_role_user_exception(self, mock_logger_error):
1679 self.assertFalse(openstack_utils.
1680 add_role_user(Exception,
1684 self.assertTrue(mock_logger_error.called)
1686 def test_delete_tenant_default(self):
1687 with mock.patch('functest.utils.openstack_utils.'
1688 'is_keystone_v3', return_value=True):
1689 self.assertTrue(openstack_utils.
1690 delete_tenant(self.keystone_client,
1693 with mock.patch('functest.utils.openstack_utils.'
1694 'is_keystone_v3', return_value=False):
1695 self.assertTrue(openstack_utils.
1696 delete_tenant(self.keystone_client,
1699 @mock.patch('functest.utils.openstack_utils.logger.error')
1700 def test_delete_tenant_exception(self, mock_logger_error):
1701 self.assertFalse(openstack_utils.
1702 delete_tenant(Exception,
1704 self.assertTrue(mock_logger_error.called)
1706 def test_delete_user_default(self):
1707 self.assertTrue(openstack_utils.
1708 delete_user(self.keystone_client,
1711 @mock.patch('functest.utils.openstack_utils.logger.error')
1712 def test_delete_user_exception(self, mock_logger_error):
1713 self.assertFalse(openstack_utils.
1714 delete_user(Exception,
1716 self.assertTrue(mock_logger_error.called)
1718 def test_get_resource_default(self):
1719 with mock.patch('functest.utils.openstack_utils.'
1720 'is_keystone_v3', return_value=True):
1721 self.assertEqual(openstack_utils.
1722 get_resource(self.heat_client,
1727 @mock.patch('functest.utils.openstack_utils.logger.error')
1728 def test_get_resource_exception(self, mock_logger_error):
1729 self.assertEqual(openstack_utils.
1730 get_resource(Exception,
1734 self.assertTrue(mock_logger_error.called)
1736 def test_get_or_create_user_for_vnf_get(self):
1737 with mock.patch('functest.utils.openstack_utils.'
1739 return_value='user_id'), \
1740 mock.patch('functest.utils.openstack_utils.get_tenant_id',
1741 return_value='tenant_id'):
1742 self.assertFalse(openstack_utils.
1743 get_or_create_user_for_vnf(self.keystone_client,
1746 def test_get_or_create_user_for_vnf_create(self):
1747 with mock.patch('functest.utils.openstack_utils.'
1749 return_value=None), \
1750 mock.patch('functest.utils.openstack_utils.get_tenant_id',
1751 return_value='tenant_id'):
1752 self.assertTrue(openstack_utils.
1753 get_or_create_user_for_vnf(self.keystone_client,
1756 def test_get_or_create_user_for_vnf_error_get_user_id(self):
1757 with mock.patch('functest.utils.openstack_utils.'
1759 side_effect=Exception):
1760 self.assertRaises(Exception)
1762 def test_get_or_create_user_for_vnf_error_get_tenant_id(self):
1763 with mock.patch('functest.utils.openstack_utils.'
1765 return_value='user_id'), \
1766 mock.patch('functest.utils.openstack_utils.get_tenant_id',
1767 side_effect='Exception'):
1768 self.assertRaises(Exception)
1770 def test_get_or_create_tenant_for_vnf_get(self):
1771 with mock.patch('functest.utils.openstack_utils.'
1773 return_value='tenant_id'):
1775 openstack_utils.get_or_create_tenant_for_vnf(
1776 self.keystone_client, 'tenant_name', 'tenant_description'))
1778 def test_get_or_create_tenant_for_vnf_create(self):
1779 with mock.patch('functest.utils.openstack_utils.get_tenant_id',
1782 openstack_utils.get_or_create_tenant_for_vnf(
1783 self.keystone_client, 'tenant_name', 'tenant_description'))
1785 def test_get_or_create_tenant_for_vnf_error_get_tenant_id(self):
1786 with mock.patch('functest.utils.openstack_utils.'
1788 side_effect=Exception):
1789 self.assertRaises(Exception)
1791 def test_download_and_add_image_on_glance_image_creation_failure(self):
1792 with mock.patch('functest.utils.openstack_utils.'
1794 mock.patch('functest.utils.openstack_utils.'
1795 'ft_utils.download_url',
1796 return_value=True), \
1797 mock.patch('functest.utils.openstack_utils.'
1798 'create_glance_image',
1800 resp = openstack_utils.download_and_add_image_on_glance(
1805 self.assertEqual(resp, False)
1808 if __name__ == "__main__":
1809 logging.disable(logging.CRITICAL)
1810 unittest.main(verbosity=2)