From 0ff28d5251f9e25eafdc628e29b093b7c694ea48 Mon Sep 17 00:00:00 2001 From: Steve Martinelli Date: Tue, 16 Dec 2014 15:16:41 -0500 Subject: Allow user list to filter by project Adds a --project filter to `os user list`, which really calls the role assignment manager behind the scenes. Change-Id: I57a75018f12ed3acdf8f6611b6b58bd974f91da2 Closes-Bug: #1397251 --- openstackclient/tests/identity/v3/test_user.py | 47 ++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'openstackclient/tests') diff --git a/openstackclient/tests/identity/v3/test_user.py b/openstackclient/tests/identity/v3/test_user.py index dd517e19..35dd98ee 100644 --- a/openstackclient/tests/identity/v3/test_user.py +++ b/openstackclient/tests/identity/v3/test_user.py @@ -44,6 +44,11 @@ class TestUser(identity_fakes.TestIdentityv3): self.users_mock = self.app.client_manager.identity.users self.users_mock.reset_mock() + # Shortcut for RoleAssignmentManager Mock + self.role_assignments_mock = self.app.client_manager.identity.\ + role_assignments + self.role_assignments_mock.reset_mock() + class TestUserCreate(TestUser): @@ -511,6 +516,21 @@ class TestUserList(TestUser): loaded=True, ) + self.projects_mock.get.return_value = fakes.FakeResource( + None, + copy.deepcopy(identity_fakes.PROJECT), + loaded=True, + ) + + self.role_assignments_mock.list.return_value = [ + fakes.FakeResource( + None, + copy.deepcopy( + identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID), + loaded=True, + ) + ] + # Get the command object to test self.cmd = user.ListUser(self.app, None) @@ -643,6 +663,33 @@ class TestUserList(TestUser): ), ) self.assertEqual(datalist, tuple(data)) + def test_user_list_project(self): + arglist = [ + '--project', identity_fakes.project_name, + ] + verifylist = [ + ('project', identity_fakes.project_name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + + kwargs = { + 'project': identity_fakes.project_id, + } + + self.role_assignments_mock.list.assert_called_with(**kwargs) + self.users_mock.get.assert_called_with(identity_fakes.user_id) + + collist = ['ID', 'Name'] + self.assertEqual(columns, collist) + datalist = (( + identity_fakes.user_id, + identity_fakes.user_name, + ), ) + self.assertEqual(datalist, tuple(data)) + class TestUserSet(TestUser): -- cgit v1.2.1