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
18 class OSUtilsTesting(unittest.TestCase):
20 logging.disable(logging.CRITICAL)
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'}
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'}
45 self.env_vars = ['OS_AUTH_URL', 'OS_USERNAME', 'OS_PASSWORD']
46 self.tenant_name = 'test_tenant_name'
47 self.env_cred_dict = self._get_env_cred_dict()
48 self.os_environs = self._get_env_cred_dict(os_prefix='test_')
49 self.os_env_vars = self._get_os_env_vars()
51 mock_obj = mock.Mock()
52 attrs = {'name': 'test_flavor',
55 mock_obj.configure_mock(**attrs)
56 self.flavor = mock_obj
58 mock_obj = mock.Mock()
59 attrs = {'name': 'test_aggregate',
61 'hosts': ['host_name']}
62 mock_obj.configure_mock(**attrs)
63 self.aggregate = mock_obj
65 mock_obj = mock.Mock()
66 attrs = {'id': 'instance_id',
67 'name': 'test_instance',
69 mock_obj.configure_mock(**attrs)
70 self.instance = mock_obj
72 mock_obj = mock.Mock()
73 attrs = {'id': 'azone_id',
74 'zoneName': 'test_azone',
76 mock_obj.configure_mock(**attrs)
77 self.availability_zone = mock_obj
79 mock_obj = mock.Mock()
80 attrs = {'id': 'floating_id',
81 'zoneName': '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 'floating_ips.list.return_value': [self.floating_ip],
119 'floating_ips.delete.return_value': mock.Mock(),
120 'hypervisors.list.return_value': [self.hypervisor],
121 'create.return_value': mock.Mock(),
122 'add_security_group.return_value': mock.Mock(),
123 'images.list.return_value': [self.image],
124 'images.delete.return_value': mock.Mock(),
126 self.nova_client.configure_mock(**attrs)
128 self.glance_client = mock.Mock()
129 attrs = {'images.list.return_value': [self.image],
130 'images.create.return_value': self.image,
131 'images.upload.return_value': mock.Mock()}
132 self.glance_client.configure_mock(**attrs)
134 mock_obj = mock.Mock()
135 attrs = {'id': 'volume_id',
136 'name': 'test_volume'}
137 mock_obj.configure_mock(**attrs)
138 self.volume = mock_obj
140 mock_obj = mock.Mock()
141 attrs = {'id': 'volume_type_id',
142 'name': 'test_volume_type',
144 mock_obj.configure_mock(**attrs)
145 self.volume_types = [mock_obj]
147 mock_obj = mock.Mock()
148 attrs = {'id': 'volume_type_id',
149 'name': 'test_volume_type',
151 mock_obj.configure_mock(**attrs)
152 self.volume_types.append(mock_obj)
154 self.cinder_client = mock.Mock()
155 attrs = {'volumes.list.return_value': [self.volume],
156 'volume_types.list.return_value': self.volume_types,
157 'volume_types.create.return_value': self.volume_types[0],
158 'volume_types.delete.return_value': mock.Mock(),
159 'quotas.update.return_value': mock.Mock(),
160 'volumes.detach.return_value': mock.Mock(),
161 'volumes.force_delete.return_value': mock.Mock(),
162 'volumes.delete.return_value': mock.Mock()
164 self.cinder_client.configure_mock(**attrs)
166 self.resource = mock.Mock()
167 attrs = {'id': 'resource_test_id',
168 'name': 'resource_test_name'
171 self.heat_client = mock.Mock()
172 attrs = {'resources.get.return_value': self.resource}
173 self.heat_client.configure_mock(**attrs)
175 mock_obj = mock.Mock()
176 attrs = {'id': 'tenant_id',
177 'name': 'test_tenant'}
178 mock_obj.configure_mock(**attrs)
179 self.tenant = mock_obj
181 mock_obj = mock.Mock()
182 attrs = {'id': 'user_id',
184 mock_obj.configure_mock(**attrs)
187 mock_obj = mock.Mock()
188 attrs = {'id': 'role_id',
190 mock_obj.configure_mock(**attrs)
193 self.keystone_client = mock.Mock()
194 attrs = {'projects.list.return_value': [self.tenant],
195 'tenants.list.return_value': [self.tenant],
196 'users.list.return_value': [self.user],
197 'roles.list.return_value': [self.role],
198 'projects.create.return_value': self.tenant,
199 'tenants.create.return_value': self.tenant,
200 'users.create.return_value': self.user,
201 'roles.grant.return_value': mock.Mock(),
202 'roles.add_user_role.return_value': mock.Mock(),
203 'projects.delete.return_value': mock.Mock(),
204 'tenants.delete.return_value': mock.Mock(),
205 'users.delete.return_value': mock.Mock(),
207 self.keystone_client.configure_mock(**attrs)
209 self.router = {'id': 'router_id',
210 'name': 'test_router'}
212 self.subnet = {'id': 'subnet_id',
213 'name': 'test_subnet'}
215 self.networks = [{'id': 'network_id',
216 'name': 'test_network',
217 'router:external': False,
219 'subnets': [self.subnet]},
220 {'id': 'network_id1',
221 'name': 'test_network1',
222 'router:external': True,
224 'subnets': [self.subnet]}]
226 self.port = {'id': 'port_id',
229 self.sec_group = {'id': 'sec_group_id',
230 'name': 'test_sec_group'}
232 self.sec_group_rule = {'id': 'sec_group_rule_id',
233 'direction': 'direction',
234 'protocol': 'protocol',
235 'port_range_max': 'port_max',
236 'security_group_id': self.sec_group['id'],
237 'port_range_min': 'port_min'}
238 self.neutron_floatingip = {'id': 'fip_id',
239 'floating_ip_address': 'test_ip'}
240 self.neutron_client = mock.Mock()
241 attrs = {'list_networks.return_value': {'networks': self.networks},
242 'list_routers.return_value': {'routers': [self.router]},
243 'list_ports.return_value': {'ports': [self.port]},
244 'list_subnets.return_value': {'subnets': [self.subnet]},
245 'create_network.return_value': {'network': self.networks[0]},
246 'create_subnet.return_value': {'subnets': [self.subnet]},
247 'create_router.return_value': {'router': self.router},
248 'create_port.return_value': {'port': self.port},
249 'create_floatingip.return_value': {'floatingip':
250 self.neutron_floatingip},
251 'update_network.return_value': mock.Mock(),
252 'update_port.return_value': {'port': self.port},
253 'add_interface_router.return_value': mock.Mock(),
254 'add_gateway_router.return_value': mock.Mock(),
255 'delete_network.return_value': mock.Mock(),
256 'delete_subnet.return_value': mock.Mock(),
257 'delete_router.return_value': mock.Mock(),
258 'delete_port.return_value': mock.Mock(),
259 'remove_interface_router.return_value': mock.Mock(),
260 'remove_gateway_router.return_value': mock.Mock(),
261 'create_bgpvpn.return_value': self.mock_return,
262 'create_network_association.return_value': self.mock_return,
263 'create_router_association.return_value': self.mock_return,
264 'update_bgpvpn.return_value': self.mock_return,
265 'delete_bgpvpn.return_value': self.mock_return,
266 'show_bgpvpn.return_value': self.mock_return,
267 'list_security_groups.return_value': {'security_groups':
269 'list_security_group_rules.'
270 'return_value': {'security_group_rules':
271 [self.sec_group_rule]},
272 'create_security_group_rule.return_value': mock.Mock(),
273 'create_security_group.return_value': {'security_group':
275 'update_quota.return_value': mock.Mock(),
276 'delete_security_group.return_value': mock.Mock()
278 self.neutron_client.configure_mock(**attrs)
280 self.empty_client = mock.Mock()
281 attrs = {'list_networks.return_value': {'networks': []},
282 'list_routers.return_value': {'routers': []},
283 'list_ports.return_value': {'ports': []},
284 'list_subnets.return_value': {'subnets': []}}
285 self.empty_client.configure_mock(**attrs)
287 @mock.patch('functest.utils.openstack_utils.os.getenv',
289 def test_is_keystone_v3_missing_identity(self, mock_os_getenv):
290 self.assertEqual(openstack_utils.is_keystone_v3(), False)
292 @mock.patch('functest.utils.openstack_utils.os.getenv',
294 def test_is_keystone_v3_default(self, mock_os_getenv):
295 self.assertEqual(openstack_utils.is_keystone_v3(), True)
297 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
299 def test_get_rc_env_vars_missing_identity(self, mock_get_rc_env):
300 exp_resp = self.env_vars
301 exp_resp.extend(['OS_TENANT_NAME'])
302 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
304 @mock.patch('functest.utils.openstack_utils.is_keystone_v3',
306 def test_get_rc_env_vars_default(self, mock_get_rc_env):
307 exp_resp = self.env_vars
308 exp_resp.extend(['OS_PROJECT_NAME',
309 'OS_USER_DOMAIN_NAME',
310 'OS_PROJECT_DOMAIN_NAME'])
311 self.assertEqual(openstack_utils.get_rc_env_vars(), exp_resp)
313 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
314 def test_check_credentials_missing_env(self, mock_get_rc_env):
315 exp_resp = self.env_vars
316 exp_resp.extend(['OS_TENANT_NAME'])
317 mock_get_rc_env.return_value = exp_resp
318 with mock.patch.dict('functest.utils.openstack_utils.os.environ', {},
320 self.assertEqual(openstack_utils.check_credentials(), False)
322 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
323 def test_check_credentials_default(self, mock_get_rc_env):
324 exp_resp = ['OS_TENANT_NAME']
325 mock_get_rc_env.return_value = exp_resp
326 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
327 {'OS_TENANT_NAME': self.tenant_name},
329 self.assertEqual(openstack_utils.check_credentials(), True)
331 def test_get_env_cred_dict(self):
332 self.assertDictEqual(openstack_utils.get_env_cred_dict(),
335 @mock.patch('functest.utils.openstack_utils.get_rc_env_vars')
336 def test_get_credentials_default(self, mock_get_rc_env):
337 mock_get_rc_env.return_value = self.env_cred_dict.keys()
338 with mock.patch.dict('functest.utils.openstack_utils.os.environ',
341 self.assertDictEqual(openstack_utils.get_credentials(),
344 def _get_credentials_missing_env(self, var):
345 dic = copy.deepcopy(self.os_environs)
347 with mock.patch('functest.utils.openstack_utils.get_rc_env_vars',
348 return_value=self.env_cred_dict.keys()), \
349 mock.patch.dict('functest.utils.openstack_utils.os.environ',
352 self.assertRaises(openstack_utils.MissingEnvVar,
353 lambda: openstack_utils.get_credentials())
355 def test_get_credentials_missing_username(self):
356 self._get_credentials_missing_env('OS_USERNAME')
358 def test_get_credentials_missing_password(self):
359 self._get_credentials_missing_env('OS_PASSWORD')
361 def test_get_credentials_missing_auth_url(self):
362 self._get_credentials_missing_env('OS_AUTH_URL')
364 def test_get_credentials_missing_tenantname(self):
365 self._get_credentials_missing_env('OS_TENANT_NAME')
367 def test_get_credentials_missing_domainname(self):
368 self._get_credentials_missing_env('OS_USER_DOMAIN_NAME')
370 def test_get_credentials_missing_projectname(self):
371 self._get_credentials_missing_env('OS_PROJECT_NAME')
373 def test_get_credentials_missing_endpoint_type(self):
374 self._get_credentials_missing_env('OS_ENDPOINT_TYPE')
376 def _test_source_credentials(self, msg, key='OS_TENANT_NAME',
383 with mock.patch('__builtin__.open', mock.mock_open(read_data=msg),
385 m.return_value.__iter__ = lambda self: iter(self.readline, '')
386 openstack_utils.source_credentials(f)
387 m.assert_called_once_with(f, 'r')
388 self.assertEqual(os.environ[key], value)
390 def test_source_credentials(self):
391 self._test_source_credentials('OS_TENANT_NAME=admin')
392 self._test_source_credentials('OS_TENANT_NAME= admin')
393 self._test_source_credentials('OS_TENANT_NAME = admin')
394 self._test_source_credentials('OS_TENANT_NAME = "admin"')
395 self._test_source_credentials('export OS_TENANT_NAME=admin')
396 self._test_source_credentials('export 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('OS_TENANT_NAME', value='')
400 self._test_source_credentials('export OS_TENANT_NAME', value='')
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 def test_get_keystone_client(self):
422 mock_keystone_obj = mock.Mock()
423 mock_session_obj = mock.Mock()
424 with mock.patch('functest.utils.openstack_utils'
425 '.get_keystone_client_version', return_value='3'), \
426 mock.patch('functest.utils.openstack_utils'
427 '.keystoneclient.Client',
428 return_value=mock_keystone_obj) \
429 as mock_key_client, \
430 mock.patch('functest.utils.openstack_utils.get_session',
431 return_value=mock_session_obj):
432 self.assertEqual(openstack_utils.get_keystone_client(),
434 mock_key_client.assert_called_once_with('3',
435 session=mock_session_obj)
437 @mock.patch('functest.utils.openstack_utils.os.getenv',
439 def test_get_nova_client_version_missing_env(self, mock_os_getenv):
440 self.assertEqual(openstack_utils.get_nova_client_version(),
441 openstack_utils.DEFAULT_API_VERSION)
443 @mock.patch('functest.utils.openstack_utils.logger.info')
444 @mock.patch('functest.utils.openstack_utils.os.getenv',
446 def test_get_nova_client_version_default(self, mock_os_getenv,
448 self.assertEqual(openstack_utils.get_nova_client_version(),
450 mock_logger_info.assert_called_once_with("OS_COMPUTE_API_VERSION is "
451 "set in env as '%s'", '3')
453 def test_get_nova_client(self):
454 mock_nova_obj = mock.Mock()
455 mock_session_obj = mock.Mock()
456 with mock.patch('functest.utils.openstack_utils'
457 '.get_nova_client_version', return_value='3'), \
458 mock.patch('functest.utils.openstack_utils'
459 '.novaclient.Client',
460 return_value=mock_nova_obj) \
461 as mock_nova_client, \
462 mock.patch('functest.utils.openstack_utils.get_session',
463 return_value=mock_session_obj):
464 self.assertEqual(openstack_utils.get_nova_client(),
466 mock_nova_client.assert_called_once_with('3',
467 session=mock_session_obj)
469 @mock.patch('functest.utils.openstack_utils.os.getenv',
471 def test_get_cinder_client_version_missing_env(self, mock_os_getenv):
472 self.assertEqual(openstack_utils.get_cinder_client_version(),
473 openstack_utils.DEFAULT_API_VERSION)
475 @mock.patch('functest.utils.openstack_utils.logger.info')
476 @mock.patch('functest.utils.openstack_utils.os.getenv',
478 def test_get_cinder_client_version_default(self, mock_os_getenv,
480 self.assertEqual(openstack_utils.get_cinder_client_version(),
482 mock_logger_info.assert_called_once_with("OS_VOLUME_API_VERSION is "
483 "set in env as '%s'", '3')
485 def test_get_cinder_client(self):
486 mock_cinder_obj = mock.Mock()
487 mock_session_obj = mock.Mock()
488 with mock.patch('functest.utils.openstack_utils'
489 '.get_cinder_client_version', return_value='3'), \
490 mock.patch('functest.utils.openstack_utils'
491 '.cinderclient.Client',
492 return_value=mock_cinder_obj) \
493 as mock_cind_client, \
494 mock.patch('functest.utils.openstack_utils.get_session',
495 return_value=mock_session_obj):
496 self.assertEqual(openstack_utils.get_cinder_client(),
498 mock_cind_client.assert_called_once_with('3',
499 session=mock_session_obj)
501 @mock.patch('functest.utils.openstack_utils.os.getenv',
503 def test_get_neutron_client_version_missing_env(self, mock_os_getenv):
504 self.assertEqual(openstack_utils.get_neutron_client_version(),
505 openstack_utils.DEFAULT_API_VERSION)
507 @mock.patch('functest.utils.openstack_utils.logger.info')
508 @mock.patch('functest.utils.openstack_utils.os.getenv',
510 def test_get_neutron_client_version_default(self, mock_os_getenv,
512 self.assertEqual(openstack_utils.get_neutron_client_version(),
514 mock_logger_info.assert_called_once_with("OS_NETWORK_API_VERSION is "
515 "set in env as '%s'", '3')
517 def test_get_neutron_client(self):
518 mock_neutron_obj = mock.Mock()
519 mock_session_obj = mock.Mock()
520 with mock.patch('functest.utils.openstack_utils'
521 '.get_neutron_client_version', return_value='3'), \
522 mock.patch('functest.utils.openstack_utils'
523 '.neutronclient.Client',
524 return_value=mock_neutron_obj) \
525 as mock_neut_client, \
526 mock.patch('functest.utils.openstack_utils.get_session',
527 return_value=mock_session_obj):
528 self.assertEqual(openstack_utils.get_neutron_client(),
530 mock_neut_client.assert_called_once_with('3',
531 session=mock_session_obj)
533 @mock.patch('functest.utils.openstack_utils.os.getenv',
535 def test_get_glance_client_version_missing_env(self, mock_os_getenv):
536 self.assertEqual(openstack_utils.get_glance_client_version(),
537 openstack_utils.DEFAULT_API_VERSION)
539 @mock.patch('functest.utils.openstack_utils.logger.info')
540 @mock.patch('functest.utils.openstack_utils.os.getenv',
542 def test_get_glance_client_version_default(self, mock_os_getenv,
544 self.assertEqual(openstack_utils.get_glance_client_version(),
546 mock_logger_info.assert_called_once_with("OS_IMAGE_API_VERSION is "
547 "set in env as '%s'", '3')
549 def test_get_glance_client(self):
550 mock_glance_obj = mock.Mock()
551 mock_session_obj = mock.Mock()
552 with mock.patch('functest.utils.openstack_utils'
553 '.get_glance_client_version', return_value='3'), \
554 mock.patch('functest.utils.openstack_utils'
555 '.glanceclient.Client',
556 return_value=mock_glance_obj) \
557 as mock_glan_client, \
558 mock.patch('functest.utils.openstack_utils.get_session',
559 return_value=mock_session_obj):
560 self.assertEqual(openstack_utils.get_glance_client(),
562 mock_glan_client.assert_called_once_with('3',
563 session=mock_session_obj)
565 @mock.patch('functest.utils.openstack_utils.os.getenv',
567 def test_get_heat_client_version_missing_env(self, mock_os_getenv):
568 self.assertEqual(openstack_utils.get_heat_client_version(),
569 openstack_utils.DEFAULT_HEAT_API_VERSION)
571 @mock.patch('functest.utils.openstack_utils.logger.info')
572 @mock.patch('functest.utils.openstack_utils.os.getenv', return_value='1')
573 def test_get_heat_client_version_default(self, mock_os_getenv,
575 self.assertEqual(openstack_utils.get_heat_client_version(), '1')
576 mock_logger_info.assert_called_once_with(
577 "OS_ORCHESTRATION_API_VERSION is set in env as '%s'", '1')
579 def test_get_heat_client(self):
580 mock_heat_obj = mock.Mock()
581 mock_session_obj = mock.Mock()
582 with mock.patch('functest.utils.openstack_utils'
583 '.get_heat_client_version', return_value='1'), \
584 mock.patch('functest.utils.openstack_utils'
585 '.heatclient.Client',
586 return_value=mock_heat_obj) \
587 as mock_heat_client, \
588 mock.patch('functest.utils.openstack_utils.get_session',
589 return_value=mock_session_obj):
590 self.assertEqual(openstack_utils.get_heat_client(),
592 mock_heat_client.assert_called_once_with('1',
593 session=mock_session_obj)
595 def test_get_instances_default(self):
596 self.assertEqual(openstack_utils.get_instances(self.nova_client),
599 @mock.patch('functest.utils.openstack_utils.logger.error')
600 def test_get_instances_exception(self, mock_logger_error):
601 self.assertEqual(openstack_utils.
602 get_instances(Exception),
604 self.assertTrue(mock_logger_error.called)
606 def test_get_instance_status_default(self):
607 self.assertEqual(openstack_utils.get_instance_status(self.nova_client,
611 @mock.patch('functest.utils.openstack_utils.logger.error')
612 def test_get_instance_status_exception(self, mock_logger_error):
613 self.assertEqual(openstack_utils.
614 get_instance_status(Exception,
617 self.assertTrue(mock_logger_error.called)
619 def test_get_instance_by_name_default(self):
620 self.assertEqual(openstack_utils.
621 get_instance_by_name(self.nova_client,
625 @mock.patch('functest.utils.openstack_utils.logger.error')
626 def test_get_instance_by_name_exception(self, mock_logger_error):
627 self.assertEqual(openstack_utils.
628 get_instance_by_name(Exception,
631 self.assertTrue(mock_logger_error.called)
633 def test_get_flavor_id_default(self):
634 self.assertEqual(openstack_utils.
635 get_flavor_id(self.nova_client,
639 def test_get_flavor_id_by_ram_range_default(self):
640 self.assertEqual(openstack_utils.
641 get_flavor_id_by_ram_range(self.nova_client,
645 def test_get_aggregates_default(self):
646 self.assertEqual(openstack_utils.
647 get_aggregates(self.nova_client),
650 @mock.patch('functest.utils.openstack_utils.logger.error')
651 def test_get_aggregates_exception(self, mock_logger_error):
652 self.assertEqual(openstack_utils.
653 get_aggregates(Exception),
655 self.assertTrue(mock_logger_error.called)
657 def test_get_aggregate_id_default(self):
658 with mock.patch('functest.utils.openstack_utils.get_aggregates',
659 return_value=[self.aggregate]):
660 self.assertEqual(openstack_utils.
661 get_aggregate_id(self.nova_client,
665 @mock.patch('functest.utils.openstack_utils.logger.error')
666 def test_get_aggregate_id_exception(self, mock_logger_error):
667 self.assertEqual(openstack_utils.
668 get_aggregate_id(Exception,
671 self.assertTrue(mock_logger_error.called)
673 def test_get_availability_zone_names_default(self):
674 with mock.patch('functest.utils.openstack_utils'
675 '.get_availability_zones',
676 return_value=[self.availability_zone]):
677 self.assertEqual(openstack_utils.
678 get_availability_zone_names(self.nova_client),
681 @mock.patch('functest.utils.openstack_utils.logger.error')
682 def test_get_availability_zone_names_exception(self, mock_logger_error):
683 self.assertEqual(openstack_utils.
684 get_availability_zone_names(Exception),
686 self.assertTrue(mock_logger_error.called)
688 def test_get_availability_zones_default(self):
689 self.assertEqual(openstack_utils.
690 get_availability_zones(self.nova_client),
691 [self.availability_zone])
693 @mock.patch('functest.utils.openstack_utils.logger.error')
694 def test_get_availability_zones_exception(self, mock_logger_error):
695 self.assertEqual(openstack_utils.
696 get_availability_zones(Exception),
698 self.assertTrue(mock_logger_error.called)
700 def test_get_floating_ips_default(self):
701 self.assertEqual(openstack_utils.
702 get_floating_ips(self.nova_client),
705 @mock.patch('functest.utils.openstack_utils.logger.error')
706 def test_get_floating_ips_exception(self, mock_logger_error):
707 self.assertEqual(openstack_utils.
708 get_floating_ips(Exception),
710 self.assertTrue(mock_logger_error.called)
712 def test_get_hypervisors_default(self):
713 self.assertEqual(openstack_utils.
714 get_hypervisors(self.nova_client),
717 @mock.patch('functest.utils.openstack_utils.logger.error')
718 def test_get_hypervisors_exception(self, mock_logger_error):
719 self.assertEqual(openstack_utils.
720 get_hypervisors(Exception),
722 self.assertTrue(mock_logger_error.called)
724 def test_create_aggregate_default(self):
725 self.assertTrue(openstack_utils.
726 create_aggregate(self.nova_client,
730 @mock.patch('functest.utils.openstack_utils.logger.error')
731 def test_create_aggregate_exception(self, mock_logger_error):
732 self.assertEqual(openstack_utils.
733 create_aggregate(Exception,
737 self.assertTrue(mock_logger_error.called)
739 def test_add_host_to_aggregate_default(self):
740 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
741 self.assertTrue(openstack_utils.
742 add_host_to_aggregate(self.nova_client,
746 @mock.patch('functest.utils.openstack_utils.logger.error')
747 def test_add_host_to_aggregate_exception(self, mock_logger_error):
748 self.assertEqual(openstack_utils.
749 add_host_to_aggregate(Exception,
753 self.assertTrue(mock_logger_error.called)
755 def test_create_aggregate_with_host_default(self):
756 with mock.patch('functest.utils.openstack_utils.create_aggregate'), \
757 mock.patch('functest.utils.openstack_utils.'
758 'add_host_to_aggregate'):
759 self.assertTrue(openstack_utils.
760 create_aggregate_with_host(self.nova_client,
765 @mock.patch('functest.utils.openstack_utils.logger.error')
766 def test_create_aggregate_with_host_exception(self, mock_logger_error):
767 with mock.patch('functest.utils.openstack_utils.create_aggregate',
768 side_effect=Exception):
769 self.assertEqual(openstack_utils.
770 create_aggregate_with_host(Exception,
775 self.assertTrue(mock_logger_error.called)
777 def test_create_instance_default(self):
778 with mock.patch('functest.utils.openstack_utils.'
780 return_value=self.nova_client):
781 self.assertEqual(openstack_utils.
782 create_instance('test_flavor',
787 @mock.patch('functest.utils.openstack_utils.logger.error')
788 def test_create_instance_exception(self, mock_logger_error):
789 with mock.patch('functest.utils.openstack_utils.'
791 return_value=self.nova_client):
792 self.nova_client.flavors.find.side_effect = Exception
793 self.assertEqual(openstack_utils.
794 create_instance('test_flavor',
798 self.assertTrue(mock_logger_error)
800 def test_create_floating_ip_default(self):
801 with mock.patch('functest.utils.openstack_utils.'
802 'get_external_net_id',
803 return_value='external_net_id'):
804 exp_resp = {'fip_addr': 'test_ip', 'fip_id': 'fip_id'}
805 self.assertEqual(openstack_utils.
806 create_floating_ip(self.neutron_client),
809 @mock.patch('functest.utils.openstack_utils.logger.error')
810 def test_create_floating_ip_exception(self, mock_logger_error):
811 with mock.patch('functest.utils.openstack_utils.'
812 'get_external_net_id',
813 return_value='external_net_id'):
814 self.assertEqual(openstack_utils.
815 create_floating_ip(Exception),
817 self.assertTrue(mock_logger_error)
819 def test_add_floating_ip_default(self):
820 with mock.patch('functest.utils.openstack_utils.get_aggregate_id'):
821 self.assertTrue(openstack_utils.
822 add_floating_ip(self.nova_client,
824 'test_floatingip_addr'))
826 @mock.patch('functest.utils.openstack_utils.logger.error')
827 def test_add_floating_ip_exception(self, mock_logger_error):
828 self.assertFalse(openstack_utils.
829 add_floating_ip(Exception,
831 'test_floatingip_addr'))
832 self.assertTrue(mock_logger_error.called)
834 def test_delete_instance_default(self):
835 self.assertTrue(openstack_utils.
836 delete_instance(self.nova_client,
839 @mock.patch('functest.utils.openstack_utils.logger.error')
840 def test_delete_instance_exception(self, mock_logger_error):
841 self.assertFalse(openstack_utils.
842 delete_instance(Exception,
844 self.assertTrue(mock_logger_error.called)
846 def test_delete_floating_ip_default(self):
847 self.assertTrue(openstack_utils.
848 delete_floating_ip(self.nova_client,
851 @mock.patch('functest.utils.openstack_utils.logger.error')
852 def test_delete_floating_ip_exception(self, mock_logger_error):
853 self.assertFalse(openstack_utils.
854 delete_floating_ip(Exception,
856 self.assertTrue(mock_logger_error.called)
858 def test_remove_host_from_aggregate_default(self):
859 with mock.patch('functest.utils.openstack_utils.'
861 self.assertTrue(openstack_utils.
862 remove_host_from_aggregate(self.nova_client,
866 @mock.patch('functest.utils.openstack_utils.logger.error')
867 def test_remove_host_from_aggregate_exception(self, mock_logger_error):
868 with mock.patch('functest.utils.openstack_utils.'
869 'get_aggregate_id', side_effect=Exception):
870 self.assertFalse(openstack_utils.
871 remove_host_from_aggregate(self.nova_client,
874 self.assertTrue(mock_logger_error.called)
876 def test_remove_hosts_from_aggregate_default(self):
877 with mock.patch('functest.utils.openstack_utils.'
878 'get_aggregate_id'), \
879 mock.patch('functest.utils.openstack_utils.'
880 'remove_host_from_aggregate',
883 openstack_utils.remove_hosts_from_aggregate(self.nova_client,
885 mock_method.assert_any_call(self.nova_client,
889 def test_delete_aggregate_default(self):
890 with mock.patch('functest.utils.openstack_utils.'
891 'remove_hosts_from_aggregate'):
892 self.assertTrue(openstack_utils.
893 delete_aggregate(self.nova_client,
896 @mock.patch('functest.utils.openstack_utils.logger.error')
897 def test_delete_aggregate_exception(self, mock_logger_error):
898 with mock.patch('functest.utils.openstack_utils.'
899 'remove_hosts_from_aggregate', side_effect=Exception):
900 self.assertFalse(openstack_utils.
901 delete_aggregate(self.nova_client,
903 self.assertTrue(mock_logger_error.called)
905 def test_get_network_list_default(self):
906 self.assertEqual(openstack_utils.
907 get_network_list(self.neutron_client),
910 def test_get_network_list_missing_network(self):
911 self.assertEqual(openstack_utils.
912 get_network_list(self.empty_client),
915 def test_get_router_list_default(self):
916 self.assertEqual(openstack_utils.
917 get_router_list(self.neutron_client),
920 def test_get_router_list_missing_router(self):
921 self.assertEqual(openstack_utils.
922 get_router_list(self.empty_client),
925 def test_get_port_list_default(self):
926 self.assertEqual(openstack_utils.
927 get_port_list(self.neutron_client),
930 def test_get_port_list_missing_port(self):
931 self.assertEqual(openstack_utils.
932 get_port_list(self.empty_client),
935 def test_get_network_id_default(self):
936 self.assertEqual(openstack_utils.
937 get_network_id(self.neutron_client,
941 def test_get_subnet_id_default(self):
942 self.assertEqual(openstack_utils.
943 get_subnet_id(self.neutron_client,
947 def test_get_router_id_default(self):
948 self.assertEqual(openstack_utils.
949 get_router_id(self.neutron_client,
953 def test_get_private_net_default(self):
954 self.assertEqual(openstack_utils.
955 get_private_net(self.neutron_client),
958 def test_get_private_net_missing_net(self):
959 self.assertEqual(openstack_utils.
960 get_private_net(self.empty_client),
963 def test_get_external_net_default(self):
964 self.assertEqual(openstack_utils.
965 get_external_net(self.neutron_client),
968 def test_get_external_net_missing_net(self):
969 self.assertEqual(openstack_utils.
970 get_external_net(self.empty_client),
973 def test_get_external_net_id_default(self):
974 self.assertEqual(openstack_utils.
975 get_external_net_id(self.neutron_client),
978 def test_get_external_net_id_missing_net(self):
979 self.assertEqual(openstack_utils.
980 get_external_net_id(self.empty_client),
983 def test_check_neutron_net_default(self):
984 self.assertTrue(openstack_utils.
985 check_neutron_net(self.neutron_client,
988 def test_check_neutron_net_missing_net(self):
989 self.assertFalse(openstack_utils.
990 check_neutron_net(self.empty_client,
993 def test_create_neutron_net_default(self):
994 self.assertEqual(openstack_utils.
995 create_neutron_net(self.neutron_client,
999 @mock.patch('functest.utils.openstack_utils.logger.error')
1000 def test_create_neutron_net_exception(self, mock_logger_error):
1001 self.assertEqual(openstack_utils.
1002 create_neutron_net(Exception,
1005 self.assertTrue(mock_logger_error.called)
1007 def test_create_neutron_subnet_default(self):
1008 self.assertEqual(openstack_utils.
1009 create_neutron_subnet(self.neutron_client,
1015 @mock.patch('functest.utils.openstack_utils.logger.error')
1016 def test_create_neutron_subnet_exception(self, mock_logger_error):
1017 self.assertEqual(openstack_utils.
1018 create_neutron_subnet(Exception,
1023 self.assertTrue(mock_logger_error.called)
1025 def test_create_neutron_router_default(self):
1026 self.assertEqual(openstack_utils.
1027 create_neutron_router(self.neutron_client,
1031 @mock.patch('functest.utils.openstack_utils.logger.error')
1032 def test_create_neutron_router_exception(self, mock_logger_error):
1033 self.assertEqual(openstack_utils.
1034 create_neutron_router(Exception,
1037 self.assertTrue(mock_logger_error.called)
1039 def test_create_neutron_port_default(self):
1040 self.assertEqual(openstack_utils.
1041 create_neutron_port(self.neutron_client,
1047 @mock.patch('functest.utils.openstack_utils.logger.error')
1048 def test_create_neutron_port_exception(self, mock_logger_error):
1049 self.assertEqual(openstack_utils.
1050 create_neutron_port(Exception,
1055 self.assertTrue(mock_logger_error.called)
1057 def test_update_neutron_net_default(self):
1058 self.assertTrue(openstack_utils.
1059 update_neutron_net(self.neutron_client,
1062 @mock.patch('functest.utils.openstack_utils.logger.error')
1063 def test_update_neutron_net_exception(self, mock_logger_error):
1064 self.assertFalse(openstack_utils.
1065 update_neutron_net(Exception,
1067 self.assertTrue(mock_logger_error.called)
1069 def test_update_neutron_port_default(self):
1070 self.assertEqual(openstack_utils.
1071 update_neutron_port(self.neutron_client,
1076 @mock.patch('functest.utils.openstack_utils.logger.error')
1077 def test_update_neutron_port_exception(self, mock_logger_error):
1078 self.assertEqual(openstack_utils.
1079 update_neutron_port(Exception,
1083 self.assertTrue(mock_logger_error.called)
1085 def test_add_interface_router_default(self):
1086 self.assertTrue(openstack_utils.
1087 add_interface_router(self.neutron_client,
1091 @mock.patch('functest.utils.openstack_utils.logger.error')
1092 def test_add_interface_router_exception(self, mock_logger_error):
1093 self.assertFalse(openstack_utils.
1094 add_interface_router(Exception,
1097 self.assertTrue(mock_logger_error.called)
1099 def test_add_gateway_router_default(self):
1100 with mock.patch('functest.utils.openstack_utils.'
1101 'get_external_net_id',
1102 return_value='network_id'):
1103 self.assertTrue(openstack_utils.
1104 add_gateway_router(self.neutron_client,
1107 @mock.patch('functest.utils.openstack_utils.logger.error')
1108 def test_add_gateway_router_exception(self, mock_logger_error):
1109 with mock.patch('functest.utils.openstack_utils.'
1110 'get_external_net_id',
1111 return_value='network_id'):
1112 self.assertFalse(openstack_utils.
1113 add_gateway_router(Exception,
1115 self.assertTrue(mock_logger_error.called)
1117 def test_delete_neutron_net_default(self):
1118 self.assertTrue(openstack_utils.
1119 delete_neutron_net(self.neutron_client,
1122 @mock.patch('functest.utils.openstack_utils.logger.error')
1123 def test_delete_neutron_net_exception(self, mock_logger_error):
1124 self.assertFalse(openstack_utils.
1125 delete_neutron_net(Exception,
1127 self.assertTrue(mock_logger_error.called)
1129 def test_delete_neutron_subnet_default(self):
1130 self.assertTrue(openstack_utils.
1131 delete_neutron_subnet(self.neutron_client,
1134 @mock.patch('functest.utils.openstack_utils.logger.error')
1135 def test_delete_neutron_subnet_exception(self, mock_logger_error):
1136 self.assertFalse(openstack_utils.
1137 delete_neutron_subnet(Exception,
1139 self.assertTrue(mock_logger_error.called)
1141 def test_delete_neutron_router_default(self):
1142 self.assertTrue(openstack_utils.
1143 delete_neutron_router(self.neutron_client,
1146 @mock.patch('functest.utils.openstack_utils.logger.error')
1147 def test_delete_neutron_router_exception(self, mock_logger_error):
1148 self.assertFalse(openstack_utils.
1149 delete_neutron_router(Exception,
1151 self.assertTrue(mock_logger_error.called)
1153 def test_delete_neutron_port_default(self):
1154 self.assertTrue(openstack_utils.
1155 delete_neutron_port(self.neutron_client,
1158 @mock.patch('functest.utils.openstack_utils.logger.error')
1159 def test_delete_neutron_port_exception(self, mock_logger_error):
1160 self.assertFalse(openstack_utils.
1161 delete_neutron_port(Exception,
1163 self.assertTrue(mock_logger_error.called)
1165 def test_remove_interface_router_default(self):
1166 self.assertTrue(openstack_utils.
1167 remove_interface_router(self.neutron_client,
1171 @mock.patch('functest.utils.openstack_utils.logger.error')
1172 def test_remove_interface_router_exception(self, mock_logger_error):
1173 self.assertFalse(openstack_utils.
1174 remove_interface_router(Exception,
1177 self.assertTrue(mock_logger_error.called)
1179 def test_remove_gateway_router_default(self):
1180 self.assertTrue(openstack_utils.
1181 remove_gateway_router(self.neutron_client,
1184 @mock.patch('functest.utils.openstack_utils.logger.error')
1185 def test_remove_gateway_router_exception(self, mock_logger_error):
1186 self.assertFalse(openstack_utils.
1187 remove_gateway_router(Exception,
1189 self.assertTrue(mock_logger_error.called)
1191 def test_create_bgpvpn(self):
1192 self.assertEqual(openstack_utils.
1193 create_bgpvpn(self.neutron_client),
1196 def test_create_network_association(self):
1197 self.assertEqual(openstack_utils.
1198 create_network_association(self.neutron_client,
1203 def test_create_router_association(self):
1204 self.assertEqual(openstack_utils.
1205 create_router_association(self.neutron_client,
1210 def test_update_bgpvpn(self):
1211 self.assertEqual(openstack_utils.
1212 update_bgpvpn(self.neutron_client,
1216 def test_delete_bgpvpn(self):
1217 self.assertEqual(openstack_utils.
1218 delete_bgpvpn(self.neutron_client,
1222 def test_get_bgpvpn(self):
1223 self.assertEqual(openstack_utils.
1224 get_bgpvpn(self.neutron_client,
1228 def test_get_bgpvpn_routers(self):
1229 with mock.patch('functest.utils.openstack_utils.'
1231 return_value={'bgpvpn':
1232 {'routers': [self.router]}}):
1233 self.assertEqual(openstack_utils.
1234 get_bgpvpn_routers(self.neutron_client,
1238 def test_get_security_groups_default(self):
1239 self.assertEqual(openstack_utils.
1240 get_security_groups(self.neutron_client),
1243 @mock.patch('functest.utils.openstack_utils.logger.error')
1244 def test_get_security_groups_exception(self, mock_logger_error):
1245 self.assertEqual(openstack_utils.
1246 get_security_groups(Exception),
1248 self.assertTrue(mock_logger_error.called)
1250 def test_get_security_group_id_default(self):
1251 with mock.patch('functest.utils.openstack_utils.'
1252 'get_security_groups',
1253 return_value=[self.sec_group]):
1254 self.assertEqual(openstack_utils.
1255 get_security_group_id(self.neutron_client,
1259 def test_get_security_group_rules_default(self):
1260 self.assertEqual(openstack_utils.
1261 get_security_group_rules(self.neutron_client,
1262 self.sec_group['id']),
1263 [self.sec_group_rule])
1265 @mock.patch('functest.utils.openstack_utils.logger.error')
1266 def test_get_security_group_rules_exception(self, mock_logger_error):
1267 self.assertEqual(openstack_utils.
1268 get_security_group_rules(Exception,
1271 self.assertTrue(mock_logger_error.called)
1273 def test_check_security_group_rules_not_exists(self):
1274 self.assertEqual(openstack_utils.
1275 check_security_group_rules(self.neutron_client,
1283 def test_check_security_group_rules_exists(self):
1284 self.assertEqual(openstack_utils.
1285 check_security_group_rules(self.neutron_client,
1286 self.sec_group['id'],
1293 @mock.patch('functest.utils.openstack_utils.logger.error')
1294 def test_check_security_group_rules_exception(self, mock_logger_error):
1295 self.assertEqual(openstack_utils.
1296 check_security_group_rules(Exception,
1303 self.assertTrue(mock_logger_error.called)
1305 def test_create_security_group_default(self):
1306 self.assertEqual(openstack_utils.
1307 create_security_group(self.neutron_client,
1312 @mock.patch('functest.utils.openstack_utils.logger.error')
1313 def test_create_security_group_exception(self, mock_logger_error):
1314 self.assertEqual(openstack_utils.
1315 create_security_group(Exception,
1319 self.assertTrue(mock_logger_error.called)
1321 def test_create_secgroup_rule_default(self):
1322 self.assertTrue(openstack_utils.
1323 create_secgroup_rule(self.neutron_client,
1329 self.assertTrue(openstack_utils.
1330 create_secgroup_rule(self.neutron_client,
1335 @mock.patch('functest.utils.openstack_utils.logger.error')
1336 def test_create_secgroup_rule_invalid_port_range(self, mock_logger_error):
1337 self.assertFalse(openstack_utils.
1338 create_secgroup_rule(self.neutron_client,
1344 @mock.patch('functest.utils.openstack_utils.logger.error')
1345 def test_create_secgroup_rule_exception(self, mock_logger_error):
1346 self.assertFalse(openstack_utils.
1347 create_secgroup_rule(Exception,
1352 @mock.patch('functest.utils.openstack_utils.logger.info')
1353 def test_create_security_group_full_default(self, mock_logger_info):
1354 with mock.patch('functest.utils.openstack_utils.'
1355 'get_security_group_id',
1356 return_value='sg_id'):
1357 self.assertEqual(openstack_utils.
1358 create_security_group_full(self.neutron_client,
1362 self.assertTrue(mock_logger_info)
1364 @mock.patch('functest.utils.openstack_utils.logger.info')
1365 @mock.patch('functest.utils.openstack_utils.logger.error')
1366 def test_create_security_group_full_sec_group_fail(self,
1369 with mock.patch('functest.utils.openstack_utils.'
1370 'get_security_group_id',
1372 mock.patch('functest.utils.openstack_utils.'
1373 'create_security_group',
1374 return_value=False):
1375 self.assertEqual(openstack_utils.
1376 create_security_group_full(self.neutron_client,
1380 self.assertTrue(mock_logger_error)
1381 self.assertTrue(mock_logger_info)
1383 @mock.patch('functest.utils.openstack_utils.logger.debug')
1384 @mock.patch('functest.utils.openstack_utils.logger.info')
1385 @mock.patch('functest.utils.openstack_utils.logger.error')
1386 def test_create_security_group_full_secgroup_rule_fail(self,
1390 with mock.patch('functest.utils.openstack_utils.'
1391 'get_security_group_id',
1393 mock.patch('functest.utils.openstack_utils.'
1394 'create_security_group',
1395 return_value={'id': 'sg_id',
1396 'name': 'sg_name'}), \
1397 mock.patch('functest.utils.openstack_utils.'
1398 'create_secgroup_rule',
1399 return_value=False):
1400 self.assertEqual(openstack_utils.
1401 create_security_group_full(self.neutron_client,
1405 self.assertTrue(mock_logger_error)
1406 self.assertTrue(mock_logger_info)
1407 self.assertTrue(mock_logger_debug)
1409 def test_add_secgroup_to_instance_default(self):
1410 self.assertTrue(openstack_utils.
1411 add_secgroup_to_instance(self.nova_client,
1415 @mock.patch('functest.utils.openstack_utils.logger.error')
1416 def test_add_secgroup_to_instance_exception(self, mock_logger_error):
1417 self.assertFalse(openstack_utils.
1418 add_secgroup_to_instance(Exception,
1421 self.assertTrue(mock_logger_error.called)
1423 def test_update_sg_quota_default(self):
1424 self.assertTrue(openstack_utils.
1425 update_sg_quota(self.neutron_client,
1430 @mock.patch('functest.utils.openstack_utils.logger.error')
1431 def test_update_sg_quota_exception(self, mock_logger_error):
1432 self.assertFalse(openstack_utils.
1433 update_sg_quota(Exception,
1437 self.assertTrue(mock_logger_error.called)
1439 def test_delete_security_group_default(self):
1440 self.assertTrue(openstack_utils.
1441 delete_security_group(self.neutron_client,
1444 @mock.patch('functest.utils.openstack_utils.logger.error')
1445 def test_delete_security_group_exception(self, mock_logger_error):
1446 self.assertFalse(openstack_utils.
1447 delete_security_group(Exception,
1449 self.assertTrue(mock_logger_error.called)
1451 def test_get_images_default(self):
1452 self.assertEqual(openstack_utils.
1453 get_images(self.nova_client),
1456 @mock.patch('functest.utils.openstack_utils.logger.error')
1457 def test_get_images_exception(self, mock_logger_error):
1458 self.assertEqual(openstack_utils.
1459 get_images(Exception),
1461 self.assertTrue(mock_logger_error.called)
1463 def test_get_image_id_default(self):
1464 self.assertEqual(openstack_utils.
1465 get_image_id(self.glance_client,
1469 # create_glance_image, get_or_create_image
1470 @mock.patch('functest.utils.openstack_utils.logger.error')
1471 def test_create_glance_image_file_present(self, mock_logger_error):
1472 with mock.patch('functest.utils.openstack_utils.'
1474 return_value=False):
1475 self.assertEqual(openstack_utils.
1476 create_glance_image(self.glance_client,
1480 self.assertTrue(mock_logger_error.called)
1482 @mock.patch('functest.utils.openstack_utils.logger.info')
1483 def test_create_glance_image_already_exist(self, mock_logger_info):
1484 with mock.patch('functest.utils.openstack_utils.'
1486 return_value=True), \
1487 mock.patch('functest.utils.openstack_utils.get_image_id',
1488 return_value='image_id'):
1489 self.assertEqual(openstack_utils.
1490 create_glance_image(self.glance_client,
1494 self.assertTrue(mock_logger_info.called)
1496 @mock.patch('functest.utils.openstack_utils.logger.info')
1497 def test_create_glance_image_default(self, mock_logger_info):
1498 with mock.patch('functest.utils.openstack_utils.'
1500 return_value=True), \
1501 mock.patch('functest.utils.openstack_utils.get_image_id',
1503 mock.patch('__builtin__.open',
1504 mock.mock_open(read_data='1')) as m:
1505 self.assertEqual(openstack_utils.
1506 create_glance_image(self.glance_client,
1510 m.assert_called_once_with('file_path')
1511 self.assertTrue(mock_logger_info.called)
1513 @mock.patch('functest.utils.openstack_utils.logger.error')
1514 def test_create_glance_image_exception(self, mock_logger_error):
1515 with mock.patch('functest.utils.openstack_utils.'
1517 return_value=True), \
1518 mock.patch('functest.utils.openstack_utils.get_image_id',
1519 side_effect=Exception):
1520 self.assertEqual(openstack_utils.
1521 create_glance_image(self.glance_client,
1525 self.assertTrue(mock_logger_error.called)
1527 def test_delete_glance_image_default(self):
1528 self.assertTrue(openstack_utils.
1529 delete_glance_image(self.nova_client,
1532 @mock.patch('functest.utils.openstack_utils.logger.error')
1533 def test_delete_glance_image_exception(self, mock_logger_error):
1534 self.assertFalse(openstack_utils.
1535 delete_glance_image(Exception,
1537 self.assertTrue(mock_logger_error.called)
1539 def test_get_volumes_default(self):
1540 self.assertEqual(openstack_utils.
1541 get_volumes(self.cinder_client),
1544 @mock.patch('functest.utils.openstack_utils.logger.error')
1545 def test_get_volumes_exception(self, mock_logger_error):
1546 self.assertEqual(openstack_utils.
1547 get_volumes(Exception),
1549 self.assertTrue(mock_logger_error.called)
1551 def test_list_volume_types_default_private(self):
1552 self.assertEqual(openstack_utils.
1553 list_volume_types(self.cinder_client,
1556 [self.volume_types[1]])
1558 def test_list_volume_types_default_public(self):
1559 self.assertEqual(openstack_utils.
1560 list_volume_types(self.cinder_client,
1563 [self.volume_types[0]])
1565 @mock.patch('functest.utils.openstack_utils.logger.error')
1566 def test_list_volume_types_exception(self, mock_logger_error):
1567 self.assertEqual(openstack_utils.
1568 list_volume_types(Exception),
1570 self.assertTrue(mock_logger_error.called)
1572 def test_create_volume_type_default(self):
1573 self.assertEqual(openstack_utils.
1574 create_volume_type(self.cinder_client,
1575 'test_volume_type'),
1576 self.volume_types[0])
1578 @mock.patch('functest.utils.openstack_utils.logger.error')
1579 def test_create_volume_type_exception(self, mock_logger_error):
1580 self.assertEqual(openstack_utils.
1581 create_volume_type(Exception,
1582 'test_volume_type'),
1584 self.assertTrue(mock_logger_error.called)
1586 def test_update_cinder_quota_default(self):
1587 self.assertTrue(openstack_utils.
1588 update_cinder_quota(self.cinder_client,
1594 @mock.patch('functest.utils.openstack_utils.logger.error')
1595 def test_update_cinder_quota_exception(self, mock_logger_error):
1596 self.assertFalse(openstack_utils.
1597 update_cinder_quota(Exception,
1602 self.assertTrue(mock_logger_error.called)
1604 def test_delete_volume_default(self):
1605 self.assertTrue(openstack_utils.
1606 delete_volume(self.cinder_client,
1610 self.assertTrue(openstack_utils.
1611 delete_volume(self.cinder_client,
1615 @mock.patch('functest.utils.openstack_utils.logger.error')
1616 def test_delete_volume_exception(self, mock_logger_error):
1617 self.assertFalse(openstack_utils.
1618 delete_volume(Exception,
1621 self.assertTrue(mock_logger_error.called)
1623 def test_delete_volume_type_default(self):
1624 self.assertTrue(openstack_utils.
1625 delete_volume_type(self.cinder_client,
1626 self.volume_types[0]))
1628 @mock.patch('functest.utils.openstack_utils.logger.error')
1629 def test_delete_volume_type_exception(self, mock_logger_error):
1630 self.assertFalse(openstack_utils.
1631 delete_volume_type(Exception,
1632 self.volume_types[0]))
1633 self.assertTrue(mock_logger_error.called)
1635 def test_get_tenants_default(self):
1636 with mock.patch('functest.utils.openstack_utils.'
1637 'is_keystone_v3', return_value=True):
1638 self.assertEqual(openstack_utils.
1639 get_tenants(self.keystone_client),
1641 with mock.patch('functest.utils.openstack_utils.'
1642 'is_keystone_v3', return_value=False):
1643 self.assertEqual(openstack_utils.
1644 get_tenants(self.keystone_client),
1647 @mock.patch('functest.utils.openstack_utils.logger.error')
1648 def test_get_tenants_exception(self, mock_logger_error):
1649 self.assertEqual(openstack_utils.
1650 get_tenants(Exception),
1652 self.assertTrue(mock_logger_error.called)
1654 def test_get_users_default(self):
1655 self.assertEqual(openstack_utils.
1656 get_users(self.keystone_client),
1659 @mock.patch('functest.utils.openstack_utils.logger.error')
1660 def test_get_users_exception(self, mock_logger_error):
1661 self.assertEqual(openstack_utils.
1662 get_users(Exception),
1664 self.assertTrue(mock_logger_error.called)
1666 def test_get_tenant_id_default(self):
1667 self.assertEqual(openstack_utils.
1668 get_tenant_id(self.keystone_client,
1672 def test_get_user_id_default(self):
1673 self.assertEqual(openstack_utils.
1674 get_user_id(self.keystone_client,
1678 def test_get_role_id_default(self):
1679 self.assertEqual(openstack_utils.
1680 get_role_id(self.keystone_client,
1684 def test_create_tenant_default(self):
1685 with mock.patch('functest.utils.openstack_utils.'
1686 'is_keystone_v3', return_value=True):
1687 self.assertEqual(openstack_utils.
1688 create_tenant(self.keystone_client,
1692 with mock.patch('functest.utils.openstack_utils.'
1693 'is_keystone_v3', return_value=False):
1694 self.assertEqual(openstack_utils.
1695 create_tenant(self.keystone_client,
1700 @mock.patch('functest.utils.openstack_utils.logger.error')
1701 def test_create_tenant_exception(self, mock_logger_error):
1702 self.assertEqual(openstack_utils.
1703 create_tenant(Exception,
1707 self.assertTrue(mock_logger_error.called)
1709 def test_create_user_default(self):
1710 with mock.patch('functest.utils.openstack_utils.'
1711 'is_keystone_v3', return_value=True):
1712 self.assertEqual(openstack_utils.
1713 create_user(self.keystone_client,
1719 with mock.patch('functest.utils.openstack_utils.'
1720 'is_keystone_v3', return_value=False):
1721 self.assertEqual(openstack_utils.
1722 create_user(self.keystone_client,
1729 @mock.patch('functest.utils.openstack_utils.logger.error')
1730 def test_create_user_exception(self, mock_logger_error):
1731 self.assertEqual(openstack_utils.
1732 create_user(Exception,
1738 self.assertTrue(mock_logger_error.called)
1740 def test_add_role_user_default(self):
1741 with mock.patch('functest.utils.openstack_utils.'
1742 'is_keystone_v3', return_value=True):
1743 self.assertTrue(openstack_utils.
1744 add_role_user(self.keystone_client,
1749 with mock.patch('functest.utils.openstack_utils.'
1750 'is_keystone_v3', return_value=False):
1751 self.assertTrue(openstack_utils.
1752 add_role_user(self.keystone_client,
1757 @mock.patch('functest.utils.openstack_utils.logger.error')
1758 def test_add_role_user_exception(self, mock_logger_error):
1759 self.assertFalse(openstack_utils.
1760 add_role_user(Exception,
1764 self.assertTrue(mock_logger_error.called)
1766 def test_delete_tenant_default(self):
1767 with mock.patch('functest.utils.openstack_utils.'
1768 'is_keystone_v3', return_value=True):
1769 self.assertTrue(openstack_utils.
1770 delete_tenant(self.keystone_client,
1773 with mock.patch('functest.utils.openstack_utils.'
1774 'is_keystone_v3', return_value=False):
1775 self.assertTrue(openstack_utils.
1776 delete_tenant(self.keystone_client,
1779 @mock.patch('functest.utils.openstack_utils.logger.error')
1780 def test_delete_tenant_exception(self, mock_logger_error):
1781 self.assertFalse(openstack_utils.
1782 delete_tenant(Exception,
1784 self.assertTrue(mock_logger_error.called)
1786 def test_delete_user_default(self):
1787 self.assertTrue(openstack_utils.
1788 delete_user(self.keystone_client,
1791 @mock.patch('functest.utils.openstack_utils.logger.error')
1792 def test_delete_user_exception(self, mock_logger_error):
1793 self.assertFalse(openstack_utils.
1794 delete_user(Exception,
1796 self.assertTrue(mock_logger_error.called)
1798 def test_get_resource_default(self):
1799 with mock.patch('functest.utils.openstack_utils.'
1800 'is_keystone_v3', return_value=True):
1801 self.assertEqual(openstack_utils.
1802 get_resource(self.heat_client,
1807 @mock.patch('functest.utils.openstack_utils.logger.error')
1808 def test_get_resource_exception(self, mock_logger_error):
1809 self.assertEqual(openstack_utils.
1810 get_resource(Exception,
1814 self.assertTrue(mock_logger_error.called)
1817 if __name__ == "__main__":
1818 unittest.main(verbosity=2)