From 8732cf04990cb10284476b9315abf63462a7d472 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: May 11 2022 07:53:49 +0000 Subject: PR#3336: Fix list-permissions ordering and header Merges #3336 https://pagure.io/koji/pull-request/3336 Fixes: #3335 https://pagure.io/koji/issue/3335 cli: list-permissions is not sorted and missing header separator --- diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py index 05daf2a..0c7c618 100644 --- a/cli/koji_cli/commands.py +++ b/cli/koji_cli/commands.py @@ -2151,6 +2151,7 @@ def handle_list_permissions(goptions, session, args): perms.append({'name': p['name'], 'description': p['description']}) if perms: longest_perm = max([len(perm['name']) for perm in perms]) + perms = sorted(perms, key=lambda x: x['name']) else: longest_perm = 8 if longest_perm < len('Permission name '): @@ -2161,6 +2162,7 @@ def handle_list_permissions(goptions, session, args): if perms and perms[0].get('description'): hdr += " Description".ljust(53) print(hdr) + print(len(hdr) * '-') for perm in perms: line = '{permname:<{longest_perm}}' line = line.format(longest_perm=longest_perm, permname=perm['name']) diff --git a/tests/test_cli/test_list_permissions.py b/tests/test_cli/test_list_permissions.py index c678c4e..4f0afd1 100644 --- a/tests/test_cli/test_list_permissions.py +++ b/tests/test_cli/test_list_permissions.py @@ -75,6 +75,7 @@ class TestListPermissions(utils.CliTestCase): def test_handle_list_permissions_empty_perms(self, stdout): """Test handle_list_permissions that perms is empty""" expected = """Permission name +------------------ """ self.options.quiet = False self.session.getUser.return_value = self.userinfo @@ -92,12 +93,12 @@ class TestListPermissions(utils.CliTestCase): def test_handle_list_permissions_user_perms(self, stdout): """Test handle_list_permissions user permissions""" expected = """admin +appliance build -repo image livecd -appliance long-permission-appliance +repo """ perms = [p['name'] for p in self.all_perms[::1]] self.session.getUserPerms.return_value = perms @@ -133,13 +134,14 @@ repo """Test handle_list_permissions all permissions and quiet is false""" self.options.quiet = False expected = """Permission name Description +------------------------------------------------------------------------------ admin admin-description +appliance appliance-description build build-description -repo repo-description image image-description livecd livecd-description -appliance appliance-description long-permission-appliance long-permission-appliance-description +repo repo-description """ self.session.getAllPerms.return_value = self.all_perms handle_list_permissions(self.options, self.session, []) @@ -156,12 +158,13 @@ long-permission-appliance long-permission-appliance-description """Test handle_list_permissions all permissions, length perms shorter than eight""" self.options.quiet = False expected = """Permission name Description +----------------------------------------------------------------------- admin admin-description +appliance appliance-description build build-description -repo repo-description image image-description livecd livecd-description -appliance appliance-description +repo repo-description """ self.session.getAllPerms.return_value = self.all_perms[:-1] handle_list_permissions(self.options, self.session, [])