Fix backward compatibility

Fixes: https://pagure.io/koji/issue/3715
This commit is contained in:
Jana Cupova 2023-03-21 13:52:36 +01:00 committed by Tomas Kopecek
parent 002891e1ac
commit 9a6daef300
2 changed files with 27 additions and 1 deletions

View file

@ -6137,6 +6137,11 @@ def handle_cancel(goptions, session, args):
if len(args) == 0:
parser.error("You must specify at least one task id or build")
activate_session(session, goptions)
older_hub = False
hub_version = session.getKojiVersion()
v = tuple([int(x) for x in hub_version.split('.')])
if v < (1, 33, 0):
older_hub = True
tlist = []
blist = []
for arg in args:
@ -6163,7 +6168,10 @@ def handle_cancel(goptions, session, args):
for task_id in tlist:
results.append(remote_fn(task_id, **opts))
for build in blist:
results.append(m.cancelBuild(build, strict=True))
if not older_hub:
results.append(m.cancelBuild(build, strict=True))
else:
results.append(m.cancelBuild(build))
err = False
for r in results:

View file

@ -32,6 +32,7 @@ class TestCancel(utils.CliTestCase):
%s: error: {message}
""" % (self.progname, self.progname)
self.session.getKojiVersion.return_value = '1.33.0'
def test_anon_cancel(self):
args = ['123']
@ -152,6 +153,23 @@ No such build: '%s'
self.session.cancelTaskFull.assert_not_called()
self.session.cancelBuild.assert_called_once_with(args[1], strict=True)
def test_non_exist_build_and_task_older_hub(self):
self.session.getKojiVersion.return_value = '1.32.0'
args = ['11111', 'nvr-1-30.1']
expected_warn = """No such task: %s
""" % (args[0])
mcall = self.session.multicall.return_value.__enter__.return_value
mcall.cancelTask.return_value = self.__vm(
{'faultCode': 1000, 'faultString': 'No such task: %s' % args[0]})
mcall.cancelBuild.return_value = self.__vm(False)
rv = handle_cancel(self.options, self.session, args)
self.assertEqual(rv, 1)
self.assert_console_message(self.stderr, expected_warn)
self.activate_session_mock.assert_called_once_with(self.session, self.options)
self.session.cancelTask.assert_called_once_with(int(args[0]))
self.session.cancelTaskFull.assert_not_called()
self.session.cancelBuild.assert_called_once_with(args[1])
def test_cancel_help(self):
self.assert_help(
handle_cancel,