summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorSteve Martinelli <stevemar@ca.ibm.com>2014-12-16 15:16:41 -0500
committerSteve Martinelli <stevemar@ca.ibm.com>2015-01-08 16:49:17 -0500
commit0ff28d5251f9e25eafdc628e29b093b7c694ea48 (patch)
tree3022b120a13987101adde3260e3623ce86303020 /openstackclient/tests
parentcbb26724fccdbbb76913a8f2994768dea3046480 (diff)
downloadpython-openstackclient-0ff28d5251f9e25eafdc628e29b093b7c694ea48.tar.gz
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
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/identity/v3/test_user.py47
1 files changed, 47 insertions, 0 deletions
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):