Skip to content

Commit a8aad9f

Browse files
committed
Add system role assignment tests for users and groups
I was writing some additional functionality and noticed these tests were missing. This commit adds tests for adding and removing system role assignments for users and groups. Change-Id: I30fdc6ec55e1eb1cfa55f4cbf92c3f001d89865f
1 parent 8aed5fe commit a8aad9f

1 file changed

Lines changed: 137 additions & 0 deletions

File tree

openstackclient/tests/unit/identity/v3/test_role.py

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,40 @@ def setUp(self):
102102
# Get the command object to test
103103
self.cmd = role.AddRole(self.app, None)
104104

105+
def test_role_add_user_system(self):
106+
arglist = [
107+
'--user', identity_fakes.user_name,
108+
'--system', 'all',
109+
identity_fakes.role_name,
110+
]
111+
if self._is_inheritance_testcase():
112+
arglist.append('--inherited')
113+
verifylist = [
114+
('user', identity_fakes.user_name),
115+
('group', None),
116+
('system', 'all'),
117+
('domain', None),
118+
('project', None),
119+
('role', identity_fakes.role_name),
120+
('inherited', self._is_inheritance_testcase()),
121+
]
122+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
123+
124+
result = self.cmd.take_action(parsed_args)
125+
126+
# Set expected values
127+
kwargs = {
128+
'user': identity_fakes.user_id,
129+
'system': 'all',
130+
'os_inherit_extension_inherited': self._is_inheritance_testcase(),
131+
}
132+
# RoleManager.grant(role, user=, group=, domain=, project=)
133+
self.roles_mock.grant.assert_called_with(
134+
identity_fakes.role_id,
135+
**kwargs
136+
)
137+
self.assertIsNone(result)
138+
105139
def test_role_add_user_domain(self):
106140
arglist = [
107141
'--user', identity_fakes.user_name,
@@ -168,6 +202,40 @@ def test_role_add_user_project(self):
168202
)
169203
self.assertIsNone(result)
170204

205+
def test_role_add_group_system(self):
206+
arglist = [
207+
'--group', identity_fakes.group_name,
208+
'--system', 'all',
209+
identity_fakes.role_name,
210+
]
211+
if self._is_inheritance_testcase():
212+
arglist.append('--inherited')
213+
verifylist = [
214+
('user', None),
215+
('group', identity_fakes.group_name),
216+
('system', 'all'),
217+
('domain', None),
218+
('project', None),
219+
('role', identity_fakes.role_name),
220+
('inherited', self._is_inheritance_testcase()),
221+
]
222+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
223+
224+
result = self.cmd.take_action(parsed_args)
225+
226+
# Set expected values
227+
kwargs = {
228+
'group': identity_fakes.group_id,
229+
'system': 'all',
230+
'os_inherit_extension_inherited': self._is_inheritance_testcase(),
231+
}
232+
# RoleManager.grant(role, user=, group=, domain=, project=)
233+
self.roles_mock.grant.assert_called_with(
234+
identity_fakes.role_id,
235+
**kwargs
236+
)
237+
self.assertIsNone(result)
238+
171239
def test_role_add_group_domain(self):
172240
arglist = [
173241
'--group', identity_fakes.group_name,
@@ -744,6 +812,40 @@ def setUp(self):
744812
# Get the command object to test
745813
self.cmd = role.RemoveRole(self.app, None)
746814

815+
def test_role_remove_user_system(self):
816+
arglist = [
817+
'--user', identity_fakes.user_name,
818+
'--system', 'all',
819+
identity_fakes.role_name
820+
]
821+
if self._is_inheritance_testcase():
822+
arglist.append('--inherited')
823+
verifylist = [
824+
('user', identity_fakes.user_name),
825+
('group', None),
826+
('system', 'all'),
827+
('domain', None),
828+
('project', None),
829+
('role', identity_fakes.role_name),
830+
('inherited', self._is_inheritance_testcase()),
831+
]
832+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
833+
834+
result = self.cmd.take_action(parsed_args)
835+
836+
# Set expected values
837+
kwargs = {
838+
'user': identity_fakes.user_id,
839+
'system': 'all',
840+
'os_inherit_extension_inherited': self._is_inheritance_testcase(),
841+
}
842+
# RoleManager.revoke(role, user=, group=, domain=, project=)
843+
self.roles_mock.revoke.assert_called_with(
844+
identity_fakes.role_id,
845+
**kwargs
846+
)
847+
self.assertIsNone(result)
848+
747849
def test_role_remove_user_domain(self):
748850
arglist = [
749851
'--user', identity_fakes.user_name,
@@ -810,6 +912,41 @@ def test_role_remove_user_project(self):
810912
)
811913
self.assertIsNone(result)
812914

915+
def test_role_remove_group_system(self):
916+
arglist = [
917+
'--group', identity_fakes.group_name,
918+
'--system', 'all',
919+
identity_fakes.role_name,
920+
]
921+
if self._is_inheritance_testcase():
922+
arglist.append('--inherited')
923+
verifylist = [
924+
('user', None),
925+
('group', identity_fakes.group_name),
926+
('system', 'all'),
927+
('domain', None),
928+
('project', None),
929+
('role', identity_fakes.role_name),
930+
('role', identity_fakes.role_name),
931+
('inherited', self._is_inheritance_testcase()),
932+
]
933+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
934+
935+
result = self.cmd.take_action(parsed_args)
936+
937+
# Set expected values
938+
kwargs = {
939+
'group': identity_fakes.group_id,
940+
'system': 'all',
941+
'os_inherit_extension_inherited': self._is_inheritance_testcase(),
942+
}
943+
# RoleManager.revoke(role, user=, group=, domain=, project=)
944+
self.roles_mock.revoke.assert_called_with(
945+
identity_fakes.role_id,
946+
**kwargs
947+
)
948+
self.assertIsNone(result)
949+
813950
def test_role_remove_group_domain(self):
814951
arglist = [
815952
'--group', identity_fakes.group_name,

0 commit comments

Comments
 (0)