can only promote COMPLETE draft build

This commit is contained in:
Yu Ming Zhu 2023-10-13 05:10:01 +00:00
parent 6fe42b6212
commit 44d59ecbc7
2 changed files with 43 additions and 0 deletions

View file

@ -45,11 +45,13 @@ class TestPromoteBuild(unittest.TestCase):
'name': 'foo',
'version': 'bar',
'release': 'dftrel_1',
'nvr': 'testnvr',
'extra': {
'draft': {
'promoted': False,
'target_release': 'tgtrel_1'
}},
'state': 1,
'draft': True,
'volume_id': 99,
'volume_name': 'X',
@ -123,6 +125,7 @@ class TestPromoteBuild(unittest.TestCase):
'promoted': False
# no target_release
}},
'state': 1,
'draft': True,
'volume_id': 99,
'volume_name': 'X',
@ -140,6 +143,39 @@ class TestPromoteBuild(unittest.TestCase):
self.assertIsNone(ret)
self.assertEqual(len(self.updates), 0)
def test_promote_build_not_completed(self):
draft = {
'id': 1,
'name': 'foo',
'version': 'bar',
'release': 'dftrel_1',
'nvr': 'testnvr',
'extra': {
'draft': {
'promoted': False
# no target_release
}},
'draft': True,
'state': 0,
'volume_id': 99,
'volume_name': 'X',
'task_id': 222
}
self.get_build.return_value = draft
with self.assertRaises(koji.GenericError) as cm:
self.exports.promoteBuild('a-regular-build', strict=True)
self.assertEqual(
str(cm.exception),
f"Cannot promote build - {draft['nvr']}. Reason: state (BUILDING) is not COMPLETE."
)
self.assertEqual(len(self.updates), 0)
ret = self.exports.promoteBuild('a-regular-build', strict=False)
self.assertIsNone(ret)
self.assertEqual(len(self.updates), 0)
def test_promote_build_target_build_exists(self):
old = {
'id': 'any'