PR#1797: hub: build for policy check should be build_id in host.tagBuild
Merges #1797 https://pagure.io/koji/pull-request/1797 Fixes: #1796 hub: host.tagBuild failed in 1.19 https://pagure.io/koji/issue/1796
This commit is contained in:
commit
a365c9ad54
2 changed files with 71 additions and 5 deletions
|
|
@ -9119,15 +9119,18 @@ class ImportedTest(koji.policy.BaseSimpleTest):
|
|||
True if any of them lack a buildroot (strict)"""
|
||||
name = 'imported'
|
||||
def run(self, data):
|
||||
rpms = context.handlers.call('listRPMs', buildID=data['build'])
|
||||
#no test args
|
||||
for rpminfo in rpms:
|
||||
build_info = data.get('build')
|
||||
if not build_info:
|
||||
raise koji.GenericError('policy data must contain a build')
|
||||
build_id = get_build(build_info, strict=True)['id']
|
||||
# no test args
|
||||
for rpminfo in list_rpms(buildID=build_id):
|
||||
if rpminfo['buildroot_id'] is None:
|
||||
return True
|
||||
for archive in list_archives(buildID=data['build']):
|
||||
for archive in list_archives(buildID=build_id):
|
||||
if archive['buildroot_id'] is None:
|
||||
return True
|
||||
#otherwise...
|
||||
# otherwise...
|
||||
return False
|
||||
|
||||
class ChildTaskTest(koji.policy.BoolTest):
|
||||
|
|
|
|||
|
|
@ -296,3 +296,66 @@ class TestBuildTypeTest(unittest.TestCase):
|
|||
data = {'build': 123, 'btypes': set(['rpm'])}
|
||||
self.assertTrue(obj.run(data))
|
||||
self.get_build_type.assert_not_called()
|
||||
|
||||
|
||||
class TestImportedTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.list_rpms = mock.patch('kojihub.list_rpms').start()
|
||||
self.list_archives = mock.patch('kojihub.list_archives').start()
|
||||
self.get_build = mock.patch('kojihub.get_build').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_no_build(self):
|
||||
self.get_build.side_effect = koji.GenericError
|
||||
obj = kojihub.ImportedTest('imported - no build')
|
||||
data = {}
|
||||
with self.assertRaises(koji.GenericError) as cm:
|
||||
obj.run(data)
|
||||
self.assertEqual(cm.exception.args[0],
|
||||
'policy data must contain a build')
|
||||
self.get_build.assert_not_called()
|
||||
|
||||
def test_invalid_build(self):
|
||||
self.get_build.side_effect = koji.GenericError
|
||||
obj = kojihub.ImportedTest('imported - invalid build')
|
||||
data = {'build': 'nvr-1-1'}
|
||||
with self.assertRaises(koji.GenericError):
|
||||
obj.run(data)
|
||||
self.get_build.assert_called_once_with('nvr-1-1', strict=True)
|
||||
|
||||
def test_imported_rpm(self):
|
||||
binfo = {'id': 1, 'name': 'nvr-1-1'}
|
||||
self.get_build.return_value = binfo
|
||||
self.list_rpms.return_value = [{'id': 1, 'buildroot_id': None}]
|
||||
obj = kojihub.ImportedTest('imported - imported rpm')
|
||||
data = {'build': 'nvr-1-1'}
|
||||
self.assertTrue(obj.run(data))
|
||||
self.get_build.assert_called_once_with('nvr-1-1', strict=True)
|
||||
self.list_rpms.assert_called_once_with(buildID=1)
|
||||
self.list_archives.assert_not_called()
|
||||
|
||||
def test_imported_archive(self):
|
||||
binfo = {'id': 1, 'name': 'nvr-1-1'}
|
||||
self.get_build.return_value = binfo
|
||||
self.list_rpms.return_value = [{'id': 1, 'buildroot_id': 1}]
|
||||
self.list_archives.return_value = [{'id': 1, 'buildroot_id': None}]
|
||||
obj = kojihub.ImportedTest('imported - imported archive')
|
||||
data = {'build': 'nvr-1-1'}
|
||||
self.assertTrue(obj.run(data))
|
||||
self.get_build.assert_called_once_with('nvr-1-1', strict=True)
|
||||
self.list_rpms.assert_called_once_with(buildID=1)
|
||||
self.list_archives.assert_called_once_with(buildID=1)
|
||||
|
||||
def test_false(self):
|
||||
binfo = {'id': 1, 'name': 'nvr-1-1'}
|
||||
self.get_build.return_value = binfo
|
||||
self.list_rpms.return_value = [{'id': 1, 'buildroot_id': 1}]
|
||||
self.list_archives.return_value = [{'id': 1, 'buildroot_id': 2}]
|
||||
obj = kojihub.ImportedTest('imported - false test')
|
||||
data = {'build': 'nvr-1-1'}
|
||||
self.assertFalse(obj.run(data))
|
||||
self.get_build.assert_called_once_with('nvr-1-1', strict=True)
|
||||
self.list_rpms.assert_called_once_with(buildID=1)
|
||||
self.list_archives.assert_called_once_with(buildID=1)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue