promoteBuild: reformat error messages

This commit is contained in:
Yu Ming Zhu 2023-12-14 18:43:53 +00:00
parent 3dbe136187
commit 8a64c93d05
2 changed files with 15 additions and 11 deletions

View file

@ -16002,12 +16002,12 @@ def _clean_draft_link(promoted_build):
def _promote_build(build, user=None, force=False):
"""promote a draft build to a regular one"""
binfo = get_build(build, strict=True)
err_fmt = f"Cannot promote build {binfo['nvr']}. Reason: {{}}"
if not binfo.get('draft'):
raise koji.GenericError(f"Not a draft build: {binfo['nvr']}")
raise koji.GenericError(err_fmt.format("Not a draft build"))
state = koji.BUILD_STATES[binfo['state']]
if state != 'COMPLETE':
raise koji.GenericError(f"Cannot promote build - {binfo['nvr']}."
f' Reason: state ({state}) is not COMPLETE.')
raise koji.GenericError(err_fmt.format(f'state ({state}) is not COMPLETE.'))
old_release = binfo['release']
target_release = koji.parse_target_release(old_release)
@ -16015,11 +16015,11 @@ def _promote_build(build, user=None, force=False):
# drop id to get build by NVR
target_build = dslice(binfo, ['name', 'version'])
target_build['release'] = target_release
old_build = get_build(target_build)
old_build = get_build(target_build, strict=False)
if old_build:
raise koji.GenericError(
f"Cannot promote to an existing target build: {old_build['nvr']}(#{old_build['id']})"
)
raise koji.GenericError(err_fmt.format(
f"Target build exists: {old_build['nvr']}(#{old_build['id']})"
))
user = get_user(user, strict=True)

View file

@ -113,7 +113,10 @@ class TestPromoteBuild(unittest.TestCase):
with self.assertRaises(koji.GenericError) as cm:
self.exports.promoteBuild('a-regular-build')
self.assertEqual(str(cm.exception), "Not a draft build: testnvr")
self.assertEqual(
str(cm.exception),
"Cannot promote build testnvr. Reason: Not a draft build"
)
self.assertEqual(len(self.updates), 0)
def test_promote_build_target_release(self):
@ -123,6 +126,7 @@ class TestPromoteBuild(unittest.TestCase):
'version': 'bar',
# bad delimiter
'release': 'tgtrel@draft_1',
'nvr': 'testnvr',
'extra': {
'draft': {
'promoted': False,
@ -171,7 +175,7 @@ class TestPromoteBuild(unittest.TestCase):
self.exports.promoteBuild('a-regular-build')
self.assertEqual(
str(cm.exception),
f"Cannot promote build - {draft['nvr']}. Reason: state (BUILDING) is not COMPLETE."
f"Cannot promote build {draft['nvr']}. Reason: state (BUILDING) is not COMPLETE."
)
self.assertEqual(len(self.updates), 0)
@ -186,11 +190,11 @@ class TestPromoteBuild(unittest.TestCase):
self.exports.promoteBuild('a-regular-build')
self.assertEqual(
str(cm.exception),
"Cannot promote to an existing target build: oldnvr(#any)"
"Cannot promote build testnvr. Reason: Target build exists: oldnvr(#any)"
)
self.assertEqual(len(self.updates), 0)
self.get_build.assert_called_with({
'name': 'foo',
'version': 'bar',
'release': 'tgtrel'
})
}, strict=False)