Add 'pkgset_koji_builds' option to include extra builds in a compose
This PR adds new pkgset_koji_builds configuration option. This option allows setting list of extra Koji build NVRs which will be included in a compose. This is useful in two cases: a) It allows generating standard composes with few packages update to certain version to test how the compose behaves when the package is updated for real. b) It allows generating compose consisting only from particular builds when pkgset_koji_tag = '' or None. This is useful when one want to regenerate the compose with packages which are not tagged in single Koji tag. This is very useful for ODCS when reproducing old composes. Merges: https://pagure.io/pungi/pull-request/1049 Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
This commit is contained in:
parent
2a65b8fb7d
commit
37c89dfde6
7 changed files with 184 additions and 5 deletions
|
|
@ -370,6 +370,52 @@ class TestKojiPkgset(PkgsetCompareMixin, helpers.PungiTestCase):
|
|||
{'x86_64': ['rpms/bash-debuginfo@4.3.42@4.fc24@x86_64',
|
||||
'rpms/bash@4.3.42@4.fc24@x86_64']})
|
||||
|
||||
def test_extra_builds_attribute(self):
|
||||
self._touch_files([
|
||||
'rpms/pungi@4.1.3@3.fc25@noarch',
|
||||
'rpms/pungi@4.1.3@3.fc25@src',
|
||||
'rpms/bash@4.3.42@4.fc24@i686',
|
||||
'rpms/bash@4.3.42@4.fc24@x86_64',
|
||||
'rpms/bash@4.3.42@4.fc24@src',
|
||||
'rpms/bash-debuginfo@4.3.42@4.fc24@i686',
|
||||
'rpms/bash-debuginfo@4.3.42@4.fc24@x86_64',
|
||||
])
|
||||
|
||||
# Return "pungi" RPMs and builds using "get_latest_rpms" which gets
|
||||
# them from Koji multiCall.
|
||||
extra_rpms = [rpm for rpm in self.tagged_rpms[0]
|
||||
if rpm["name"] == "pungi"]
|
||||
extra_builds = [build for build in self.tagged_rpms[1]
|
||||
if build["package_name"] == "pungi"]
|
||||
self.koji_wrapper.retrying_multicall_map.side_effect = [
|
||||
extra_builds, [extra_rpms]]
|
||||
|
||||
# Do not return "pungi" RPMs and builds using the listTaggedRPMs, so
|
||||
# we can be sure "pungi" gets into compose using the `extra_builds`.
|
||||
self.koji_wrapper.koji_proxy.listTaggedRPMS.return_value = [
|
||||
[rpm for rpm in self.tagged_rpms[0] if rpm["name"] != "pungi"],
|
||||
[b for b in self.tagged_rpms[1] if b["package_name"] != "pungi"]]
|
||||
|
||||
pkgset = pkgsets.KojiPackageSet(
|
||||
self.koji_wrapper, [None],
|
||||
extra_builds=["pungi-4.1.3-3.fc25"])
|
||||
|
||||
result = pkgset.populate('f25', logfile=self.topdir + '/pkgset.log')
|
||||
|
||||
self.assertEqual(
|
||||
self.koji_wrapper.koji_proxy.mock_calls,
|
||||
[mock.call.listTaggedRPMS('f25', event=None, inherit=True, latest=True)])
|
||||
|
||||
self.assertPkgsetEqual(result,
|
||||
{'src': ['rpms/pungi@4.1.3@3.fc25@src',
|
||||
'rpms/bash@4.3.42@4.fc24@src'],
|
||||
'noarch': ['rpms/pungi@4.1.3@3.fc25@noarch'],
|
||||
'i686': ['rpms/bash@4.3.42@4.fc24@i686',
|
||||
'rpms/bash-debuginfo@4.3.42@4.fc24@i686'],
|
||||
'x86_64': ['rpms/bash@4.3.42@4.fc24@x86_64',
|
||||
'rpms/bash-debuginfo@4.3.42@4.fc24@x86_64']})
|
||||
|
||||
|
||||
@mock.patch('kobo.pkgset.FileCache', new=MockFileCache)
|
||||
class TestMergePackageSets(PkgsetCompareMixin, unittest.TestCase):
|
||||
def test_merge_in_another_arch(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue