Merge "Add functional tests for role assignment list"

This commit is contained in:
Zuul
2025-09-10 11:02:58 +00:00
committed by Gerrit Code Review

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)