08d65bdde6
The module has same S:V:C, but the name is suffixed with `-devel`. The module should contain all packages from the module koji tag that were not included in the actual module. The devel module has the same dependencies as the regular module, but also additionally depends on the original module. The API and profiles are cleared in the new module. In the metadata it shows the same koji tag. The test if package goes to the module is refactored to a function to make work with the negated case a bit easier. There may be unneeded multilib packages in the -devel module, because there might be buildtime dependencies between things that we don't see. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com> Clear API and profiles Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
83 lines
3.4 KiB
Python
83 lines
3.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
try:
|
|
import unittest2 as unittest
|
|
except ImportError:
|
|
import unittest
|
|
|
|
import mock
|
|
import os
|
|
import sys
|
|
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
|
|
|
from pungi.phases.gather.sources.source_module import GatherSourceModule
|
|
from tests import helpers
|
|
from pungi import Modulemd
|
|
|
|
|
|
@unittest.skipUnless(Modulemd is not None, 'Skipped test, no module support.')
|
|
class TestGatherSourceModule(helpers.PungiTestCase):
|
|
def setUp(self):
|
|
super(TestGatherSourceModule, self).setUp()
|
|
|
|
self.compose = helpers.DummyCompose(self.topdir, {})
|
|
self.mmd = self.compose.variants["Server"].add_fake_module(
|
|
"testmodule:master:1:2017", rpm_nvrs=["pkg-0:1.0.0-1.x86_64", "pkg-0:1.0.0-1.i686"])
|
|
|
|
mock_rpm = mock.Mock(version='1.0.0', release='1',
|
|
epoch=0, excludearch=None, exclusivearch=None,
|
|
sourcerpm='pkg-1.0.0-1', nevra='pkg-0:1.0.0-1.x86_64',
|
|
arch="x86_64")
|
|
mock_rpm.name = 'pkg'
|
|
self.compose.variants['Server'].nsvc_to_pkgset["testmodule:master:1:2017"].rpms_by_arch['x86_64'] = [mock_rpm]
|
|
mock_rpm = mock.Mock(version='1.0.0', release='1',
|
|
epoch=0, excludearch=None, exclusivearch=None,
|
|
sourcerpm='pkg-1.0.0-1', nevra='pkg-0:1.0.0-1.i686',
|
|
arch="i686")
|
|
mock_rpm.name = 'pkg'
|
|
self.compose.variants['Server'].nsvc_to_pkgset["testmodule:master:1:2017"].rpms_by_arch['i686'] = [mock_rpm]
|
|
|
|
def test_gather_module(self):
|
|
source = GatherSourceModule(self.compose)
|
|
packages, groups = source("x86_64", self.compose.variants["Server"])
|
|
self.assertEqual(len(packages), 1)
|
|
self.assertEqual(list(packages)[0][0].nevra, "pkg-0:1.0.0-1.x86_64")
|
|
self.assertEqual(len(groups), 0)
|
|
|
|
variant = self.compose.variants["Server"]
|
|
arch_mmd = variant.arch_mmds["x86_64"]["testmodule:master:1:2017"]
|
|
self.assertEqual(set(arch_mmd.get_rpm_artifacts().get()),
|
|
set(["pkg-0:1.0.0-1.x86_64"]))
|
|
|
|
def test_gather_multilib(self):
|
|
multilib = Modulemd.SimpleSet()
|
|
multilib.add("x86_64")
|
|
self.mmd.get_rpm_components()["pkg"].set_multilib(multilib)
|
|
|
|
source = GatherSourceModule(self.compose)
|
|
packages, groups = source("x86_64", self.compose.variants["Server"])
|
|
self.assertEqual(len(packages), 2)
|
|
self.assertEqual(set(package[0].nevra for package in packages),
|
|
set(["pkg-0:1.0.0-1.x86_64", "pkg-0:1.0.0-1.i686"]))
|
|
self.assertEqual(len(groups), 0)
|
|
|
|
variant = self.compose.variants["Server"]
|
|
arch_mmd = variant.arch_mmds["x86_64"]["testmodule:master:1:2017"]
|
|
self.assertEqual(set(arch_mmd.get_rpm_artifacts().get()),
|
|
set(["pkg-0:1.0.0-1.x86_64", "pkg-0:1.0.0-1.i686"]))
|
|
|
|
def test_gather_filtered_module(self):
|
|
filter_set = Modulemd.SimpleSet()
|
|
filter_set.add("pkg")
|
|
self.mmd.set_rpm_filter(filter_set)
|
|
|
|
source = GatherSourceModule(self.compose)
|
|
packages, groups = source("x86_64", self.compose.variants["Server"])
|
|
self.assertEqual(len(packages), 0)
|
|
self.assertEqual(len(groups), 0)
|
|
|
|
variant = self.compose.variants["Server"]
|
|
arch_mmd = variant.arch_mmds["x86_64"]["testmodule:master:1:2017"]
|
|
self.assertEqual(len(arch_mmd.get_rpm_artifacts().get()), 0)
|