Add functional tests for role assignment list

Implements tests for `role assignment list` domain options.

The options covered are:
- `--user-domain`
- `--group-domain`
- `--project-domain`
- `--role-domain`

Change-Id: Ia42dcc337df0de7d5a93250696b807038a2d9d0e
Signed-off-by: doburn <kwon2852@gmail.com>
This commit is contained in:
doburn
2025-08-23 21:25:55 +09:00
parent 94e447af80
commit a5a6ec27e5

View File

@@ -62,6 +62,47 @@ class RoleAssignmentTests(common.IdentityTests):
items = self.parse_listing(raw_output)
self.assert_table_structure(items, self.ROLE_ASSIGNMENT_LIST_HEADERS)
def test_role_assignment_list_group_domain(self):
domain_name_A = self._create_dummy_domain()
domain_name_B = self._create_dummy_domain()
role_name = self._create_dummy_role()
group_name = 'group_name'
self.openstack(f'group create --domain {domain_name_A} {group_name}')
self.addCleanup(
self.openstack,
f'group delete --domain {domain_name_A} {group_name}',
)
self.openstack(f'group create --domain {domain_name_B} {group_name}')
self.addCleanup(
self.openstack,
f'group delete --domain {domain_name_B} {group_name}',
)
raw_output = self.openstack(
'role add '
f'--project {self.project_name} '
f'--group {group_name} --group-domain {domain_name_A} '
f'{role_name}'
)
self.addCleanup(
self.openstack,
'role remove '
f'--project {self.project_name} '
f'--group {group_name} --group-domain {domain_name_A} '
f'{role_name}',
)
self.assertEqual('', raw_output.strip())
raw_output = self.openstack(
f'role assignment list '
f'--group {group_name} --group-domain {domain_name_A} '
)
items = self.parse_listing(raw_output)
self.assert_table_structure(items, self.ROLE_ASSIGNMENT_LIST_HEADERS)
raw_output = self.openstack(
f'role assignment list '
f'--group {group_name} --group-domain {domain_name_B} '
)
self.assertEqual('', raw_output.strip())
def test_role_assignment_list_domain(self):
role_name = self._create_dummy_role()
username = self._create_dummy_user()
@@ -85,6 +126,89 @@ class RoleAssignmentTests(common.IdentityTests):
items = self.parse_listing(raw_output)
self.assert_table_structure(items, self.ROLE_ASSIGNMENT_LIST_HEADERS)
def test_role_assignment_list_user_domain(self):
domain_name_A = self._create_dummy_domain()
domain_name_B = self._create_dummy_domain()
role_name = self._create_dummy_role()
username = 'username'
self.openstack(f'user create --domain {domain_name_A} {username}')
self.addCleanup(
self.openstack, f'user delete --domain {domain_name_A} {username}'
)
self.openstack(f'user create --domain {domain_name_B} {username}')
self.addCleanup(
self.openstack, f'user delete --domain {domain_name_B} {username}'
)
raw_output = self.openstack(
'role add '
f'--project {self.project_name} '
f'--user {username} --user-domain {domain_name_A} '
f'{role_name}'
)
self.addCleanup(
self.openstack,
'role remove '
f'--project {self.project_name} '
f'--user {username} --user-domain {domain_name_A} '
f'{role_name}',
)
self.assertEqual('', raw_output.strip())
raw_output = self.openstack(
f'role assignment list '
f'--user {username} --user-domain {domain_name_A} '
)
items = self.parse_listing(raw_output)
self.assert_table_structure(items, self.ROLE_ASSIGNMENT_LIST_HEADERS)
raw_output = self.openstack(
f'role assignment list '
f'--user {username} --user-domain {domain_name_B} '
)
self.assertEqual('', raw_output.strip())
def test_role_assignment_list_role_domain(self):
domain_name_A = self._create_dummy_domain()
domain_name_B = self._create_dummy_domain()
role_name = 'role_name'
username = 'username'
self.openstack(f'role create --domain {domain_name_A} {role_name}')
self.addCleanup(
self.openstack, f'role delete --domain {domain_name_A} {role_name}'
)
self.openstack(f'role create --domain {domain_name_B} {role_name}')
self.addCleanup(
self.openstack, f'role delete --domain {domain_name_B} {role_name}'
)
self.openstack(f'user create --domain {domain_name_A} {username}')
self.addCleanup(
self.openstack, f'user delete --domain {domain_name_A} {username}'
)
raw_output = self.openstack(
'role add '
f'--user {username} --domain {domain_name_A} '
f'--role-domain {domain_name_A} '
f'{role_name}'
)
self.addCleanup(
self.openstack,
'role remove '
f'--user {username} --domain {domain_name_A} '
f'--role-domain {domain_name_A} '
f'{role_name}',
)
self.assertEqual('', raw_output.strip())
raw_output = self.openstack(
f'role assignment list '
f'--role {role_name} --role-domain {domain_name_A}'
)
items = self.parse_listing(raw_output)
self.assert_table_structure(items, self.ROLE_ASSIGNMENT_LIST_HEADERS)
raw_output = self.openstack(
f'role assignment list '
f'--role {role_name} --role-domain {domain_name_B}'
)
items = self.parse_listing(raw_output)
self.assertEqual('', raw_output.strip())
def test_role_assignment_list_project(self):
role_name = self._create_dummy_role()
username = self._create_dummy_user()
@@ -108,6 +232,56 @@ class RoleAssignmentTests(common.IdentityTests):
items = self.parse_listing(raw_output)
self.assert_table_structure(items, self.ROLE_ASSIGNMENT_LIST_HEADERS)
def test_role_assignment_list_project_domain(self):
domain_name_A = self._create_dummy_domain()
domain_name_B = self._create_dummy_domain()
role_name = self._create_dummy_role()
project_name = 'project_name'
username = 'username'
self.openstack(
f'project create --domain {domain_name_A} {project_name}'
)
self.addCleanup(
self.openstack,
f'project delete --domain {domain_name_A} {project_name}',
)
self.openstack(
f'project create --domain {domain_name_B} {project_name}'
)
self.addCleanup(
self.openstack,
f'project delete --domain {domain_name_B} {project_name}',
)
self.openstack(f'user create --domain {domain_name_A} {username}')
self.addCleanup(
self.openstack, f'user delete --domain {domain_name_A} {username}'
)
raw_output = self.openstack(
'role add '
f'--project {project_name} --project-domain {domain_name_A} '
f'--user {username} --user-domain {domain_name_A} '
f'{role_name}'
)
self.addCleanup(
self.openstack,
'role remove '
f'--project {project_name} --project-domain {domain_name_A} '
f'--user {username} --user-domain {domain_name_A} '
f'{role_name}',
)
self.assertEqual('', raw_output.strip())
raw_output = self.openstack(
f'role assignment list '
f'--project {project_name} --project-domain {domain_name_A} '
)
items = self.parse_listing(raw_output)
self.assert_table_structure(items, self.ROLE_ASSIGNMENT_LIST_HEADERS)
raw_output = self.openstack(
f'role assignment list '
f'--project {project_name} --project-domain {domain_name_B} '
)
self.assertEqual('', raw_output.strip())
def test_role_assignment_list_effective(self):
raw_output = self.openstack('role assignment list --effective')
items = self.parse_listing(raw_output)