pungi/tests/test_gather_source_module.py
Lubomír Sedlář 2f54745715 Remove usage of unittest2 on Python 3
It was needed to provide assertItemsEqual method. Starting with Python
3.2, there's assertCountEqual that does the same thing. Six provides a
helper that will dispatch to the existing method. With this change,
unittest 2 is only needed on Python 2.6 to backport the method.

Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
2019-10-04 15:25:18 +02:00

82 lines
2.5 KiB
Python

# -*- coding: utf-8 -*-
try:
import unittest2 as unittest
except ImportError:
import unittest
import mock
import six
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.module_util 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, {})
def _add_pkg(self, arch):
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.%s" % arch,
arch=arch,
)
mock_rpm.name = "pkg"
self.compose.variants["Server"].nsvc_to_pkgset[
"testmodule:master:1:2017"
].rpms_by_arch[arch] = [mock_rpm]
def test_without_modules(self):
source = GatherSourceModule(self.compose)
packages, groups = source("x86_64", self.compose.variants["Server"])
self.assertEqual(packages, set())
self.assertEqual(groups, set())
def test_include_two_packages(self):
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"],
with_artifacts=True,
mmd_arch="x86_64",
)
self._add_pkg("x86_64")
self._add_pkg("i686")
source = GatherSourceModule(self.compose)
packages, groups = source("x86_64", self.compose.variants["Server"])
six.assertCountEqual(
self,
[(rpm[0].nevra, rpm[1]) for rpm in packages],
[("pkg-0:1.0.0-1.x86_64", None), ("pkg-0:1.0.0-1.i686", None)],
)
self.assertEqual(groups, set())
def test_does_not_include_unlisted(self):
self.compose.variants["Server"].add_fake_module(
"testmodule:master:1:2017",
rpm_nvrs=[],
with_artifacts=True,
mmd_arch="x86_64",
)
self._add_pkg("x86_64")
source = GatherSourceModule(self.compose)
packages, groups = source("x86_64", self.compose.variants["Server"])
self.assertEqual(packages, set())
self.assertEqual(groups, set())