3 # All rights reserved. This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
6 # http://www.apache.org/licenses/LICENSE-2.0
15 from functest.utils import openstack_utils
16 from functest.utils.constants import CONST
19 class OSUtilsTesting(unittest.TestCase):
21 def _get_env_cred_dict(self, os_prefix=''):
22 return {'OS_USERNAME': os_prefix + 'username',
23 'OS_PASSWORD': os_prefix + 'password',
24 'OS_AUTH_URL': os_prefix + 'auth_url',
25 'OS_TENANT_NAME': os_prefix + 'tenant_name',
26 'OS_USER_DOMAIN_NAME': os_prefix + 'user_domain_name',
27 'OS_PROJECT_DOMAIN_NAME': os_prefix + 'project_domain_name',
28 'OS_PROJECT_NAME': os_prefix + 'project_name',
29 'OS_ENDPOINT_TYPE': os_prefix + 'endpoint_type',
30 'OS_REGION_NAME': os_prefix + 'region_name',
31 'OS_CACERT': os_prefix + 'https_cacert',
32 'OS_INSECURE': os_prefix + 'https_insecure'}
34 def _get_os_env_vars(self):
35 return {'username': 'test_username', 'password': 'test_password',
36 'auth_url': 'test_auth_url', 'tenant_name': 'test_tenant_name',
37 'user_domain_name': 'test_user_domain_name',
38 'project_domain_name': 'test_project_domain_name',
39 'project_name': 'test_project_name',
40 'endpoint_type': 'test_endpoint_type',
41 'region_name': 'test_region_name',
42 'https_cacert': 'test_https_cacert',
43 'https_insecure': 'test_https_insecure'}
46 self.env_vars = ['OS_AUTH_URL', 'OS_USERNAME', 'OS_PASSWORD']
47 self.tenant_name = 'test_tenant_name'
48 self.env_cred_dict = self._get_env_cred_dict()
49 self.os_environs = self._get_env_cred_dict(os_prefix='test_')
50 self.os_env_vars = self._get_os_env_vars()
52 mock_obj = mock.Mock()
53 attrs = {'name': 'test_flavor',
56 mock_obj.configure_mock(**attrs)
57 self.flavor = mock_obj
59 mock_obj = mock.Mock()
60 attrs = {'name': 'test_aggregate',
62 'hosts': ['host_name']}
63 mock_obj.configure_mock(**attrs)
64 self.aggregate = mock_obj
66 mock_obj = mock.Mock()
67 attrs = {'id': 'instance_id',
68 'name': 'test_instance',
70 mock_obj.configure_mock(**attrs)
71 self.instance = mock_obj
73 mock_obj = mock.Mock()
74 attrs = {'id': 'azone_id',
75 'zoneName': 'test_azone',
77 mock_obj.configure_mock(**attrs)
78 self.availability_zone = mock_obj
80 mock_obj = mock.Mock()
81 attrs = {'floating_network_id': 'floating_id',
82 'floating_ip_address': 'test_floating_ip'}
83 mock_obj.configure_mock(**attrs)
84 self.floating_ip = mock_obj
86 mock_obj = mock.Mock()
87 attrs = {'id': 'hypervisor_id',
88 'hypervisor_hostname': 'test_hostname',
90 mock_obj.configure_mock(**attrs)
91 self.hypervisor = mock_obj
93 mock_obj = mock.Mock()
94 attrs = {'id': 'image_id',
96 mock_obj.configure_mock(**attrs)
99 mock_obj = mock.Mock()
100 self.mock_return = mock_obj
102 self.nova_client = mock.Mock()
103 attrs = {'servers.list.return_value': [self.instance],
104 'servers.get.return_value': self.instance,
105 'servers.find.return_value': self.instance,
106 'servers.create.return_value': self.instance,
107 'flavors.list.return_value': [self.flavor],
108 'flavors.find.return_value': self.flavor,
109 'servers.add_floating_ip.return_value': mock.Mock(),
110 'servers.force_delete.return_value': mock.Mock(),
111 'aggregates.list.return_value': [self.aggregate],
112 'aggregates.add_host.return_value': mock.Mock(),
113 'aggregates.remove_host.return_value': mock.Mock(),
114 'aggregates.get.return_value': self.aggregate,
115 'aggregates.delete.return_value': mock.Mock(),
116 'availability_zones.list.return_value':
117 [self.availability_zone],
118 'hypervisors.list.return_value': [self.hypervisor],
119 'create.return_value': mock.Mock(),
120 'add_security_group.return_value': mock.Mock(),
121 'images.list.return_value': [self.image],
122 'images.delete.return_value': mock.Mock(),
124 self.nova_client.configure_mock(**attrs)
126 self.glance_client = mock.Mock()
127 attrs = {'images.list.return_value': [self.image],
128 'images.create.return_value': self.image,
129 'images.upload.return_value': mock.Mock()}
130 self.glance_client.configure_mock(**attrs)
132 mock_obj = mock.Mock()
133 attrs = {'id': 'volume_id',
134 'name': 'test_volume'}
135 mock_obj.configure_mock(**attrs)
136 self.volume = mock_obj
138 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 self.resource = mock.Mock()
165 attrs = {'id': 'resource_test_id',
166 'name': 'resource_test_name'
169 self.heat_client = mock.Mock()
170 attrs = {'resources.get.return_value': self.resource}
171 self.heat_client.configure_mock(**attrs)
173 mock_obj = mock.Mock()
174 attrs = {'id': 'tenant_id',
175 'name': 'test_tenant'}
176 mock_obj.configure_mock(**attrs)
177 self.tenant = mock_obj
179 mock_obj = mock.Mock()
180 attrs = {'id': 'user_id',
182 mock_obj.configure_mock(**attrs)
185 mock_obj = mock.Mock()
186 attrs = {'id': 'role_id',
188 mock_obj.configure_mock(**attrs)
191 mock_obj = mock.Mock()
192 attrs = {'id': 'domain_id',
193 'name': 'test_domain'}
194 mock_obj.configure_mock(**attrs)
195 self.domain = mock_obj
197 self.keystone_client = mock.Mock()
198 attrs = {'projects.list.return_value': [self.tenant],
199 'tenants.list.return_value': [self.tenant],
200 'users.list.return_value': [self.user],
201 'roles.list.return_value': [self.role],
202 'domains.list.return_value': [self.domain],
203 'projects.create.return_value': self.tenant,
204 'tenants.create.return_value': self.tenant,
205 'users.create.return_value': self.user,
206 'roles.grant.return_value': mock.Mock(),
207 'roles.add_user_role.return_value': mock.Mock(),
208 'projects.delete.return_value': mock.Mock(),
209 'tenants.delete.return_value': mock.Mock(),
210 'users.delete.return_value': mock.Mock(),
212 self.keystone_client.configure_mock(**attrs)
214 self.router = {'id': 'router_id',
215 'name': 'test_router'}
217 self.subnet = {'id': 'subnet_id',
218 'name': 'test_subnet'}
220 self.networks = [{'id': 'network_id',
221 'name': 'test_network',
222 'router:external': False,
224 'subnets': [self.subnet]},
225 {'id': 'network_id1',
226 'name': 'test_network1',
227 'router:external': True,
229 'subnets': [self.subnet]}]
231 self.port = {'id': 'port_id',
234 self.sec_group = {'id': 'sec_group_id',
235 'name': 'test_sec_group'}
237 self.sec_group_rule = {'id': 'sec_group_rule_id',
238 'direction': 'direction',
239 'protocol': 'protocol',
240 'port_range_max': 'port_max',
241 'security_group_id': self.sec_group['id'],
242 'port_range_min': 'port_min'}
243 self.neutron_floatingip = {'id': 'fip_id',
244 'floating_ip_address': 'test_ip'}
245 self.neutron_client = mock.Mock()
246 attrs = {'list_networks.return_value': {'networks': self.networks},
247 'list_routers.return_value': {'routers': [self.router]},
248 'list_ports.return_value': {'ports': [self.port]},
249 'list_subnets.return_value': {'subnets': [self.subnet]},
250 'create_network.return_value': {'network': self.networks[0]},
251 'create_subnet.return_value': {'subnets': [self.subnet]},
252 'create_router.return_value': {'router': self.router},
253 'create_port.return_value': {'port': self.port},
254 'create_floatingip.return_value': {'floatingip':
255 self.neutron_floatingip},
256 'update_network.return_value': mock.Mock(),
257 'update_port.return_value': {'port': self.port},
258 'add_interface_router.return_value': mock.Mock(),
259 'add_gateway_router.return_value': mock.Mock(),
260 'delete_network.return_value': mock.Mock(),
261 'delete_subnet.return_value': mock.Mock(),
262 'delete_router.return_value': mock.Mock(),
263 'delete_port.return_value': mock.Mock(),
264 'remove_interface_router.return_value': mock.Mock(),
265 'remove_gateway_router.return_value': mock.Mock(),
266 'list_security_groups.return_value': {'security_groups':
268 'list_security_group_rules.'
269 'return_value': {'security_group_rules':
270 [self.sec_group_rule]},
271 'create_security_group_rule.return_value': mock.Mock(),
272 'create_security_group.return_value': {'security_group':
274 'update_quota.return_value': mock.Mock(),
275 'delete_security_group.return_value': mock.Mock(),
276 'list_floatingips.return_value': {'floatingips':
278 'delete_floatingip.return_value': mock.Mock(),
280 self.neutron_client.configure_mock(**attrs)
282 self.empty_client = mock.Mock()
283 attrs = {'list_networks.return_value': {'networks': []},
284 'list_routers.return_value': {'routers': []},
285 'list_ports.return_value': {'ports': []},
286 'list_subnets.return_value': {'subnets': []}}
287 self.empty_client.configure_mock(**attrs)
289 @mock.patch('functest.utils.openstack_utils.os.getenv',
291 def test_is_keystone_v3_missing_identity(self, mock_os_getenv):
292 self.assertEqual(openstack_utils.is_keystone_v3(), False)
294 @mock.patch('functest.utils.openstack_utils.os.getenv',
296 def test_is_keystone_v3_default(self, mock_os_getenv):
297 self.assertEqual(openstack_utils.is_keystone_v3(), True)
299 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
301 def test_get_rc_env_vars_missing_identity(self, mock_get_rc_env):
302 exp_resp = self.env_vars
303 exp_resp.extend(['OS_TENANT_NAME'])
304 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
306 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
308 def test_get_rc_env_vars_default(self, mock_get_rc_env):
309 exp_resp = self.env_vars
310 exp_resp.extend(['OS_PROJECT_NAME',
311 'OS_USER_DOMAIN_NAME',
312 'OS_PROJECT_DOMAIN_NAME'])
313 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
315 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
316 def test_check_credentials_missing_env(self, mock_get_rc_env):
317 exp_resp = self.env_vars
318 exp_resp.extend(['OS_TENANT_NAME'])
319 mock_get_rc_env.return_value = exp_resp
320 with mock.patch.dict('functest.utils.openstack_utils.os.environ', {},
322 self.assertEqual(openstack_utils.check_credentials(), False)
324 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
325 def test_check_credentials_default(self, mock_get_rc_env):
326 exp_resp = ['OS_TENANT_NAME']
327 mock_get_rc_env.return_value = exp_resp
328 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
329 {'OS_TENANT_NAME': self.tenant_name},
331 self.assertEqual(openstack_utils.check_credentials(), True)
333 def test_get_env_cred_dict(self):
334 self.assertDictEqual(openstack_utils.get_env_cred_dict(),
337 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
338 def test_get_credentials_default(self, mock_get_rc_env):
339 mock_get_rc_env.return_value = self.env_cred_dict.keys()
340 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
343 self.assertDictEqual(openstack_utils.get_credentials(),
346 def _get_credentials_missing_env(self, var):
347 dic = copy.deepcopy(self.os_environs)
349 with mock.patch('functest.utils.openstack_utils.get_rc_env_vars',
350 return_value=self.env_cred_dict.keys()), \
351 mock.patch.dict('functest.utils.openstack_utils.os.environ',
354 self.assertRaises(openstack_utils.MissingEnvVar,
355 lambda: openstack_utils.get_credentials())
357 def test_get_credentials_missing_username(self):
358 self._get_credentials_missing_env('OS_USERNAME')
360 def test_get_credentials_missing_password(self):
361 self._get_credentials_missing_env('OS_PASSWORD')
363 def test_get_credentials_missing_auth_url(self):
364 self._get_credentials_missing_env('OS_AUTH_URL')
366 def test_get_credentials_missing_tenantname(self):
367 self._get_credentials_missing_env('OS_TENANT_NAME')
369 def test_get_credentials_missing_domainname(self):
370 self._get_credentials_missing_env('OS_USER_DOMAIN_NAME')
372 def test_get_credentials_missing_projectname(self):
373 self._get_credentials_missing_env('OS_PROJECT_NAME')
375 def test_get_credentials_missing_endpoint_type(self):
376 self._get_credentials_missing_env('OS_ENDPOINT_TYPE')
378 def _test_source_credentials(self, msg, key='OS_TENANT_NAME',
385 with mock.patch('__builtin__.open', mock.mock_open(read_data=msg),
387 m.return_value.__iter__ = lambda self: iter(self.readline, '')
388 openstack_utils.source_credentials(f)
389 m.assert_called_once_with(f, 'r')
390 self.assertEqual(os.environ[key], value)
392 def test_source_credentials(self):
393 self._test_source_credentials('OS_TENANT_NAME=admin')
394 self._test_source_credentials('OS_TENANT_NAME= admin')
395 self._test_source_credentials('OS_TENANT_NAME = admin')
396 self._test_source_credentials('OS_TENANT_NAME = "admin"')
397 self._test_source_credentials('export OS_TENANT_NAME=admin')
398 self._test_source_credentials('export OS_TENANT_NAME =admin')
399 self._test_source_credentials('export OS_TENANT_NAME = admin')
400 self._test_source_credentials('export OS_TENANT_NAME = "admin"')
401 # This test will fail as soon as rc_file is fixed
402 self._test_source_credentials(
403 'export "\'OS_TENANT_NAME\'" = "\'admin\'"')
405 @mock.patch('functest.utils.openstack_utils.os.getenv',
407 def test_get_keystone_client_version_missing_env(self, mock_os_getenv):
408 self.assertEqual(openstack_utils.get_keystone_client_version(),
409 openstack_utils.DEFAULT_API_VERSION)
411 @mock.patch('functest.utils.openstack_utils.logger.info')
412 @mock.patch('functest.utils.openstack_utils.os.getenv',
414 def test_get_keystone_client_version_default(self, mock_os_getenv,
416 self.assertEqual(openstack_utils.get_keystone_client_version(),
418 mock_logger_info.assert_called_once_with("OS_IDENTITY_API_VERSION is "
419 "set in env as '%s'", '3')
421 @mock.patch('functest.utils.openstack_utils.get_session')
422 @mock.patch('functest.utils.openstack_utils.keystoneclient.Client')
423 @mock.patch('functest.utils.openstack_utils.get_keystone_client_version',
425 @mock.patch('functest.utils.openstack_utils.os.getenv',
426 return_value='public')
427 def test_get_keystone_client_with_interface(self, mock_os_getenv,
428 mock_keystoneclient_version,
431 mock_keystone_obj = mock.Mock()
432 mock_session_obj = mock.Mock()
433 mock_key_client.return_value = mock_keystone_obj
434 mock_get_session.return_value = mock_session_obj
435 self.assertEqual(openstack_utils.get_keystone_client(),
437 mock_key_client.assert_called_once_with('3',
438 session=mock_session_obj,
441 @mock.patch('functest.utils.openstack_utils.get_session')
442 @mock.patch('functest.utils.openstack_utils.keystoneclient.Client')
443 @mock.patch('functest.utils.openstack_utils.get_keystone_client_version',
445 @mock.patch('functest.utils.openstack_utils.os.getenv',
446 return_value='admin')
447 def test_get_keystone_client_no_interface(self, mock_os_getenv,
448 mock_keystoneclient_version,
451 mock_keystone_obj = mock.Mock()
452 mock_session_obj = mock.Mock()
453 mock_key_client.return_value = mock_keystone_obj
454 mock_get_session.return_value = mock_session_obj
455 self.assertEqual(openstack_utils.get_keystone_client(),
457 mock_key_client.assert_called_once_with('3',
458 session=mock_session_obj,
461 @mock.patch('functest.utils.openstack_utils.os.getenv',
463 def test_get_nova_client_version_missing_env(self, mock_os_getenv):
464 self.assertEqual(openstack_utils.get_nova_client_version(),
465 openstack_utils.DEFAULT_API_VERSION)
467 @mock.patch('functest.utils.openstack_utils.logger.info')
468 @mock.patch('functest.utils.openstack_utils.os.getenv',
470 def test_get_nova_client_version_default(self, mock_os_getenv,
472 self.assertEqual(openstack_utils.get_nova_client_version(),
474 mock_logger_info.assert_called_once_with("OS_COMPUTE_API_VERSION is "
475 "set in env as '%s'", '3')
477 def test_get_nova_client(self):
478 mock_nova_obj = mock.Mock()
479 mock_session_obj = mock.Mock()
480 with mock.patch('functest.utils.openstack_utils'
481 '.get_nova_client_version', return_value='3'), \
482 mock.patch('functest.utils.openstack_utils'
483 '.novaclient.Client',
484 return_value=mock_nova_obj) \
485 as mock_nova_client, \
486 mock.patch('functest.utils.openstack_utils.get_session',
487 return_value=mock_session_obj):
488 self.assertEqual(openstack_utils.get_nova_client(),
490 mock_nova_client.assert_called_once_with('3',
491 session=mock_session_obj)
493 @mock.patch('functest.utils.openstack_utils.os.getenv',
495 def test_get_cinder_client_version_missing_env(self, mock_os_getenv):
496 self.assertEqual(openstack_utils.get_cinder_client_version(),
497 openstack_utils.DEFAULT_API_VERSION)
499 @mock.patch('functest.utils.openstack_utils.logger.info')
500 @mock.patch('functest.utils.openstack_utils.os.getenv',
502 def test_get_cinder_client_version_default(self, mock_os_getenv,
504 self.assertEqual(openstack_utils.get_cinder_client_version(),
506 mock_logger_info.assert_called_once_with("OS_VOLUME_API_VERSION is "
507 "set in env as '%s'", '3')
509 def test_get_cinder_client(self):
510 mock_cinder_obj = mock.Mock()
511 mock_session_obj = mock.Mock()
512 with mock.patch('functest.utils.openstack_utils'
513 '.get_cinder_client_version', return_value='3'), \
514 mock.patch('functest.utils.openstack_utils'
515 '.cinderclient.Client',
516 return_value=mock_cinder_obj) \
517 as mock_cind_client, \
518 mock.patch('functest.utils.openstack_utils.get_session',
519 return_value=mock_session_obj):
520 self.assertEqual(openstack_utils.get_cinder_client(),
522 mock_cind_client.assert_called_once_with('3',
523 session=mock_session_obj)
525 @mock.patch('functest.utils.openstack_utils.os.getenv',
527 def test_get_neutron_client_version_missing_env(self, mock_os_getenv):
528 self.assertEqual(openstack_utils.get_neutron_client_version(),
529 openstack_utils.DEFAULT_API_VERSION)
531 @mock.patch('functest.utils.openstack_utils.logger.info')
532 @mock.patch('functest.utils.openstack_utils.os.getenv',
534 def test_get_neutron_client_version_default(self, mock_os_getenv,
536 self.assertEqual(openstack_utils.get_neutron_client_version(),
538 mock_logger_info.assert_called_once_with("OS_NETWORK_API_VERSION is "
539 "set in env as '%s'", '3')
541 def test_get_neutron_client(self):
542 mock_neutron_obj = mock.Mock()
543 mock_session_obj = mock.Mock()
544 with mock.patch('functest.utils.openstack_utils'
545 '.get_neutron_client_version', return_value='3'), \
546 mock.patch('functest.utils.openstack_utils'
547 '.neutronclient.Client',
548 return_value=mock_neutron_obj) \
549 as mock_neut_client, \
550 mock.patch('functest.utils.openstack_utils.get_session',
551 return_value=mock_session_obj):
552 self.assertEqual(openstack_utils.get_neutron_client(),
554 mock_neut_client.assert_called_once_with('3',
555 session=mock_session_obj)
557 @mock.patch('functest.utils.openstack_utils.os.getenv',
559 def test_get_glance_client_version_missing_env(self, mock_os_getenv):
560 self.assertEqual(openstack_utils.get_glance_client_version(),
561 openstack_utils.DEFAULT_API_VERSION)
563 @mock.patch('functest.utils.openstack_utils.logger.info')
564 @mock.patch('functest.utils.openstack_utils.os.getenv',
566 def test_get_glance_client_version_default(self, mock_os_getenv,
568 self.assertEqual(openstack_utils.get_glance_client_version(),
570 mock_logger_info.assert_called_once_with("OS_IMAGE_API_VERSION is "
571 "set in env as '%s'", '3')
573 def test_get_glance_client(self):
574 mock_glance_obj = mock.Mock()
575 mock_session_obj = mock.Mock()
576 with mock.patch('functest.utils.openstack_utils'
577 '.get_glance_client_version', return_value='3'), \
578 mock.patch('functest.utils.openstack_utils'
579 '.glanceclient.Client',
580 return_value=mock_glance_obj) \
581 as mock_glan_client, \
582 mock.patch('functest.utils.openstack_utils.get_session',
583 return_value=mock_session_obj):
584 self.assertEqual(openstack_utils.get_glance_client(),
586 mock_glan_client.assert_called_once_with('3',
587 session=mock_session_obj)
589 @mock.patch('functest.utils.openstack_utils.os.getenv',
591 def test_get_heat_client_version_missing_env(self, mock_os_getenv):
592 self.assertEqual(openstack_utils.get_heat_client_version(),
593 openstack_utils.DEFAULT_HEAT_API_VERSION)
595 @mock.patch('functest.utils.openstack_utils.logger.info')
596 @mock.patch('functest.utils.openstack_utils.os.getenv', return_value='1')
597 def test_get_heat_client_version_default(self, mock_os_getenv,
599 self.assertEqual(openstack_utils.get_heat_client_version(), '1')
600 mock_logger_info.assert_called_once_with(
601 "OS_ORCHESTRATION_API_VERSION is set in env as '%s'", '1')
603 def test_get_heat_client(self):
604 mock_heat_obj = mock.Mock()
605 mock_session_obj = mock.Mock()
606 with mock.patch('functest.utils.openstack_utils'
607 '.get_heat_client_version', return_value='1'), \
608 mock.patch('functest.utils.openstack_utils'
609 '.heatclient.Client',
610 return_value=mock_heat_obj) \
611 as mock_heat_client, \
612 mock.patch('functest.utils.openstack_utils.get_session',
613 return_value=mock_session_obj):
614 self.assertEqual(openstack_utils.get_heat_client(),
616 mock_heat_client.assert_called_once_with('1',
617 session=mock_session_obj)
619 def test_get_instances_default(self):
620 self.assertEqual(openstack_utils.get_instances(self.nova_client),
623 @mock.patch('functest.utils.openstack_utils.logger.error')
624 def test_get_instances_exception(self, mock_logger_error):
625 self.assertEqual(openstack_utils.
626 get_instances(Exception),
628 self.assertTrue(mock_logger_error.called)
630 def test_get_instance_status_default(self):
631 self.assertEqual(openstack_utils.get_instance_status(self.nova_client,
635 @mock.patch('functest.utils.openstack_utils.logger.error')
636 def test_get_instance_status_exception(self, mock_logger_error):
637 self.assertEqual(openstack_utils.
638 get_instance_status(Exception,
641 self.assertTrue(mock_logger_error.called)
643 def test_get_instance_by_name_default(self):
644 self.assertEqual(openstack_utils.
645 get_instance_by_name(self.nova_client,
649 @mock.patch('functest.utils.openstack_utils.logger.error')
650 def test_get_instance_by_name_exception(self, mock_logger_error):
651 self.assertEqual(openstack_utils.
652 get_instance_by_name(Exception,
655 self.assertTrue(mock_logger_error.called)
657 def test_get_flavor_id_default(self):
658 self.assertEqual(openstack_utils.
659 get_flavor_id(self.nova_client,
663 def test_get_flavor_id_by_ram_range_default(self):
664 self.assertEqual(openstack_utils.
665 get_flavor_id_by_ram_range(self.nova_client,
669 def test_get_aggregates_default(self):
670 self.assertEqual(openstack_utils.
671 get_aggregates(self.nova_client),
674 @mock.patch('functest.utils.openstack_utils.logger.error')
675 def test_get_aggregates_exception(self, mock_logger_error):
676 self.assertEqual(openstack_utils.
677 get_aggregates(Exception),
679 self.assertTrue(mock_logger_error.called)
681 def test_get_aggregate_id_default(self):
682 with mock.patch('functest.utils.openstack_utils.get_aggregates',
683 return_value=[self.aggregate]):
684 self.assertEqual(openstack_utils.
685 get_aggregate_id(self.nova_client,
689 @mock.patch('functest.utils.openstack_utils.logger.error')
690 def test_get_aggregate_id_exception(self, mock_logger_error):
691 self.assertEqual(openstack_utils.
692 get_aggregate_id(Exception,
695 self.assertTrue(mock_logger_error.called)
697 def test_get_availability_zone_names_default(self):
698 with mock.patch('functest.utils.openstack_utils'
699 '.get_availability_zones',
700 return_value=[self.availability_zone]):
701 self.assertEqual(openstack_utils.
702 get_availability_zone_names(self.nova_client),
705 @mock.patch('functest.utils.openstack_utils.logger.error')
706 def test_get_availability_zone_names_exception(self, mock_logger_error):
707 self.assertEqual(openstack_utils.
708 get_availability_zone_names(Exception),
710 self.assertTrue(mock_logger_error.called)
712 def test_get_availability_zones_default(self):
713 self.assertEqual(openstack_utils.
714 get_availability_zones(self.nova_client),
715 [self.availability_zone])
717 @mock.patch('functest.utils.openstack_utils.logger.error')
718 def test_get_availability_zones_exception(self, mock_logger_error):
719 self.assertEqual(openstack_utils.
720 get_availability_zones(Exception),
722 self.assertTrue(mock_logger_error.called)
724 def test_get_floating_ips_default(self):
725 self.assertEqual(openstack_utils.
726 get_floating_ips(self.neutron_client),
729 @mock.patch('functest.utils.openstack_utils.logger.error')
730 def test_get_floating_ips_exception(self, mock_logger_error):
731 self.assertEqual(openstack_utils.
732 get_floating_ips(Exception),
734 self.assertTrue(mock_logger_error.called)
736 def test_get_hypervisors_default(self):
737 self.assertEqual(openstack_utils.
738 get_hypervisors(self.nova_client),
741 @mock.patch('functest.utils.openstack_utils.logger.error')
742 def test_get_hypervisors_exception(self, mock_logger_error):
743 self.assertEqual(openstack_utils.
744 get_hypervisors(Exception),
746 self.assertTrue(mock_logger_error.called)
748 def test_create_aggregate_default(self):
749 self.assertTrue(openstack_utils.
750 create_aggregate(self.nova_client,
754 @mock.patch('functest.utils.openstack_utils.logger.error')
755 def test_create_aggregate_exception(self, mock_logger_error):
756 self.assertEqual(openstack_utils.
757 create_aggregate(Exception,
761 self.assertTrue(mock_logger_error.called)
763 def test_add_host_to_aggregate_default(self):
764 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
765 self.assertTrue(openstack_utils.
766 add_host_to_aggregate(self.nova_client,
770 @mock.patch('functest.utils.openstack_utils.logger.error')
771 def test_add_host_to_aggregate_exception(self, mock_logger_error):
772 self.assertEqual(openstack_utils.
773 add_host_to_aggregate(Exception,
777 self.assertTrue(mock_logger_error.called)
779 def test_create_aggregate_with_host_default(self):
780 with mock.patch('functest.utils.openstack_utils.create_aggregate'), \
781 mock.patch('functest.utils.openstack_utils.'
782 'add_host_to_aggregate'):
783 self.assertTrue(openstack_utils.
784 create_aggregate_with_host(self.nova_client,
789 @mock.patch('functest.utils.openstack_utils.logger.error')
790 def test_create_aggregate_with_host_exception(self, mock_logger_error):
791 with mock.patch('functest.utils.openstack_utils.create_aggregate',
792 side_effect=Exception):
793 self.assertEqual(openstack_utils.
794 create_aggregate_with_host(Exception,
799 self.assertTrue(mock_logger_error.called)
801 def test_create_instance_default(self):
802 with mock.patch('functest.utils.openstack_utils.'
804 return_value=self.nova_client):
805 self.assertEqual(openstack_utils.
806 create_instance('test_flavor',
811 @mock.patch('functest.utils.openstack_utils.logger.error')
812 def test_create_instance_exception(self, mock_logger_error):
813 with mock.patch('functest.utils.openstack_utils.'
815 return_value=self.nova_client):
816 self.nova_client.flavors.find.side_effect = Exception
817 self.assertEqual(openstack_utils.
818 create_instance('test_flavor',
822 self.assertTrue(mock_logger_error)
824 def test_create_floating_ip_default(self):
825 with mock.patch('functest.utils.openstack_utils.'
826 'get_external_net_id',
827 return_value='external_net_id'):
828 exp_resp = {'fip_addr': 'test_ip', 'fip_id': 'fip_id'}
829 self.assertEqual(openstack_utils.
830 create_floating_ip(self.neutron_client),
833 @mock.patch('functest.utils.openstack_utils.logger.error')
834 def test_create_floating_ip_exception(self, mock_logger_error):
835 with mock.patch('functest.utils.openstack_utils.'
836 'get_external_net_id',
837 return_value='external_net_id'):
838 self.assertEqual(openstack_utils.
839 create_floating_ip(Exception),
841 self.assertTrue(mock_logger_error)
843 def test_add_floating_ip_default(self):
844 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
845 self.assertTrue(openstack_utils.
846 add_floating_ip(self.nova_client,
848 'test_floatingip_addr'))
850 @mock.patch('functest.utils.openstack_utils.logger.error')
851 def test_add_floating_ip_exception(self, mock_logger_error):
852 self.assertFalse(openstack_utils.
853 add_floating_ip(Exception,
855 'test_floatingip_addr'))
856 self.assertTrue(mock_logger_error.called)
858 def test_delete_instance_default(self):
859 self.assertTrue(openstack_utils.
860 delete_instance(self.nova_client,
863 @mock.patch('functest.utils.openstack_utils.logger.error')
864 def test_delete_instance_exception(self, mock_logger_error):
865 self.assertFalse(openstack_utils.
866 delete_instance(Exception,
868 self.assertTrue(mock_logger_error.called)
870 def test_delete_floating_ip_default(self):
871 self.assertTrue(openstack_utils.
872 delete_floating_ip(self.neutron_client,
875 @mock.patch('functest.utils.openstack_utils.logger.error')
876 def test_delete_floating_ip_exception(self, mock_logger_error):
877 self.assertFalse(openstack_utils.
878 delete_floating_ip(Exception,
880 self.assertTrue(mock_logger_error.called)
882 def test_remove_host_from_aggregate_default(self):
883 with mock.patch('functest.utils.openstack_utils.'
885 self.assertTrue(openstack_utils.
886 remove_host_from_aggregate(self.nova_client,
890 @mock.patch('functest.utils.openstack_utils.logger.error')
891 def test_remove_host_from_aggregate_exception(self, mock_logger_error):
892 with mock.patch('functest.utils.openstack_utils.'
893 'get_aggregate_id', side_effect=Exception):
894 self.assertFalse(openstack_utils.
895 remove_host_from_aggregate(self.nova_client,
898 self.assertTrue(mock_logger_error.called)
900 def test_remove_hosts_from_aggregate_default(self):
901 with mock.patch('functest.utils.openstack_utils.'
902 'get_aggregate_id'), \
903 mock.patch('functest.utils.openstack_utils.'
904 'remove_host_from_aggregate',
907 openstack_utils.remove_hosts_from_aggregate(self.nova_client,
909 mock_method.assert_any_call(self.nova_client,
913 def test_delete_aggregate_default(self):
914 with mock.patch('functest.utils.openstack_utils.'
915 'remove_hosts_from_aggregate'):
916 self.assertTrue(openstack_utils.
917 delete_aggregate(self.nova_client,
920 @mock.patch('functest.utils.openstack_utils.logger.error')
921 def test_delete_aggregate_exception(self, mock_logger_error):
922 with mock.patch('functest.utils.openstack_utils.'
923 'remove_hosts_from_aggregate', side_effect=Exception):
924 self.assertFalse(openstack_utils.
925 delete_aggregate(self.nova_client,
927 self.assertTrue(mock_logger_error.called)
929 def test_get_network_list_default(self):
930 self.assertEqual(openstack_utils.
931 get_network_list(self.neutron_client),
934 def test_get_network_list_missing_network(self):
935 self.assertEqual(openstack_utils.
936 get_network_list(self.empty_client),
939 def test_get_router_list_default(self):
940 self.assertEqual(openstack_utils.
941 get_router_list(self.neutron_client),
944 def test_get_router_list_missing_router(self):
945 self.assertEqual(openstack_utils.
946 get_router_list(self.empty_client),
949 def test_get_port_list_default(self):
950 self.assertEqual(openstack_utils.
951 get_port_list(self.neutron_client),
954 def test_get_port_list_missing_port(self):
955 self.assertEqual(openstack_utils.
956 get_port_list(self.empty_client),
959 def test_get_network_id_default(self):
960 self.assertEqual(openstack_utils.
961 get_network_id(self.neutron_client,
965 def test_get_subnet_id_default(self):
966 self.assertEqual(openstack_utils.
967 get_subnet_id(self.neutron_client,
971 def test_get_router_id_default(self):
972 self.assertEqual(openstack_utils.
973 get_router_id(self.neutron_client,
977 def test_get_private_net_default(self):
978 self.assertEqual(openstack_utils.
979 get_private_net(self.neutron_client),
982 def test_get_private_net_missing_net(self):
983 self.assertEqual(openstack_utils.
984 get_private_net(self.empty_client),
987 def test_get_external_net_default(self):
988 self.assertEqual(openstack_utils.
989 get_external_net(self.neutron_client),
992 def test_get_external_net_missing_net(self):
993 self.assertEqual(openstack_utils.
994 get_external_net(self.empty_client),
997 def test_get_external_net_id_default(self):
998 self.assertEqual(openstack_utils.
999 get_external_net_id(self.neutron_client),
1002 def test_get_external_net_id_missing_net(self):
1003 self.assertEqual(openstack_utils.
1004 get_external_net_id(self.empty_client),
1007 def test_check_neutron_net_default(self):
1008 self.assertTrue(openstack_utils.
1009 check_neutron_net(self.neutron_client,
1012 def test_check_neutron_net_missing_net(self):
1013 self.assertFalse(openstack_utils.
1014 check_neutron_net(self.empty_client,
1017 def test_create_neutron_net_default(self):
1018 self.assertEqual(openstack_utils.
1019 create_neutron_net(self.neutron_client,
1023 @mock.patch('functest.utils.openstack_utils.logger.error')
1024 def test_create_neutron_net_exception(self, mock_logger_error):
1025 self.assertEqual(openstack_utils.
1026 create_neutron_net(Exception,
1029 self.assertTrue(mock_logger_error.called)
1031 def test_create_neutron_subnet_default(self):
1032 self.assertEqual(openstack_utils.
1033 create_neutron_subnet(self.neutron_client,
1039 @mock.patch('functest.utils.openstack_utils.logger.error')
1040 def test_create_neutron_subnet_exception(self, mock_logger_error):
1041 self.assertEqual(openstack_utils.
1042 create_neutron_subnet(Exception,
1047 self.assertTrue(mock_logger_error.called)
1049 def test_create_neutron_router_default(self):
1050 self.assertEqual(openstack_utils.
1051 create_neutron_router(self.neutron_client,
1055 @mock.patch('functest.utils.openstack_utils.logger.error')
1056 def test_create_neutron_router_exception(self, mock_logger_error):
1057 self.assertEqual(openstack_utils.
1058 create_neutron_router(Exception,
1061 self.assertTrue(mock_logger_error.called)
1063 def test_create_neutron_port_default(self):
1064 self.assertEqual(openstack_utils.
1065 create_neutron_port(self.neutron_client,
1071 @mock.patch('functest.utils.openstack_utils.logger.error')
1072 def test_create_neutron_port_exception(self, mock_logger_error):
1073 self.assertEqual(openstack_utils.
1074 create_neutron_port(Exception,
1079 self.assertTrue(mock_logger_error.called)
1081 def test_update_neutron_net_default(self):
1082 self.assertTrue(openstack_utils.
1083 update_neutron_net(self.neutron_client,
1086 @mock.patch('functest.utils.openstack_utils.logger.error')
1087 def test_update_neutron_net_exception(self, mock_logger_error):
1088 self.assertFalse(openstack_utils.
1089 update_neutron_net(Exception,
1091 self.assertTrue(mock_logger_error.called)
1093 def test_update_neutron_port_default(self):
1094 self.assertEqual(openstack_utils.
1095 update_neutron_port(self.neutron_client,
1100 @mock.patch('functest.utils.openstack_utils.logger.error')
1101 def test_update_neutron_port_exception(self, mock_logger_error):
1102 self.assertEqual(openstack_utils.
1103 update_neutron_port(Exception,
1107 self.assertTrue(mock_logger_error.called)
1109 def test_add_interface_router_default(self):
1110 self.assertTrue(openstack_utils.
1111 add_interface_router(self.neutron_client,
1115 @mock.patch('functest.utils.openstack_utils.logger.error')
1116 def test_add_interface_router_exception(self, mock_logger_error):
1117 self.assertFalse(openstack_utils.
1118 add_interface_router(Exception,
1121 self.assertTrue(mock_logger_error.called)
1123 def test_add_gateway_router_default(self):
1124 with mock.patch('functest.utils.openstack_utils.'
1125 'get_external_net_id',
1126 return_value='network_id'):
1127 self.assertTrue(openstack_utils.
1128 add_gateway_router(self.neutron_client,
1131 @mock.patch('functest.utils.openstack_utils.logger.error')
1132 def test_add_gateway_router_exception(self, mock_logger_error):
1133 with mock.patch('functest.utils.openstack_utils.'
1134 'get_external_net_id',
1135 return_value='network_id'):
1136 self.assertFalse(openstack_utils.
1137 add_gateway_router(Exception,
1139 self.assertTrue(mock_logger_error.called)
1141 def test_delete_neutron_net_default(self):
1142 self.assertTrue(openstack_utils.
1143 delete_neutron_net(self.neutron_client,
1146 @mock.patch('functest.utils.openstack_utils.logger.error')
1147 def test_delete_neutron_net_exception(self, mock_logger_error):
1148 self.assertFalse(openstack_utils.
1149 delete_neutron_net(Exception,
1151 self.assertTrue(mock_logger_error.called)
1153 def test_delete_neutron_subnet_default(self):
1154 self.assertTrue(openstack_utils.
1155 delete_neutron_subnet(self.neutron_client,
1158 @mock.patch('functest.utils.openstack_utils.logger.error')
1159 def test_delete_neutron_subnet_exception(self, mock_logger_error):
1160 self.assertFalse(openstack_utils.
1161 delete_neutron_subnet(Exception,
1163 self.assertTrue(mock_logger_error.called)
1165 def test_delete_neutron_router_default(self):
1166 self.assertTrue(openstack_utils.
1167 delete_neutron_router(self.neutron_client,
1170 @mock.patch('functest.utils.openstack_utils.logger.error')
1171 def test_delete_neutron_router_exception(self, mock_logger_error):
1172 self.assertFalse(openstack_utils.
1173 delete_neutron_router(Exception,
1175 self.assertTrue(mock_logger_error.called)
1177 def test_delete_neutron_port_default(self):
1178 self.assertTrue(openstack_utils.
1179 delete_neutron_port(self.neutron_client,
1182 @mock.patch('functest.utils.openstack_utils.logger.error')
1183 def test_delete_neutron_port_exception(self, mock_logger_error):
1184 self.assertFalse(openstack_utils.
1185 delete_neutron_port(Exception,
1187 self.assertTrue(mock_logger_error.called)
1189 def test_remove_interface_router_default(self):
1190 self.assertTrue(openstack_utils.
1191 remove_interface_router(self.neutron_client,
1195 @mock.patch('functest.utils.openstack_utils.logger.error')
1196 def test_remove_interface_router_exception(self, mock_logger_error):
1197 self.assertFalse(openstack_utils.
1198 remove_interface_router(Exception,
1201 self.assertTrue(mock_logger_error.called)
1203 def test_remove_gateway_router_default(self):
1204 self.assertTrue(openstack_utils.
1205 remove_gateway_router(self.neutron_client,
1208 @mock.patch('functest.utils.openstack_utils.logger.error')
1209 def test_remove_gateway_router_exception(self, mock_logger_error):
1210 self.assertFalse(openstack_utils.
1211 remove_gateway_router(Exception,
1213 self.assertTrue(mock_logger_error.called)
1215 def test_get_security_groups_default(self):
1216 self.assertEqual(openstack_utils.
1217 get_security_groups(self.neutron_client),
1220 @mock.patch('functest.utils.openstack_utils.logger.error')
1221 def test_get_security_groups_exception(self, mock_logger_error):
1222 self.assertEqual(openstack_utils.
1223 get_security_groups(Exception),
1225 self.assertTrue(mock_logger_error.called)
1227 def test_get_security_group_id_default(self):
1228 with mock.patch('functest.utils.openstack_utils.'
1229 'get_security_groups',
1230 return_value=[self.sec_group]):
1231 self.assertEqual(openstack_utils.
1232 get_security_group_id(self.neutron_client,
1236 def test_get_security_group_rules_default(self):
1237 self.assertEqual(openstack_utils.
1238 get_security_group_rules(self.neutron_client,
1239 self.sec_group['id']),
1240 [self.sec_group_rule])
1242 @mock.patch('functest.utils.openstack_utils.logger.error')
1243 def test_get_security_group_rules_exception(self, mock_logger_error):
1244 self.assertEqual(openstack_utils.
1245 get_security_group_rules(Exception,
1248 self.assertTrue(mock_logger_error.called)
1250 def test_check_security_group_rules_not_exists(self):
1251 self.assertEqual(openstack_utils.
1252 check_security_group_rules(self.neutron_client,
1260 def test_check_security_group_rules_exists(self):
1261 self.assertEqual(openstack_utils.
1262 check_security_group_rules(self.neutron_client,
1263 self.sec_group['id'],
1270 @mock.patch('functest.utils.openstack_utils.logger.error')
1271 def test_check_security_group_rules_exception(self, mock_logger_error):
1272 self.assertEqual(openstack_utils.
1273 check_security_group_rules(Exception,
1280 self.assertTrue(mock_logger_error.called)
1282 def test_create_security_group_default(self):
1283 self.assertEqual(openstack_utils.
1284 create_security_group(self.neutron_client,
1289 @mock.patch('functest.utils.openstack_utils.logger.error')
1290 def test_create_security_group_exception(self, mock_logger_error):
1291 self.assertEqual(openstack_utils.
1292 create_security_group(Exception,
1296 self.assertTrue(mock_logger_error.called)
1298 def test_create_secgroup_rule_default(self):
1299 self.assertTrue(openstack_utils.
1300 create_secgroup_rule(self.neutron_client,
1306 self.assertTrue(openstack_utils.
1307 create_secgroup_rule(self.neutron_client,
1312 @mock.patch('functest.utils.openstack_utils.logger.error')
1313 def test_create_secgroup_rule_invalid_port_range(self, mock_logger_error):
1314 self.assertFalse(openstack_utils.
1315 create_secgroup_rule(self.neutron_client,
1321 @mock.patch('functest.utils.openstack_utils.logger.error')
1322 def test_create_secgroup_rule_exception(self, mock_logger_error):
1323 self.assertFalse(openstack_utils.
1324 create_secgroup_rule(Exception,
1329 @mock.patch('functest.utils.openstack_utils.logger.info')
1330 def test_create_security_group_full_default(self, mock_logger_info):
1331 with mock.patch('functest.utils.openstack_utils.'
1332 'get_security_group_id',
1333 return_value='sg_id'):
1334 self.assertEqual(openstack_utils.
1335 create_security_group_full(self.neutron_client,
1339 self.assertTrue(mock_logger_info)
1341 @mock.patch('functest.utils.openstack_utils.logger.info')
1342 @mock.patch('functest.utils.openstack_utils.logger.error')
1343 def test_create_security_group_full_sec_group_fail(self,
1346 with mock.patch('functest.utils.openstack_utils.'
1347 'get_security_group_id',
1349 mock.patch('functest.utils.openstack_utils.'
1350 'create_security_group',
1351 return_value=False):
1352 self.assertEqual(openstack_utils.
1353 create_security_group_full(self.neutron_client,
1357 self.assertTrue(mock_logger_error)
1358 self.assertTrue(mock_logger_info)
1360 @mock.patch('functest.utils.openstack_utils.logger.debug')
1361 @mock.patch('functest.utils.openstack_utils.logger.info')
1362 @mock.patch('functest.utils.openstack_utils.logger.error')
1363 def test_create_security_group_full_secgroup_rule_fail(self,
1367 with mock.patch('functest.utils.openstack_utils.'
1368 'get_security_group_id',
1370 mock.patch('functest.utils.openstack_utils.'
1371 'create_security_group',
1372 return_value={'id': 'sg_id',
1373 'name': 'sg_name'}), \
1374 mock.patch('functest.utils.openstack_utils.'
1375 'create_secgroup_rule',
1376 return_value=False):
1377 self.assertEqual(openstack_utils.
1378 create_security_group_full(self.neutron_client,
1382 self.assertTrue(mock_logger_error)
1383 self.assertTrue(mock_logger_info)
1384 self.assertTrue(mock_logger_debug)
1386 def test_add_secgroup_to_instance_default(self):
1387 self.assertTrue(openstack_utils.
1388 add_secgroup_to_instance(self.nova_client,
1392 @mock.patch('functest.utils.openstack_utils.logger.error')
1393 def test_add_secgroup_to_instance_exception(self, mock_logger_error):
1394 self.assertFalse(openstack_utils.
1395 add_secgroup_to_instance(Exception,
1398 self.assertTrue(mock_logger_error.called)
1400 def test_update_sg_quota_default(self):
1401 self.assertTrue(openstack_utils.
1402 update_sg_quota(self.neutron_client,
1407 @mock.patch('functest.utils.openstack_utils.logger.error')
1408 def test_update_sg_quota_exception(self, mock_logger_error):
1409 self.assertFalse(openstack_utils.
1410 update_sg_quota(Exception,
1414 self.assertTrue(mock_logger_error.called)
1416 def test_delete_security_group_default(self):
1417 self.assertTrue(openstack_utils.
1418 delete_security_group(self.neutron_client,
1421 @mock.patch('functest.utils.openstack_utils.logger.error')
1422 def test_delete_security_group_exception(self, mock_logger_error):
1423 self.assertFalse(openstack_utils.
1424 delete_security_group(Exception,
1426 self.assertTrue(mock_logger_error.called)
1428 def test_get_images_default(self):
1429 self.assertEqual(openstack_utils.
1430 get_images(self.glance_client),
1433 @mock.patch('functest.utils.openstack_utils.logger.error')
1434 def test_get_images_exception(self, mock_logger_error):
1435 self.assertEqual(openstack_utils.
1436 get_images(Exception),
1438 self.assertTrue(mock_logger_error.called)
1440 def test_get_image_id_default(self):
1441 self.assertEqual(openstack_utils.
1442 get_image_id(self.glance_client,
1446 # create_glance_image, get_or_create_image
1447 @mock.patch('functest.utils.openstack_utils.logger.error')
1448 def test_create_glance_image_file_present(self, mock_logger_error):
1449 with mock.patch('functest.utils.openstack_utils.'
1451 return_value=False):
1452 self.assertEqual(openstack_utils.
1453 create_glance_image(self.glance_client,
1457 self.assertTrue(mock_logger_error.called)
1459 @mock.patch('functest.utils.openstack_utils.logger.info')
1460 def test_create_glance_image_already_exist(self, mock_logger_info):
1461 with mock.patch('functest.utils.openstack_utils.'
1463 return_value=True), \
1464 mock.patch('functest.utils.openstack_utils.get_image_id',
1465 return_value='image_id'):
1466 self.assertEqual(openstack_utils.
1467 create_glance_image(self.glance_client,
1471 self.assertTrue(mock_logger_info.called)
1473 @mock.patch('functest.utils.openstack_utils.logger.info')
1474 def test_create_glance_image_default(self, mock_logger_info):
1475 with mock.patch('functest.utils.openstack_utils.'
1477 return_value=True), \
1478 mock.patch('functest.utils.openstack_utils.get_image_id',
1480 mock.patch('__builtin__.open',
1481 mock.mock_open(read_data='1')) as m:
1482 self.assertEqual(openstack_utils.
1483 create_glance_image(self.glance_client,
1487 m.assert_called_once_with('file_path')
1488 self.assertTrue(mock_logger_info.called)
1490 @mock.patch('functest.utils.openstack_utils.logger.error')
1491 def test_create_glance_image_exception(self, mock_logger_error):
1492 with mock.patch('functest.utils.openstack_utils.'
1494 return_value=True), \
1495 mock.patch('functest.utils.openstack_utils.get_image_id',
1496 side_effect=Exception):
1497 self.assertEqual(openstack_utils.
1498 create_glance_image(self.glance_client,
1502 self.assertTrue(mock_logger_error.called)
1504 def test_delete_glance_image_default(self):
1505 self.assertTrue(openstack_utils.
1506 delete_glance_image(self.nova_client,
1509 @mock.patch('functest.utils.openstack_utils.logger.error')
1510 def test_delete_glance_image_exception(self, mock_logger_error):
1511 self.assertFalse(openstack_utils.
1512 delete_glance_image(Exception,
1514 self.assertTrue(mock_logger_error.called)
1516 def test_get_volumes_default(self):
1517 self.assertEqual(openstack_utils.
1518 get_volumes(self.cinder_client),
1521 @mock.patch('functest.utils.openstack_utils.logger.error')
1522 def test_get_volumes_exception(self, mock_logger_error):
1523 self.assertEqual(openstack_utils.
1524 get_volumes(Exception),
1526 self.assertTrue(mock_logger_error.called)
1528 def test_list_volume_types_default_private(self):
1529 self.assertEqual(openstack_utils.
1530 list_volume_types(self.cinder_client,
1533 [self.volume_types[1]])
1535 def test_list_volume_types_default_public(self):
1536 self.assertEqual(openstack_utils.
1537 list_volume_types(self.cinder_client,
1540 [self.volume_types[0]])
1542 @mock.patch('functest.utils.openstack_utils.logger.error')
1543 def test_list_volume_types_exception(self, mock_logger_error):
1544 self.assertEqual(openstack_utils.
1545 list_volume_types(Exception),
1547 self.assertTrue(mock_logger_error.called)
1549 def test_create_volume_type_default(self):
1550 self.assertEqual(openstack_utils.
1551 create_volume_type(self.cinder_client,
1552 'test_volume_type'),
1553 self.volume_types[0])
1555 @mock.patch('functest.utils.openstack_utils.logger.error')
1556 def test_create_volume_type_exception(self, mock_logger_error):
1557 self.assertEqual(openstack_utils.
1558 create_volume_type(Exception,
1559 'test_volume_type'),
1561 self.assertTrue(mock_logger_error.called)
1563 def test_update_cinder_quota_default(self):
1564 self.assertTrue(openstack_utils.
1565 update_cinder_quota(self.cinder_client,
1571 @mock.patch('functest.utils.openstack_utils.logger.error')
1572 def test_update_cinder_quota_exception(self, mock_logger_error):
1573 self.assertFalse(openstack_utils.
1574 update_cinder_quota(Exception,
1579 self.assertTrue(mock_logger_error.called)
1581 def test_delete_volume_default(self):
1582 self.assertTrue(openstack_utils.
1583 delete_volume(self.cinder_client,
1587 self.assertTrue(openstack_utils.
1588 delete_volume(self.cinder_client,
1592 @mock.patch('functest.utils.openstack_utils.logger.error')
1593 def test_delete_volume_exception(self, mock_logger_error):
1594 self.assertFalse(openstack_utils.
1595 delete_volume(Exception,
1598 self.assertTrue(mock_logger_error.called)
1600 def test_delete_volume_type_default(self):
1601 self.assertTrue(openstack_utils.
1602 delete_volume_type(self.cinder_client,
1603 self.volume_types[0]))
1605 @mock.patch('functest.utils.openstack_utils.logger.error')
1606 def test_delete_volume_type_exception(self, mock_logger_error):
1607 self.assertFalse(openstack_utils.
1608 delete_volume_type(Exception,
1609 self.volume_types[0]))
1610 self.assertTrue(mock_logger_error.called)
1612 def test_get_tenants_default(self):
1613 with mock.patch('functest.utils.openstack_utils.'
1614 'is_keystone_v3', return_value=True):
1615 self.assertEqual(openstack_utils.
1616 get_tenants(self.keystone_client),
1618 with mock.patch('functest.utils.openstack_utils.'
1619 'is_keystone_v3', return_value=False):
1620 self.assertEqual(openstack_utils.
1621 get_tenants(self.keystone_client),
1624 @mock.patch('functest.utils.openstack_utils.logger.error')
1625 def test_get_tenants_exception(self, mock_logger_error):
1626 self.assertEqual(openstack_utils.
1627 get_tenants(Exception),
1629 self.assertTrue(mock_logger_error.called)
1631 def test_get_users_default(self):
1632 self.assertEqual(openstack_utils.
1633 get_users(self.keystone_client),
1636 @mock.patch('functest.utils.openstack_utils.logger.error')
1637 def test_get_users_exception(self, mock_logger_error):
1638 self.assertEqual(openstack_utils.
1639 get_users(Exception),
1641 self.assertTrue(mock_logger_error.called)
1643 def test_get_tenant_id_default(self):
1644 self.assertEqual(openstack_utils.
1645 get_tenant_id(self.keystone_client,
1649 def test_get_user_id_default(self):
1650 self.assertEqual(openstack_utils.
1651 get_user_id(self.keystone_client,
1655 def test_get_role_id_default(self):
1656 self.assertEqual(openstack_utils.
1657 get_role_id(self.keystone_client,
1661 def test_get_domain_id_default(self):
1662 self.assertEqual(openstack_utils.
1663 get_domain_id(self.keystone_client,
1667 def test_create_tenant_default(self):
1668 with mock.patch('functest.utils.openstack_utils.'
1669 'is_keystone_v3', return_value=True):
1670 CONST.__setattr__('OS_PROJECT_DOMAIN_NAME', 'Default')
1671 self.assertEqual(openstack_utils.
1672 create_tenant(self.keystone_client,
1676 with mock.patch('functest.utils.openstack_utils.'
1677 'is_keystone_v3', return_value=False):
1678 self.assertEqual(openstack_utils.
1679 create_tenant(self.keystone_client,
1684 @mock.patch('functest.utils.openstack_utils.logger.error')
1685 def test_create_tenant_exception(self, mock_logger_error):
1686 self.assertEqual(openstack_utils.
1687 create_tenant(Exception,
1691 self.assertTrue(mock_logger_error.called)
1693 def test_create_user_default(self):
1694 with mock.patch('functest.utils.openstack_utils.'
1695 'is_keystone_v3', return_value=True):
1696 self.assertEqual(openstack_utils.
1697 create_user(self.keystone_client,
1703 with mock.patch('functest.utils.openstack_utils.'
1704 'is_keystone_v3', return_value=False):
1705 self.assertEqual(openstack_utils.
1706 create_user(self.keystone_client,
1713 @mock.patch('functest.utils.openstack_utils.logger.error')
1714 def test_create_user_exception(self, mock_logger_error):
1715 self.assertEqual(openstack_utils.
1716 create_user(Exception,
1722 self.assertTrue(mock_logger_error.called)
1724 def test_add_role_user_default(self):
1725 with mock.patch('functest.utils.openstack_utils.'
1726 'is_keystone_v3', return_value=True):
1727 self.assertTrue(openstack_utils.
1728 add_role_user(self.keystone_client,
1733 with mock.patch('functest.utils.openstack_utils.'
1734 'is_keystone_v3', return_value=False):
1735 self.assertTrue(openstack_utils.
1736 add_role_user(self.keystone_client,
1741 @mock.patch('functest.utils.openstack_utils.logger.error')
1742 def test_add_role_user_exception(self, mock_logger_error):
1743 self.assertFalse(openstack_utils.
1744 add_role_user(Exception,
1748 self.assertTrue(mock_logger_error.called)
1750 def test_delete_tenant_default(self):
1751 with mock.patch('functest.utils.openstack_utils.'
1752 'is_keystone_v3', return_value=True):
1753 self.assertTrue(openstack_utils.
1754 delete_tenant(self.keystone_client,
1757 with mock.patch('functest.utils.openstack_utils.'
1758 'is_keystone_v3', return_value=False):
1759 self.assertTrue(openstack_utils.
1760 delete_tenant(self.keystone_client,
1763 @mock.patch('functest.utils.openstack_utils.logger.error')
1764 def test_delete_tenant_exception(self, mock_logger_error):
1765 self.assertFalse(openstack_utils.
1766 delete_tenant(Exception,
1768 self.assertTrue(mock_logger_error.called)
1770 def test_delete_user_default(self):
1771 self.assertTrue(openstack_utils.
1772 delete_user(self.keystone_client,
1775 @mock.patch('functest.utils.openstack_utils.logger.error')
1776 def test_delete_user_exception(self, mock_logger_error):
1777 self.assertFalse(openstack_utils.
1778 delete_user(Exception,
1780 self.assertTrue(mock_logger_error.called)
1782 def test_get_resource_default(self):
1783 with mock.patch('functest.utils.openstack_utils.'
1784 'is_keystone_v3', return_value=True):
1785 self.assertEqual(openstack_utils.
1786 get_resource(self.heat_client,
1791 @mock.patch('functest.utils.openstack_utils.logger.error')
1792 def test_get_resource_exception(self, mock_logger_error):
1793 self.assertEqual(openstack_utils.
1794 get_resource(Exception,
1798 self.assertTrue(mock_logger_error.called)
1800 def test_get_or_create_user_for_vnf_get(self):
1801 with mock.patch('functest.utils.openstack_utils.'
1803 return_value='user_id'), \
1804 mock.patch('functest.utils.openstack_utils.get_tenant_id',
1805 return_value='tenant_id'):
1806 self.assertFalse(openstack_utils.
1807 get_or_create_user_for_vnf(self.keystone_client,
1810 def test_get_or_create_user_for_vnf_create(self):
1811 with mock.patch('functest.utils.openstack_utils.'
1813 return_value=None), \
1814 mock.patch('functest.utils.openstack_utils.get_tenant_id',
1815 return_value='tenant_id'):
1816 self.assertTrue(openstack_utils.
1817 get_or_create_user_for_vnf(self.keystone_client,
1820 def test_get_or_create_user_for_vnf_error_get_user_id(self):
1821 with mock.patch('functest.utils.openstack_utils.'
1823 side_effect=Exception):
1824 self.assertRaises(Exception)
1826 def test_get_or_create_user_for_vnf_error_get_tenant_id(self):
1827 with mock.patch('functest.utils.openstack_utils.'
1829 return_value='user_id'), \
1830 mock.patch('functest.utils.openstack_utils.get_tenant_id',
1831 side_effect='Exception'):
1832 self.assertRaises(Exception)
1834 def test_get_or_create_tenant_for_vnf_get(self):
1835 with mock.patch('functest.utils.openstack_utils.'
1837 return_value='tenant_id'):
1839 openstack_utils.get_or_create_tenant_for_vnf(
1840 self.keystone_client, 'tenant_name', 'tenant_description'))
1842 def test_get_or_create_tenant_for_vnf_create(self):
1843 with mock.patch('functest.utils.openstack_utils.get_tenant_id',
1846 openstack_utils.get_or_create_tenant_for_vnf(
1847 self.keystone_client, 'tenant_name', 'tenant_description'))
1849 def test_get_or_create_tenant_for_vnf_error_get_tenant_id(self):
1850 with mock.patch('functest.utils.openstack_utils.'
1852 side_effect=Exception):
1853 self.assertRaises(Exception)
1855 def test_download_and_add_image_on_glance_image_creation_failure(self):
1856 with mock.patch('functest.utils.openstack_utils.'
1858 mock.patch('functest.utils.openstack_utils.'
1859 'ft_utils.download_url',
1860 return_value=True), \
1861 mock.patch('functest.utils.openstack_utils.'
1862 'create_glance_image',
1864 resp = openstack_utils.download_and_add_image_on_glance(
1869 self.assertEqual(resp, False)
1872 if __name__ == "__main__":
1873 logging.disable(logging.CRITICAL)
1874 unittest.main(verbosity=2)