PR#3542: cli: fix nvr sorting in list-builds
Merges #3542 https://pagure.io/koji/pull-request/3542 Fixes: #3416 https://pagure.io/koji/issue/3416 [koji list-builds] the output NVR should be sorted by version instead by string
This commit is contained in:
commit
143b5ecf3f
2 changed files with 15 additions and 15 deletions
|
|
@ -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],
|
||||
|
|
|
|||
|
|
@ -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])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue