gather: Expand multilib lists for hybrid method
If there are globs in the blacklist or whitelist, we need to expand it to full package name. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
1350684c31
commit
a53dc6f1bb
@ -107,6 +107,19 @@ class GatherMethodHybrid(pungi.phases.gather.method.GatherMethodBase):
|
||||
self._prepare_packages()
|
||||
return self.packages[nevra]
|
||||
|
||||
def expand_list(self, arch, patterns):
|
||||
"""Given a list of globs, create a list of package names matching any
|
||||
of the pattern.
|
||||
"""
|
||||
expanded = set()
|
||||
for pkg_arch in self.package_sets[arch].rpms_by_arch:
|
||||
for pkg in self.package_sets[arch].rpms_by_arch[pkg_arch]:
|
||||
for pattern in patterns:
|
||||
if fnmatch(pkg.name, pattern):
|
||||
expanded.add(pkg.name)
|
||||
break
|
||||
return expanded
|
||||
|
||||
def prepare_langpacks(self, arch, variant):
|
||||
if not self.compose.has_comps:
|
||||
return
|
||||
@ -147,7 +160,9 @@ class GatherMethodHybrid(pungi.phases.gather.method.GatherMethodBase):
|
||||
self.compose.conf, "multilib", arch, variant
|
||||
)
|
||||
self.multilib = multilib_dnf.Multilib(
|
||||
self.multilib_methods, multilib_blacklist, multilib_whitelist
|
||||
self.multilib_methods,
|
||||
self.expand_list(arch, multilib_blacklist),
|
||||
self.expand_list(arch, multilib_whitelist),
|
||||
)
|
||||
|
||||
platform = create_module_repo(self.compose, variant, arch)
|
||||
|
@ -128,6 +128,48 @@ class TestMethodHybrid(helpers.PungiTestCase):
|
||||
|
||||
self.assertEqual(m.langpacks, {"foo": set(["foo-en"])})
|
||||
|
||||
def test_expand_list(self):
|
||||
compose = helpers.DummyCompose(self.topdir, {})
|
||||
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="bar",
|
||||
version="1",
|
||||
release="2",
|
||||
arch="x86_64",
|
||||
epoch=0,
|
||||
sourcerpm=None,
|
||||
file_path=None,
|
||||
),
|
||||
]
|
||||
}
|
||||
)
|
||||
}
|
||||
expanded = m.expand_list("x86_64", ["foo*"])
|
||||
|
||||
self.assertItemsEqual(expanded, ["foo", "foo-en"])
|
||||
|
||||
|
||||
class MockModule(object):
|
||||
def __init__(
|
||||
|
Loading…
Reference in New Issue
Block a user