diff --git a/pungi/phases/extra_files.py b/pungi/phases/extra_files.py index 5d85f6b9..5bee75b1 100644 --- a/pungi/phases/extra_files.py +++ b/pungi/phases/extra_files.py @@ -71,10 +71,11 @@ def copy_extra_files(compose, cfg, arch, variant, package_sets, checksum_type=No rpms = [] pattern = scm_dict["repo"] % var_dict pkg_name, pkg_arch = split_name_arch(pattern) - for pkgset_file in package_sets[arch]: - pkg_obj = package_sets[arch][pkgset_file] - if pkg_is_rpm(pkg_obj) and _pkg_matches(pkg_obj, pkg_name, pkg_arch): - rpms.append(pkg_obj.file_path) + for package_set in package_sets: + for pkgset_file in package_set[arch]: + pkg_obj = package_set[arch][pkgset_file] + if pkg_is_rpm(pkg_obj) and _pkg_matches(pkg_obj, pkg_name, pkg_arch): + rpms.append(pkg_obj.file_path) if not rpms: raise RuntimeError('No package matching %s in the package set.' % pattern) scm_dict["repo"] = rpms diff --git a/pungi/phases/gather/__init__.py b/pungi/phases/gather/__init__.py index c10f4c8e..44621917 100644 --- a/pungi/phases/gather/__init__.py +++ b/pungi/phases/gather/__init__.py @@ -653,17 +653,13 @@ def get_system_release_packages(compose, arch, variant, package_sets): packages = set() filter_packages = set() - if not package_sets or not package_sets.get(arch, None): - return packages, filter_packages - - package_set = package_sets[arch] - system_release_packages = set() - for i in package_set: - pkg = package_set[i] - if pkg.is_system_release: - system_release_packages.add(pkg) + for pkgset in package_sets or []: + for i in pkgset.get(arch, []): + pkg = pkgset[arch][i] + if pkg.is_system_release: + system_release_packages.add(pkg) if not system_release_packages: return packages, filter_packages diff --git a/pungi/phases/gather/link.py b/pungi/phases/gather/link.py index 4931c6cd..04dcf344 100644 --- a/pungi/phases/gather/link.py +++ b/pungi/phases/gather/link.py @@ -53,9 +53,16 @@ def get_package_path(filename, hashed_directory=False): return filename +def _find_by_path(pkg_sets, arch, path): + """Find object in an list of package sets by path.""" + for pkg_set in pkg_sets: + if path in pkg_set[arch]: + return pkg_set[arch][path] + raise RuntimeError("Path %r not found in any package set." % path) + + def link_files(compose, arch, variant, pkg_map, pkg_sets, manifest, srpm_map={}): # srpm_map instance is shared between link_files() runs - pkg_set = pkg_sets[arch] msg = "Linking packages (arch: %s, variant: %s)" % (arch, variant) compose.log_info("[BEGIN] %s" % msg) @@ -77,7 +84,7 @@ def link_files(compose, arch, variant, pkg_map, pkg_sets, manifest, srpm_map={}) pool.queue_put((pkg["path"], dst)) # update rpm manifest - pkg_obj = pkg_set[pkg["path"]] + pkg_obj = _find_by_path(pkg_sets, arch, pkg["path"]) nevra = pkg_obj.nevra manifest.add(variant.uid, arch, nevra, path=dst_relpath, sigkey=pkg_obj.signature, category="source") @@ -96,7 +103,7 @@ def link_files(compose, arch, variant, pkg_map, pkg_sets, manifest, srpm_map={}) pool.queue_put((pkg["path"], dst)) # update rpm manifest - pkg_obj = pkg_set[pkg["path"]] + pkg_obj = _find_by_path(pkg_sets, arch, pkg["path"]) nevra = pkg_obj.nevra src_nevra = _get_src_nevra(compose, pkg_obj, srpm_map) manifest.add(variant.uid, arch, nevra, path=dst_relpath, sigkey=pkg_obj.signature, category="binary", srpm_nevra=src_nevra) @@ -113,7 +120,7 @@ def link_files(compose, arch, variant, pkg_map, pkg_sets, manifest, srpm_map={}) pool.queue_put((pkg["path"], dst)) # update rpm manifest - pkg_obj = pkg_set[pkg["path"]] + pkg_obj = _find_by_path(pkg_sets, arch, pkg["path"]) nevra = pkg_obj.nevra src_nevra = _get_src_nevra(compose, pkg_obj, srpm_map) manifest.add(variant.uid, arch, nevra, path=dst_relpath, sigkey=pkg_obj.signature, category="debug", srpm_nevra=src_nevra) diff --git a/pungi/phases/gather/methods/method_deps.py b/pungi/phases/gather/methods/method_deps.py index 3efd8e17..93128033 100644 --- a/pungi/phases/gather/methods/method_deps.py +++ b/pungi/phases/gather/methods/method_deps.py @@ -54,16 +54,18 @@ def raise_on_invalid_sigkeys(arch, variant, package_sets, result): Raises RuntimeError if some package in compose is signed with an invalid sigkey. """ - invalid_sigkey_rpms = [] + invalid_sigkey_rpms = {} for package in result["rpm"]: name = parse_nvra(package["path"])["name"] - for forbidden_package in package_sets["global"].invalid_sigkey_rpms: - if name == forbidden_package["name"]: - invalid_sigkey_rpms.append(forbidden_package) + for pkgset in package_sets: + for forbidden_package in pkgset["global"].invalid_sigkey_rpms: + if name == forbidden_package["name"]: + invalid_sigkey_rpms.setdefault( + pkgset["global"].sigkey_ordering, [] + ).append(forbidden_package) if invalid_sigkey_rpms: - package_sets["global"].raise_invalid_sigkeys_exception( - invalid_sigkey_rpms) + package_sets["global"].raise_invalid_sigkeys_exception(invalid_sigkey_rpms) def _format_packages(pkgs): @@ -137,12 +139,13 @@ def write_pungi_config(compose, arch, variant, packages, groups, filter_packages # already on the whitelist. package_names = set(p.rsplit('-', 2)[0] for p in package_whitelist) for i in get_valid_arches(arch, multilib=multilib, add_noarch=True, add_src=True): - for rpm_obj in package_sets[arch].rpms_by_arch.get(i, []): - if rpm_obj.name in package_names: - # We already have a package with this name in the whitelist, skip it. - continue - package_whitelist.add( - '{0.name}-{1}:{0.version}-{0.release}'.format(rpm_obj, rpm_obj.epoch or 0)) + for pkgset in package_sets: + for rpm_obj in pkgset[arch].rpms_by_arch.get(i, []): + if rpm_obj.name in package_names: + # We already have a package with this name in the whitelist, skip it. + continue + package_whitelist.add( + '{0.name}-{1}:{0.version}-{0.release}'.format(rpm_obj, rpm_obj.epoch or 0)) pungi_wrapper.write_kickstart( ks_path=pungi_cfg, repos=repos, groups=groups, packages=packages_str, diff --git a/pungi/phases/gather/methods/method_hybrid.py b/pungi/phases/gather/methods/method_hybrid.py index 8f69964f..7c3e0868 100644 --- a/pungi/phases/gather/methods/method_hybrid.py +++ b/pungi/phases/gather/methods/method_hybrid.py @@ -91,9 +91,10 @@ class GatherMethodHybrid(pungi.phases.gather.method.GatherMethodBase): """ if arch not in self.package_maps: pkg_map = {} - for pkg_arch in self.package_sets[arch].rpms_by_arch: - for pkg in self.package_sets[arch].rpms_by_arch[pkg_arch]: - pkg_map[_fmt_nevra(pkg, pkg_arch)] = pkg + for pkgset in self.package_sets: + for pkg_arch in pkgset[arch].rpms_by_arch: + for pkg in pkgset[arch].rpms_by_arch[pkg_arch]: + pkg_map[_fmt_nevra(pkg, pkg_arch)] = pkg self.package_maps[arch] = pkg_map return self.package_maps[arch] @@ -117,9 +118,10 @@ class GatherMethodHybrid(pungi.phases.gather.method.GatherMethodBase): indexed by package architecture and then by package name. There can be more than one debuginfo package with the same name. """ - for pkg_arch in self.package_sets[self.arch].rpms_by_arch: - for pkg in self.package_sets[self.arch].rpms_by_arch[pkg_arch]: - self.debuginfo[pkg.arch][pkg.name].add(pkg) + for pkgset in self.package_sets: + for pkg_arch in pkgset[self.arch].rpms_by_arch: + for pkg in pkgset[self.arch].rpms_by_arch[pkg_arch]: + self.debuginfo[pkg.arch][pkg.name].add(pkg) def _get_debuginfo(self, name, arch): if not self.debuginfo: @@ -131,12 +133,13 @@ class GatherMethodHybrid(pungi.phases.gather.method.GatherMethodBase): of the pattern. """ expanded = set() - for pkg_arch in self.package_sets[self.arch].rpms_by_arch: - for pkg in self.package_sets[self.arch].rpms_by_arch[pkg_arch]: - for pattern in patterns: - if fnmatch(pkg.name, pattern): - expanded.add(pkg) - break + for pkgset in self.package_sets: + for pkg_arch in pkgset[self.arch].rpms_by_arch: + for pkg in pkgset[self.arch].rpms_by_arch[pkg_arch]: + for pattern in patterns: + if fnmatch(pkg.name, pattern): + expanded.add(pkg) + break return expanded def prepare_modular_packages(self): @@ -154,16 +157,17 @@ class GatherMethodHybrid(pungi.phases.gather.method.GatherMethodBase): # Replace %s with * for fnmatch. install_match = install % "*" self.langpacks[name] = set() - for pkg_arch in self.package_sets[arch].rpms_by_arch: - for pkg in self.package_sets[arch].rpms_by_arch[pkg_arch]: - if not fnmatch(pkg.name, install_match): - # Does not match the pattern, ignore... - continue - if pkg.name.endswith("-devel") or pkg.name.endswith("-static"): - continue - if pkg_is_debug(pkg): - continue - self.langpacks[name].add(pkg.name) + for pkgset in self.package_sets: + for pkg_arch in pkgset[arch].rpms_by_arch: + for pkg in pkgset[arch].rpms_by_arch[pkg_arch]: + if not fnmatch(pkg.name, install_match): + # Does not match the pattern, ignore... + continue + if pkg.name.endswith("-devel") or pkg.name.endswith("-static"): + continue + if pkg_is_debug(pkg): + continue + self.langpacks[name].add(pkg.name) def __call__( self, diff --git a/pungi/phases/gather/methods/method_nodeps.py b/pungi/phases/gather/methods/method_nodeps.py index e9706263..737e5c06 100644 --- a/pungi/phases/gather/methods/method_nodeps.py +++ b/pungi/phases/gather/methods/method_nodeps.py @@ -40,7 +40,6 @@ class GatherMethodNodeps(pungi.phases.gather.method.GatherMethodBase): def worker(self, log, arch, variant, pkgs, groups, filter_packages, multilib_whitelist, multilib_blacklist, package_sets, path_prefix=None, fulltree_excludes=None, prepopulate=None): - pkgset = package_sets[arch] result = { "rpm": [], "srpm": [], @@ -60,8 +59,7 @@ class GatherMethodNodeps(pungi.phases.gather.method.GatherMethodBase): compatible_arches[i] = pungi.arch.get_compatible_arches(i) log.write('\nGathering rpms\n') - for i in pkgset: - pkg = pkgset[i] + for pkg in iterate_packages(package_sets, arch): if not pkg_is_rpm(pkg): continue for gathered_pkg, pkg_arch in packages: @@ -82,8 +80,7 @@ class GatherMethodNodeps(pungi.phases.gather.method.GatherMethodBase): % (pkg, gathered_pkg, pkg_arch, pkg.sourcerpm)) log.write('\nGathering source rpms\n') - for i in pkgset: - pkg = pkgset[i] + for pkg in iterate_packages(package_sets, arch): if not pkg_is_srpm(pkg): continue if pkg.file_name in seen_srpms: @@ -94,8 +91,7 @@ class GatherMethodNodeps(pungi.phases.gather.method.GatherMethodBase): log.write('Adding %s\n' % pkg) log.write('\nGathering debuginfo packages\n') - for i in pkgset: - pkg = pkgset[i] + for pkg in iterate_packages(package_sets, arch): if not pkg_is_debug(pkg): continue if pkg.sourcerpm not in seen_srpms: @@ -162,3 +158,9 @@ def expand_groups(compose, arch, variant, groups, set_pkg_arch=True): raise ex return packages + + +def iterate_packages(package_sets, arch): + for pkgset in package_sets: + for pkg in pkgset[arch]: + yield pkgset[arch][pkg] diff --git a/pungi/phases/pkgset/__init__.py b/pungi/phases/pkgset/__init__.py index cf01ff97..46974fb3 100644 --- a/pungi/phases/pkgset/__init__.py +++ b/pungi/phases/pkgset/__init__.py @@ -28,4 +28,5 @@ class PkgsetPhase(PhaseBase): PkgsetSourceContainer.register_module(sources) container = PkgsetSourceContainer() SourceClass = container[pkgset_source] - self.package_sets, self.path_prefix = SourceClass(self.compose)() + package_sets, self.path_prefix = SourceClass(self.compose)() + self.package_sets = [package_sets] diff --git a/pungi/phases/pkgset/pkgsets.py b/pungi/phases/pkgset/pkgsets.py index 823812ec..d07233fc 100644 --- a/pungi/phases/pkgset/pkgsets.py +++ b/pungi/phases/pkgset/pkgsets.py @@ -85,7 +85,7 @@ class PackageSetBase(kobo.log.LoggingBase): super(PackageSetBase, self).__init__(logger=logger) self.file_cache = kobo.pkgset.FileCache(kobo.pkgset.SimpleRpmWrapper) self.old_file_cache = None - self.sigkey_ordering = sigkey_ordering or [None] + self.sigkey_ordering = tuple(sigkey_ordering or [None]) self.arches = arches self.rpms_by_arch = {} self.srpms_by_name = {} @@ -124,10 +124,16 @@ class PackageSetBase(kobo.log.LoggingBase): def nvr_formatter(package_info): # joins NVR parts of the package with '-' character. return '-'.join((package_info['name'], package_info['version'], package_info['release'])) - raise RuntimeError( - "RPM(s) not found for sigs: %s. Check log for details. Unsigned packages:\n%s" % ( - self.sigkey_ordering, - '\n'.join(sorted(set([nvr_formatter(rpminfo) for rpminfo in rpminfos]))))) + + def get_error(sigkeys, infos): + return "RPM(s) not found for sigs: %s. Check log for details. Unsigned packages:\n%s" % ( + sigkeys, + '\n'.join(sorted(set(nvr_formatter(rpminfo) for rpminfo in infos))), + ) + + if not isinstance(rpminfos, dict): + rpminfos = {self.sigkey_ordering: rpminfos} + raise RuntimeError("\n".join(get_error(k, v) for k, v in rpminfos.items())) def read_packages(self, rpms, srpms): srpm_pool = ReaderPool(self, self._logger) diff --git a/pungi/phases/product_img.py b/pungi/phases/product_img.py index 2449917a..572aff03 100644 --- a/pungi/phases/product_img.py +++ b/pungi/phases/product_img.py @@ -259,14 +259,15 @@ def explode_anaconda(compose, arch, variant, package_sets): # if scm is "rpm" and repo contains a package name, find the package(s) in package set if scm_dict["scm"] == "rpm" and not (scm_dict["repo"].startswith("/") or "://" in scm_dict["repo"]): rpms = [] - for pkgset_file in package_sets[arch]: - pkg_obj = package_sets[arch][pkgset_file] - if not pkg_is_rpm(pkg_obj): - continue - pkg_name, pkg_arch = split_name_arch(scm_dict["repo"]) - if fnmatch.fnmatch(pkg_obj.name, pkg_name) and (pkg_arch is None or pkg_arch == pkg_obj.arch): - compose.log_critical("%s %s %s" % (pkg_obj.name, pkg_name, pkg_arch)) - rpms.append(pkg_obj.file_path) + for pkgset in package_sets: + for pkgset_file in pkgset[arch]: + pkg_obj = pkgset[arch][pkgset_file] + if not pkg_is_rpm(pkg_obj): + continue + pkg_name, pkg_arch = split_name_arch(scm_dict["repo"]) + if fnmatch.fnmatch(pkg_obj.name, pkg_name) and (pkg_arch is None or pkg_arch == pkg_obj.arch): + compose.log_critical("%s %s %s" % (pkg_obj.name, pkg_name, pkg_arch)) + rpms.append(pkg_obj.file_path) scm_dict["repo"] = rpms if not rpms: diff --git a/tests/test_extra_files_phase.py b/tests/test_extra_files_phase.py index 40925763..cbdd39df 100644 --- a/tests/test_extra_files_phase.py +++ b/tests/test_extra_files_phase.py @@ -123,11 +123,15 @@ class TestCopyFiles(helpers.PungiTestCase): src_po.configure_mock(name='extra-data-1.1-1.fc24.src.rpm', file_path='/src/location', arch='src') - package_sets = { - 'x86_64': {server_po.name: server_po, - client_po.name: client_po, - src_po.name: src_po} - } + package_sets = [ + { + "x86_64": { + server_po.name: server_po, + client_po.name: client_po, + src_po.name: src_po, + }, + }, + ] get_file_from_scm.side_effect = self.fake_get_file @@ -153,7 +157,7 @@ class TestCopyFiles(helpers.PungiTestCase): def test_copy_from_non_existing_rpm_in_compose(self, get_dir_from_scm, get_file_from_scm): compose = helpers.DummyCompose(self.topdir, {}) cfg = {'scm': 'rpm', 'file': 'file.txt', 'repo': 'bad-%(variant_uid_lower)s*'} - package_sets = {'x86_64': {}} + package_sets = [{"x86_64": {}}] with self.assertRaises(RuntimeError) as ctx: extra_files.copy_extra_files( diff --git a/tests/test_gather_method_hybrid.py b/tests/test_gather_method_hybrid.py index a1b968b3..7fefc428 100644 --- a/tests/test_gather_method_hybrid.py +++ b/tests/test_gather_method_hybrid.py @@ -44,7 +44,7 @@ class TestMethodHybrid(helpers.PungiTestCase): ) CW.return_value.get_langpacks.return_value = {"glibc": "glibc-langpack-%s"} eg.return_value = ["foo", "bar"] - package_sets = {"x86_64": mock.Mock(rpms_by_arch={"x86_64": [pkg]})} + package_sets = [{"x86_64": mock.Mock(rpms_by_arch={"x86_64": [pkg]})}] arch = "x86_64" variant = compose.variants["Server"] @@ -103,50 +103,52 @@ class TestMethodHybrid(helpers.PungiTestCase): compose = helpers.DummyCompose(self.topdir, {}) CW.return_value.get_langpacks.return_value = {"foo": "foo-%s"} m = hybrid.GatherMethodHybrid(compose) - m.package_sets = { - "x86_64": mock.Mock( - rpms_by_arch={ - "x86_64": [ - MockPkg( - name="foo", - version="1", - release="2", - arch="x86_64", - epoch=0, - sourcerpm=None, - file_path=None, - ), - MockPkg( - name="foo-en", - version="1", - release="2", - arch="x86_64", - epoch=0, - sourcerpm=None, - file_path=None, - ), - MockPkg( - name="foo-devel", - version="1", - release="2", - arch="x86_64", - epoch=0, - sourcerpm=None, - file_path=None, - ), - MockPkg( - name="foo-debuginfo", - version="1", - release="2", - arch="x86_64", - epoch=0, - sourcerpm=None, - file_path=None, - ), - ] - } - ) - } + m.package_sets = [ + { + "x86_64": mock.Mock( + rpms_by_arch={ + "x86_64": [ + MockPkg( + name="foo", + version="1", + release="2", + arch="x86_64", + epoch=0, + sourcerpm=None, + file_path=None, + ), + MockPkg( + name="foo-en", + version="1", + release="2", + arch="x86_64", + epoch=0, + sourcerpm=None, + file_path=None, + ), + MockPkg( + name="foo-devel", + version="1", + release="2", + arch="x86_64", + epoch=0, + sourcerpm=None, + file_path=None, + ), + MockPkg( + name="foo-debuginfo", + version="1", + release="2", + arch="x86_64", + epoch=0, + sourcerpm=None, + file_path=None, + ), + ] + } + ) + } + ] m.prepare_langpacks("x86_64", compose.variants["Server"]) self.assertEqual(m.langpacks, {"foo": set(["foo-en"])}) @@ -155,41 +157,43 @@ class TestMethodHybrid(helpers.PungiTestCase): compose = helpers.DummyCompose(self.topdir, {}) m = hybrid.GatherMethodHybrid(compose) m.arch = "x86_64" - m.package_sets = { - "x86_64": mock.Mock( - rpms_by_arch={ - "x86_64": [ - MockPkg( - name="foo", - version="1", - release="2", - arch="x86_64", - epoch=0, - sourcerpm=None, - file_path=None, - ), - MockPkg( - name="foo-en", - version="1", - release="2", - arch="x86_64", - epoch=0, - sourcerpm=None, - file_path=None, - ), - MockPkg( - name="bar", - version="1", - release="2", - arch="x86_64", - epoch=0, - sourcerpm=None, - file_path=None, - ), - ] - } - ) - } + m.package_sets = [ + { + "x86_64": mock.Mock( + rpms_by_arch={ + "x86_64": [ + MockPkg( + name="foo", + version="1", + release="2", + arch="x86_64", + epoch=0, + sourcerpm=None, + file_path=None, + ), + MockPkg( + name="foo-en", + version="1", + release="2", + arch="x86_64", + epoch=0, + sourcerpm=None, + file_path=None, + ), + MockPkg( + name="bar", + version="1", + release="2", + arch="x86_64", + epoch=0, + sourcerpm=None, + file_path=None, + ), + ] + } + ) + } + ] expanded = m.expand_list(["foo*"]) self.assertItemsEqual([p.name for p in expanded], ["foo", "foo-en"]) @@ -357,7 +361,7 @@ class TestRunSolver(HelperMixin, helpers.PungiTestCase): } po.return_value = ([("p-1-1", "x86_64", frozenset())], ["m1"]) self.phase.packages = {"p-1-1.x86_64": mock.Mock()} - self.phase.package_sets = {"x86_64": mock.Mock(rpms_by_arch={"x86_64": []})} + self.phase.package_sets = [{"x86_64": mock.Mock(rpms_by_arch={"x86_64": []})}] res = self.phase.run_solver( self.compose.variants["Server"], @@ -524,7 +528,7 @@ class TestRunSolver(HelperMixin, helpers.PungiTestCase): "pkg-1.0-1.x86_64": mock.Mock(), "pkg-en-1.0-1.noarch": mock.Mock(), } - self.phase.package_sets = {"x86_64": mock.Mock(rpms_by_arch={"x86_64": []})} + self.phase.package_sets = [{"x86_64": mock.Mock(rpms_by_arch={"x86_64": []})}] res = self.phase.run_solver( self.compose.variants["Server"], diff --git a/tests/test_gather_phase.py b/tests/test_gather_phase.py index cec5fc11..7b540891 100644 --- a/tests/test_gather_phase.py +++ b/tests/test_gather_phase.py @@ -297,7 +297,8 @@ class TestGetSystemRelease(unittest.TestCase): def test_no_system_release_package(self): pkgset = MockPackageSet(MockPkg('/build/bash-1.0.0-1.x86_64.rpm')) packages, filter_packages = gather.get_system_release_packages( - self.compose, 'x86_64', self.variant, {'x86_64': pkgset}) + self.compose, "x86_64", self.variant, [{"x86_64": pkgset}] + ) self.assertItemsEqual(packages, []) self.assertItemsEqual(filter_packages, []) @@ -307,7 +308,8 @@ class TestGetSystemRelease(unittest.TestCase): MockPkg('/build/dummy-1.0.0-1.x86_64.rpm', is_system_release=True), ) packages, filter_packages = gather.get_system_release_packages( - self.compose, 'x86_64', self.variant, {'x86_64': pkgset}) + self.compose, "x86_64", self.variant, [{"x86_64": pkgset}] + ) self.assertItemsEqual(packages, [('dummy', None)]) self.assertItemsEqual(filter_packages, []) @@ -318,7 +320,8 @@ class TestGetSystemRelease(unittest.TestCase): MockPkg('/build/system-release-server-1.0.0-1.x86_64.rpm', is_system_release=True), ) packages, filter_packages = gather.get_system_release_packages( - self.compose, 'x86_64', self.variant, {'x86_64': pkgset}) + self.compose, "x86_64", self.variant, [{"x86_64": pkgset}] + ) self.assertItemsEqual(packages, [('system-release-server', None)]) self.assertItemsEqual(filter_packages, [('system-release', None)]) @@ -329,7 +332,8 @@ class TestGetSystemRelease(unittest.TestCase): MockPkg('/build/system-release-bar-1.0.0-1.x86_64.rpm', is_system_release=True), ) packages, filter_packages = gather.get_system_release_packages( - self.compose, 'x86_64', self.variant, {'x86_64': pkgset}) + self.compose, "x86_64", self.variant, [{"x86_64": pkgset}] + ) # In this case a random package is picked, so let's check that both # list contain one package and that they are different. @@ -344,7 +348,8 @@ class TestGetSystemRelease(unittest.TestCase): MockPkg('/build/system-release-client-1.0.0-1.x86_64.rpm', is_system_release=True), ) packages, filter_packages = gather.get_system_release_packages( - self.compose, 'x86_64', self.addon, {'x86_64': pkgset}) + self.compose, "x86_64", self.addon, [{"x86_64": pkgset}] + ) self.assertItemsEqual(packages, [('system-release-server', None)]) self.assertItemsEqual(filter_packages, @@ -490,7 +495,11 @@ class TestGetVariantPackages(helpers.PungiTestCase): ) packages, groups, filter_packages = gather.get_variant_packages( - compose, 'x86_64', compose.variants['Server'], 'comps', package_sets={'x86_64': pkgset}) + compose, + "x86_64", + compose.variants["Server"], "comps", + package_sets=[{"x86_64": pkgset}], + ) self.assertItemsEqual(packages, [('system-release-server', None)]) self.assertItemsEqual(groups, []) self.assertItemsEqual(filter_packages, [('system-release', None)]) @@ -509,7 +518,12 @@ class TestGetVariantPackages(helpers.PungiTestCase): ) packages, groups, filter_packages = gather.get_variant_packages( - compose, 'x86_64', compose.variants['Server'], 'comps', package_sets={'x86_64': pkgset}) + compose, + "x86_64", + compose.variants["Server"], + "comps", + package_sets=[{"x86_64": pkgset}], + ) self.assertItemsEqual(packages, []) self.assertItemsEqual(groups, []) self.assertItemsEqual(filter_packages, []) diff --git a/tests/test_pkgset_source_koji.py b/tests/test_pkgset_source_koji.py index c4ac69fe..64108197 100644 --- a/tests/test_pkgset_source_koji.py +++ b/tests/test_pkgset_source_koji.py @@ -78,7 +78,7 @@ class TestPopulateGlobalPkgset(helpers.PungiTestCase): super(TestPopulateGlobalPkgset, self).setUp() self.compose = helpers.DummyCompose(self.topdir, { 'pkgset_koji_tag': 'f25', - 'sigkeys': mock.Mock(), + 'sigkeys': ["foo", "bar"], }) self.koji_wrapper = mock.Mock() self.pkgset_path = os.path.join(self.topdir, 'work', 'global', 'pkgset_global.pickle') @@ -125,7 +125,7 @@ class TestPopulateGlobalPkgset(helpers.PungiTestCase): def test_populate_with_multiple_koji_tags(self, KojiPackageSet, pickle_dumps): self.compose = helpers.DummyCompose(self.topdir, { 'pkgset_koji_tag': ['f25', 'f25-extra'], - 'sigkeys': mock.Mock(), + 'sigkeys': ["foo", "bar"], }) pickle_dumps.return_value = b'DATA' @@ -175,7 +175,7 @@ class TestPopulateGlobalPkgset(helpers.PungiTestCase): self.compose = helpers.DummyCompose(self.topdir, { 'gather_method': 'nodeps', 'pkgset_koji_tag': 'f25', - 'sigkeys': mock.Mock(), + 'sigkeys': ["foo", "bar"], 'additional_packages': [ ('.*', {'*': ['pkg', 'foo.x86_64']}), ]