From e3c591423d234c32a503310f6890b0303faf3572 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Oct 26 2022 12:47:13 +0000 Subject: 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 --- diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py index 279a64f..29837a4 100644 --- a/cli/koji_cli/commands.py +++ b/cli/koji_cli/commands.py @@ -3301,7 +3301,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, @@ -3390,10 +3390,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 068efe9..8659bde 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])