@@ -62,6 +62,47 @@ def test_role_assignment_list_group(self):
6262 items = self .parse_listing (raw_output )
6363 self .assert_table_structure (items , self .ROLE_ASSIGNMENT_LIST_HEADERS )
6464
65+ def test_role_assignment_list_group_domain (self ):
66+ domain_name_A = self ._create_dummy_domain ()
67+ domain_name_B = self ._create_dummy_domain ()
68+ role_name = self ._create_dummy_role ()
69+ group_name = 'group_name'
70+ self .openstack (f'group create --domain { domain_name_A } { group_name } ' )
71+ self .addCleanup (
72+ self .openstack ,
73+ f'group delete --domain { domain_name_A } { group_name } ' ,
74+ )
75+ self .openstack (f'group create --domain { domain_name_B } { group_name } ' )
76+ self .addCleanup (
77+ self .openstack ,
78+ f'group delete --domain { domain_name_B } { group_name } ' ,
79+ )
80+ raw_output = self .openstack (
81+ 'role add '
82+ f'--project { self .project_name } '
83+ f'--group { group_name } --group-domain { domain_name_A } '
84+ f'{ role_name } '
85+ )
86+ self .addCleanup (
87+ self .openstack ,
88+ 'role remove '
89+ f'--project { self .project_name } '
90+ f'--group { group_name } --group-domain { domain_name_A } '
91+ f'{ role_name } ' ,
92+ )
93+ self .assertEqual ('' , raw_output .strip ())
94+ raw_output = self .openstack (
95+ f'role assignment list '
96+ f'--group { group_name } --group-domain { domain_name_A } '
97+ )
98+ items = self .parse_listing (raw_output )
99+ self .assert_table_structure (items , self .ROLE_ASSIGNMENT_LIST_HEADERS )
100+ raw_output = self .openstack (
101+ f'role assignment list '
102+ f'--group { group_name } --group-domain { domain_name_B } '
103+ )
104+ self .assertEqual ('' , raw_output .strip ())
105+
65106 def test_role_assignment_list_domain (self ):
66107 role_name = self ._create_dummy_role ()
67108 username = self ._create_dummy_user ()
@@ -85,6 +126,89 @@ def test_role_assignment_list_domain(self):
85126 items = self .parse_listing (raw_output )
86127 self .assert_table_structure (items , self .ROLE_ASSIGNMENT_LIST_HEADERS )
87128
129+ def test_role_assignment_list_user_domain (self ):
130+ domain_name_A = self ._create_dummy_domain ()
131+ domain_name_B = self ._create_dummy_domain ()
132+ role_name = self ._create_dummy_role ()
133+ username = 'username'
134+ self .openstack (f'user create --domain { domain_name_A } { username } ' )
135+ self .addCleanup (
136+ self .openstack , f'user delete --domain { domain_name_A } { username } '
137+ )
138+ self .openstack (f'user create --domain { domain_name_B } { username } ' )
139+ self .addCleanup (
140+ self .openstack , f'user delete --domain { domain_name_B } { username } '
141+ )
142+ raw_output = self .openstack (
143+ 'role add '
144+ f'--project { self .project_name } '
145+ f'--user { username } --user-domain { domain_name_A } '
146+ f'{ role_name } '
147+ )
148+ self .addCleanup (
149+ self .openstack ,
150+ 'role remove '
151+ f'--project { self .project_name } '
152+ f'--user { username } --user-domain { domain_name_A } '
153+ f'{ role_name } ' ,
154+ )
155+ self .assertEqual ('' , raw_output .strip ())
156+ raw_output = self .openstack (
157+ f'role assignment list '
158+ f'--user { username } --user-domain { domain_name_A } '
159+ )
160+ items = self .parse_listing (raw_output )
161+ self .assert_table_structure (items , self .ROLE_ASSIGNMENT_LIST_HEADERS )
162+ raw_output = self .openstack (
163+ f'role assignment list '
164+ f'--user { username } --user-domain { domain_name_B } '
165+ )
166+ self .assertEqual ('' , raw_output .strip ())
167+
168+ def test_role_assignment_list_role_domain (self ):
169+ domain_name_A = self ._create_dummy_domain ()
170+ domain_name_B = self ._create_dummy_domain ()
171+ role_name = 'role_name'
172+ username = 'username'
173+ self .openstack (f'role create --domain { domain_name_A } { role_name } ' )
174+ self .addCleanup (
175+ self .openstack , f'role delete --domain { domain_name_A } { role_name } '
176+ )
177+ self .openstack (f'role create --domain { domain_name_B } { role_name } ' )
178+ self .addCleanup (
179+ self .openstack , f'role delete --domain { domain_name_B } { role_name } '
180+ )
181+ self .openstack (f'user create --domain { domain_name_A } { username } ' )
182+ self .addCleanup (
183+ self .openstack , f'user delete --domain { domain_name_A } { username } '
184+ )
185+ raw_output = self .openstack (
186+ 'role add '
187+ f'--user { username } --domain { domain_name_A } '
188+ f'--role-domain { domain_name_A } '
189+ f'{ role_name } '
190+ )
191+ self .addCleanup (
192+ self .openstack ,
193+ 'role remove '
194+ f'--user { username } --domain { domain_name_A } '
195+ f'--role-domain { domain_name_A } '
196+ f'{ role_name } ' ,
197+ )
198+ self .assertEqual ('' , raw_output .strip ())
199+ raw_output = self .openstack (
200+ f'role assignment list '
201+ f'--role { role_name } --role-domain { domain_name_A } '
202+ )
203+ items = self .parse_listing (raw_output )
204+ self .assert_table_structure (items , self .ROLE_ASSIGNMENT_LIST_HEADERS )
205+ raw_output = self .openstack (
206+ f'role assignment list '
207+ f'--role { role_name } --role-domain { domain_name_B } '
208+ )
209+ items = self .parse_listing (raw_output )
210+ self .assertEqual ('' , raw_output .strip ())
211+
88212 def test_role_assignment_list_project (self ):
89213 role_name = self ._create_dummy_role ()
90214 username = self ._create_dummy_user ()
@@ -108,6 +232,56 @@ def test_role_assignment_list_project(self):
108232 items = self .parse_listing (raw_output )
109233 self .assert_table_structure (items , self .ROLE_ASSIGNMENT_LIST_HEADERS )
110234
235+ def test_role_assignment_list_project_domain (self ):
236+ domain_name_A = self ._create_dummy_domain ()
237+ domain_name_B = self ._create_dummy_domain ()
238+ role_name = self ._create_dummy_role ()
239+ project_name = 'project_name'
240+ username = 'username'
241+ self .openstack (
242+ f'project create --domain { domain_name_A } { project_name } '
243+ )
244+ self .addCleanup (
245+ self .openstack ,
246+ f'project delete --domain { domain_name_A } { project_name } ' ,
247+ )
248+ self .openstack (
249+ f'project create --domain { domain_name_B } { project_name } '
250+ )
251+ self .addCleanup (
252+ self .openstack ,
253+ f'project delete --domain { domain_name_B } { project_name } ' ,
254+ )
255+ self .openstack (f'user create --domain { domain_name_A } { username } ' )
256+ self .addCleanup (
257+ self .openstack , f'user delete --domain { domain_name_A } { username } '
258+ )
259+ raw_output = self .openstack (
260+ 'role add '
261+ f'--project { project_name } --project-domain { domain_name_A } '
262+ f'--user { username } --user-domain { domain_name_A } '
263+ f'{ role_name } '
264+ )
265+ self .addCleanup (
266+ self .openstack ,
267+ 'role remove '
268+ f'--project { project_name } --project-domain { domain_name_A } '
269+ f'--user { username } --user-domain { domain_name_A } '
270+ f'{ role_name } ' ,
271+ )
272+ self .assertEqual ('' , raw_output .strip ())
273+ raw_output = self .openstack (
274+ f'role assignment list '
275+ f'--project { project_name } --project-domain { domain_name_A } '
276+ )
277+ items = self .parse_listing (raw_output )
278+ self .assert_table_structure (items , self .ROLE_ASSIGNMENT_LIST_HEADERS )
279+ raw_output = self .openstack (
280+ f'role assignment list '
281+ f'--project { project_name } --project-domain { domain_name_B } '
282+ )
283+ self .assertEqual ('' , raw_output .strip ())
284+
111285 def test_role_assignment_list_effective (self ):
112286 raw_output = self .openstack ('role assignment list --effective' )
113287 items = self .parse_listing (raw_output )
0 commit comments