Update Fakes.py and unit tests for commands in identity V2.0
Update remaining commands:role, service, user, token. Change-Id: I06eed60dd2f312bad6076c78b53cd07bcd4cd55c Partially-Implements: blueprint refactor-identity-unit-test
This commit is contained in:
		 sunyajing
					sunyajing
				
			
				
					committed by
					
						 Steve Martinelli
						Steve Martinelli
					
				
			
			
				
	
			
			
			 Steve Martinelli
						Steve Martinelli
					
				
			
						parent
						
							21ac9230e8
						
					
				
				
					commit
					a9da91285f
				
			| @@ -76,19 +76,19 @@ USER = { | |||||||
| } | } | ||||||
|  |  | ||||||
| token_expires = '2014-01-01T00:00:00Z' | token_expires = '2014-01-01T00:00:00Z' | ||||||
| token_id = 'tttttttt-tttt-tttt-tttt-tttttttttttt' | token_id = 'token-id-' + uuid.uuid4().hex | ||||||
|  |  | ||||||
| TOKEN = { | TOKEN = { | ||||||
|     'expires': token_expires, |     'expires': token_expires, | ||||||
|     'id': token_id, |     'id': token_id, | ||||||
|     'tenant_id': project_id, |     'tenant_id': 'project-id', | ||||||
|     'user_id': user_id, |     'user_id': 'user-id', | ||||||
| } | } | ||||||
|  |  | ||||||
| UNSCOPED_TOKEN = { | UNSCOPED_TOKEN = { | ||||||
|     'expires': token_expires, |     'expires': token_expires, | ||||||
|     'id': token_id, |     'id': token_id, | ||||||
|     'user_id': user_id, |     'user_id': 'user-id', | ||||||
| } | } | ||||||
|  |  | ||||||
| endpoint_name = service_name | endpoint_name = service_name | ||||||
| @@ -110,8 +110,6 @@ ENDPOINT = { | |||||||
|     'publicurl': endpoint_publicurl, |     'publicurl': endpoint_publicurl, | ||||||
|     'service_id': endpoint_service_id, |     'service_id': endpoint_service_id, | ||||||
| } | } | ||||||
| SERVICE_NAME = 'service-name-' + uuid.uuid4().hex |  | ||||||
| SERVICE_ID = 'service-id-' + uuid.uuid4().hex |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def fake_auth_ref(fake_token, fake_service=None): | def fake_auth_ref(fake_token, fake_service=None): | ||||||
| @@ -244,7 +242,7 @@ class FakeCatalog(object): | |||||||
|  |  | ||||||
|         # Set default attributes. |         # Set default attributes. | ||||||
|         catalog_info = { |         catalog_info = { | ||||||
|             'id': SERVICE_ID, |             'id': 'service-id-' + uuid.uuid4().hex, | ||||||
|             'type': 'compute', |             'type': 'compute', | ||||||
|             'name': 'supernova', |             'name': 'supernova', | ||||||
|             'endpoints': [ |             'endpoints': [ | ||||||
| @@ -295,8 +293,8 @@ class FakeProject(object): | |||||||
|  |  | ||||||
|         # set default attributes. |         # set default attributes. | ||||||
|         project_info = { |         project_info = { | ||||||
|             'id': 'project-id' + uuid.uuid4().hex, |             'id': 'project-id-' + uuid.uuid4().hex, | ||||||
|             'name': 'project-name' + uuid.uuid4().hex, |             'name': 'project-name-' + uuid.uuid4().hex, | ||||||
|             'description': 'project_description', |             'description': 'project_description', | ||||||
|             'enabled': True, |             'enabled': True, | ||||||
|         } |         } | ||||||
| @@ -341,14 +339,14 @@ class FakeEndpoint(object): | |||||||
|  |  | ||||||
|         # set default attributes. |         # set default attributes. | ||||||
|         endpoint_info = { |         endpoint_info = { | ||||||
|             'service_name': SERVICE_NAME, |             'service_name': 'service-name-' + uuid.uuid4().hex, | ||||||
|             'adminurl': 'http://endpoint_adminurl', |             'adminurl': 'http://endpoint_adminurl', | ||||||
|             'region': 'endpoint_region', |             'region': 'endpoint_region', | ||||||
|             'internalurl': 'http://endpoint_internalurl', |             'internalurl': 'http://endpoint_internalurl', | ||||||
|             'service_type': 'service_type', |             'service_type': 'service_type', | ||||||
|             'id': 'endpoint-id-' + uuid.uuid4().hex, |             'id': 'endpoint-id-' + uuid.uuid4().hex, | ||||||
|             'publicurl': 'http://endpoint_publicurl', |             'publicurl': 'http://endpoint_publicurl', | ||||||
|             'service_id': SERVICE_ID, |             'service_id': 'service-name-' + uuid.uuid4().hex, | ||||||
|  |  | ||||||
|         } |         } | ||||||
|         endpoint_info.update(attrs) |         endpoint_info.update(attrs) | ||||||
| @@ -392,8 +390,8 @@ class FakeService(object): | |||||||
|  |  | ||||||
|         # set default attributes. |         # set default attributes. | ||||||
|         service_info = { |         service_info = { | ||||||
|             'id': SERVICE_ID, |             'id': 'service-id-' + uuid.uuid4().hex, | ||||||
|             'name': SERVICE_NAME, |             'name': 'service-name-' + uuid.uuid4().hex, | ||||||
|             'description': 'service_description', |             'description': 'service_description', | ||||||
|             'type': 'service_type', |             'type': 'service_type', | ||||||
|  |  | ||||||
| @@ -464,3 +462,49 @@ class FakeRole(object): | |||||||
|             roles.append(FakeRole.create_one_role(attrs)) |             roles.append(FakeRole.create_one_role(attrs)) | ||||||
|  |  | ||||||
|         return roles |         return roles | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class FakeUser(object): | ||||||
|  |     """Fake one or more user.""" | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def create_one_user(attrs=None): | ||||||
|  |         """Create a fake user. | ||||||
|  |  | ||||||
|  |         :param Dictionary attrs: | ||||||
|  |             A dictionary with all attributes | ||||||
|  |         :return: | ||||||
|  |             A FakeResource object, with id, name, and so on | ||||||
|  |         """ | ||||||
|  |         attrs = attrs or {} | ||||||
|  |  | ||||||
|  |         # set default attributes. | ||||||
|  |         user_info = { | ||||||
|  |             'id': 'user-id-' + uuid.uuid4().hex, | ||||||
|  |             'name': 'user-name-' + uuid.uuid4().hex, | ||||||
|  |             'tenantId': 'project-id-' + uuid.uuid4().hex, | ||||||
|  |             'email': 'admin@openstack.org', | ||||||
|  |             'enabled': True, | ||||||
|  |         } | ||||||
|  |         user_info.update(attrs) | ||||||
|  |  | ||||||
|  |         user = fakes.FakeResource(info=copy.deepcopy(user_info), | ||||||
|  |                                   loaded=True) | ||||||
|  |         return user | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def create_users(attrs=None, count=2): | ||||||
|  |         """Create multiple fake users. | ||||||
|  |  | ||||||
|  |         :param Dictionary attrs: | ||||||
|  |             A dictionary with all attributes | ||||||
|  |         :param int count: | ||||||
|  |             The number of users to fake | ||||||
|  |         :return: | ||||||
|  |             A list of FakeResource objects faking the users | ||||||
|  |         """ | ||||||
|  |         users = [] | ||||||
|  |         for i in range(0, count): | ||||||
|  |             users.append(FakeUser.create_one_user(attrs)) | ||||||
|  |  | ||||||
|  |         return users | ||||||
|   | |||||||
| @@ -17,8 +17,12 @@ from openstackclient.tests.identity.v2_0 import fakes as identity_fakes | |||||||
|  |  | ||||||
| class TestEndpoint(identity_fakes.TestIdentityv2): | class TestEndpoint(identity_fakes.TestIdentityv2): | ||||||
|  |  | ||||||
|     fake_endpoint = identity_fakes.FakeEndpoint.create_one_endpoint() |  | ||||||
|     fake_service = identity_fakes.FakeService.create_one_service() |     fake_service = identity_fakes.FakeService.create_one_service() | ||||||
|  |     attr = { | ||||||
|  |         'service_name': fake_service.name, | ||||||
|  |         'service_id': fake_service.id, | ||||||
|  |     } | ||||||
|  |     fake_endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(attr) | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestEndpoint, self).setUp() |         super(TestEndpoint, self).setUp() | ||||||
|   | |||||||
| @@ -13,14 +13,12 @@ | |||||||
| #   under the License. | #   under the License. | ||||||
| # | # | ||||||
|  |  | ||||||
| import copy |  | ||||||
| import mock | import mock | ||||||
|  |  | ||||||
| from keystoneauth1 import exceptions as ks_exc | from keystoneauth1 import exceptions as ks_exc | ||||||
| from osc_lib import exceptions | from osc_lib import exceptions | ||||||
|  |  | ||||||
| from openstackclient.identity.v2_0 import role | from openstackclient.identity.v2_0 import role | ||||||
| from openstackclient.tests import fakes |  | ||||||
| from openstackclient.tests.identity.v2_0 import fakes as identity_fakes | from openstackclient.tests.identity.v2_0 import fakes as identity_fakes | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -34,6 +32,12 @@ class TestRole(identity_fakes.TestIdentityv2): | |||||||
|     ] |     ] | ||||||
|     fake_service = identity_fakes.FakeService.create_one_service(attr) |     fake_service = identity_fakes.FakeService.create_one_service(attr) | ||||||
|     fake_role = identity_fakes.FakeRole.create_one_role() |     fake_role = identity_fakes.FakeRole.create_one_role() | ||||||
|  |     fake_project = identity_fakes.FakeProject.create_one_project() | ||||||
|  |     attr = {} | ||||||
|  |     attr = { | ||||||
|  |         'tenantId': fake_project.id, | ||||||
|  |     } | ||||||
|  |     fake_user = identity_fakes.FakeUser.create_one_user(attr) | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestRole, self).setUp() |         super(TestRole, self).setUp() | ||||||
| @@ -63,42 +67,26 @@ class TestRoleAdd(TestRole): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestRoleAdd, self).setUp() |         super(TestRoleAdd, self).setUp() | ||||||
|  |  | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.PROJECT), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self.users_mock.get.return_value = fakes.FakeResource( |         self.users_mock.get.return_value = self.fake_user | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.USER), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self.roles_mock.get.return_value = fakes.FakeResource( |         self.roles_mock.get.return_value = self.fake_role | ||||||
|             None, |         self.roles_mock.add_user_role.return_value = self.fake_role | ||||||
|             copy.deepcopy(identity_fakes.ROLE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         self.roles_mock.add_user_role.return_value = fakes.FakeResource( |  | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.ROLE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = role.AddRole(self.app, None) |         self.cmd = role.AddRole(self.app, None) | ||||||
|  |  | ||||||
|     def test_role_add(self): |     def test_role_add(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--project', identity_fakes.project_name, |             '--project', self.fake_project.name, | ||||||
|             '--user', identity_fakes.user_name, |             '--user', self.fake_user.name, | ||||||
|             identity_fakes.role_name, |             self.fake_role.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('project', identity_fakes.project_name), |             ('project', self.fake_project.name), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|             ('role', identity_fakes.role_name), |             ('role', self.fake_role.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -109,49 +97,46 @@ class TestRoleAdd(TestRole): | |||||||
|  |  | ||||||
|         # RoleManager.add_user_role(user, role, tenant=None) |         # RoleManager.add_user_role(user, role, tenant=None) | ||||||
|         self.roles_mock.add_user_role.assert_called_with( |         self.roles_mock.add_user_role.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             identity_fakes.role_id, |             self.fake_role.id, | ||||||
|             identity_fakes.project_id, |             self.fake_project.id, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         collist = ('id', 'name') |         collist = ('id', 'name') | ||||||
|         self.assertEqual(collist, columns) |         self.assertEqual(collist, columns) | ||||||
|         datalist = ( |         datalist = ( | ||||||
|             identity_fakes.role_id, |             self.fake_role.id, | ||||||
|             identity_fakes.role_name, |             self.fake_role.name, | ||||||
|         ) |         ) | ||||||
|         self.assertEqual(datalist, data) |         self.assertEqual(datalist, data) | ||||||
|  |  | ||||||
|  |  | ||||||
| class TestRoleCreate(TestRole): | class TestRoleCreate(TestRole): | ||||||
|  |  | ||||||
|  |     fake_role_c = identity_fakes.FakeRole.create_one_role() | ||||||
|     columns = ( |     columns = ( | ||||||
|         'id', |         'id', | ||||||
|         'name' |         'name' | ||||||
|     ) |     ) | ||||||
|     datalist = ( |     datalist = ( | ||||||
|         identity_fakes.role_id, |         fake_role_c.id, | ||||||
|         identity_fakes.role_name, |         fake_role_c.name, | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestRoleCreate, self).setUp() |         super(TestRoleCreate, self).setUp() | ||||||
|  |  | ||||||
|         self.roles_mock.create.return_value = fakes.FakeResource( |         self.roles_mock.create.return_value = self.fake_role_c | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.ROLE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = role.CreateRole(self.app, None) |         self.cmd = role.CreateRole(self.app, None) | ||||||
|  |  | ||||||
|     def test_role_create_no_options(self): |     def test_role_create_no_options(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.role_name, |             self.fake_role_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('role_name', identity_fakes.role_name), |             ('role_name', self.fake_role_c.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -162,7 +147,7 @@ class TestRoleCreate(TestRole): | |||||||
|  |  | ||||||
|         # RoleManager.create(name) |         # RoleManager.create(name) | ||||||
|         self.roles_mock.create.assert_called_with( |         self.roles_mock.create.assert_called_with( | ||||||
|             identity_fakes.role_name, |             self.fake_role_c.name, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self.assertEqual(self.columns, columns) |         self.assertEqual(self.columns, columns) | ||||||
| @@ -175,18 +160,14 @@ class TestRoleCreate(TestRole): | |||||||
|         # need to make this throw an exception... |         # need to make this throw an exception... | ||||||
|         self.roles_mock.create.side_effect = _raise_conflict |         self.roles_mock.create.side_effect = _raise_conflict | ||||||
|  |  | ||||||
|         self.roles_mock.get.return_value = fakes.FakeResource( |         self.roles_mock.get.return_value = self.fake_role_c | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.ROLE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--or-show', |             '--or-show', | ||||||
|             identity_fakes.role_name, |             self.fake_role_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('role_name', identity_fakes.role_name), |             ('role_name', self.fake_role_c.name), | ||||||
|             ('or_show', True), |             ('or_show', True), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
| @@ -197,11 +178,11 @@ class TestRoleCreate(TestRole): | |||||||
|         columns, data = self.cmd.take_action(parsed_args) |         columns, data = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         # RoleManager.get(name, description, enabled) |         # RoleManager.get(name, description, enabled) | ||||||
|         self.roles_mock.get.assert_called_with(identity_fakes.role_name) |         self.roles_mock.get.assert_called_with(self.fake_role_c.name) | ||||||
|  |  | ||||||
|         # RoleManager.create(name) |         # RoleManager.create(name) | ||||||
|         self.roles_mock.create.assert_called_with( |         self.roles_mock.create.assert_called_with( | ||||||
|             identity_fakes.role_name, |             self.fake_role_c.name, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self.assertEqual(self.columns, columns) |         self.assertEqual(self.columns, columns) | ||||||
| @@ -210,10 +191,10 @@ class TestRoleCreate(TestRole): | |||||||
|     def test_role_create_or_show_not_exists(self): |     def test_role_create_or_show_not_exists(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--or-show', |             '--or-show', | ||||||
|             identity_fakes.role_name, |             self.fake_role_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('role_name', identity_fakes.role_name), |             ('role_name', self.fake_role_c.name), | ||||||
|             ('or_show', True), |             ('or_show', True), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
| @@ -225,7 +206,7 @@ class TestRoleCreate(TestRole): | |||||||
|  |  | ||||||
|         # RoleManager.create(name) |         # RoleManager.create(name) | ||||||
|         self.roles_mock.create.assert_called_with( |         self.roles_mock.create.assert_called_with( | ||||||
|             identity_fakes.role_name, |             self.fake_role_c.name, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self.assertEqual(self.columns, columns) |         self.assertEqual(self.columns, columns) | ||||||
| @@ -237,11 +218,7 @@ class TestRoleDelete(TestRole): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestRoleDelete, self).setUp() |         super(TestRoleDelete, self).setUp() | ||||||
|  |  | ||||||
|         self.roles_mock.get.return_value = fakes.FakeResource( |         self.roles_mock.get.return_value = self.fake_role | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.ROLE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         self.roles_mock.delete.return_value = None |         self.roles_mock.delete.return_value = None | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
| @@ -249,17 +226,17 @@ class TestRoleDelete(TestRole): | |||||||
|  |  | ||||||
|     def test_role_delete_no_options(self): |     def test_role_delete_no_options(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.role_name, |             self.fake_role.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('roles', [identity_fakes.role_name]), |             ('roles', [self.fake_role.name]), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
|         result = self.cmd.take_action(parsed_args) |         result = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         self.roles_mock.delete.assert_called_with( |         self.roles_mock.delete.assert_called_with( | ||||||
|             identity_fakes.role_id, |             self.fake_role.id, | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
|  |  | ||||||
| @@ -269,13 +246,7 @@ class TestRoleList(TestRole): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestRoleList, self).setUp() |         super(TestRoleList, self).setUp() | ||||||
|  |  | ||||||
|         self.roles_mock.list.return_value = [ |         self.roles_mock.list.return_value = [self.fake_role] | ||||||
|             fakes.FakeResource( |  | ||||||
|                 None, |  | ||||||
|                 copy.deepcopy(identity_fakes.ROLE), |  | ||||||
|                 loaded=True, |  | ||||||
|             ), |  | ||||||
|         ] |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = role.ListRole(self.app, None) |         self.cmd = role.ListRole(self.app, None) | ||||||
| @@ -295,8 +266,8 @@ class TestRoleList(TestRole): | |||||||
|         collist = ('ID', 'Name') |         collist = ('ID', 'Name') | ||||||
|         self.assertEqual(collist, columns) |         self.assertEqual(collist, columns) | ||||||
|         datalist = (( |         datalist = (( | ||||||
|             identity_fakes.role_id, |             self.fake_role.id, | ||||||
|             identity_fakes.role_name, |             self.fake_role.name, | ||||||
|         ), ) |         ), ) | ||||||
|         self.assertEqual(datalist, tuple(data)) |         self.assertEqual(datalist, tuple(data)) | ||||||
|  |  | ||||||
| @@ -313,25 +284,11 @@ class TestUserRoleList(TestRole): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestUserRoleList, self).setUp() |         super(TestUserRoleList, self).setUp() | ||||||
|  |  | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.PROJECT), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self.users_mock.get.return_value = fakes.FakeResource( |         self.users_mock.get.return_value = self.fake_user | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.USER), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self.roles_mock.roles_for_user.return_value = [ |         self.roles_mock.roles_for_user.return_value = [self.fake_role] | ||||||
|             fakes.FakeResource( |  | ||||||
|                 None, |  | ||||||
|                 copy.deepcopy(identity_fakes.ROLE), |  | ||||||
|                 loaded=True, |  | ||||||
|             ), |  | ||||||
|         ] |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = role.ListUserRole(self.app, None) |         self.cmd = role.ListUserRole(self.app, None) | ||||||
| @@ -366,17 +323,17 @@ class TestUserRoleList(TestRole): | |||||||
|         columns, data = self.cmd.take_action(parsed_args) |         columns, data = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         self.roles_mock.roles_for_user.assert_called_with( |         self.roles_mock.roles_for_user.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             identity_fakes.project_id, |             self.fake_project.id, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         collist = ('ID', 'Name', 'Project', 'User') |         collist = ('ID', 'Name', 'Project', 'User') | ||||||
|         self.assertEqual(collist, columns) |         self.assertEqual(collist, columns) | ||||||
|         datalist = (( |         datalist = (( | ||||||
|             identity_fakes.role_id, |             self.fake_role.id, | ||||||
|             identity_fakes.role_name, |             self.fake_role.name, | ||||||
|             identity_fakes.project_name, |             self.fake_project.name, | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ), ) |         ), ) | ||||||
|         self.assertEqual(datalist, tuple(data)) |         self.assertEqual(datalist, tuple(data)) | ||||||
|  |  | ||||||
| @@ -388,16 +345,12 @@ class TestUserRoleList(TestRole): | |||||||
|         self.ar_mock = mock.PropertyMock(return_value=auth_ref) |         self.ar_mock = mock.PropertyMock(return_value=auth_ref) | ||||||
|         type(self.app.client_manager).auth_ref = self.ar_mock |         type(self.app.client_manager).auth_ref = self.ar_mock | ||||||
|  |  | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.PROJECT_2), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--project', identity_fakes.PROJECT_2['name'], |             '--project', self.fake_project.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('project', identity_fakes.PROJECT_2['name']), |             ('project', self.fake_project.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -407,30 +360,26 @@ class TestUserRoleList(TestRole): | |||||||
|         columns, data = self.cmd.take_action(parsed_args) |         columns, data = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         self.roles_mock.roles_for_user.assert_called_with( |         self.roles_mock.roles_for_user.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             identity_fakes.PROJECT_2['id'], |             self.fake_project.id, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self.assertEqual(columns, columns) |         self.assertEqual(columns, columns) | ||||||
|         datalist = (( |         datalist = (( | ||||||
|             identity_fakes.role_id, |             self.fake_role.id, | ||||||
|             identity_fakes.role_name, |             self.fake_role.name, | ||||||
|             identity_fakes.PROJECT_2['name'], |             self.fake_project.name, | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ), ) |         ), ) | ||||||
|         self.assertEqual(datalist, tuple(data)) |         self.assertEqual(datalist, tuple(data)) | ||||||
|  |  | ||||||
|     def test_user_role_list_project_scoped_token(self): |     def test_user_role_list_project_scoped_token(self): | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.PROJECT_2), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--project', identity_fakes.PROJECT_2['name'], |             '--project', self.fake_project.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('project', identity_fakes.PROJECT_2['name']), |             ('project', self.fake_project.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -440,16 +389,16 @@ class TestUserRoleList(TestRole): | |||||||
|         columns, data = self.cmd.take_action(parsed_args) |         columns, data = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         self.roles_mock.roles_for_user.assert_called_with( |         self.roles_mock.roles_for_user.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             identity_fakes.PROJECT_2['id'], |             self.fake_project.id, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self.assertEqual(columns, columns) |         self.assertEqual(columns, columns) | ||||||
|         datalist = (( |         datalist = (( | ||||||
|             identity_fakes.role_id, |             self.fake_role.id, | ||||||
|             identity_fakes.role_name, |             self.fake_role.name, | ||||||
|             identity_fakes.PROJECT_2['name'], |             self.fake_project.name, | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ), ) |         ), ) | ||||||
|         self.assertEqual(datalist, tuple(data)) |         self.assertEqual(datalist, tuple(data)) | ||||||
|  |  | ||||||
| @@ -459,23 +408,11 @@ class TestRoleRemove(TestRole): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestRoleRemove, self).setUp() |         super(TestRoleRemove, self).setUp() | ||||||
|  |  | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.PROJECT), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self.users_mock.get.return_value = fakes.FakeResource( |         self.users_mock.get.return_value = self.fake_user | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.USER), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self.roles_mock.get.return_value = fakes.FakeResource( |         self.roles_mock.get.return_value = self.fake_role | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.ROLE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         self.roles_mock.remove_user_role.return_value = None |         self.roles_mock.remove_user_role.return_value = None | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
| @@ -483,14 +420,14 @@ class TestRoleRemove(TestRole): | |||||||
|  |  | ||||||
|     def test_role_remove(self): |     def test_role_remove(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--project', identity_fakes.project_name, |             '--project', self.fake_project.name, | ||||||
|             '--user', identity_fakes.user_name, |             '--user', self.fake_user.name, | ||||||
|             identity_fakes.role_name, |             self.fake_role.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('role', identity_fakes.role_name), |             ('role', self.fake_role.name), | ||||||
|             ('project', identity_fakes.project_name), |             ('project', self.fake_project.name), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -498,9 +435,9 @@ class TestRoleRemove(TestRole): | |||||||
|  |  | ||||||
|         # RoleManager.remove_user_role(user, role, tenant=None) |         # RoleManager.remove_user_role(user, role, tenant=None) | ||||||
|         self.roles_mock.remove_user_role.assert_called_with( |         self.roles_mock.remove_user_role.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             identity_fakes.role_id, |             self.fake_role.id, | ||||||
|             identity_fakes.project_id, |             self.fake_project.id, | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,14 +13,12 @@ | |||||||
| #   under the License. | #   under the License. | ||||||
| # | # | ||||||
|  |  | ||||||
| import copy |  | ||||||
|  |  | ||||||
| from openstackclient.identity.v2_0 import service | from openstackclient.identity.v2_0 import service | ||||||
| from openstackclient.tests import fakes |  | ||||||
| from openstackclient.tests.identity.v2_0 import fakes as identity_fakes | from openstackclient.tests.identity.v2_0 import fakes as identity_fakes | ||||||
|  |  | ||||||
|  |  | ||||||
| class TestService(identity_fakes.TestIdentityv2): | class TestService(identity_fakes.TestIdentityv2): | ||||||
|  |     fake_service = identity_fakes.FakeService.create_one_service() | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestService, self).setUp() |         super(TestService, self).setUp() | ||||||
| @@ -32,6 +30,7 @@ class TestService(identity_fakes.TestIdentityv2): | |||||||
|  |  | ||||||
| class TestServiceCreate(TestService): | class TestServiceCreate(TestService): | ||||||
|  |  | ||||||
|  |     fake_service_c = identity_fakes.FakeService.create_one_service() | ||||||
|     columns = ( |     columns = ( | ||||||
|         'description', |         'description', | ||||||
|         'id', |         'id', | ||||||
| @@ -39,30 +38,26 @@ class TestServiceCreate(TestService): | |||||||
|         'type', |         'type', | ||||||
|     ) |     ) | ||||||
|     datalist = ( |     datalist = ( | ||||||
|         identity_fakes.service_description, |         fake_service_c.description, | ||||||
|         identity_fakes.service_id, |         fake_service_c.id, | ||||||
|         identity_fakes.service_name, |         fake_service_c.name, | ||||||
|         identity_fakes.service_type, |         fake_service_c.type, | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestServiceCreate, self).setUp() |         super(TestServiceCreate, self).setUp() | ||||||
|  |  | ||||||
|         self.services_mock.create.return_value = fakes.FakeResource( |         self.services_mock.create.return_value = self.fake_service_c | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.SERVICE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = service.CreateService(self.app, None) |         self.cmd = service.CreateService(self.app, None) | ||||||
|  |  | ||||||
|     def test_service_create_with_type_positional(self): |     def test_service_create_with_type_positional(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.service_type, |             self.fake_service_c.type, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('type_or_name', identity_fakes.service_type), |             ('type_or_name', self.fake_service_c.type), | ||||||
|             ('type', None), |             ('type', None), | ||||||
|             ('description', None), |             ('description', None), | ||||||
|             ('name', None), |             ('name', None), | ||||||
| @@ -77,7 +72,7 @@ class TestServiceCreate(TestService): | |||||||
|         # ServiceManager.create(name, service_type, description) |         # ServiceManager.create(name, service_type, description) | ||||||
|         self.services_mock.create.assert_called_with( |         self.services_mock.create.assert_called_with( | ||||||
|             None, |             None, | ||||||
|             identity_fakes.service_type, |             self.fake_service_c.type, | ||||||
|             None, |             None, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
| @@ -86,12 +81,12 @@ class TestServiceCreate(TestService): | |||||||
|  |  | ||||||
|     def test_service_create_with_type_option(self): |     def test_service_create_with_type_option(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--type', identity_fakes.service_type, |             '--type', self.fake_service_c.type, | ||||||
|             identity_fakes.service_name, |             self.fake_service_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('type_or_name', identity_fakes.service_name), |             ('type_or_name', self.fake_service_c.name), | ||||||
|             ('type', identity_fakes.service_type), |             ('type', self.fake_service_c.type), | ||||||
|             ('description', None), |             ('description', None), | ||||||
|             ('name', None), |             ('name', None), | ||||||
|         ] |         ] | ||||||
| @@ -104,8 +99,8 @@ class TestServiceCreate(TestService): | |||||||
|  |  | ||||||
|         # ServiceManager.create(name, service_type, description) |         # ServiceManager.create(name, service_type, description) | ||||||
|         self.services_mock.create.assert_called_with( |         self.services_mock.create.assert_called_with( | ||||||
|             identity_fakes.service_name, |             self.fake_service_c.name, | ||||||
|             identity_fakes.service_type, |             self.fake_service_c.type, | ||||||
|             None, |             None, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
| @@ -114,14 +109,14 @@ class TestServiceCreate(TestService): | |||||||
|  |  | ||||||
|     def test_service_create_with_name_option(self): |     def test_service_create_with_name_option(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--name', identity_fakes.service_name, |             '--name', self.fake_service_c.name, | ||||||
|             identity_fakes.service_type, |             self.fake_service_c.type, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('type_or_name', identity_fakes.service_type), |             ('type_or_name', self.fake_service_c.type), | ||||||
|             ('type', None), |             ('type', None), | ||||||
|             ('description', None), |             ('description', None), | ||||||
|             ('name', identity_fakes.service_name), |             ('name', self.fake_service_c.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -132,8 +127,8 @@ class TestServiceCreate(TestService): | |||||||
|  |  | ||||||
|         # ServiceManager.create(name, service_type, description) |         # ServiceManager.create(name, service_type, description) | ||||||
|         self.services_mock.create.assert_called_with( |         self.services_mock.create.assert_called_with( | ||||||
|             identity_fakes.service_name, |             self.fake_service_c.name, | ||||||
|             identity_fakes.service_type, |             self.fake_service_c.type, | ||||||
|             None, |             None, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
| @@ -142,15 +137,15 @@ class TestServiceCreate(TestService): | |||||||
|  |  | ||||||
|     def test_service_create_description(self): |     def test_service_create_description(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--name', identity_fakes.service_name, |             '--name', self.fake_service_c.name, | ||||||
|             '--description', identity_fakes.service_description, |             '--description', self.fake_service_c.description, | ||||||
|             identity_fakes.service_type, |             self.fake_service_c.type, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('type_or_name', identity_fakes.service_type), |             ('type_or_name', self.fake_service_c.type), | ||||||
|             ('type', None), |             ('type', None), | ||||||
|             ('description', identity_fakes.service_description), |             ('description', self.fake_service_c.description), | ||||||
|             ('name', identity_fakes.service_name), |             ('name', self.fake_service_c.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -161,9 +156,9 @@ class TestServiceCreate(TestService): | |||||||
|  |  | ||||||
|         # ServiceManager.create(name, service_type, description) |         # ServiceManager.create(name, service_type, description) | ||||||
|         self.services_mock.create.assert_called_with( |         self.services_mock.create.assert_called_with( | ||||||
|             identity_fakes.service_name, |             self.fake_service_c.name, | ||||||
|             identity_fakes.service_type, |             self.fake_service_c.type, | ||||||
|             identity_fakes.service_description, |             self.fake_service_c.description, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self.assertEqual(self.columns, columns) |         self.assertEqual(self.columns, columns) | ||||||
| @@ -175,11 +170,7 @@ class TestServiceDelete(TestService): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestServiceDelete, self).setUp() |         super(TestServiceDelete, self).setUp() | ||||||
|  |  | ||||||
|         self.services_mock.get.return_value = fakes.FakeResource( |         self.services_mock.get.return_value = self.fake_service | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.SERVICE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         self.services_mock.delete.return_value = None |         self.services_mock.delete.return_value = None | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
| @@ -187,17 +178,17 @@ class TestServiceDelete(TestService): | |||||||
|  |  | ||||||
|     def test_service_delete_no_options(self): |     def test_service_delete_no_options(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.service_name, |             self.fake_service.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('services', [identity_fakes.service_name]), |             ('services', [self.fake_service.name]), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
|         result = self.cmd.take_action(parsed_args) |         result = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         self.services_mock.delete.assert_called_with( |         self.services_mock.delete.assert_called_with( | ||||||
|             identity_fakes.service_id, |             self.fake_service.id, | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
|  |  | ||||||
| @@ -207,13 +198,7 @@ class TestServiceList(TestService): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestServiceList, self).setUp() |         super(TestServiceList, self).setUp() | ||||||
|  |  | ||||||
|         self.services_mock.list.return_value = [ |         self.services_mock.list.return_value = [self.fake_service] | ||||||
|             fakes.FakeResource( |  | ||||||
|                 None, |  | ||||||
|                 copy.deepcopy(identity_fakes.SERVICE), |  | ||||||
|                 loaded=True, |  | ||||||
|             ), |  | ||||||
|         ] |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = service.ListService(self.app, None) |         self.cmd = service.ListService(self.app, None) | ||||||
| @@ -233,9 +218,9 @@ class TestServiceList(TestService): | |||||||
|         collist = ('ID', 'Name', 'Type') |         collist = ('ID', 'Name', 'Type') | ||||||
|         self.assertEqual(collist, columns) |         self.assertEqual(collist, columns) | ||||||
|         datalist = (( |         datalist = (( | ||||||
|             identity_fakes.service_id, |             self.fake_service.id, | ||||||
|             identity_fakes.service_name, |             self.fake_service.name, | ||||||
|             identity_fakes.service_type, |             self.fake_service.type, | ||||||
|         ), ) |         ), ) | ||||||
|         self.assertEqual(datalist, tuple(data)) |         self.assertEqual(datalist, tuple(data)) | ||||||
|  |  | ||||||
| @@ -258,10 +243,10 @@ class TestServiceList(TestService): | |||||||
|         collist = ('ID', 'Name', 'Type', 'Description') |         collist = ('ID', 'Name', 'Type', 'Description') | ||||||
|         self.assertEqual(collist, columns) |         self.assertEqual(collist, columns) | ||||||
|         datalist = (( |         datalist = (( | ||||||
|             identity_fakes.service_id, |             self.fake_service.id, | ||||||
|             identity_fakes.service_name, |             self.fake_service.name, | ||||||
|             identity_fakes.service_type, |             self.fake_service.type, | ||||||
|             identity_fakes.service_description, |             self.fake_service.description, | ||||||
|         ), ) |         ), ) | ||||||
|         self.assertEqual(datalist, tuple(data)) |         self.assertEqual(datalist, tuple(data)) | ||||||
|  |  | ||||||
| @@ -271,21 +256,17 @@ class TestServiceShow(TestService): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestServiceShow, self).setUp() |         super(TestServiceShow, self).setUp() | ||||||
|  |  | ||||||
|         self.services_mock.get.return_value = fakes.FakeResource( |         self.services_mock.get.return_value = self.fake_service | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.SERVICE), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = service.ShowService(self.app, None) |         self.cmd = service.ShowService(self.app, None) | ||||||
|  |  | ||||||
|     def test_service_show(self): |     def test_service_show(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.service_name, |             self.fake_service.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('service', identity_fakes.service_name), |             ('service', self.fake_service.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -296,15 +277,15 @@ class TestServiceShow(TestService): | |||||||
|  |  | ||||||
|         # ServiceManager.get(id) |         # ServiceManager.get(id) | ||||||
|         self.services_mock.get.assert_called_with( |         self.services_mock.get.assert_called_with( | ||||||
|             identity_fakes.service_name, |             self.fake_service.name, | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         collist = ('description', 'id', 'name', 'type') |         collist = ('description', 'id', 'name', 'type') | ||||||
|         self.assertEqual(collist, columns) |         self.assertEqual(collist, columns) | ||||||
|         datalist = ( |         datalist = ( | ||||||
|             identity_fakes.service_description, |             self.fake_service.description, | ||||||
|             identity_fakes.service_id, |             self.fake_service.id, | ||||||
|             identity_fakes.service_name, |             self.fake_service.name, | ||||||
|             identity_fakes.service_type, |             self.fake_service.type, | ||||||
|         ) |         ) | ||||||
|         self.assertEqual(datalist, data) |         self.assertEqual(datalist, data) | ||||||
|   | |||||||
| @@ -21,6 +21,9 @@ from openstackclient.tests.identity.v2_0 import fakes as identity_fakes | |||||||
|  |  | ||||||
| class TestToken(identity_fakes.TestIdentityv2): | class TestToken(identity_fakes.TestIdentityv2): | ||||||
|  |  | ||||||
|  |     fake_user = identity_fakes.FakeUser.create_one_user() | ||||||
|  |     fake_project = identity_fakes.FakeProject.create_one_project() | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestToken, self).setUp() |         super(TestToken, self).setUp() | ||||||
|  |  | ||||||
| @@ -57,8 +60,8 @@ class TestTokenIssue(TestToken): | |||||||
|         datalist = ( |         datalist = ( | ||||||
|             auth_ref.expires, |             auth_ref.expires, | ||||||
|             identity_fakes.token_id, |             identity_fakes.token_id, | ||||||
|             identity_fakes.project_id, |             'project-id', | ||||||
|             identity_fakes.user_id, |             'user-id', | ||||||
|         ) |         ) | ||||||
|         self.assertEqual(datalist, data) |         self.assertEqual(datalist, data) | ||||||
|  |  | ||||||
| @@ -85,7 +88,7 @@ class TestTokenIssue(TestToken): | |||||||
|         datalist = ( |         datalist = ( | ||||||
|             auth_ref.expires, |             auth_ref.expires, | ||||||
|             identity_fakes.token_id, |             identity_fakes.token_id, | ||||||
|             identity_fakes.user_id, |             'user-id', | ||||||
|         ) |         ) | ||||||
|         self.assertEqual(datalist, data) |         self.assertEqual(datalist, data) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,19 +13,23 @@ | |||||||
| #   under the License. | #   under the License. | ||||||
| # | # | ||||||
|  |  | ||||||
| import copy |  | ||||||
| import mock | import mock | ||||||
|  |  | ||||||
| from keystoneauth1 import exceptions as ks_exc | from keystoneauth1 import exceptions as ks_exc | ||||||
| from osc_lib import exceptions | from osc_lib import exceptions | ||||||
|  |  | ||||||
| from openstackclient.identity.v2_0 import user | from openstackclient.identity.v2_0 import user | ||||||
| from openstackclient.tests import fakes |  | ||||||
| from openstackclient.tests.identity.v2_0 import fakes as identity_fakes | from openstackclient.tests.identity.v2_0 import fakes as identity_fakes | ||||||
|  |  | ||||||
|  |  | ||||||
| class TestUser(identity_fakes.TestIdentityv2): | class TestUser(identity_fakes.TestIdentityv2): | ||||||
|  |  | ||||||
|  |     fake_project = identity_fakes.FakeProject.create_one_project() | ||||||
|  |     attr = { | ||||||
|  |         'tenantId': fake_project.id, | ||||||
|  |     } | ||||||
|  |     fake_user = identity_fakes.FakeUser.create_one_user(attr) | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestUser, self).setUp() |         super(TestUser, self).setUp() | ||||||
|  |  | ||||||
| @@ -40,6 +44,12 @@ class TestUser(identity_fakes.TestIdentityv2): | |||||||
|  |  | ||||||
| class TestUserCreate(TestUser): | class TestUserCreate(TestUser): | ||||||
|  |  | ||||||
|  |     fake_project_c = identity_fakes.FakeProject.create_one_project() | ||||||
|  |     attr = { | ||||||
|  |         'tenantId': fake_project_c.id, | ||||||
|  |     } | ||||||
|  |     fake_user_c = identity_fakes.FakeUser.create_one_user(attr) | ||||||
|  |  | ||||||
|     columns = ( |     columns = ( | ||||||
|         'email', |         'email', | ||||||
|         'enabled', |         'enabled', | ||||||
| @@ -48,39 +58,31 @@ class TestUserCreate(TestUser): | |||||||
|         'project_id', |         'project_id', | ||||||
|     ) |     ) | ||||||
|     datalist = ( |     datalist = ( | ||||||
|         identity_fakes.user_email, |         fake_user_c.email, | ||||||
|         True, |         True, | ||||||
|         identity_fakes.user_id, |         fake_user_c.id, | ||||||
|         identity_fakes.user_name, |         fake_user_c.name, | ||||||
|         identity_fakes.project_id, |         fake_project_c.id, | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestUserCreate, self).setUp() |         super(TestUserCreate, self).setUp() | ||||||
|  |  | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project_c | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.PROJECT), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self.users_mock.create.return_value = fakes.FakeResource( |         self.users_mock.create.return_value = self.fake_user_c | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.USER), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = user.CreateUser(self.app, None) |         self.cmd = user.CreateUser(self.app, None) | ||||||
|  |  | ||||||
|     def test_user_create_no_options(self): |     def test_user_create_no_options(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|             ('name', identity_fakes.user_name), |             ('name', self.fake_user_c.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -96,7 +98,7 @@ class TestUserCreate(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.create.assert_called_with( |         self.users_mock.create.assert_called_with( | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|             None, |             None, | ||||||
|             None, |             None, | ||||||
|             **kwargs |             **kwargs | ||||||
| @@ -108,10 +110,10 @@ class TestUserCreate(TestUser): | |||||||
|     def test_user_create_password(self): |     def test_user_create_password(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--password', 'secret', |             '--password', 'secret', | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', identity_fakes.user_name), |             ('name', self.fake_user_c.name), | ||||||
|             ('password_prompt', False), |             ('password_prompt', False), | ||||||
|             ('password', 'secret') |             ('password', 'secret') | ||||||
|         ] |         ] | ||||||
| @@ -129,7 +131,7 @@ class TestUserCreate(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.create.assert_called_with( |         self.users_mock.create.assert_called_with( | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|             'secret', |             'secret', | ||||||
|             None, |             None, | ||||||
|             **kwargs |             **kwargs | ||||||
| @@ -140,10 +142,10 @@ class TestUserCreate(TestUser): | |||||||
|     def test_user_create_password_prompt(self): |     def test_user_create_password_prompt(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--password-prompt', |             '--password-prompt', | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', identity_fakes.user_name), |             ('name', self.fake_user_c.name), | ||||||
|             ('password_prompt', True) |             ('password_prompt', True) | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
| @@ -163,7 +165,7 @@ class TestUserCreate(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.create.assert_called_with( |         self.users_mock.create.assert_called_with( | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|             'abc123', |             'abc123', | ||||||
|             None, |             None, | ||||||
|             **kwargs |             **kwargs | ||||||
| @@ -175,10 +177,10 @@ class TestUserCreate(TestUser): | |||||||
|     def test_user_create_email(self): |     def test_user_create_email(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--email', 'barney@example.com', |             '--email', 'barney@example.com', | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', identity_fakes.user_name), |             ('name', self.fake_user_c.name), | ||||||
|             ('email', 'barney@example.com'), |             ('email', 'barney@example.com'), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
| @@ -195,7 +197,7 @@ class TestUserCreate(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.create.assert_called_with( |         self.users_mock.create.assert_called_with( | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|             None, |             None, | ||||||
|             'barney@example.com', |             'barney@example.com', | ||||||
|             **kwargs |             **kwargs | ||||||
| @@ -206,27 +208,22 @@ class TestUserCreate(TestUser): | |||||||
|  |  | ||||||
|     def test_user_create_project(self): |     def test_user_create_project(self): | ||||||
|         # Return the new project |         # Return the new project | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project_c | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.PROJECT_2), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         # Set up to return an updated user |         # Set up to return an updated user | ||||||
|         USER_2 = copy.deepcopy(identity_fakes.USER) |         attr = { | ||||||
|         USER_2['tenantId'] = identity_fakes.PROJECT_2['id'] |             'tenantId': self.fake_project_c.id, | ||||||
|         self.users_mock.create.return_value = fakes.FakeResource( |         } | ||||||
|             None, |         user_2 = identity_fakes.FakeUser.create_one_user(attr) | ||||||
|             USER_2, |         self.users_mock.create.return_value = user_2 | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--project', identity_fakes.PROJECT_2['name'], |             '--project', self.fake_project_c.name, | ||||||
|             identity_fakes.user_name, |             user_2.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', identity_fakes.user_name), |             ('name', user_2.name), | ||||||
|             ('project', identity_fakes.PROJECT_2['name']), |             ('project', self.fake_project_c.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -238,11 +235,11 @@ class TestUserCreate(TestUser): | |||||||
|         # Set expected values |         # Set expected values | ||||||
|         kwargs = { |         kwargs = { | ||||||
|             'enabled': True, |             'enabled': True, | ||||||
|             'tenant_id': identity_fakes.PROJECT_2['id'], |             'tenant_id': self.fake_project_c.id, | ||||||
|         } |         } | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.create.assert_called_with( |         self.users_mock.create.assert_called_with( | ||||||
|             identity_fakes.user_name, |             user_2.name, | ||||||
|             None, |             None, | ||||||
|             None, |             None, | ||||||
|             **kwargs |             **kwargs | ||||||
| @@ -250,21 +247,21 @@ class TestUserCreate(TestUser): | |||||||
|  |  | ||||||
|         self.assertEqual(self.columns, columns) |         self.assertEqual(self.columns, columns) | ||||||
|         datalist = ( |         datalist = ( | ||||||
|             identity_fakes.user_email, |             user_2.email, | ||||||
|             True, |             True, | ||||||
|             identity_fakes.user_id, |             user_2.id, | ||||||
|             identity_fakes.user_name, |             user_2.name, | ||||||
|             identity_fakes.PROJECT_2['id'], |             self.fake_project_c.id, | ||||||
|         ) |         ) | ||||||
|         self.assertEqual(datalist, data) |         self.assertEqual(datalist, data) | ||||||
|  |  | ||||||
|     def test_user_create_enable(self): |     def test_user_create_enable(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--enable', |             '--enable', | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', identity_fakes.user_name), |             ('name', self.fake_user_c.name), | ||||||
|             ('enable', True), |             ('enable', True), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|         ] |         ] | ||||||
| @@ -282,7 +279,7 @@ class TestUserCreate(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.create.assert_called_with( |         self.users_mock.create.assert_called_with( | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|             None, |             None, | ||||||
|             None, |             None, | ||||||
|             **kwargs |             **kwargs | ||||||
| @@ -294,10 +291,10 @@ class TestUserCreate(TestUser): | |||||||
|     def test_user_create_disable(self): |     def test_user_create_disable(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--disable', |             '--disable', | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', identity_fakes.user_name), |             ('name', self.fake_user_c.name), | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', True), |             ('disable', True), | ||||||
|         ] |         ] | ||||||
| @@ -315,7 +312,7 @@ class TestUserCreate(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.create.assert_called_with( |         self.users_mock.create.assert_called_with( | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|             None, |             None, | ||||||
|             None, |             None, | ||||||
|             **kwargs |             **kwargs | ||||||
| @@ -331,18 +328,14 @@ class TestUserCreate(TestUser): | |||||||
|         # need to make this throw an exception... |         # need to make this throw an exception... | ||||||
|         self.users_mock.create.side_effect = _raise_conflict |         self.users_mock.create.side_effect = _raise_conflict | ||||||
|  |  | ||||||
|         self.users_mock.get.return_value = fakes.FakeResource( |         self.users_mock.get.return_value = self.fake_user_c | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.USER), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--or-show', |             '--or-show', | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', identity_fakes.user_name), |             ('name', self.fake_user_c.name), | ||||||
|             ('or_show', True), |             ('or_show', True), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
| @@ -353,7 +346,7 @@ class TestUserCreate(TestUser): | |||||||
|         columns, data = self.cmd.take_action(parsed_args) |         columns, data = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.get.assert_called_with(identity_fakes.user_name) |         self.users_mock.get.assert_called_with(self.fake_user_c.name) | ||||||
|  |  | ||||||
|         self.assertEqual(self.columns, columns) |         self.assertEqual(self.columns, columns) | ||||||
|         self.assertEqual(self.datalist, data) |         self.assertEqual(self.datalist, data) | ||||||
| @@ -361,10 +354,10 @@ class TestUserCreate(TestUser): | |||||||
|     def test_user_create_or_show_not_exists(self): |     def test_user_create_or_show_not_exists(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--or-show', |             '--or-show', | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', identity_fakes.user_name), |             ('name', self.fake_user_c.name), | ||||||
|             ('or_show', True), |             ('or_show', True), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
| @@ -381,7 +374,7 @@ class TestUserCreate(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.create(name, password, email, tenant_id=, enabled=) |         # UserManager.create(name, password, email, tenant_id=, enabled=) | ||||||
|         self.users_mock.create.assert_called_with( |         self.users_mock.create.assert_called_with( | ||||||
|             identity_fakes.user_name, |             self.fake_user_c.name, | ||||||
|             None, |             None, | ||||||
|             None, |             None, | ||||||
|             **kwargs |             **kwargs | ||||||
| @@ -396,11 +389,7 @@ class TestUserDelete(TestUser): | |||||||
|         super(TestUserDelete, self).setUp() |         super(TestUserDelete, self).setUp() | ||||||
|  |  | ||||||
|         # This is the return value for utils.find_resource() |         # This is the return value for utils.find_resource() | ||||||
|         self.users_mock.get.return_value = fakes.FakeResource( |         self.users_mock.get.return_value = self.fake_user | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.USER), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         self.users_mock.delete.return_value = None |         self.users_mock.delete.return_value = None | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
| @@ -408,57 +397,47 @@ class TestUserDelete(TestUser): | |||||||
|  |  | ||||||
|     def test_user_delete_no_options(self): |     def test_user_delete_no_options(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('users', [identity_fakes.user_id]), |             ('users', [self.fake_user.id]), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
|         result = self.cmd.take_action(parsed_args) |         result = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         self.users_mock.delete.assert_called_with( |         self.users_mock.delete.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
|  |  | ||||||
|  |  | ||||||
| class TestUserList(TestUser): | class TestUserList(TestUser): | ||||||
|  |  | ||||||
|  |     fake_project_l = identity_fakes.FakeProject.create_one_project() | ||||||
|  |     attr = { | ||||||
|  |         'tenantId': fake_project_l.id, | ||||||
|  |     } | ||||||
|  |     fake_user_l = identity_fakes.FakeUser.create_one_user(attr) | ||||||
|  |  | ||||||
|     columns = ( |     columns = ( | ||||||
|         'ID', |         'ID', | ||||||
|         'Name', |         'Name', | ||||||
|     ) |     ) | ||||||
|     datalist = ( |     datalist = ( | ||||||
|         ( |         ( | ||||||
|             identity_fakes.user_id, |             fake_user_l.id, | ||||||
|             identity_fakes.user_name, |             fake_user_l.name, | ||||||
|         ), |         ), | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestUserList, self).setUp() |         super(TestUserList, self).setUp() | ||||||
|  |  | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project_l | ||||||
|             None, |         self.projects_mock.list.return_value = [self.fake_project_l] | ||||||
|             copy.deepcopy(identity_fakes.PROJECT_2), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         self.projects_mock.list.return_value = [ |  | ||||||
|             fakes.FakeResource( |  | ||||||
|                 None, |  | ||||||
|                 copy.deepcopy(identity_fakes.PROJECT), |  | ||||||
|                 loaded=True, |  | ||||||
|             ), |  | ||||||
|         ] |  | ||||||
|  |  | ||||||
|         self.users_mock.list.return_value = [ |         self.users_mock.list.return_value = [self.fake_user_l] | ||||||
|             fakes.FakeResource( |  | ||||||
|                 None, |  | ||||||
|                 copy.deepcopy(identity_fakes.USER), |  | ||||||
|                 loaded=True, |  | ||||||
|             ), |  | ||||||
|         ] |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = user.ListUser(self.app, None) |         self.cmd = user.ListUser(self.app, None) | ||||||
| @@ -480,13 +459,13 @@ class TestUserList(TestUser): | |||||||
|  |  | ||||||
|     def test_user_list_project(self): |     def test_user_list_project(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--project', identity_fakes.project_id, |             '--project', self.fake_project_l.id, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('project', identity_fakes.project_id), |             ('project', self.fake_project_l.id), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|         project_id = identity_fakes.PROJECT_2['id'] |         project_id = self.fake_project_l.id | ||||||
|  |  | ||||||
|         # In base command class Lister in cliff, abstract method take_action() |         # In base command class Lister in cliff, abstract method take_action() | ||||||
|         # returns a tuple containing the column names and an iterable |         # returns a tuple containing the column names and an iterable | ||||||
| @@ -517,10 +496,10 @@ class TestUserList(TestUser): | |||||||
|         collist = ('ID', 'Name', 'Project', 'Email', 'Enabled') |         collist = ('ID', 'Name', 'Project', 'Email', 'Enabled') | ||||||
|         self.assertEqual(collist, columns) |         self.assertEqual(collist, columns) | ||||||
|         datalist = (( |         datalist = (( | ||||||
|             identity_fakes.user_id, |             self.fake_user_l.id, | ||||||
|             identity_fakes.user_name, |             self.fake_user_l.name, | ||||||
|             identity_fakes.project_name, |             self.fake_project_l.name, | ||||||
|             identity_fakes.user_email, |             self.fake_user_l.email, | ||||||
|             True, |             True, | ||||||
|         ), ) |         ), ) | ||||||
|         self.assertEqual(datalist, tuple(data)) |         self.assertEqual(datalist, tuple(data)) | ||||||
| @@ -531,23 +510,15 @@ class TestUserSet(TestUser): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestUserSet, self).setUp() |         super(TestUserSet, self).setUp() | ||||||
|  |  | ||||||
|         self.projects_mock.get.return_value = fakes.FakeResource( |         self.projects_mock.get.return_value = self.fake_project | ||||||
|             None, |         self.users_mock.get.return_value = self.fake_user | ||||||
|             copy.deepcopy(identity_fakes.PROJECT), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|         self.users_mock.get.return_value = fakes.FakeResource( |  | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.USER), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = user.SetUser(self.app, None) |         self.cmd = user.SetUser(self.app, None) | ||||||
|  |  | ||||||
|     def test_user_set_no_options(self): |     def test_user_set_no_options(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', None), |             ('name', None), | ||||||
| @@ -556,7 +527,7 @@ class TestUserSet(TestUser): | |||||||
|             ('project', None), |             ('project', None), | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -588,7 +559,7 @@ class TestUserSet(TestUser): | |||||||
|     def test_user_set_name(self): |     def test_user_set_name(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--name', 'qwerty', |             '--name', 'qwerty', | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', 'qwerty'), |             ('name', 'qwerty'), | ||||||
| @@ -597,7 +568,7 @@ class TestUserSet(TestUser): | |||||||
|             ('project', None), |             ('project', None), | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -610,7 +581,7 @@ class TestUserSet(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.update(user, **kwargs) |         # UserManager.update(user, **kwargs) | ||||||
|         self.users_mock.update.assert_called_with( |         self.users_mock.update.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             **kwargs |             **kwargs | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
| @@ -618,7 +589,7 @@ class TestUserSet(TestUser): | |||||||
|     def test_user_set_password(self): |     def test_user_set_password(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--password', 'secret', |             '--password', 'secret', | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', None), |             ('name', None), | ||||||
| @@ -628,7 +599,7 @@ class TestUserSet(TestUser): | |||||||
|             ('project', None), |             ('project', None), | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -636,7 +607,7 @@ class TestUserSet(TestUser): | |||||||
|  |  | ||||||
|         # UserManager.update_password(user, password) |         # UserManager.update_password(user, password) | ||||||
|         self.users_mock.update_password.assert_called_with( |         self.users_mock.update_password.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             'secret', |             'secret', | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
| @@ -644,7 +615,7 @@ class TestUserSet(TestUser): | |||||||
|     def test_user_set_password_prompt(self): |     def test_user_set_password_prompt(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--password-prompt', |             '--password-prompt', | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', None), |             ('name', None), | ||||||
| @@ -654,7 +625,7 @@ class TestUserSet(TestUser): | |||||||
|             ('project', None), |             ('project', None), | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -665,7 +636,7 @@ class TestUserSet(TestUser): | |||||||
|  |  | ||||||
|         # UserManager.update_password(user, password) |         # UserManager.update_password(user, password) | ||||||
|         self.users_mock.update_password.assert_called_with( |         self.users_mock.update_password.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             'abc123', |             'abc123', | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
| @@ -673,7 +644,7 @@ class TestUserSet(TestUser): | |||||||
|     def test_user_set_email(self): |     def test_user_set_email(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--email', 'barney@example.com', |             '--email', 'barney@example.com', | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', None), |             ('name', None), | ||||||
| @@ -682,7 +653,7 @@ class TestUserSet(TestUser): | |||||||
|             ('project', None), |             ('project', None), | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -695,24 +666,24 @@ class TestUserSet(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.update(user, **kwargs) |         # UserManager.update(user, **kwargs) | ||||||
|         self.users_mock.update.assert_called_with( |         self.users_mock.update.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             **kwargs |             **kwargs | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
|  |  | ||||||
|     def test_user_set_project(self): |     def test_user_set_project(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--project', identity_fakes.project_id, |             '--project', self.fake_project.id, | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', None), |             ('name', None), | ||||||
|             ('password', None), |             ('password', None), | ||||||
|             ('email', None), |             ('email', None), | ||||||
|             ('project', identity_fakes.project_id), |             ('project', self.fake_project.id), | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -720,15 +691,15 @@ class TestUserSet(TestUser): | |||||||
|  |  | ||||||
|         # UserManager.update_tenant(user, tenant) |         # UserManager.update_tenant(user, tenant) | ||||||
|         self.users_mock.update_tenant.assert_called_with( |         self.users_mock.update_tenant.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             identity_fakes.project_id, |             self.fake_project.id, | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
|  |  | ||||||
|     def test_user_set_enable(self): |     def test_user_set_enable(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--enable', |             '--enable', | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', None), |             ('name', None), | ||||||
| @@ -737,7 +708,7 @@ class TestUserSet(TestUser): | |||||||
|             ('project', None), |             ('project', None), | ||||||
|             ('enable', True), |             ('enable', True), | ||||||
|             ('disable', False), |             ('disable', False), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -749,7 +720,7 @@ class TestUserSet(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.update(user, **kwargs) |         # UserManager.update(user, **kwargs) | ||||||
|         self.users_mock.update.assert_called_with( |         self.users_mock.update.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             **kwargs |             **kwargs | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
| @@ -757,7 +728,7 @@ class TestUserSet(TestUser): | |||||||
|     def test_user_set_disable(self): |     def test_user_set_disable(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             '--disable', |             '--disable', | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('name', None), |             ('name', None), | ||||||
| @@ -766,7 +737,7 @@ class TestUserSet(TestUser): | |||||||
|             ('project', None), |             ('project', None), | ||||||
|             ('enable', False), |             ('enable', False), | ||||||
|             ('disable', True), |             ('disable', True), | ||||||
|             ('user', identity_fakes.user_name), |             ('user', self.fake_user.name), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -778,7 +749,7 @@ class TestUserSet(TestUser): | |||||||
|         } |         } | ||||||
|         # UserManager.update(user, **kwargs) |         # UserManager.update(user, **kwargs) | ||||||
|         self.users_mock.update.assert_called_with( |         self.users_mock.update.assert_called_with( | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             **kwargs |             **kwargs | ||||||
|         ) |         ) | ||||||
|         self.assertIsNone(result) |         self.assertIsNone(result) | ||||||
| @@ -789,21 +760,17 @@ class TestUserShow(TestUser): | |||||||
|     def setUp(self): |     def setUp(self): | ||||||
|         super(TestUserShow, self).setUp() |         super(TestUserShow, self).setUp() | ||||||
|  |  | ||||||
|         self.users_mock.get.return_value = fakes.FakeResource( |         self.users_mock.get.return_value = self.fake_user | ||||||
|             None, |  | ||||||
|             copy.deepcopy(identity_fakes.USER), |  | ||||||
|             loaded=True, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         # Get the command object to test |         # Get the command object to test | ||||||
|         self.cmd = user.ShowUser(self.app, None) |         self.cmd = user.ShowUser(self.app, None) | ||||||
|  |  | ||||||
|     def test_user_show(self): |     def test_user_show(self): | ||||||
|         arglist = [ |         arglist = [ | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|         ] |         ] | ||||||
|         verifylist = [ |         verifylist = [ | ||||||
|             ('user', identity_fakes.user_id), |             ('user', self.fake_user.id), | ||||||
|         ] |         ] | ||||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) |         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||||
|  |  | ||||||
| @@ -812,15 +779,15 @@ class TestUserShow(TestUser): | |||||||
|         # data to be shown. |         # data to be shown. | ||||||
|         columns, data = self.cmd.take_action(parsed_args) |         columns, data = self.cmd.take_action(parsed_args) | ||||||
|  |  | ||||||
|         self.users_mock.get.assert_called_with(identity_fakes.user_id) |         self.users_mock.get.assert_called_with(self.fake_user.id) | ||||||
|  |  | ||||||
|         collist = ('email', 'enabled', 'id', 'name', 'project_id') |         collist = ('email', 'enabled', 'id', 'name', 'project_id') | ||||||
|         self.assertEqual(collist, columns) |         self.assertEqual(collist, columns) | ||||||
|         datalist = ( |         datalist = ( | ||||||
|             identity_fakes.user_email, |             self.fake_user.email, | ||||||
|             True, |             True, | ||||||
|             identity_fakes.user_id, |             self.fake_user.id, | ||||||
|             identity_fakes.user_name, |             self.fake_user.name, | ||||||
|             identity_fakes.project_id, |             self.fake_project.id, | ||||||
|         ) |         ) | ||||||
|         self.assertEqual(datalist, data) |         self.assertEqual(datalist, data) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user