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
14 from functest.utils import openstack_utils
17 class OSUtilsTesting(unittest.TestCase):
19 logging.disable(logging.CRITICAL)
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'}
32 def _get_os_env_vars(self):
33 return {'username': 'test_username', 'password': 'test_password',
34 'auth_url': 'test_auth_url', 'tenant_name': 'test_tenant_name',
35 'user_domain_name': 'test_user_domain_name',
36 'project_domain_name': 'test_project_domain_name',
37 'project_name': 'test_project_name',
38 'endpoint_type': 'test_endpoint_type',
39 'region_name': 'test_region_name'}
42 self.env_vars = ['OS_AUTH_URL', 'OS_USERNAME', 'OS_PASSWORD']
43 self.tenant_name = 'test_tenant_name'
44 self.env_cred_dict = self._get_env_cred_dict()
45 self.os_environs = self._get_env_cred_dict(os_prefix='test_')
46 self.os_env_vars = self._get_os_env_vars()
48 mock_obj = mock.Mock()
49 attrs = {'name': 'test_flavor',
52 mock_obj.configure_mock(**attrs)
53 self.flavor = mock_obj
55 mock_obj = mock.Mock()
56 attrs = {'name': 'test_aggregate',
58 'hosts': ['host_name']}
59 mock_obj.configure_mock(**attrs)
60 self.aggregate = mock_obj
62 mock_obj = mock.Mock()
63 attrs = {'id': 'instance_id',
64 'name': 'test_instance',
66 mock_obj.configure_mock(**attrs)
67 self.instance = mock_obj
69 mock_obj = mock.Mock()
70 attrs = {'id': 'azone_id',
71 'zoneName': 'test_azone',
73 mock_obj.configure_mock(**attrs)
74 self.availability_zone = mock_obj
76 mock_obj = mock.Mock()
77 attrs = {'id': 'floating_id',
78 'zoneName': 'test_floating_ip',
80 mock_obj.configure_mock(**attrs)
81 self.floating_ip = mock_obj
83 mock_obj = mock.Mock()
84 attrs = {'id': 'hypervisor_id',
85 'hypervisor_hostname': 'test_hostname',
87 mock_obj.configure_mock(**attrs)
88 self.hypervisor = mock_obj
90 mock_obj = mock.Mock()
91 attrs = {'id': 'image_id',
93 mock_obj.configure_mock(**attrs)
96 mock_obj = mock.Mock()
97 self.mock_return = mock_obj
99 self.nova_client = mock.Mock()
100 attrs = {'servers.list.return_value': [self.instance],
101 'servers.get.return_value': self.instance,
102 'servers.find.return_value': self.instance,
103 'servers.create.return_value': self.instance,
104 'flavors.list.return_value': [self.flavor],
105 'flavors.find.return_value': self.flavor,
106 'flavors.list.return_value': [self.flavor],
107 'servers.add_floating_ip.return_value': mock.Mock(),
108 'servers.force_delete.return_value': mock.Mock(),
109 'aggregates.list.return_value': [self.aggregate],
110 'aggregates.add_host.return_value': mock.Mock(),
111 'aggregates.remove_host.return_value': mock.Mock(),
112 'aggregates.get.return_value': self.aggregate,
113 'aggregates.delete.return_value': mock.Mock(),
114 'availability_zones.list.return_value':
115 [self.availability_zone],
116 'floating_ips.list.return_value': [self.floating_ip],
117 'floating_ips.delete.return_value': mock.Mock(),
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 mock_obj = mock.Mock()
139 attrs = {'id': 'volume_type_id',
140 'name': 'test_volume_type',
142 mock_obj.configure_mock(**attrs)
143 self.volume_types = [mock_obj]
145 mock_obj = mock.Mock()
146 attrs = {'id': 'volume_type_id',
147 'name': 'test_volume_type',
149 mock_obj.configure_mock(**attrs)
150 self.volume_types.append(mock_obj)
152 self.cinder_client = mock.Mock()
153 attrs = {'volumes.list.return_value': [self.volume],
154 'volume_types.list.return_value': self.volume_types,
155 'volume_types.create.return_value': self.volume_types[0],
156 'volume_types.delete.return_value': mock.Mock(),
157 'quotas.update.return_value': mock.Mock(),
158 'volumes.detach.return_value': mock.Mock(),
159 'volumes.force_delete.return_value': mock.Mock(),
160 'volumes.delete.return_value': mock.Mock()
162 self.cinder_client.configure_mock(**attrs)
164 mock_obj = mock.Mock()
165 attrs = {'id': 'tenant_id',
166 'name': 'test_tenant'}
167 mock_obj.configure_mock(**attrs)
168 self.tenant = mock_obj
170 mock_obj = mock.Mock()
171 attrs = {'id': 'user_id',
173 mock_obj.configure_mock(**attrs)
176 mock_obj = mock.Mock()
177 attrs = {'id': 'role_id',
179 mock_obj.configure_mock(**attrs)
182 self.keystone_client = mock.Mock()
183 attrs = {'projects.list.return_value': [self.tenant],
184 'tenants.list.return_value': [self.tenant],
185 'users.list.return_value': [self.user],
186 'roles.list.return_value': [self.role],
187 'projects.create.return_value': self.tenant,
188 'tenants.create.return_value': self.tenant,
189 'users.create.return_value': self.user,
190 'roles.grant.return_value': mock.Mock(),
191 'roles.add_user_role.return_value': mock.Mock(),
192 'projects.delete.return_value': mock.Mock(),
193 'tenants.delete.return_value': mock.Mock(),
194 'users.delete.return_value': mock.Mock(),
196 self.keystone_client.configure_mock(**attrs)
198 self.router = {'id': 'router_id',
199 'name': 'test_router'}
201 self.subnet = {'id': 'subnet_id',
202 'name': 'test_subnet'}
204 self.networks = [{'id': 'network_id',
205 'name': 'test_network',
206 'router:external': False,
208 'subnets': [self.subnet]},
209 {'id': 'network_id1',
210 'name': 'test_network1',
211 'router:external': True,
213 'subnets': [self.subnet]}]
215 self.port = {'id': 'port_id',
218 self.sec_group = {'id': 'sec_group_id',
219 'name': 'test_sec_group'}
221 self.neutron_floatingip = {'id': 'fip_id',
222 'floating_ip_address': 'test_ip'}
223 self.neutron_client = mock.Mock()
224 attrs = {'list_networks.return_value': {'networks': self.networks},
225 'list_routers.return_value': {'routers': [self.router]},
226 'list_ports.return_value': {'ports': [self.port]},
227 'list_subnets.return_value': {'subnets': [self.subnet]},
228 'create_network.return_value': {'network': self.networks[0]},
229 'create_subnet.return_value': {'subnets': [self.subnet]},
230 'create_router.return_value': {'router': self.router},
231 'create_port.return_value': {'port': self.port},
232 'create_floatingip.return_value': {'floatingip':
233 self.neutron_floatingip},
234 'update_network.return_value': mock.Mock(),
235 'update_port.return_value': {'port': self.port},
236 'add_interface_router.return_value': mock.Mock(),
237 'add_gateway_router.return_value': mock.Mock(),
238 'delete_network.return_value': mock.Mock(),
239 'delete_subnet.return_value': mock.Mock(),
240 'delete_router.return_value': mock.Mock(),
241 'delete_port.return_value': mock.Mock(),
242 'remove_interface_router.return_value': mock.Mock(),
243 'remove_gateway_router.return_value': mock.Mock(),
244 'create_bgpvpn.return_value': self.mock_return,
245 'create_network_association.return_value': self.mock_return,
246 'create_router_association.return_value': self.mock_return,
247 'update_bgpvpn.return_value': self.mock_return,
248 'delete_bgpvpn.return_value': self.mock_return,
249 'show_bgpvpn.return_value': self.mock_return,
250 'list_security_groups.return_value': {'security_groups':
252 'create_security_group_rule.return_value': mock.Mock(),
253 'create_security_group.return_value': {'security_group':
255 'update_quota.return_value': mock.Mock(),
256 'delete_security_group.return_value': mock.Mock()
258 self.neutron_client.configure_mock(**attrs)
260 self.empty_client = mock.Mock()
261 attrs = {'list_networks.return_value': {'networks': []},
262 'list_routers.return_value': {'routers': []},
263 'list_ports.return_value': {'ports': []},
264 'list_subnets.return_value': {'subnets': []}}
265 self.empty_client.configure_mock(**attrs)
267 @mock.patch('functest.utils.openstack_utils.os.getenv',
269 def test_is_keystone_v3_missing_identity(self, mock_os_getenv):
270 self.assertEqual(openstack_utils.is_keystone_v3(), False)
272 @mock.patch('functest.utils.openstack_utils.os.getenv',
274 def test_is_keystone_v3_default(self, mock_os_getenv):
275 self.assertEqual(openstack_utils.is_keystone_v3(), True)
277 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
279 def test_get_rc_env_vars_missing_identity(self, mock_get_rc_env):
280 exp_resp = self.env_vars
281 exp_resp.extend(['OS_TENANT_NAME'])
282 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
284 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
286 def test_get_rc_env_vars_default(self, mock_get_rc_env):
287 exp_resp = self.env_vars
288 exp_resp.extend(['OS_PROJECT_NAME',
289 'OS_USER_DOMAIN_NAME',
290 'OS_PROJECT_DOMAIN_NAME'])
291 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
293 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
294 def test_check_credentials_missing_env(self, mock_get_rc_env):
295 exp_resp = self.env_vars
296 exp_resp.extend(['OS_TENANT_NAME'])
297 mock_get_rc_env.return_value = exp_resp
298 with mock.patch.dict('functest.utils.openstack_utils.os.environ', {},
300 self.assertEqual(openstack_utils.check_credentials(), False)
302 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
303 def test_check_credentials_default(self, mock_get_rc_env):
304 exp_resp = ['OS_TENANT_NAME']
305 mock_get_rc_env.return_value = exp_resp
306 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
307 {'OS_TENANT_NAME': self.tenant_name},
309 self.assertEqual(openstack_utils.check_credentials(), True)
311 def test_get_env_cred_dict(self):
312 self.assertDictEqual(openstack_utils.get_env_cred_dict(),
315 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
316 def test_get_credentials_default(self, mock_get_rc_env):
317 mock_get_rc_env.return_value = self.env_cred_dict.keys()
318 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
321 self.assertDictEqual(openstack_utils.get_credentials(),
324 def _get_credentials_missing_env(self, var):
325 dic = copy.deepcopy(self.os_environs)
327 with mock.patch('functest.utils.openstack_utils.get_rc_env_vars',
328 return_value=self.env_cred_dict.keys()), \
329 mock.patch.dict('functest.utils.openstack_utils.os.environ',
332 self.assertRaises(openstack_utils.MissingEnvVar,
333 lambda: openstack_utils.get_credentials())
335 def test_get_credentials_missing_username(self):
336 self._get_credentials_missing_env('OS_USERNAME')
338 def test_get_credentials_missing_password(self):
339 self._get_credentials_missing_env('OS_PASSWORD')
341 def test_get_credentials_missing_auth_url(self):
342 self._get_credentials_missing_env('OS_AUTH_URL')
344 def test_get_credentials_missing_tenantname(self):
345 self._get_credentials_missing_env('OS_TENANT_NAME')
347 def test_get_credentials_missing_domainname(self):
348 self._get_credentials_missing_env('OS_USER_DOMAIN_NAME')
350 def test_get_credentials_missing_projectname(self):
351 self._get_credentials_missing_env('OS_PROJECT_NAME')
353 def test_get_credentials_missing_endpoint_type(self):
354 self._get_credentials_missing_env('OS_ENDPOINT_TYPE')
356 def test_source_credentials(self):
357 with mock.patch('functest.utils.openstack_utils.subprocess.Popen') \
358 as mock_subproc_popen, \
359 mock.patch('functest.utils.openstack_utils.os.environ'):
360 process_mock = mock.Mock()
361 attrs = {'communicate.return_value': ('OS_USER_NAME=test_name',
363 process_mock.configure_mock(**attrs)
364 mock_subproc_popen.return_value = process_mock
366 self.assertDictEqual(openstack_utils.source_credentials('rc_file'),
367 {'OS_USER_NAME': 'test_name'})
369 @mock.patch('functest.utils.openstack_utils.os.getenv',
371 def test_get_keystone_client_version_missing_env(self, mock_os_getenv):
372 self.assertEqual(openstack_utils.get_keystone_client_version(),
373 openstack_utils.DEFAULT_API_VERSION)
375 @mock.patch('functest.utils.openstack_utils.logger.info')
376 @mock.patch('functest.utils.openstack_utils.os.getenv',
378 def test_get_keystone_client_version_default(self, mock_os_getenv,
380 self.assertEqual(openstack_utils.get_keystone_client_version(),
382 mock_logger_info.assert_called_once_with("OS_IDENTITY_API_VERSION is "
383 "set in env as '%s'", '3')
385 def test_get_keystone_client(self):
386 mock_keystone_obj = mock.Mock()
387 mock_session_obj = mock.Mock()
388 with mock.patch('functest.utils.openstack_utils'
389 '.get_keystone_client_version', return_value='3'), \
390 mock.patch('functest.utils.openstack_utils'
391 '.keystoneclient.Client',
392 return_value=mock_keystone_obj) \
393 as mock_key_client, \
394 mock.patch('functest.utils.openstack_utils.get_session',
395 return_value=mock_session_obj):
396 self.assertEqual(openstack_utils.get_keystone_client(),
398 mock_key_client.assert_called_once_with('3',
399 session=mock_session_obj)
401 @mock.patch('functest.utils.openstack_utils.os.getenv',
403 def test_get_nova_client_version_missing_env(self, mock_os_getenv):
404 self.assertEqual(openstack_utils.get_nova_client_version(),
405 openstack_utils.DEFAULT_API_VERSION)
407 @mock.patch('functest.utils.openstack_utils.logger.info')
408 @mock.patch('functest.utils.openstack_utils.os.getenv',
410 def test_get_nova_client_version_default(self, mock_os_getenv,
412 self.assertEqual(openstack_utils.get_nova_client_version(),
414 mock_logger_info.assert_called_once_with("OS_COMPUTE_API_VERSION is "
415 "set in env as '%s'", '3')
417 def test_get_nova_client(self):
418 mock_nova_obj = mock.Mock()
419 mock_session_obj = mock.Mock()
420 with mock.patch('functest.utils.openstack_utils'
421 '.get_nova_client_version', return_value='3'), \
422 mock.patch('functest.utils.openstack_utils'
423 '.novaclient.Client',
424 return_value=mock_nova_obj) \
425 as mock_nova_client, \
426 mock.patch('functest.utils.openstack_utils.get_session',
427 return_value=mock_session_obj):
428 self.assertEqual(openstack_utils.get_nova_client(),
430 mock_nova_client.assert_called_once_with('3',
431 session=mock_session_obj)
433 @mock.patch('functest.utils.openstack_utils.os.getenv',
435 def test_get_cinder_client_version_missing_env(self, mock_os_getenv):
436 self.assertEqual(openstack_utils.get_cinder_client_version(),
437 openstack_utils.DEFAULT_API_VERSION)
439 @mock.patch('functest.utils.openstack_utils.logger.info')
440 @mock.patch('functest.utils.openstack_utils.os.getenv',
442 def test_get_cinder_client_version_default(self, mock_os_getenv,
444 self.assertEqual(openstack_utils.get_cinder_client_version(),
446 mock_logger_info.assert_called_once_with("OS_VOLUME_API_VERSION is "
447 "set in env as '%s'", '3')
449 def test_get_cinder_client(self):
450 mock_cinder_obj = mock.Mock()
451 mock_session_obj = mock.Mock()
452 with mock.patch('functest.utils.openstack_utils'
453 '.get_cinder_client_version', return_value='3'), \
454 mock.patch('functest.utils.openstack_utils'
455 '.cinderclient.Client',
456 return_value=mock_cinder_obj) \
457 as mock_cind_client, \
458 mock.patch('functest.utils.openstack_utils.get_session',
459 return_value=mock_session_obj):
460 self.assertEqual(openstack_utils.get_cinder_client(),
462 mock_cind_client.assert_called_once_with('3',
463 session=mock_session_obj)
465 @mock.patch('functest.utils.openstack_utils.os.getenv',
467 def test_get_neutron_client_version_missing_env(self, mock_os_getenv):
468 self.assertEqual(openstack_utils.get_neutron_client_version(),
469 openstack_utils.DEFAULT_API_VERSION)
471 @mock.patch('functest.utils.openstack_utils.logger.info')
472 @mock.patch('functest.utils.openstack_utils.os.getenv',
474 def test_get_neutron_client_version_default(self, mock_os_getenv,
476 self.assertEqual(openstack_utils.get_neutron_client_version(),
478 mock_logger_info.assert_called_once_with("OS_NETWORK_API_VERSION is "
479 "set in env as '%s'", '3')
481 def test_get_neutron_client(self):
482 mock_neutron_obj = mock.Mock()
483 mock_session_obj = mock.Mock()
484 with mock.patch('functest.utils.openstack_utils'
485 '.get_neutron_client_version', return_value='3'), \
486 mock.patch('functest.utils.openstack_utils'
487 '.neutronclient.Client',
488 return_value=mock_neutron_obj) \
489 as mock_neut_client, \
490 mock.patch('functest.utils.openstack_utils.get_session',
491 return_value=mock_session_obj):
492 self.assertEqual(openstack_utils.get_neutron_client(),
494 mock_neut_client.assert_called_once_with('3',
495 session=mock_session_obj)
497 @mock.patch('functest.utils.openstack_utils.os.getenv',
499 def test_get_glance_client_version_missing_env(self, mock_os_getenv):
500 self.assertEqual(openstack_utils.get_glance_client_version(),
501 openstack_utils.DEFAULT_API_VERSION)
503 @mock.patch('functest.utils.openstack_utils.logger.info')
504 @mock.patch('functest.utils.openstack_utils.os.getenv',
506 def test_get_glance_client_version_default(self, mock_os_getenv,
508 self.assertEqual(openstack_utils.get_glance_client_version(),
510 mock_logger_info.assert_called_once_with("OS_IMAGE_API_VERSION is "
511 "set in env as '%s'", '3')
513 def test_get_glance_client(self):
514 mock_glance_obj = mock.Mock()
515 mock_session_obj = mock.Mock()
516 with mock.patch('functest.utils.openstack_utils'
517 '.get_glance_client_version', return_value='3'), \
518 mock.patch('functest.utils.openstack_utils'
519 '.glanceclient.Client',
520 return_value=mock_glance_obj) \
521 as mock_glan_client, \
522 mock.patch('functest.utils.openstack_utils.get_session',
523 return_value=mock_session_obj):
524 self.assertEqual(openstack_utils.get_glance_client(),
526 mock_glan_client.assert_called_once_with('3',
527 session=mock_session_obj)
529 def test_get_instances_default(self):
530 self.assertEqual(openstack_utils.get_instances(self.nova_client),
533 @mock.patch('functest.utils.openstack_utils.logger.error')
534 def test_get_instances_exception(self, mock_logger_error):
535 self.assertEqual(openstack_utils.
536 get_instances(Exception),
538 self.assertTrue(mock_logger_error.called)
540 def test_get_instance_status_default(self):
541 self.assertEqual(openstack_utils.get_instance_status(self.nova_client,
545 @mock.patch('functest.utils.openstack_utils.logger.error')
546 def test_get_instance_status_exception(self, mock_logger_error):
547 self.assertEqual(openstack_utils.
548 get_instance_status(Exception,
551 self.assertTrue(mock_logger_error.called)
553 def test_get_instance_by_name_default(self):
554 self.assertEqual(openstack_utils.
555 get_instance_by_name(self.nova_client,
559 @mock.patch('functest.utils.openstack_utils.logger.error')
560 def test_get_instance_by_name_exception(self, mock_logger_error):
561 self.assertEqual(openstack_utils.
562 get_instance_by_name(Exception,
565 self.assertTrue(mock_logger_error.called)
567 def test_get_flavor_id_default(self):
568 self.assertEqual(openstack_utils.
569 get_flavor_id(self.nova_client,
573 def test_get_flavor_id_by_ram_range_default(self):
574 self.assertEqual(openstack_utils.
575 get_flavor_id_by_ram_range(self.nova_client,
579 def test_get_aggregates_default(self):
580 self.assertEqual(openstack_utils.
581 get_aggregates(self.nova_client),
584 @mock.patch('functest.utils.openstack_utils.logger.error')
585 def test_get_aggregates_exception(self, mock_logger_error):
586 self.assertEqual(openstack_utils.
587 get_aggregates(Exception),
589 self.assertTrue(mock_logger_error.called)
591 def test_get_aggregate_id_default(self):
592 with mock.patch('functest.utils.openstack_utils.get_aggregates',
593 return_value=[self.aggregate]):
594 self.assertEqual(openstack_utils.
595 get_aggregate_id(self.nova_client,
599 @mock.patch('functest.utils.openstack_utils.logger.error')
600 def test_get_aggregate_id_exception(self, mock_logger_error):
601 self.assertEqual(openstack_utils.
602 get_aggregate_id(Exception,
605 self.assertTrue(mock_logger_error.called)
607 def test_get_availability_zone_names_default(self):
608 with mock.patch('functest.utils.openstack_utils'
609 '.get_availability_zones',
610 return_value=[self.availability_zone]):
611 self.assertEqual(openstack_utils.
612 get_availability_zone_names(self.nova_client),
615 @mock.patch('functest.utils.openstack_utils.logger.error')
616 def test_get_availability_zone_names_exception(self, mock_logger_error):
617 self.assertEqual(openstack_utils.
618 get_availability_zone_names(Exception),
620 self.assertTrue(mock_logger_error.called)
622 def test_get_availability_zones_default(self):
623 self.assertEqual(openstack_utils.
624 get_availability_zones(self.nova_client),
625 [self.availability_zone])
627 @mock.patch('functest.utils.openstack_utils.logger.error')
628 def test_get_availability_zones_exception(self, mock_logger_error):
629 self.assertEqual(openstack_utils.
630 get_availability_zones(Exception),
632 self.assertTrue(mock_logger_error.called)
634 def test_get_floating_ips_default(self):
635 self.assertEqual(openstack_utils.
636 get_floating_ips(self.nova_client),
639 @mock.patch('functest.utils.openstack_utils.logger.error')
640 def test_get_floating_ips_exception(self, mock_logger_error):
641 self.assertEqual(openstack_utils.
642 get_floating_ips(Exception),
644 self.assertTrue(mock_logger_error.called)
646 def test_get_hypervisors_default(self):
647 self.assertEqual(openstack_utils.
648 get_hypervisors(self.nova_client),
651 @mock.patch('functest.utils.openstack_utils.logger.error')
652 def test_get_hypervisors_exception(self, mock_logger_error):
653 self.assertEqual(openstack_utils.
654 get_hypervisors(Exception),
656 self.assertTrue(mock_logger_error.called)
658 def test_create_aggregate_default(self):
659 self.assertTrue(openstack_utils.
660 create_aggregate(self.nova_client,
664 @mock.patch('functest.utils.openstack_utils.logger.error')
665 def test_create_aggregate_exception(self, mock_logger_error):
666 self.assertEqual(openstack_utils.
667 create_aggregate(Exception,
671 self.assertTrue(mock_logger_error.called)
673 def test_add_host_to_aggregate_default(self):
674 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
675 self.assertTrue(openstack_utils.
676 add_host_to_aggregate(self.nova_client,
680 @mock.patch('functest.utils.openstack_utils.logger.error')
681 def test_add_host_to_aggregate_exception(self, mock_logger_error):
682 self.assertEqual(openstack_utils.
683 add_host_to_aggregate(Exception,
687 self.assertTrue(mock_logger_error.called)
689 def test_create_aggregate_with_host_default(self):
690 with mock.patch('functest.utils.openstack_utils.create_aggregate'), \
691 mock.patch('functest.utils.openstack_utils.'
692 'add_host_to_aggregate'):
693 self.assertTrue(openstack_utils.
694 create_aggregate_with_host(self.nova_client,
699 @mock.patch('functest.utils.openstack_utils.logger.error')
700 def test_create_aggregate_with_host_exception(self, mock_logger_error):
701 with mock.patch('functest.utils.openstack_utils.create_aggregate',
702 side_effect=Exception):
703 self.assertEqual(openstack_utils.
704 create_aggregate_with_host(Exception,
709 self.assertTrue(mock_logger_error.called)
711 def test_create_instance_default(self):
712 with mock.patch('functest.utils.openstack_utils.'
714 return_value=self.nova_client):
715 self.assertEqual(openstack_utils.
716 create_instance('test_flavor',
721 @mock.patch('functest.utils.openstack_utils.logger.error')
722 def test_create_instance_exception(self, mock_logger_error):
723 with mock.patch('functest.utils.openstack_utils.'
725 return_value=self.nova_client):
726 self.nova_client.flavors.find.side_effect = Exception
727 self.assertEqual(openstack_utils.
728 create_instance('test_flavor',
732 self.assertTrue(mock_logger_error)
734 def test_create_floating_ip_default(self):
735 with mock.patch('functest.utils.openstack_utils.'
736 'get_external_net_id',
737 return_value='external_net_id'):
738 exp_resp = {'fip_addr': 'test_ip', 'fip_id': 'fip_id'}
739 self.assertEqual(openstack_utils.
740 create_floating_ip(self.neutron_client),
743 @mock.patch('functest.utils.openstack_utils.logger.error')
744 def test_create_floating_ip_exception(self, mock_logger_error):
745 with mock.patch('functest.utils.openstack_utils.'
746 'get_external_net_id',
747 return_value='external_net_id'):
748 self.assertEqual(openstack_utils.
749 create_floating_ip(Exception),
751 self.assertTrue(mock_logger_error)
753 def test_add_floating_ip_default(self):
754 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
755 self.assertTrue(openstack_utils.
756 add_floating_ip(self.nova_client,
758 'test_floatingip_addr'))
760 @mock.patch('functest.utils.openstack_utils.logger.error')
761 def test_add_floating_ip_exception(self, mock_logger_error):
762 self.assertFalse(openstack_utils.
763 add_floating_ip(Exception,
765 'test_floatingip_addr'))
766 self.assertTrue(mock_logger_error.called)
768 def test_delete_instance_default(self):
769 self.assertTrue(openstack_utils.
770 delete_instance(self.nova_client,
773 @mock.patch('functest.utils.openstack_utils.logger.error')
774 def test_delete_instance_exception(self, mock_logger_error):
775 self.assertFalse(openstack_utils.
776 delete_instance(Exception,
778 self.assertTrue(mock_logger_error.called)
780 def test_delete_floating_ip_default(self):
781 self.assertTrue(openstack_utils.
782 delete_floating_ip(self.nova_client,
785 @mock.patch('functest.utils.openstack_utils.logger.error')
786 def test_delete_floating_ip_exception(self, mock_logger_error):
787 self.assertFalse(openstack_utils.
788 delete_floating_ip(Exception,
790 self.assertTrue(mock_logger_error.called)
792 def test_remove_host_from_aggregate_default(self):
793 with mock.patch('functest.utils.openstack_utils.'
795 self.assertTrue(openstack_utils.
796 remove_host_from_aggregate(self.nova_client,
800 @mock.patch('functest.utils.openstack_utils.logger.error')
801 def test_remove_host_from_aggregate_exception(self, mock_logger_error):
802 with mock.patch('functest.utils.openstack_utils.'
803 'get_aggregate_id', side_effect=Exception):
804 self.assertFalse(openstack_utils.
805 remove_host_from_aggregate(self.nova_client,
808 self.assertTrue(mock_logger_error.called)
810 def test_remove_hosts_from_aggregate_default(self):
811 with mock.patch('functest.utils.openstack_utils.'
812 'get_aggregate_id'), \
813 mock.patch('functest.utils.openstack_utils.'
814 'remove_host_from_aggregate',
817 openstack_utils.remove_hosts_from_aggregate(self.nova_client,
819 mock_method.assert_any_call(self.nova_client,
823 def test_delete_aggregate_default(self):
824 with mock.patch('functest.utils.openstack_utils.'
825 'remove_hosts_from_aggregate'):
826 self.assertTrue(openstack_utils.
827 delete_aggregate(self.nova_client,
830 @mock.patch('functest.utils.openstack_utils.logger.error')
831 def test_delete_aggregate_exception(self, mock_logger_error):
832 with mock.patch('functest.utils.openstack_utils.'
833 'remove_hosts_from_aggregate', side_effect=Exception):
834 self.assertFalse(openstack_utils.
835 delete_aggregate(self.nova_client,
837 self.assertTrue(mock_logger_error.called)
839 def test_get_network_list_default(self):
840 self.assertEqual(openstack_utils.
841 get_network_list(self.neutron_client),
844 def test_get_network_list_missing_network(self):
845 self.assertEqual(openstack_utils.
846 get_network_list(self.empty_client),
849 def test_get_router_list_default(self):
850 self.assertEqual(openstack_utils.
851 get_router_list(self.neutron_client),
854 def test_get_router_list_missing_router(self):
855 self.assertEqual(openstack_utils.
856 get_router_list(self.empty_client),
859 def test_get_port_list_default(self):
860 self.assertEqual(openstack_utils.
861 get_port_list(self.neutron_client),
864 def test_get_port_list_missing_port(self):
865 self.assertEqual(openstack_utils.
866 get_port_list(self.empty_client),
869 def test_get_network_id_default(self):
870 self.assertEqual(openstack_utils.
871 get_network_id(self.neutron_client,
875 def test_get_subnet_id_default(self):
876 self.assertEqual(openstack_utils.
877 get_subnet_id(self.neutron_client,
881 def test_get_router_id_default(self):
882 self.assertEqual(openstack_utils.
883 get_router_id(self.neutron_client,
887 def test_get_private_net_default(self):
888 self.assertEqual(openstack_utils.
889 get_private_net(self.neutron_client),
892 def test_get_private_net_missing_net(self):
893 self.assertEqual(openstack_utils.
894 get_private_net(self.empty_client),
897 def test_get_external_net_default(self):
898 self.assertEqual(openstack_utils.
899 get_external_net(self.neutron_client),
902 def test_get_external_net_missing_net(self):
903 self.assertEqual(openstack_utils.
904 get_external_net(self.empty_client),
907 def test_get_external_net_id_default(self):
908 self.assertEqual(openstack_utils.
909 get_external_net_id(self.neutron_client),
912 def test_get_external_net_id_missing_net(self):
913 self.assertEqual(openstack_utils.
914 get_external_net_id(self.empty_client),
917 def test_check_neutron_net_default(self):
918 self.assertTrue(openstack_utils.
919 check_neutron_net(self.neutron_client,
922 def test_check_neutron_net_missing_net(self):
923 self.assertFalse(openstack_utils.
924 check_neutron_net(self.empty_client,
927 def test_create_neutron_net_default(self):
928 self.assertEqual(openstack_utils.
929 create_neutron_net(self.neutron_client,
933 @mock.patch('functest.utils.openstack_utils.logger.error')
934 def test_create_neutron_net_exception(self, mock_logger_error):
935 self.assertEqual(openstack_utils.
936 create_neutron_net(Exception,
939 self.assertTrue(mock_logger_error.called)
941 def test_create_neutron_subnet_default(self):
942 self.assertEqual(openstack_utils.
943 create_neutron_subnet(self.neutron_client,
949 @mock.patch('functest.utils.openstack_utils.logger.error')
950 def test_create_neutron_subnet_exception(self, mock_logger_error):
951 self.assertEqual(openstack_utils.
952 create_neutron_subnet(Exception,
957 self.assertTrue(mock_logger_error.called)
959 def test_create_neutron_router_default(self):
960 self.assertEqual(openstack_utils.
961 create_neutron_router(self.neutron_client,
965 @mock.patch('functest.utils.openstack_utils.logger.error')
966 def test_create_neutron_router_exception(self, mock_logger_error):
967 self.assertEqual(openstack_utils.
968 create_neutron_router(Exception,
971 self.assertTrue(mock_logger_error.called)
973 def test_create_neutron_port_default(self):
974 self.assertEqual(openstack_utils.
975 create_neutron_port(self.neutron_client,
981 @mock.patch('functest.utils.openstack_utils.logger.error')
982 def test_create_neutron_port_exception(self, mock_logger_error):
983 self.assertEqual(openstack_utils.
984 create_neutron_port(Exception,
989 self.assertTrue(mock_logger_error.called)
991 def test_update_neutron_net_default(self):
992 self.assertTrue(openstack_utils.
993 update_neutron_net(self.neutron_client,
996 @mock.patch('functest.utils.openstack_utils.logger.error')
997 def test_update_neutron_net_exception(self, mock_logger_error):
998 self.assertFalse(openstack_utils.
999 update_neutron_net(Exception,
1001 self.assertTrue(mock_logger_error.called)
1003 def test_update_neutron_port_default(self):
1004 self.assertEqual(openstack_utils.
1005 update_neutron_port(self.neutron_client,
1010 @mock.patch('functest.utils.openstack_utils.logger.error')
1011 def test_update_neutron_port_exception(self, mock_logger_error):
1012 self.assertEqual(openstack_utils.
1013 update_neutron_port(Exception,
1017 self.assertTrue(mock_logger_error.called)
1019 def test_add_interface_router_default(self):
1020 self.assertTrue(openstack_utils.
1021 add_interface_router(self.neutron_client,
1025 @mock.patch('functest.utils.openstack_utils.logger.error')
1026 def test_add_interface_router_exception(self, mock_logger_error):
1027 self.assertFalse(openstack_utils.
1028 add_interface_router(Exception,
1031 self.assertTrue(mock_logger_error.called)
1033 def test_add_gateway_router_default(self):
1034 with mock.patch('functest.utils.openstack_utils.'
1035 'get_external_net_id',
1036 return_value='network_id'):
1037 self.assertTrue(openstack_utils.
1038 add_gateway_router(self.neutron_client,
1041 @mock.patch('functest.utils.openstack_utils.logger.error')
1042 def test_add_gateway_router_exception(self, mock_logger_error):
1043 with mock.patch('functest.utils.openstack_utils.'
1044 'get_external_net_id',
1045 return_value='network_id'):
1046 self.assertFalse(openstack_utils.
1047 add_gateway_router(Exception,
1049 self.assertTrue(mock_logger_error.called)
1051 def test_delete_neutron_net_default(self):
1052 self.assertTrue(openstack_utils.
1053 delete_neutron_net(self.neutron_client,
1056 @mock.patch('functest.utils.openstack_utils.logger.error')
1057 def test_delete_neutron_net_exception(self, mock_logger_error):
1058 self.assertFalse(openstack_utils.
1059 delete_neutron_net(Exception,
1061 self.assertTrue(mock_logger_error.called)
1063 def test_delete_neutron_subnet_default(self):
1064 self.assertTrue(openstack_utils.
1065 delete_neutron_subnet(self.neutron_client,
1068 @mock.patch('functest.utils.openstack_utils.logger.error')
1069 def test_delete_neutron_subnet_exception(self, mock_logger_error):
1070 self.assertFalse(openstack_utils.
1071 delete_neutron_subnet(Exception,
1073 self.assertTrue(mock_logger_error.called)
1075 def test_delete_neutron_router_default(self):
1076 self.assertTrue(openstack_utils.
1077 delete_neutron_router(self.neutron_client,
1080 @mock.patch('functest.utils.openstack_utils.logger.error')
1081 def test_delete_neutron_router_exception(self, mock_logger_error):
1082 self.assertFalse(openstack_utils.
1083 delete_neutron_router(Exception,
1085 self.assertTrue(mock_logger_error.called)
1087 def test_delete_neutron_port_default(self):
1088 self.assertTrue(openstack_utils.
1089 delete_neutron_port(self.neutron_client,
1092 @mock.patch('functest.utils.openstack_utils.logger.error')
1093 def test_delete_neutron_port_exception(self, mock_logger_error):
1094 self.assertFalse(openstack_utils.
1095 delete_neutron_port(Exception,
1097 self.assertTrue(mock_logger_error.called)
1099 def test_remove_interface_router_default(self):
1100 self.assertTrue(openstack_utils.
1101 remove_interface_router(self.neutron_client,
1105 @mock.patch('functest.utils.openstack_utils.logger.error')
1106 def test_remove_interface_router_exception(self, mock_logger_error):
1107 self.assertFalse(openstack_utils.
1108 remove_interface_router(Exception,
1111 self.assertTrue(mock_logger_error.called)
1113 def test_remove_gateway_router_default(self):
1114 self.assertTrue(openstack_utils.
1115 remove_gateway_router(self.neutron_client,
1118 @mock.patch('functest.utils.openstack_utils.logger.error')
1119 def test_remove_gateway_router_exception(self, mock_logger_error):
1120 self.assertFalse(openstack_utils.
1121 remove_gateway_router(Exception,
1123 self.assertTrue(mock_logger_error.called)
1125 def test_create_bgpvpn(self):
1126 self.assertEqual(openstack_utils.
1127 create_bgpvpn(self.neutron_client),
1130 def test_create_network_association(self):
1131 self.assertEqual(openstack_utils.
1132 create_network_association(self.neutron_client,
1137 def test_create_router_association(self):
1138 self.assertEqual(openstack_utils.
1139 create_router_association(self.neutron_client,
1144 def test_update_bgpvpn(self):
1145 self.assertEqual(openstack_utils.
1146 update_bgpvpn(self.neutron_client,
1150 def test_delete_bgpvpn(self):
1151 self.assertEqual(openstack_utils.
1152 delete_bgpvpn(self.neutron_client,
1156 def test_get_bgpvpn(self):
1157 self.assertEqual(openstack_utils.
1158 get_bgpvpn(self.neutron_client,
1162 def test_get_bgpvpn_routers(self):
1163 with mock.patch('functest.utils.openstack_utils.'
1165 return_value={'bgpvpn':
1166 {'routers': [self.router]}}):
1167 self.assertEqual(openstack_utils.
1168 get_bgpvpn_routers(self.neutron_client,
1172 def test_get_security_groups_default(self):
1173 self.assertEqual(openstack_utils.
1174 get_security_groups(self.neutron_client),
1177 @mock.patch('functest.utils.openstack_utils.logger.error')
1178 def test_get_security_groups_exception(self, mock_logger_error):
1179 self.assertEqual(openstack_utils.
1180 get_security_groups(Exception),
1182 self.assertTrue(mock_logger_error.called)
1184 def test_get_security_group_id_default(self):
1185 with mock.patch('functest.utils.openstack_utils.'
1186 'get_security_groups',
1187 return_value=[self.sec_group]):
1188 self.assertEqual(openstack_utils.
1189 get_security_group_id(self.neutron_client,
1193 def test_create_security_group_default(self):
1194 self.assertEqual(openstack_utils.
1195 create_security_group(self.neutron_client,
1200 @mock.patch('functest.utils.openstack_utils.logger.error')
1201 def test_create_security_group_exception(self, mock_logger_error):
1202 self.assertEqual(openstack_utils.
1203 create_security_group(Exception,
1207 self.assertTrue(mock_logger_error.called)
1209 def test_create_secgroup_rule_default(self):
1210 self.assertTrue(openstack_utils.
1211 create_secgroup_rule(self.neutron_client,
1217 self.assertTrue(openstack_utils.
1218 create_secgroup_rule(self.neutron_client,
1223 @mock.patch('functest.utils.openstack_utils.logger.error')
1224 def test_create_secgroup_rule_invalid_port_range(self, mock_logger_error):
1225 self.assertFalse(openstack_utils.
1226 create_secgroup_rule(self.neutron_client,
1232 @mock.patch('functest.utils.openstack_utils.logger.error')
1233 def test_create_secgroup_rule_exception(self, mock_logger_error):
1234 self.assertFalse(openstack_utils.
1235 create_secgroup_rule(Exception,
1240 @mock.patch('functest.utils.openstack_utils.logger.info')
1241 def test_create_security_group_full_default(self, mock_logger_info):
1242 with mock.patch('functest.utils.openstack_utils.'
1243 'get_security_group_id',
1244 return_value='sg_id'):
1245 self.assertEqual(openstack_utils.
1246 create_security_group_full(self.neutron_client,
1250 self.assertTrue(mock_logger_info)
1252 @mock.patch('functest.utils.openstack_utils.logger.info')
1253 @mock.patch('functest.utils.openstack_utils.logger.error')
1254 def test_create_security_group_full_sec_group_fail(self,
1257 with mock.patch('functest.utils.openstack_utils.'
1258 'get_security_group_id',
1260 mock.patch('functest.utils.openstack_utils.'
1261 'create_security_group',
1262 return_value=False):
1263 self.assertEqual(openstack_utils.
1264 create_security_group_full(self.neutron_client,
1268 self.assertTrue(mock_logger_error)
1269 self.assertTrue(mock_logger_info)
1271 @mock.patch('functest.utils.openstack_utils.logger.debug')
1272 @mock.patch('functest.utils.openstack_utils.logger.info')
1273 @mock.patch('functest.utils.openstack_utils.logger.error')
1274 def test_create_security_group_full_secgroup_rule_fail(self,
1278 with mock.patch('functest.utils.openstack_utils.'
1279 'get_security_group_id',
1281 mock.patch('functest.utils.openstack_utils.'
1282 'create_security_group',
1283 return_value={'id': 'sg_id',
1284 'name': 'sg_name'}), \
1285 mock.patch('functest.utils.openstack_utils.'
1286 'create_secgroup_rule',
1287 return_value=False):
1288 self.assertEqual(openstack_utils.
1289 create_security_group_full(self.neutron_client,
1293 self.assertTrue(mock_logger_error)
1294 self.assertTrue(mock_logger_info)
1295 self.assertTrue(mock_logger_debug)
1297 def test_add_secgroup_to_instance_default(self):
1298 self.assertTrue(openstack_utils.
1299 add_secgroup_to_instance(self.nova_client,
1303 @mock.patch('functest.utils.openstack_utils.logger.error')
1304 def test_add_secgroup_to_instance_exception(self, mock_logger_error):
1305 self.assertFalse(openstack_utils.
1306 add_secgroup_to_instance(Exception,
1309 self.assertTrue(mock_logger_error.called)
1311 def test_update_sg_quota_default(self):
1312 self.assertTrue(openstack_utils.
1313 update_sg_quota(self.neutron_client,
1318 @mock.patch('functest.utils.openstack_utils.logger.error')
1319 def test_update_sg_quota_exception(self, mock_logger_error):
1320 self.assertFalse(openstack_utils.
1321 update_sg_quota(Exception,
1325 self.assertTrue(mock_logger_error.called)
1327 def test_delete_security_group_default(self):
1328 self.assertTrue(openstack_utils.
1329 delete_security_group(self.neutron_client,
1332 @mock.patch('functest.utils.openstack_utils.logger.error')
1333 def test_delete_security_group_exception(self, mock_logger_error):
1334 self.assertFalse(openstack_utils.
1335 delete_security_group(Exception,
1337 self.assertTrue(mock_logger_error.called)
1339 def test_get_images_default(self):
1340 self.assertEqual(openstack_utils.
1341 get_images(self.nova_client),
1344 @mock.patch('functest.utils.openstack_utils.logger.error')
1345 def test_get_images_exception(self, mock_logger_error):
1346 self.assertEqual(openstack_utils.
1347 get_images(Exception),
1349 self.assertTrue(mock_logger_error.called)
1351 def test_get_image_id_default(self):
1352 self.assertEqual(openstack_utils.
1353 get_image_id(self.glance_client,
1357 # create_glance_image, get_or_create_image
1358 @mock.patch('functest.utils.openstack_utils.logger.error')
1359 def test_create_glance_image_file_present(self, mock_logger_error):
1360 with mock.patch('functest.utils.openstack_utils.'
1362 return_value=False):
1363 self.assertEqual(openstack_utils.
1364 create_glance_image(self.glance_client,
1368 self.assertTrue(mock_logger_error.called)
1370 @mock.patch('functest.utils.openstack_utils.logger.info')
1371 def test_create_glance_image_already_exist(self, mock_logger_info):
1372 with mock.patch('functest.utils.openstack_utils.'
1374 return_value=True), \
1375 mock.patch('functest.utils.openstack_utils.get_image_id',
1376 return_value='image_id'):
1377 self.assertEqual(openstack_utils.
1378 create_glance_image(self.glance_client,
1382 self.assertTrue(mock_logger_info.called)
1384 @mock.patch('functest.utils.openstack_utils.logger.info')
1385 def test_create_glance_image_default(self, mock_logger_info):
1386 with mock.patch('functest.utils.openstack_utils.'
1388 return_value=True), \
1389 mock.patch('functest.utils.openstack_utils.get_image_id',
1391 mock.patch('__builtin__.open',
1392 mock.mock_open(read_data='1')) as m:
1393 self.assertEqual(openstack_utils.
1394 create_glance_image(self.glance_client,
1398 m.assert_called_once_with('file_path')
1399 self.assertTrue(mock_logger_info.called)
1401 @mock.patch('functest.utils.openstack_utils.logger.error')
1402 def test_create_glance_image_exception(self, mock_logger_error):
1403 with mock.patch('functest.utils.openstack_utils.'
1405 return_value=True), \
1406 mock.patch('functest.utils.openstack_utils.get_image_id',
1407 side_effect=Exception):
1408 self.assertEqual(openstack_utils.
1409 create_glance_image(self.glance_client,
1413 self.assertTrue(mock_logger_error.called)
1415 def test_delete_glance_image_default(self):
1416 self.assertTrue(openstack_utils.
1417 delete_glance_image(self.nova_client,
1420 @mock.patch('functest.utils.openstack_utils.logger.error')
1421 def test_delete_glance_image_exception(self, mock_logger_error):
1422 self.assertFalse(openstack_utils.
1423 delete_glance_image(Exception,
1425 self.assertTrue(mock_logger_error.called)
1427 def test_get_volumes_default(self):
1428 self.assertEqual(openstack_utils.
1429 get_volumes(self.cinder_client),
1432 @mock.patch('functest.utils.openstack_utils.logger.error')
1433 def test_get_volumes_exception(self, mock_logger_error):
1434 self.assertEqual(openstack_utils.
1435 get_volumes(Exception),
1437 self.assertTrue(mock_logger_error.called)
1439 def test_list_volume_types_default_private(self):
1440 self.assertEqual(openstack_utils.
1441 list_volume_types(self.cinder_client,
1444 [self.volume_types[1]])
1446 def test_list_volume_types_default_public(self):
1447 self.assertEqual(openstack_utils.
1448 list_volume_types(self.cinder_client,
1451 [self.volume_types[0]])
1453 @mock.patch('functest.utils.openstack_utils.logger.error')
1454 def test_list_volume_types_exception(self, mock_logger_error):
1455 self.assertEqual(openstack_utils.
1456 list_volume_types(Exception),
1458 self.assertTrue(mock_logger_error.called)
1460 def test_create_volume_type_default(self):
1461 self.assertEqual(openstack_utils.
1462 create_volume_type(self.cinder_client,
1463 'test_volume_type'),
1464 self.volume_types[0])
1466 @mock.patch('functest.utils.openstack_utils.logger.error')
1467 def test_create_volume_type_exception(self, mock_logger_error):
1468 self.assertEqual(openstack_utils.
1469 create_volume_type(Exception,
1470 'test_volume_type'),
1472 self.assertTrue(mock_logger_error.called)
1474 def test_update_cinder_quota_default(self):
1475 self.assertTrue(openstack_utils.
1476 update_cinder_quota(self.cinder_client,
1482 @mock.patch('functest.utils.openstack_utils.logger.error')
1483 def test_update_cinder_quota_exception(self, mock_logger_error):
1484 self.assertFalse(openstack_utils.
1485 update_cinder_quota(Exception,
1490 self.assertTrue(mock_logger_error.called)
1492 def test_delete_volume_default(self):
1493 self.assertTrue(openstack_utils.
1494 delete_volume(self.cinder_client,
1498 self.assertTrue(openstack_utils.
1499 delete_volume(self.cinder_client,
1503 @mock.patch('functest.utils.openstack_utils.logger.error')
1504 def test_delete_volume_exception(self, mock_logger_error):
1505 self.assertFalse(openstack_utils.
1506 delete_volume(Exception,
1509 self.assertTrue(mock_logger_error.called)
1511 def test_delete_volume_type_default(self):
1512 self.assertTrue(openstack_utils.
1513 delete_volume_type(self.cinder_client,
1514 self.volume_types[0]))
1516 @mock.patch('functest.utils.openstack_utils.logger.error')
1517 def test_delete_volume_type_exception(self, mock_logger_error):
1518 self.assertFalse(openstack_utils.
1519 delete_volume_type(Exception,
1520 self.volume_types[0]))
1521 self.assertTrue(mock_logger_error.called)
1523 def test_get_tenants_default(self):
1524 with mock.patch('functest.utils.openstack_utils.'
1525 'is_keystone_v3', return_value=True):
1526 self.assertEqual(openstack_utils.
1527 get_tenants(self.keystone_client),
1529 with mock.patch('functest.utils.openstack_utils.'
1530 'is_keystone_v3', return_value=False):
1531 self.assertEqual(openstack_utils.
1532 get_tenants(self.keystone_client),
1535 @mock.patch('functest.utils.openstack_utils.logger.error')
1536 def test_get_tenants_exception(self, mock_logger_error):
1537 self.assertEqual(openstack_utils.
1538 get_tenants(Exception),
1540 self.assertTrue(mock_logger_error.called)
1542 def test_get_users_default(self):
1543 self.assertEqual(openstack_utils.
1544 get_users(self.keystone_client),
1547 @mock.patch('functest.utils.openstack_utils.logger.error')
1548 def test_get_users_exception(self, mock_logger_error):
1549 self.assertEqual(openstack_utils.
1550 get_users(Exception),
1552 self.assertTrue(mock_logger_error.called)
1554 def test_get_tenant_id_default(self):
1555 self.assertEqual(openstack_utils.
1556 get_tenant_id(self.keystone_client,
1560 def test_get_user_id_default(self):
1561 self.assertEqual(openstack_utils.
1562 get_user_id(self.keystone_client,
1566 def test_get_role_id_default(self):
1567 self.assertEqual(openstack_utils.
1568 get_role_id(self.keystone_client,
1572 def test_create_tenant_default(self):
1573 with mock.patch('functest.utils.openstack_utils.'
1574 'is_keystone_v3', return_value=True):
1575 self.assertEqual(openstack_utils.
1576 create_tenant(self.keystone_client,
1580 with mock.patch('functest.utils.openstack_utils.'
1581 'is_keystone_v3', return_value=False):
1582 self.assertEqual(openstack_utils.
1583 create_tenant(self.keystone_client,
1588 @mock.patch('functest.utils.openstack_utils.logger.error')
1589 def test_create_tenant_exception(self, mock_logger_error):
1590 self.assertEqual(openstack_utils.
1591 create_tenant(Exception,
1595 self.assertTrue(mock_logger_error.called)
1597 def test_create_user_default(self):
1598 with mock.patch('functest.utils.openstack_utils.'
1599 'is_keystone_v3', return_value=True):
1600 self.assertEqual(openstack_utils.
1601 create_user(self.keystone_client,
1607 with mock.patch('functest.utils.openstack_utils.'
1608 'is_keystone_v3', return_value=False):
1609 self.assertEqual(openstack_utils.
1610 create_user(self.keystone_client,
1617 @mock.patch('functest.utils.openstack_utils.logger.error')
1618 def test_create_user_exception(self, mock_logger_error):
1619 self.assertEqual(openstack_utils.
1620 create_user(Exception,
1626 self.assertTrue(mock_logger_error.called)
1628 def test_add_role_user_default(self):
1629 with mock.patch('functest.utils.openstack_utils.'
1630 'is_keystone_v3', return_value=True):
1631 self.assertTrue(openstack_utils.
1632 add_role_user(self.keystone_client,
1637 with mock.patch('functest.utils.openstack_utils.'
1638 'is_keystone_v3', return_value=False):
1639 self.assertTrue(openstack_utils.
1640 add_role_user(self.keystone_client,
1645 @mock.patch('functest.utils.openstack_utils.logger.error')
1646 def test_add_role_user_exception(self, mock_logger_error):
1647 self.assertFalse(openstack_utils.
1648 add_role_user(Exception,
1652 self.assertTrue(mock_logger_error.called)
1654 def test_delete_tenant_default(self):
1655 with mock.patch('functest.utils.openstack_utils.'
1656 'is_keystone_v3', return_value=True):
1657 self.assertTrue(openstack_utils.
1658 delete_tenant(self.keystone_client,
1661 with mock.patch('functest.utils.openstack_utils.'
1662 'is_keystone_v3', return_value=False):
1663 self.assertTrue(openstack_utils.
1664 delete_tenant(self.keystone_client,
1667 @mock.patch('functest.utils.openstack_utils.logger.error')
1668 def test_delete_tenant_exception(self, mock_logger_error):
1669 self.assertFalse(openstack_utils.
1670 delete_tenant(Exception,
1672 self.assertTrue(mock_logger_error.called)
1674 def test_delete_user_default(self):
1675 self.assertTrue(openstack_utils.
1676 delete_user(self.keystone_client,
1679 @mock.patch('functest.utils.openstack_utils.logger.error')
1680 def test_delete_user_exception(self, mock_logger_error):
1681 self.assertFalse(openstack_utils.
1682 delete_user(Exception,
1684 self.assertTrue(mock_logger_error.called)
1687 if __name__ == "__main__":
1688 unittest.main(verbosity=2)