From be554fef99673b229c948312bb53c223cfb9324d Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mon, 10 Oct 2022 15:39:44 +0200 Subject: [PATCH] cli: drop nvr sorting from list-builds We've never prperly supported this option as it would need rpm compare algorithm and there is also no other place in koji where we compare NVRs. More sense makes to order builds by id (age) by default. Related: https://pagure.io/koji/issue/3416 --- cli/koji_cli/commands.py | 6 +++--- tests/test_cli/test_list_builds.py | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py index 443a6242..01006162 100644 --- a/cli/koji_cli/commands.py +++ b/cli/koji_cli/commands.py @@ -3315,7 +3315,7 @@ def anon_handle_list_builds(goptions, session, args): parser.add_option("--volume", help="List builds by volume ID") parser.add_option("-k", "--sort-key", action="append", metavar='FIELD', default=[], help="Sort the list by the named field. Allowed sort keys: " - "nvr, owner_name, state") + "build_id, owner_name, state") parser.add_option("-r", "--reverse", action="store_true", default=False, help="Print the list in reverse order") parser.add_option("--quiet", action="store_true", default=goptions.quiet, @@ -3404,10 +3404,10 @@ def anon_handle_list_builds(goptions, session, args): else: parser.error("Filter must be provided for list") if not options.sort_key: - options.sort_key = ['nvr'] + options.sort_key = ['build_id'] else: for s_key in options.sort_key: - if s_key not in ['nvr', 'owner_name', 'state']: + if s_key not in ['build_id', 'owner_name', 'state']: warn("Invalid sort_key: %s." % s_key) data = sorted(data, key=lambda b: [b.get(k) for k in options.sort_key], diff --git a/tests/test_cli/test_list_builds.py b/tests/test_cli/test_list_builds.py index 068efe97..8659bde9 100644 --- a/tests/test_cli/test_list_builds.py +++ b/tests/test_cli/test_list_builds.py @@ -195,9 +195,9 @@ build-test-1-12 kojiadmin CANCE @mock.patch('sys.stdout', new_callable=StringIO) def test_list_builds_opt_owner_sorted_nvr(self, stdout): - expected_output = """build-test-1-12 kojiadmin CANCELED -test-build-11-12 kojiadmin COMPLETE + expected_output = """test-build-11-12 kojiadmin COMPLETE test-build-8-12 kojiadmin DELETED +build-test-1-12 kojiadmin CANCELED """ self.session.getUser.return_value = self.user_info self.session.listBuilds.return_value = [self.list_build[0], self.list_build[1], @@ -261,9 +261,9 @@ build-test-1-12 kojiadmin CANCE def test_list_builds_opt_prefix_sorted_owner(self, stdout): expected_output = """test-build-11-12 kojiadmin COMPLETE test-build-8-12 kojiadmin DELETED -build-test-1-12 kojiadmin CANCELED test-build-11-9 kojitest COMPLETE test-build-10-12 kojitest CANCELED +build-test-1-12 kojiadmin CANCELED """ self.session.listBuilds.return_value = self.list_build rv = anon_handle_list_builds(self.options, self.session, ['--prefix', 'test-build', @@ -280,11 +280,11 @@ test-build-10-12 kojitest CANCE @mock.patch('sys.stdout', new_callable=StringIO) def test_list_builds_opt_prefix_sorted_owner_nvr(self, stdout): - expected_output = """build-test-1-12 kojiadmin CANCELED -test-build-11-12 kojiadmin COMPLETE + expected_output = """test-build-11-12 kojiadmin COMPLETE test-build-8-12 kojiadmin DELETED -test-build-10-12 kojitest CANCELED test-build-11-9 kojitest COMPLETE +test-build-10-12 kojitest CANCELED +build-test-1-12 kojiadmin CANCELED """ self.session.listBuilds.return_value = self.list_build rv = anon_handle_list_builds(self.options, self.session, ['--prefix', 'test-build', @@ -302,9 +302,9 @@ test-build-11-9 kojitest COMPL @mock.patch('sys.stdout', new_callable=StringIO) def test_list_builds_opt_owner_reverse(self, stdout): - expected_output = """test-build-8-12 kojiadmin DELETED + expected_output = """build-test-1-12 kojiadmin CANCELED +test-build-8-12 kojiadmin DELETED test-build-11-12 kojiadmin COMPLETE -build-test-1-12 kojiadmin CANCELED """ self.session.getUser.return_value = self.user_info self.session.listBuilds.return_value = [self.list_build[0], self.list_build[1], @@ -376,8 +376,8 @@ test-build-8-12 kojiadmin DELET @mock.patch('sys.stdout', new_callable=StringIO) def test_list_builds_volume_not_int(self, stdout): volume = 'test-volume' - expected_output = """build-test-1-12 kojiadmin CANCELED -test-build-11-12 kojiadmin COMPLETE + expected_output = """test-build-11-12 kojiadmin COMPLETE +build-test-1-12 kojiadmin CANCELED """ self.session.listBuilds.return_value = [self.list_build[0], self.list_build[4]] self.session.listVolumes.return_value = [{'id': 0, 'name': 'DEFAULT'}, @@ -396,8 +396,8 @@ test-build-11-12 kojiadmin COMPL @mock.patch('sys.stdout', new_callable=StringIO) def test_list_builds_volume_int(self, stdout): volume = 1 - expected_output = """build-test-1-12 kojiadmin CANCELED -test-build-11-12 kojiadmin COMPLETE + expected_output = """test-build-11-12 kojiadmin COMPLETE +build-test-1-12 kojiadmin CANCELED """ self.session.listBuilds.return_value = [self.list_build[0], self.list_build[4]] rv = anon_handle_list_builds(self.options, self.session, ['--volume', volume])