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
8 # pylint: disable=missing-docstring
17 from functest.utils import openstack_utils
20 class OSUtilsTesting(unittest.TestCase):
22 def _get_env_cred_dict(self, os_prefix=''):
23 return {'OS_USERNAME': os_prefix + 'username',
24 'OS_PASSWORD': os_prefix + 'password',
25 'OS_AUTH_URL': os_prefix + 'auth_url',
26 'OS_TENANT_NAME': os_prefix + 'tenant_name',
27 'OS_USER_DOMAIN_NAME': os_prefix + 'user_domain_name',
28 'OS_PROJECT_DOMAIN_NAME': os_prefix + 'project_domain_name',
29 'OS_PROJECT_NAME': os_prefix + 'project_name',
30 'OS_ENDPOINT_TYPE': os_prefix + 'endpoint_type',
31 'OS_REGION_NAME': os_prefix + 'region_name',
32 'OS_CACERT': os_prefix + 'https_cacert',
33 'OS_INSECURE': os_prefix + 'https_insecure'}
35 def _get_os_env_vars(self):
36 return {'username': 'test_username', 'password': 'test_password',
37 'auth_url': 'test_auth_url', 'tenant_name': 'test_tenant_name',
38 'user_domain_name': 'test_user_domain_name',
39 'project_domain_name': 'test_project_domain_name',
40 'project_name': 'test_project_name',
41 'endpoint_type': 'test_endpoint_type',
42 'region_name': 'test_region_name',
43 'https_cacert': 'test_https_cacert',
44 'https_insecure': 'test_https_insecure'}
47 self.env_vars = ['OS_AUTH_URL', 'OS_USERNAME', 'OS_PASSWORD']
48 self.tenant_name = 'test_tenant_name'
49 self.env_cred_dict = self._get_env_cred_dict()
50 self.os_environs = self._get_env_cred_dict(os_prefix='test_')
51 self.os_env_vars = self._get_os_env_vars()
53 mock_obj = mock.Mock()
54 attrs = {'name': 'test_flavor',
57 mock_obj.configure_mock(**attrs)
58 self.flavor = mock_obj
60 mock_obj = mock.Mock()
61 attrs = {'name': 'test_aggregate',
63 'hosts': ['host_name']}
64 mock_obj.configure_mock(**attrs)
65 self.aggregate = mock_obj
67 mock_obj = mock.Mock()
68 attrs = {'id': 'instance_id',
69 'name': 'test_instance',
71 mock_obj.configure_mock(**attrs)
72 self.instance = mock_obj
74 mock_obj = mock.Mock()
75 attrs = {'id': 'azone_id',
76 'zoneName': 'test_azone',
78 mock_obj.configure_mock(**attrs)
79 self.availability_zone = mock_obj
81 mock_obj = mock.Mock()
82 attrs = {'floating_network_id': 'floating_id',
83 'floating_ip_address': 'test_floating_ip'}
84 mock_obj.configure_mock(**attrs)
85 self.floating_ip = mock_obj
87 mock_obj = mock.Mock()
88 attrs = {'id': 'hypervisor_id',
89 'hypervisor_hostname': 'test_hostname',
91 mock_obj.configure_mock(**attrs)
92 self.hypervisor = mock_obj
94 mock_obj = mock.Mock()
95 attrs = {'id': 'image_id',
97 mock_obj.configure_mock(**attrs)
100 mock_obj = mock.Mock()
101 self.mock_return = mock_obj
103 self.nova_client = mock.Mock()
104 attrs = {'servers.list.return_value': [self.instance],
105 'servers.get.return_value': self.instance,
106 'servers.find.return_value': self.instance,
107 'servers.create.return_value': self.instance,
108 'flavors.list.return_value': [self.flavor],
109 'flavors.find.return_value': self.flavor,
110 'servers.add_floating_ip.return_value': mock.Mock(),
111 'servers.force_delete.return_value': mock.Mock(),
112 'aggregates.list.return_value': [self.aggregate],
113 'aggregates.add_host.return_value': mock.Mock(),
114 'aggregates.remove_host.return_value': mock.Mock(),
115 'aggregates.get.return_value': self.aggregate,
116 'aggregates.delete.return_value': mock.Mock(),
117 'availability_zones.list.return_value':
118 [self.availability_zone],
119 'hypervisors.list.return_value': [self.hypervisor],
120 'create.return_value': mock.Mock(),
121 'add_security_group.return_value': mock.Mock(),
122 'images.list.return_value': [self.image],
123 'images.delete.return_value': mock.Mock(),
125 self.nova_client.configure_mock(**attrs)
127 self.glance_client = mock.Mock()
128 attrs = {'images.list.return_value': [self.image],
129 'images.create.return_value': self.image,
130 'images.upload.return_value': mock.Mock()}
131 self.glance_client.configure_mock(**attrs)
133 mock_obj = mock.Mock()
134 attrs = {'id': 'volume_id',
135 'name': 'test_volume'}
136 mock_obj.configure_mock(**attrs)
137 self.volume = mock_obj
139 self.cinder_client = mock.Mock()
140 attrs = {'volumes.list.return_value': [self.volume],
141 'quotas.update.return_value': mock.Mock(),
142 'volumes.detach.return_value': mock.Mock(),
143 'volumes.force_delete.return_value': mock.Mock(),
144 'volumes.delete.return_value': mock.Mock()
146 self.cinder_client.configure_mock(**attrs)
148 self.resource = mock.Mock()
149 attrs = {'id': 'resource_test_id',
150 'name': 'resource_test_name'
153 self.heat_client = mock.Mock()
154 attrs = {'resources.get.return_value': self.resource}
155 self.heat_client.configure_mock(**attrs)
157 mock_obj = mock.Mock()
158 attrs = {'id': 'tenant_id',
159 'name': 'test_tenant'}
160 mock_obj.configure_mock(**attrs)
161 self.tenant = mock_obj
163 mock_obj = mock.Mock()
164 attrs = {'id': 'user_id',
166 mock_obj.configure_mock(**attrs)
169 mock_obj = mock.Mock()
170 attrs = {'id': 'role_id',
172 mock_obj.configure_mock(**attrs)
175 mock_obj = mock.Mock()
176 attrs = {'id': 'domain_id',
177 'name': 'test_domain'}
178 mock_obj.configure_mock(**attrs)
179 self.domain = mock_obj
181 self.keystone_client = mock.Mock()
182 attrs = {'projects.list.return_value': [self.tenant],
183 'tenants.list.return_value': [self.tenant],
184 'users.list.return_value': [self.user],
185 'roles.list.return_value': [self.role],
186 'domains.list.return_value': [self.domain],
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.sec_group_rule = {'id': 'sec_group_rule_id',
222 'direction': 'direction',
223 'protocol': 'protocol',
224 'port_range_max': 'port_max',
225 'security_group_id': self.sec_group['id'],
226 'port_range_min': 'port_min'}
227 self.neutron_floatingip = {'id': 'fip_id',
228 'floating_ip_address': 'test_ip'}
229 self.neutron_client = mock.Mock()
230 attrs = {'list_networks.return_value': {'networks': self.networks},
231 'list_routers.return_value': {'routers': [self.router]},
232 'list_ports.return_value': {'ports': [self.port]},
233 'list_subnets.return_value': {'subnets': [self.subnet]},
234 'create_network.return_value': {'network': self.networks[0]},
235 'create_subnet.return_value': {'subnets': [self.subnet]},
236 'create_router.return_value': {'router': self.router},
237 'create_port.return_value': {'port': self.port},
238 'create_floatingip.return_value': {'floatingip':
239 self.neutron_floatingip},
240 'update_network.return_value': mock.Mock(),
241 'update_port.return_value': {'port': self.port},
242 'add_interface_router.return_value': mock.Mock(),
243 'add_gateway_router.return_value': mock.Mock(),
244 'delete_network.return_value': mock.Mock(),
245 'delete_subnet.return_value': mock.Mock(),
246 'delete_router.return_value': mock.Mock(),
247 'delete_port.return_value': mock.Mock(),
248 'remove_interface_router.return_value': mock.Mock(),
249 'remove_gateway_router.return_value': mock.Mock(),
250 'list_security_groups.return_value': {'security_groups':
252 'list_security_group_rules.'
253 'return_value': {'security_group_rules':
254 [self.sec_group_rule]},
255 'create_security_group_rule.return_value': mock.Mock(),
256 'create_security_group.return_value': {'security_group':
258 'update_quota.return_value': mock.Mock(),
259 'delete_security_group.return_value': mock.Mock(),
260 'list_floatingips.return_value': {'floatingips':
262 'delete_floatingip.return_value': mock.Mock(),
264 self.neutron_client.configure_mock(**attrs)
266 self.empty_client = mock.Mock()
267 attrs = {'list_networks.return_value': {'networks': []},
268 'list_routers.return_value': {'routers': []},
269 'list_ports.return_value': {'ports': []},
270 'list_subnets.return_value': {'subnets': []}}
271 self.empty_client.configure_mock(**attrs)
273 @mock.patch('functest.utils.openstack_utils.os.getenv',
275 def test_is_keystone_v3_missing_identity(self, mock_os_getenv):
276 self.assertEqual(openstack_utils.is_keystone_v3(), False)
278 @mock.patch('functest.utils.openstack_utils.os.getenv',
280 def test_is_keystone_v3_default(self, mock_os_getenv):
281 self.assertEqual(openstack_utils.is_keystone_v3(), True)
283 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
285 def test_get_rc_env_vars_missing_identity(self, mock_get_rc_env):
286 exp_resp = self.env_vars
287 exp_resp.extend(['OS_TENANT_NAME'])
288 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
290 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
292 def test_get_rc_env_vars_default(self, mock_get_rc_env):
293 exp_resp = self.env_vars
294 exp_resp.extend(['OS_PROJECT_NAME',
295 'OS_USER_DOMAIN_NAME',
296 'OS_PROJECT_DOMAIN_NAME'])
297 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
299 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
300 def test_check_credentials_missing_env(self, mock_get_rc_env):
301 exp_resp = self.env_vars
302 exp_resp.extend(['OS_TENANT_NAME'])
303 mock_get_rc_env.return_value = exp_resp
304 with mock.patch.dict('functest.utils.openstack_utils.os.environ', {},
306 self.assertEqual(openstack_utils.check_credentials(), False)
308 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
309 def test_check_credentials_default(self, mock_get_rc_env):
310 exp_resp = ['OS_TENANT_NAME']
311 mock_get_rc_env.return_value = exp_resp
312 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
313 {'OS_TENANT_NAME': self.tenant_name},
315 self.assertEqual(openstack_utils.check_credentials(), True)
317 def test_get_env_cred_dict(self):
318 self.assertDictEqual(openstack_utils.get_env_cred_dict(),
321 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
322 def test_get_credentials_default(self, mock_get_rc_env):
323 mock_get_rc_env.return_value = self.env_cred_dict.keys()
324 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
327 self.assertDictEqual(openstack_utils.get_credentials(),
330 def _get_credentials_missing_env(self, var):
331 dic = copy.deepcopy(self.os_environs)
333 with mock.patch('functest.utils.openstack_utils.get_rc_env_vars',
334 return_value=self.env_cred_dict.keys()), \
335 mock.patch.dict('functest.utils.openstack_utils.os.environ',
338 self.assertRaises(openstack_utils.MissingEnvVar,
339 lambda: openstack_utils.get_credentials())
341 def test_get_credentials_missing_username(self):
342 self._get_credentials_missing_env('OS_USERNAME')
344 def test_get_credentials_missing_password(self):
345 self._get_credentials_missing_env('OS_PASSWORD')
347 def test_get_credentials_missing_auth_url(self):
348 self._get_credentials_missing_env('OS_AUTH_URL')
350 def test_get_credentials_missing_tenantname(self):
351 self._get_credentials_missing_env('OS_TENANT_NAME')
353 def test_get_credentials_missing_domainname(self):
354 self._get_credentials_missing_env('OS_USER_DOMAIN_NAME')
356 def test_get_credentials_missing_projectname(self):
357 self._get_credentials_missing_env('OS_PROJECT_NAME')
359 def test_get_credentials_missing_endpoint_type(self):
360 self._get_credentials_missing_env('OS_ENDPOINT_TYPE')
362 @mock.patch('functest.utils.openstack_utils.os.getenv',
364 def test_get_keystone_client_version_missing_env(self, mock_os_getenv):
365 self.assertEqual(openstack_utils.get_keystone_client_version(),
366 openstack_utils.DEFAULT_API_VERSION)
368 @mock.patch('functest.utils.openstack_utils.logger.info')
369 @mock.patch('functest.utils.openstack_utils.os.getenv',
371 def test_get_keystone_client_version_default(self, mock_os_getenv,
373 self.assertEqual(openstack_utils.get_keystone_client_version(),
375 mock_logger_info.assert_called_once_with("OS_IDENTITY_API_VERSION is "
376 "set in env as '%s'", '3')
378 @mock.patch('functest.utils.openstack_utils.get_session')
379 @mock.patch('functest.utils.openstack_utils.keystoneclient.Client')
380 @mock.patch('functest.utils.openstack_utils.get_keystone_client_version',
382 @mock.patch('functest.utils.openstack_utils.os.getenv',
383 return_value='public')
384 def test_get_keystone_client_with_interface(self, mock_os_getenv,
385 mock_keystoneclient_version,
388 mock_keystone_obj = mock.Mock()
389 mock_session_obj = mock.Mock()
390 mock_key_client.return_value = mock_keystone_obj
391 mock_get_session.return_value = mock_session_obj
392 self.assertEqual(openstack_utils.get_keystone_client(),
394 mock_key_client.assert_called_once_with('3',
395 session=mock_session_obj,
398 @mock.patch('functest.utils.openstack_utils.get_session')
399 @mock.patch('functest.utils.openstack_utils.keystoneclient.Client')
400 @mock.patch('functest.utils.openstack_utils.get_keystone_client_version',
402 @mock.patch('functest.utils.openstack_utils.os.getenv',
403 return_value='admin')
404 def test_get_keystone_client_no_interface(self, mock_os_getenv,
405 mock_keystoneclient_version,
408 mock_keystone_obj = mock.Mock()
409 mock_session_obj = mock.Mock()
410 mock_key_client.return_value = mock_keystone_obj
411 mock_get_session.return_value = mock_session_obj
412 self.assertEqual(openstack_utils.get_keystone_client(),
414 mock_key_client.assert_called_once_with('3',
415 session=mock_session_obj,
418 @mock.patch('functest.utils.openstack_utils.os.getenv',
420 def test_get_nova_client_version_missing_env(self, mock_os_getenv):
421 self.assertEqual(openstack_utils.get_nova_client_version(),
422 openstack_utils.DEFAULT_API_VERSION)
424 @mock.patch('functest.utils.openstack_utils.logger.info')
425 @mock.patch('functest.utils.openstack_utils.os.getenv',
427 def test_get_nova_client_version_default(self, mock_os_getenv,
429 self.assertEqual(openstack_utils.get_nova_client_version(),
431 mock_logger_info.assert_called_once_with("OS_COMPUTE_API_VERSION is "
432 "set in env as '%s'", '3')
434 def test_get_nova_client(self):
435 mock_nova_obj = mock.Mock()
436 mock_session_obj = mock.Mock()
437 with mock.patch('functest.utils.openstack_utils'
438 '.get_nova_client_version', return_value='3'), \
439 mock.patch('functest.utils.openstack_utils'
440 '.novaclient.Client',
441 return_value=mock_nova_obj) \
442 as mock_nova_client, \
443 mock.patch('functest.utils.openstack_utils.get_session',
444 return_value=mock_session_obj):
445 self.assertEqual(openstack_utils.get_nova_client(),
447 mock_nova_client.assert_called_once_with('3',
448 session=mock_session_obj)
450 @mock.patch('functest.utils.openstack_utils.os.getenv',
452 def test_get_cinder_client_version_missing_env(self, mock_os_getenv):
453 self.assertEqual(openstack_utils.get_cinder_client_version(),
454 openstack_utils.DEFAULT_API_VERSION)
456 @mock.patch('functest.utils.openstack_utils.logger.info')
457 @mock.patch('functest.utils.openstack_utils.os.getenv',
459 def test_get_cinder_client_version_default(self, mock_os_getenv,
461 self.assertEqual(openstack_utils.get_cinder_client_version(),
463 mock_logger_info.assert_called_once_with("OS_VOLUME_API_VERSION is "
464 "set in env as '%s'", '3')
466 def test_get_cinder_client(self):
467 mock_cinder_obj = mock.Mock()
468 mock_session_obj = mock.Mock()
469 with mock.patch('functest.utils.openstack_utils'
470 '.get_cinder_client_version', return_value='3'), \
471 mock.patch('functest.utils.openstack_utils'
472 '.cinderclient.Client',
473 return_value=mock_cinder_obj) \
474 as mock_cind_client, \
475 mock.patch('functest.utils.openstack_utils.get_session',
476 return_value=mock_session_obj):
477 self.assertEqual(openstack_utils.get_cinder_client(),
479 mock_cind_client.assert_called_once_with('3',
480 session=mock_session_obj)
482 @mock.patch('functest.utils.openstack_utils.os.getenv',
484 def test_get_neutron_client_version_missing_env(self, mock_os_getenv):
485 self.assertEqual(openstack_utils.get_neutron_client_version(),
486 openstack_utils.DEFAULT_API_VERSION)
488 @mock.patch('functest.utils.openstack_utils.logger.info')
489 @mock.patch('functest.utils.openstack_utils.os.getenv',
491 def test_get_neutron_client_version_default(self, mock_os_getenv,
493 self.assertEqual(openstack_utils.get_neutron_client_version(),
495 mock_logger_info.assert_called_once_with("OS_NETWORK_API_VERSION is "
496 "set in env as '%s'", '3')
498 def test_get_neutron_client(self):
499 mock_neutron_obj = mock.Mock()
500 mock_session_obj = mock.Mock()
501 with mock.patch('functest.utils.openstack_utils'
502 '.get_neutron_client_version', return_value='3'), \
503 mock.patch('functest.utils.openstack_utils'
504 '.neutronclient.Client',
505 return_value=mock_neutron_obj) \
506 as mock_neut_client, \
507 mock.patch('functest.utils.openstack_utils.get_session',
508 return_value=mock_session_obj):
509 self.assertEqual(openstack_utils.get_neutron_client(),
511 mock_neut_client.assert_called_once_with('3',
512 session=mock_session_obj)
514 @mock.patch('functest.utils.openstack_utils.os.getenv',
516 def test_get_glance_client_version_missing_env(self, mock_os_getenv):
517 self.assertEqual(openstack_utils.get_glance_client_version(),
518 openstack_utils.DEFAULT_API_VERSION)
520 @mock.patch('functest.utils.openstack_utils.logger.info')
521 @mock.patch('functest.utils.openstack_utils.os.getenv',
523 def test_get_glance_client_version_default(self, mock_os_getenv,
525 self.assertEqual(openstack_utils.get_glance_client_version(),
527 mock_logger_info.assert_called_once_with("OS_IMAGE_API_VERSION is "
528 "set in env as '%s'", '3')
530 def test_get_glance_client(self):
531 mock_glance_obj = mock.Mock()
532 mock_session_obj = mock.Mock()
533 with mock.patch('functest.utils.openstack_utils'
534 '.get_glance_client_version', return_value='3'), \
535 mock.patch('functest.utils.openstack_utils'
536 '.glanceclient.Client',
537 return_value=mock_glance_obj) \
538 as mock_glan_client, \
539 mock.patch('functest.utils.openstack_utils.get_session',
540 return_value=mock_session_obj):
541 self.assertEqual(openstack_utils.get_glance_client(),
543 mock_glan_client.assert_called_once_with('3',
544 session=mock_session_obj)
546 @mock.patch('functest.utils.openstack_utils.os.getenv',
548 def test_get_heat_client_version_missing_env(self, mock_os_getenv):
549 self.assertEqual(openstack_utils.get_heat_client_version(),
550 openstack_utils.DEFAULT_HEAT_API_VERSION)
552 @mock.patch('functest.utils.openstack_utils.logger.info')
553 @mock.patch('functest.utils.openstack_utils.os.getenv', return_value='1')
554 def test_get_heat_client_version_default(self, mock_os_getenv,
556 self.assertEqual(openstack_utils.get_heat_client_version(), '1')
557 mock_logger_info.assert_called_once_with(
558 "OS_ORCHESTRATION_API_VERSION is set in env as '%s'", '1')
560 def test_get_heat_client(self):
561 mock_heat_obj = mock.Mock()
562 mock_session_obj = mock.Mock()
563 with mock.patch('functest.utils.openstack_utils'
564 '.get_heat_client_version', return_value='1'), \
565 mock.patch('functest.utils.openstack_utils'
566 '.heatclient.Client',
567 return_value=mock_heat_obj) \
568 as mock_heat_client, \
569 mock.patch('functest.utils.openstack_utils.get_session',
570 return_value=mock_session_obj):
571 self.assertEqual(openstack_utils.get_heat_client(),
573 mock_heat_client.assert_called_once_with('1',
574 session=mock_session_obj)
576 def test_get_instances_default(self):
577 self.assertEqual(openstack_utils.get_instances(self.nova_client),
580 @mock.patch('functest.utils.openstack_utils.logger.error')
581 def test_get_instances_exception(self, mock_logger_error):
582 self.assertEqual(openstack_utils.
583 get_instances(Exception),
585 self.assertTrue(mock_logger_error.called)
587 def test_get_instance_status_default(self):
588 self.assertEqual(openstack_utils.get_instance_status(self.nova_client,
592 @mock.patch('functest.utils.openstack_utils.logger.error')
593 def test_get_instance_status_exception(self, mock_logger_error):
594 self.assertEqual(openstack_utils.
595 get_instance_status(Exception,
598 self.assertTrue(mock_logger_error.called)
600 def test_get_instance_by_name_default(self):
601 self.assertEqual(openstack_utils.
602 get_instance_by_name(self.nova_client,
606 @mock.patch('functest.utils.openstack_utils.logger.error')
607 def test_get_instance_by_name_exception(self, mock_logger_error):
608 self.assertEqual(openstack_utils.
609 get_instance_by_name(Exception,
612 self.assertTrue(mock_logger_error.called)
614 def test_get_flavor_id_default(self):
615 self.assertEqual(openstack_utils.
616 get_flavor_id(self.nova_client,
620 def test_get_flavor_id_by_ram_range_default(self):
621 self.assertEqual(openstack_utils.
622 get_flavor_id_by_ram_range(self.nova_client,
626 def test_get_aggregates_default(self):
627 self.assertEqual(openstack_utils.
628 get_aggregates(self.nova_client),
631 @mock.patch('functest.utils.openstack_utils.logger.error')
632 def test_get_aggregates_exception(self, mock_logger_error):
633 self.assertEqual(openstack_utils.
634 get_aggregates(Exception),
636 self.assertTrue(mock_logger_error.called)
638 def test_get_aggregate_id_default(self):
639 with mock.patch('functest.utils.openstack_utils.get_aggregates',
640 return_value=[self.aggregate]):
641 self.assertEqual(openstack_utils.
642 get_aggregate_id(self.nova_client,
646 @mock.patch('functest.utils.openstack_utils.logger.error')
647 def test_get_aggregate_id_exception(self, mock_logger_error):
648 self.assertEqual(openstack_utils.
649 get_aggregate_id(Exception,
652 self.assertTrue(mock_logger_error.called)
654 def test_get_availability_zone_names_default(self):
655 with mock.patch('functest.utils.openstack_utils'
656 '.get_availability_zones',
657 return_value=[self.availability_zone]):
658 self.assertEqual(openstack_utils.
659 get_availability_zone_names(self.nova_client),
662 @mock.patch('functest.utils.openstack_utils.logger.error')
663 def test_get_availability_zone_names_exception(self, mock_logger_error):
664 self.assertEqual(openstack_utils.
665 get_availability_zone_names(Exception),
667 self.assertTrue(mock_logger_error.called)
669 def test_get_availability_zones_default(self):
670 self.assertEqual(openstack_utils.
671 get_availability_zones(self.nova_client),
672 [self.availability_zone])
674 @mock.patch('functest.utils.openstack_utils.logger.error')
675 def test_get_availability_zones_exception(self, mock_logger_error):
676 self.assertEqual(openstack_utils.
677 get_availability_zones(Exception),
679 self.assertTrue(mock_logger_error.called)
681 def test_get_floating_ips_default(self):
682 self.assertEqual(openstack_utils.
683 get_floating_ips(self.neutron_client),
686 @mock.patch('functest.utils.openstack_utils.logger.error')
687 def test_get_floating_ips_exception(self, mock_logger_error):
688 self.assertEqual(openstack_utils.
689 get_floating_ips(Exception),
691 self.assertTrue(mock_logger_error.called)
693 def test_get_hypervisors_default(self):
694 self.assertEqual(openstack_utils.
695 get_hypervisors(self.nova_client),
698 @mock.patch('functest.utils.openstack_utils.logger.error')
699 def test_get_hypervisors_exception(self, mock_logger_error):
700 self.assertEqual(openstack_utils.
701 get_hypervisors(Exception),
703 self.assertTrue(mock_logger_error.called)
705 def test_create_aggregate_default(self):
706 self.assertTrue(openstack_utils.
707 create_aggregate(self.nova_client,
711 @mock.patch('functest.utils.openstack_utils.logger.error')
712 def test_create_aggregate_exception(self, mock_logger_error):
713 self.assertEqual(openstack_utils.
714 create_aggregate(Exception,
718 self.assertTrue(mock_logger_error.called)
720 def test_add_host_to_aggregate_default(self):
721 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
722 self.assertTrue(openstack_utils.
723 add_host_to_aggregate(self.nova_client,
727 @mock.patch('functest.utils.openstack_utils.logger.error')
728 def test_add_host_to_aggregate_exception(self, mock_logger_error):
729 self.assertEqual(openstack_utils.
730 add_host_to_aggregate(Exception,
734 self.assertTrue(mock_logger_error.called)
736 def test_create_aggregate_with_host_default(self):
737 with mock.patch('functest.utils.openstack_utils.create_aggregate'), \
738 mock.patch('functest.utils.openstack_utils.'
739 'add_host_to_aggregate'):
740 self.assertTrue(openstack_utils.
741 create_aggregate_with_host(self.nova_client,
746 @mock.patch('functest.utils.openstack_utils.logger.error')
747 def test_create_aggregate_with_host_exception(self, mock_logger_error):
748 with mock.patch('functest.utils.openstack_utils.create_aggregate',
749 side_effect=Exception):
750 self.assertEqual(openstack_utils.
751 create_aggregate_with_host(Exception,
756 self.assertTrue(mock_logger_error.called)
758 def test_create_instance_default(self):
759 with mock.patch('functest.utils.openstack_utils.'
761 return_value=self.nova_client):
762 self.assertEqual(openstack_utils.
763 create_instance('test_flavor',
768 @mock.patch('functest.utils.openstack_utils.logger.error')
769 def test_create_instance_exception(self, mock_logger_error):
770 with mock.patch('functest.utils.openstack_utils.'
772 return_value=self.nova_client):
773 self.nova_client.flavors.find.side_effect = Exception
774 self.assertEqual(openstack_utils.
775 create_instance('test_flavor',
779 self.assertTrue(mock_logger_error)
781 def test_create_floating_ip_default(self):
782 with mock.patch('functest.utils.openstack_utils.'
783 'get_external_net_id',
784 return_value='external_net_id'):
785 exp_resp = {'fip_addr': 'test_ip', 'fip_id': 'fip_id'}
786 self.assertEqual(openstack_utils.
787 create_floating_ip(self.neutron_client),
790 @mock.patch('functest.utils.openstack_utils.logger.error')
791 def test_create_floating_ip_exception(self, mock_logger_error):
792 with mock.patch('functest.utils.openstack_utils.'
793 'get_external_net_id',
794 return_value='external_net_id'):
795 self.assertEqual(openstack_utils.
796 create_floating_ip(Exception),
798 self.assertTrue(mock_logger_error)
800 def test_add_floating_ip_default(self):
801 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
802 self.assertTrue(openstack_utils.
803 add_floating_ip(self.nova_client,
805 'test_floatingip_addr'))
807 @mock.patch('functest.utils.openstack_utils.logger.error')
808 def test_add_floating_ip_exception(self, mock_logger_error):
809 self.assertFalse(openstack_utils.
810 add_floating_ip(Exception,
812 'test_floatingip_addr'))
813 self.assertTrue(mock_logger_error.called)
815 def test_delete_instance_default(self):
816 self.assertTrue(openstack_utils.
817 delete_instance(self.nova_client,
820 @mock.patch('functest.utils.openstack_utils.logger.error')
821 def test_delete_instance_exception(self, mock_logger_error):
822 self.assertFalse(openstack_utils.
823 delete_instance(Exception,
825 self.assertTrue(mock_logger_error.called)
827 def test_delete_floating_ip_default(self):
828 self.assertTrue(openstack_utils.
829 delete_floating_ip(self.neutron_client,
832 @mock.patch('functest.utils.openstack_utils.logger.error')
833 def test_delete_floating_ip_exception(self, mock_logger_error):
834 self.assertFalse(openstack_utils.
835 delete_floating_ip(Exception,
837 self.assertTrue(mock_logger_error.called)
839 def test_remove_host_from_aggregate_default(self):
840 with mock.patch('functest.utils.openstack_utils.'
842 self.assertTrue(openstack_utils.
843 remove_host_from_aggregate(self.nova_client,
847 @mock.patch('functest.utils.openstack_utils.logger.error')
848 def test_remove_host_from_aggregate_exception(self, mock_logger_error):
849 with mock.patch('functest.utils.openstack_utils.'
850 'get_aggregate_id', side_effect=Exception):
851 self.assertFalse(openstack_utils.
852 remove_host_from_aggregate(self.nova_client,
855 self.assertTrue(mock_logger_error.called)
857 def test_remove_hosts_from_aggregate_default(self):
858 with mock.patch('functest.utils.openstack_utils.'
859 'get_aggregate_id'), \
860 mock.patch('functest.utils.openstack_utils.'
861 'remove_host_from_aggregate',
864 openstack_utils.remove_hosts_from_aggregate(self.nova_client,
866 mock_method.assert_any_call(self.nova_client,
870 def test_delete_aggregate_default(self):
871 with mock.patch('functest.utils.openstack_utils.'
872 'remove_hosts_from_aggregate'):
873 self.assertTrue(openstack_utils.
874 delete_aggregate(self.nova_client,
877 @mock.patch('functest.utils.openstack_utils.logger.error')
878 def test_delete_aggregate_exception(self, mock_logger_error):
879 with mock.patch('functest.utils.openstack_utils.'
880 'remove_hosts_from_aggregate', side_effect=Exception):
881 self.assertFalse(openstack_utils.
882 delete_aggregate(self.nova_client,
884 self.assertTrue(mock_logger_error.called)
886 def test_get_network_list_default(self):
887 self.assertEqual(openstack_utils.
888 get_network_list(self.neutron_client),
891 def test_get_network_list_missing_network(self):
892 self.assertEqual(openstack_utils.
893 get_network_list(self.empty_client),
896 def test_get_router_list_default(self):
897 self.assertEqual(openstack_utils.
898 get_router_list(self.neutron_client),
901 def test_get_router_list_missing_router(self):
902 self.assertEqual(openstack_utils.
903 get_router_list(self.empty_client),
906 def test_get_port_list_default(self):
907 self.assertEqual(openstack_utils.
908 get_port_list(self.neutron_client),
911 def test_get_port_list_missing_port(self):
912 self.assertEqual(openstack_utils.
913 get_port_list(self.empty_client),
916 def test_get_network_id_default(self):
917 self.assertEqual(openstack_utils.
918 get_network_id(self.neutron_client,
922 def test_get_subnet_id_default(self):
923 self.assertEqual(openstack_utils.
924 get_subnet_id(self.neutron_client,
928 def test_get_router_id_default(self):
929 self.assertEqual(openstack_utils.
930 get_router_id(self.neutron_client,
934 def test_get_private_net_default(self):
935 self.assertEqual(openstack_utils.
936 get_private_net(self.neutron_client),
939 def test_get_private_net_missing_net(self):
940 self.assertEqual(openstack_utils.
941 get_private_net(self.empty_client),
944 def test_get_external_net_default(self):
945 self.assertEqual(openstack_utils.
946 get_external_net(self.neutron_client),
949 def test_get_external_net_missing_net(self):
950 self.assertEqual(openstack_utils.
951 get_external_net(self.empty_client),
954 def test_get_external_net_id_default(self):
955 self.assertEqual(openstack_utils.
956 get_external_net_id(self.neutron_client),
959 def test_get_external_net_id_missing_net(self):
960 self.assertEqual(openstack_utils.
961 get_external_net_id(self.empty_client),
964 def test_check_neutron_net_default(self):
965 self.assertTrue(openstack_utils.
966 check_neutron_net(self.neutron_client,
969 def test_check_neutron_net_missing_net(self):
970 self.assertFalse(openstack_utils.
971 check_neutron_net(self.empty_client,
974 def test_create_neutron_net_default(self):
975 self.assertEqual(openstack_utils.
976 create_neutron_net(self.neutron_client,
980 @mock.patch('functest.utils.openstack_utils.logger.error')
981 def test_create_neutron_net_exception(self, mock_logger_error):
982 self.assertEqual(openstack_utils.
983 create_neutron_net(Exception,
986 self.assertTrue(mock_logger_error.called)
988 def test_create_neutron_subnet_default(self):
989 self.assertEqual(openstack_utils.
990 create_neutron_subnet(self.neutron_client,
996 @mock.patch('functest.utils.openstack_utils.logger.error')
997 def test_create_neutron_subnet_exception(self, mock_logger_error):
998 self.assertEqual(openstack_utils.
999 create_neutron_subnet(Exception,
1004 self.assertTrue(mock_logger_error.called)
1006 def test_create_neutron_router_default(self):
1007 self.assertEqual(openstack_utils.
1008 create_neutron_router(self.neutron_client,
1012 @mock.patch('functest.utils.openstack_utils.logger.error')
1013 def test_create_neutron_router_exception(self, mock_logger_error):
1014 self.assertEqual(openstack_utils.
1015 create_neutron_router(Exception,
1018 self.assertTrue(mock_logger_error.called)
1020 def test_create_neutron_port_default(self):
1021 self.assertEqual(openstack_utils.
1022 create_neutron_port(self.neutron_client,
1028 @mock.patch('functest.utils.openstack_utils.logger.error')
1029 def test_create_neutron_port_exception(self, mock_logger_error):
1030 self.assertEqual(openstack_utils.
1031 create_neutron_port(Exception,
1036 self.assertTrue(mock_logger_error.called)
1038 def test_update_neutron_net_default(self):
1039 self.assertTrue(openstack_utils.
1040 update_neutron_net(self.neutron_client,
1043 @mock.patch('functest.utils.openstack_utils.logger.error')
1044 def test_update_neutron_net_exception(self, mock_logger_error):
1045 self.assertFalse(openstack_utils.
1046 update_neutron_net(Exception,
1048 self.assertTrue(mock_logger_error.called)
1050 def test_update_neutron_port_default(self):
1051 self.assertEqual(openstack_utils.
1052 update_neutron_port(self.neutron_client,
1057 @mock.patch('functest.utils.openstack_utils.logger.error')
1058 def test_update_neutron_port_exception(self, mock_logger_error):
1059 self.assertEqual(openstack_utils.
1060 update_neutron_port(Exception,
1064 self.assertTrue(mock_logger_error.called)
1066 def test_add_interface_router_default(self):
1067 self.assertTrue(openstack_utils.
1068 add_interface_router(self.neutron_client,
1072 @mock.patch('functest.utils.openstack_utils.logger.error')
1073 def test_add_interface_router_exception(self, mock_logger_error):
1074 self.assertFalse(openstack_utils.
1075 add_interface_router(Exception,
1078 self.assertTrue(mock_logger_error.called)
1080 def test_add_gateway_router_default(self):
1081 with mock.patch('functest.utils.openstack_utils.'
1082 'get_external_net_id',
1083 return_value='network_id'):
1084 self.assertTrue(openstack_utils.
1085 add_gateway_router(self.neutron_client,
1088 @mock.patch('functest.utils.openstack_utils.logger.error')
1089 def test_add_gateway_router_exception(self, mock_logger_error):
1090 with mock.patch('functest.utils.openstack_utils.'
1091 'get_external_net_id',
1092 return_value='network_id'):
1093 self.assertFalse(openstack_utils.
1094 add_gateway_router(Exception,
1096 self.assertTrue(mock_logger_error.called)
1098 def test_delete_neutron_net_default(self):
1099 self.assertTrue(openstack_utils.
1100 delete_neutron_net(self.neutron_client,
1103 @mock.patch('functest.utils.openstack_utils.logger.error')
1104 def test_delete_neutron_net_exception(self, mock_logger_error):
1105 self.assertFalse(openstack_utils.
1106 delete_neutron_net(Exception,
1108 self.assertTrue(mock_logger_error.called)
1110 def test_delete_neutron_subnet_default(self):
1111 self.assertTrue(openstack_utils.
1112 delete_neutron_subnet(self.neutron_client,
1115 @mock.patch('functest.utils.openstack_utils.logger.error')
1116 def test_delete_neutron_subnet_exception(self, mock_logger_error):
1117 self.assertFalse(openstack_utils.
1118 delete_neutron_subnet(Exception,
1120 self.assertTrue(mock_logger_error.called)
1122 def test_delete_neutron_router_default(self):
1123 self.assertTrue(openstack_utils.
1124 delete_neutron_router(self.neutron_client,
1127 @mock.patch('functest.utils.openstack_utils.logger.error')
1128 def test_delete_neutron_router_exception(self, mock_logger_error):
1129 self.assertFalse(openstack_utils.
1130 delete_neutron_router(Exception,
1132 self.assertTrue(mock_logger_error.called)
1134 def test_delete_neutron_port_default(self):
1135 self.assertTrue(openstack_utils.
1136 delete_neutron_port(self.neutron_client,
1139 @mock.patch('functest.utils.openstack_utils.logger.error')
1140 def test_delete_neutron_port_exception(self, mock_logger_error):
1141 self.assertFalse(openstack_utils.
1142 delete_neutron_port(Exception,
1144 self.assertTrue(mock_logger_error.called)
1146 def test_remove_interface_router_default(self):
1147 self.assertTrue(openstack_utils.
1148 remove_interface_router(self.neutron_client,
1152 @mock.patch('functest.utils.openstack_utils.logger.error')
1153 def test_remove_interface_router_exception(self, mock_logger_error):
1154 self.assertFalse(openstack_utils.
1155 remove_interface_router(Exception,
1158 self.assertTrue(mock_logger_error.called)
1160 def test_remove_gateway_router_default(self):
1161 self.assertTrue(openstack_utils.
1162 remove_gateway_router(self.neutron_client,
1165 @mock.patch('functest.utils.openstack_utils.logger.error')
1166 def test_remove_gateway_router_exception(self, mock_logger_error):
1167 self.assertFalse(openstack_utils.
1168 remove_gateway_router(Exception,
1170 self.assertTrue(mock_logger_error.called)
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_get_security_group_rules_default(self):
1194 self.assertEqual(openstack_utils.
1195 get_security_group_rules(self.neutron_client,
1196 self.sec_group['id']),
1197 [self.sec_group_rule])
1199 @mock.patch('functest.utils.openstack_utils.logger.error')
1200 def test_get_security_group_rules_exception(self, mock_logger_error):
1201 self.assertEqual(openstack_utils.
1202 get_security_group_rules(Exception,
1205 self.assertTrue(mock_logger_error.called)
1207 def test_check_security_group_rules_not_exists(self):
1208 self.assertEqual(openstack_utils.
1209 check_security_group_rules(self.neutron_client,
1217 def test_check_security_group_rules_exists(self):
1218 self.assertEqual(openstack_utils.
1219 check_security_group_rules(self.neutron_client,
1220 self.sec_group['id'],
1227 @mock.patch('functest.utils.openstack_utils.logger.error')
1228 def test_check_security_group_rules_exception(self, mock_logger_error):
1229 self.assertEqual(openstack_utils.
1230 check_security_group_rules(Exception,
1237 self.assertTrue(mock_logger_error.called)
1239 def test_create_security_group_default(self):
1240 self.assertEqual(openstack_utils.
1241 create_security_group(self.neutron_client,
1246 @mock.patch('functest.utils.openstack_utils.logger.error')
1247 def test_create_security_group_exception(self, mock_logger_error):
1248 self.assertEqual(openstack_utils.
1249 create_security_group(Exception,
1253 self.assertTrue(mock_logger_error.called)
1255 def test_create_secgroup_rule_default(self):
1256 self.assertTrue(openstack_utils.
1257 create_secgroup_rule(self.neutron_client,
1263 self.assertTrue(openstack_utils.
1264 create_secgroup_rule(self.neutron_client,
1269 @mock.patch('functest.utils.openstack_utils.logger.error')
1270 def test_create_secgroup_rule_invalid_port_range(self, mock_logger_error):
1271 self.assertFalse(openstack_utils.
1272 create_secgroup_rule(self.neutron_client,
1278 @mock.patch('functest.utils.openstack_utils.logger.error')
1279 def test_create_secgroup_rule_exception(self, mock_logger_error):
1280 self.assertFalse(openstack_utils.
1281 create_secgroup_rule(Exception,
1286 @mock.patch('functest.utils.openstack_utils.logger.info')
1287 def test_create_security_group_full_default(self, mock_logger_info):
1288 with mock.patch('functest.utils.openstack_utils.'
1289 'get_security_group_id',
1290 return_value='sg_id'):
1291 self.assertEqual(openstack_utils.
1292 create_security_group_full(self.neutron_client,
1296 self.assertTrue(mock_logger_info)
1298 @mock.patch('functest.utils.openstack_utils.logger.info')
1299 @mock.patch('functest.utils.openstack_utils.logger.error')
1300 def test_create_security_group_full_sec_group_fail(self,
1303 with mock.patch('functest.utils.openstack_utils.'
1304 'get_security_group_id',
1306 mock.patch('functest.utils.openstack_utils.'
1307 'create_security_group',
1308 return_value=False):
1309 self.assertEqual(openstack_utils.
1310 create_security_group_full(self.neutron_client,
1314 self.assertTrue(mock_logger_error)
1315 self.assertTrue(mock_logger_info)
1317 @mock.patch('functest.utils.openstack_utils.logger.debug')
1318 @mock.patch('functest.utils.openstack_utils.logger.info')
1319 @mock.patch('functest.utils.openstack_utils.logger.error')
1320 def test_create_security_group_full_secgroup_rule_fail(self,
1324 with mock.patch('functest.utils.openstack_utils.'
1325 'get_security_group_id',
1327 mock.patch('functest.utils.openstack_utils.'
1328 'create_security_group',
1329 return_value={'id': 'sg_id',
1330 'name': 'sg_name'}), \
1331 mock.patch('functest.utils.openstack_utils.'
1332 'create_secgroup_rule',
1333 return_value=False):
1334 self.assertEqual(openstack_utils.
1335 create_security_group_full(self.neutron_client,
1339 self.assertTrue(mock_logger_error)
1340 self.assertTrue(mock_logger_info)
1341 self.assertTrue(mock_logger_debug)
1343 def test_add_secgroup_to_instance_default(self):
1344 self.assertTrue(openstack_utils.
1345 add_secgroup_to_instance(self.nova_client,
1349 @mock.patch('functest.utils.openstack_utils.logger.error')
1350 def test_add_secgroup_to_instance_exception(self, mock_logger_error):
1351 self.assertFalse(openstack_utils.
1352 add_secgroup_to_instance(Exception,
1355 self.assertTrue(mock_logger_error.called)
1357 def test_update_sg_quota_default(self):
1358 self.assertTrue(openstack_utils.
1359 update_sg_quota(self.neutron_client,
1364 @mock.patch('functest.utils.openstack_utils.logger.error')
1365 def test_update_sg_quota_exception(self, mock_logger_error):
1366 self.assertFalse(openstack_utils.
1367 update_sg_quota(Exception,
1371 self.assertTrue(mock_logger_error.called)
1373 def test_delete_security_group_default(self):
1374 self.assertTrue(openstack_utils.
1375 delete_security_group(self.neutron_client,
1378 @mock.patch('functest.utils.openstack_utils.logger.error')
1379 def test_delete_security_group_exception(self, mock_logger_error):
1380 self.assertFalse(openstack_utils.
1381 delete_security_group(Exception,
1383 self.assertTrue(mock_logger_error.called)
1385 def test_get_images_default(self):
1386 self.assertEqual(openstack_utils.
1387 get_images(self.glance_client),
1390 @mock.patch('functest.utils.openstack_utils.logger.error')
1391 def test_get_images_exception(self, mock_logger_error):
1392 self.assertEqual(openstack_utils.
1393 get_images(Exception),
1395 self.assertTrue(mock_logger_error.called)
1397 def test_get_image_id_default(self):
1398 self.assertEqual(openstack_utils.
1399 get_image_id(self.glance_client,
1403 # create_glance_image, get_or_create_image
1404 @mock.patch('functest.utils.openstack_utils.logger.error')
1405 def test_create_glance_image_file_present(self, mock_logger_error):
1406 with mock.patch('functest.utils.openstack_utils.'
1408 return_value=False):
1409 self.assertEqual(openstack_utils.
1410 create_glance_image(self.glance_client,
1414 self.assertTrue(mock_logger_error.called)
1416 @mock.patch('functest.utils.openstack_utils.logger.info')
1417 def test_create_glance_image_already_exist(self, mock_logger_info):
1418 with mock.patch('functest.utils.openstack_utils.'
1420 return_value=True), \
1421 mock.patch('functest.utils.openstack_utils.get_image_id',
1422 return_value='image_id'):
1423 self.assertEqual(openstack_utils.
1424 create_glance_image(self.glance_client,
1428 self.assertTrue(mock_logger_info.called)
1430 @mock.patch('functest.utils.openstack_utils.logger.info')
1431 def test_create_glance_image_default(self, mock_logger_info):
1432 with mock.patch('functest.utils.openstack_utils.'
1434 return_value=True), \
1435 mock.patch('functest.utils.openstack_utils.get_image_id',
1437 mock.patch('six.moves.builtins.open',
1438 mock.mock_open(read_data='1')) as m:
1439 self.assertEqual(openstack_utils.
1440 create_glance_image(self.glance_client,
1444 m.assert_called_once_with('file_path')
1445 self.assertTrue(mock_logger_info.called)
1447 @mock.patch('functest.utils.openstack_utils.logger.error')
1448 def test_create_glance_image_exception(self, mock_logger_error):
1449 with mock.patch('functest.utils.openstack_utils.'
1451 return_value=True), \
1452 mock.patch('functest.utils.openstack_utils.get_image_id',
1453 side_effect=Exception):
1454 self.assertEqual(openstack_utils.
1455 create_glance_image(self.glance_client,
1459 self.assertTrue(mock_logger_error.called)
1461 def test_delete_glance_image_default(self):
1462 self.assertTrue(openstack_utils.
1463 delete_glance_image(self.nova_client,
1466 @mock.patch('functest.utils.openstack_utils.logger.error')
1467 def test_delete_glance_image_exception(self, mock_logger_error):
1468 self.assertFalse(openstack_utils.
1469 delete_glance_image(Exception,
1471 self.assertTrue(mock_logger_error.called)
1473 def test_get_volumes_default(self):
1474 self.assertEqual(openstack_utils.
1475 get_volumes(self.cinder_client),
1478 @mock.patch('functest.utils.openstack_utils.logger.error')
1479 def test_get_volumes_exception(self, mock_logger_error):
1480 self.assertEqual(openstack_utils.
1481 get_volumes(Exception),
1483 self.assertTrue(mock_logger_error.called)
1485 def test_update_cinder_quota_default(self):
1486 self.assertTrue(openstack_utils.
1487 update_cinder_quota(self.cinder_client,
1493 @mock.patch('functest.utils.openstack_utils.logger.error')
1494 def test_update_cinder_quota_exception(self, mock_logger_error):
1495 self.assertFalse(openstack_utils.
1496 update_cinder_quota(Exception,
1501 self.assertTrue(mock_logger_error.called)
1503 def test_delete_volume_default(self):
1504 self.assertTrue(openstack_utils.
1505 delete_volume(self.cinder_client,
1509 self.assertTrue(openstack_utils.
1510 delete_volume(self.cinder_client,
1514 @mock.patch('functest.utils.openstack_utils.logger.error')
1515 def test_delete_volume_exception(self, mock_logger_error):
1516 self.assertFalse(openstack_utils.
1517 delete_volume(Exception,
1520 self.assertTrue(mock_logger_error.called)
1522 def test_get_tenants_default(self):
1523 with mock.patch('functest.utils.openstack_utils.'
1524 'is_keystone_v3', return_value=True):
1525 self.assertEqual(openstack_utils.
1526 get_tenants(self.keystone_client),
1528 with mock.patch('functest.utils.openstack_utils.'
1529 'is_keystone_v3', return_value=False):
1530 self.assertEqual(openstack_utils.
1531 get_tenants(self.keystone_client),
1534 @mock.patch('functest.utils.openstack_utils.logger.error')
1535 def test_get_tenants_exception(self, mock_logger_error):
1536 self.assertEqual(openstack_utils.
1537 get_tenants(Exception),
1539 self.assertTrue(mock_logger_error.called)
1541 def test_get_users_default(self):
1542 self.assertEqual(openstack_utils.
1543 get_users(self.keystone_client),
1546 @mock.patch('functest.utils.openstack_utils.logger.error')
1547 def test_get_users_exception(self, mock_logger_error):
1548 self.assertEqual(openstack_utils.
1549 get_users(Exception),
1551 self.assertTrue(mock_logger_error.called)
1553 def test_get_tenant_id_default(self):
1554 self.assertEqual(openstack_utils.
1555 get_tenant_id(self.keystone_client,
1559 def test_get_user_id_default(self):
1560 self.assertEqual(openstack_utils.
1561 get_user_id(self.keystone_client,
1565 def test_get_role_id_default(self):
1566 self.assertEqual(openstack_utils.
1567 get_role_id(self.keystone_client,
1571 def test_get_domain_id_default(self):
1572 self.assertEqual(openstack_utils.
1573 get_domain_id(self.keystone_client,
1577 def test_create_tenant_default(self):
1578 with mock.patch('functest.utils.openstack_utils.'
1579 'is_keystone_v3', return_value=True):
1580 os.environ['OS_PROJECT_DOMAIN_NAME'] = 'Default'
1581 self.assertEqual(openstack_utils.
1582 create_tenant(self.keystone_client,
1586 with mock.patch('functest.utils.openstack_utils.'
1587 'is_keystone_v3', return_value=False):
1588 self.assertEqual(openstack_utils.
1589 create_tenant(self.keystone_client,
1594 @mock.patch('functest.utils.openstack_utils.logger.error')
1595 def test_create_tenant_exception(self, mock_logger_error):
1596 self.assertEqual(openstack_utils.
1597 create_tenant(Exception,
1601 self.assertTrue(mock_logger_error.called)
1603 def test_create_user_default(self):
1604 with mock.patch('functest.utils.openstack_utils.'
1605 'is_keystone_v3', return_value=True):
1606 self.assertEqual(openstack_utils.
1607 create_user(self.keystone_client,
1613 with mock.patch('functest.utils.openstack_utils.'
1614 'is_keystone_v3', return_value=False):
1615 self.assertEqual(openstack_utils.
1616 create_user(self.keystone_client,
1623 @mock.patch('functest.utils.openstack_utils.logger.error')
1624 def test_create_user_exception(self, mock_logger_error):
1625 self.assertEqual(openstack_utils.
1626 create_user(Exception,
1632 self.assertTrue(mock_logger_error.called)
1634 def test_add_role_user_default(self):
1635 with mock.patch('functest.utils.openstack_utils.'
1636 'is_keystone_v3', return_value=True):
1637 self.assertTrue(openstack_utils.
1638 add_role_user(self.keystone_client,
1643 with mock.patch('functest.utils.openstack_utils.'
1644 'is_keystone_v3', return_value=False):
1645 self.assertTrue(openstack_utils.
1646 add_role_user(self.keystone_client,
1651 @mock.patch('functest.utils.openstack_utils.logger.error')
1652 def test_add_role_user_exception(self, mock_logger_error):
1653 self.assertFalse(openstack_utils.
1654 add_role_user(Exception,
1658 self.assertTrue(mock_logger_error.called)
1660 def test_delete_tenant_default(self):
1661 with mock.patch('functest.utils.openstack_utils.'
1662 'is_keystone_v3', return_value=True):
1663 self.assertTrue(openstack_utils.
1664 delete_tenant(self.keystone_client,
1667 with mock.patch('functest.utils.openstack_utils.'
1668 'is_keystone_v3', return_value=False):
1669 self.assertTrue(openstack_utils.
1670 delete_tenant(self.keystone_client,
1673 @mock.patch('functest.utils.openstack_utils.logger.error')
1674 def test_delete_tenant_exception(self, mock_logger_error):
1675 self.assertFalse(openstack_utils.
1676 delete_tenant(Exception,
1678 self.assertTrue(mock_logger_error.called)
1680 def test_delete_user_default(self):
1681 self.assertTrue(openstack_utils.
1682 delete_user(self.keystone_client,
1685 @mock.patch('functest.utils.openstack_utils.logger.error')
1686 def test_delete_user_exception(self, mock_logger_error):
1687 self.assertFalse(openstack_utils.
1688 delete_user(Exception,
1690 self.assertTrue(mock_logger_error.called)
1692 def test_get_resource_default(self):
1693 with mock.patch('functest.utils.openstack_utils.'
1694 'is_keystone_v3', return_value=True):
1695 self.assertEqual(openstack_utils.
1696 get_resource(self.heat_client,
1701 @mock.patch('functest.utils.openstack_utils.logger.error')
1702 def test_get_resource_exception(self, mock_logger_error):
1703 self.assertEqual(openstack_utils.
1704 get_resource(Exception,
1708 self.assertTrue(mock_logger_error.called)
1710 def test_get_or_create_user_for_vnf_get(self):
1711 with mock.patch('functest.utils.openstack_utils.'
1713 return_value='user_id'), \
1714 mock.patch('functest.utils.openstack_utils.get_tenant_id',
1715 return_value='tenant_id'):
1716 self.assertFalse(openstack_utils.
1717 get_or_create_user_for_vnf(self.keystone_client,
1720 def test_get_or_create_user_for_vnf_create(self):
1721 with mock.patch('functest.utils.openstack_utils.'
1723 return_value=None), \
1724 mock.patch('functest.utils.openstack_utils.get_tenant_id',
1725 return_value='tenant_id'):
1726 self.assertTrue(openstack_utils.
1727 get_or_create_user_for_vnf(self.keystone_client,
1730 def test_get_or_create_user_for_vnf_error_get_user_id(self):
1731 with mock.patch('functest.utils.openstack_utils.'
1733 side_effect=Exception):
1734 self.assertRaises(Exception)
1736 def test_get_or_create_user_for_vnf_error_get_tenant_id(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 side_effect='Exception'):
1742 self.assertRaises(Exception)
1744 def test_get_or_create_tenant_for_vnf_get(self):
1745 with mock.patch('functest.utils.openstack_utils.'
1747 return_value='tenant_id'):
1749 openstack_utils.get_or_create_tenant_for_vnf(
1750 self.keystone_client, 'tenant_name', 'tenant_description'))
1752 def test_get_or_create_tenant_for_vnf_create(self):
1753 with mock.patch('functest.utils.openstack_utils.get_tenant_id',
1756 openstack_utils.get_or_create_tenant_for_vnf(
1757 self.keystone_client, 'tenant_name', 'tenant_description'))
1759 def test_get_or_create_tenant_for_vnf_error_get_tenant_id(self):
1760 with mock.patch('functest.utils.openstack_utils.'
1762 side_effect=Exception):
1763 self.assertRaises(Exception)
1765 def test_download_and_add_image_on_glance_image_creation_failure(self):
1766 with mock.patch('functest.utils.openstack_utils.'
1768 mock.patch('functest.utils.openstack_utils.'
1769 'ft_utils.download_url',
1770 return_value=True), \
1771 mock.patch('functest.utils.openstack_utils.'
1772 'create_glance_image',
1774 resp = openstack_utils.download_and_add_image_on_glance(
1779 self.assertEqual(resp, False)
1782 if __name__ == "__main__":
1783 logging.disable(logging.CRITICAL)
1784 unittest.main(verbosity=2)