Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2264414
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
(cherry picked from commit 42befba0b1)
		
	
			
		
			
				
	
	
		
			2628 lines
		
	
	
		
			90 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			2628 lines
		
	
	
		
			90 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| try:
 | |
|     import unittest2 as unittest
 | |
| except ImportError:
 | |
|     import unittest
 | |
| 
 | |
| 
 | |
| import os
 | |
| import tempfile
 | |
| import shutil
 | |
| import six
 | |
| import sys
 | |
| import logging
 | |
| 
 | |
| from six.moves import cStringIO
 | |
| 
 | |
| from pungi.wrappers.pungi import PungiWrapper
 | |
| 
 | |
| try:
 | |
|     from pungi.dnf_wrapper import DnfWrapper, Conf
 | |
|     from pungi.gather_dnf import Gather, GatherOptions, PkgFlag
 | |
| 
 | |
|     HAS_DNF = True
 | |
| except ImportError:
 | |
|     HAS_DNF = False
 | |
| 
 | |
| if six.PY2:
 | |
|     HAS_YUM = True
 | |
| else:
 | |
|     HAS_YUM = False
 | |
| 
 | |
| 
 | |
| def convert_pkg_map(data):
 | |
|     """
 | |
|     Go through the mapping, extract only paths and convert them to just
 | |
|     basenames.
 | |
|     """
 | |
|     result = {}
 | |
|     for pkg_type in data:
 | |
|         result[pkg_type] = sorted(
 | |
|             set([os.path.basename(pkg["path"]) for pkg in data[pkg_type]])
 | |
|         )
 | |
|     return result
 | |
| 
 | |
| 
 | |
| class DepsolvingBase(object):
 | |
|     def setUp(self):
 | |
|         self.tmp_dir = tempfile.mkdtemp(prefix="test_compose_")
 | |
|         self.repo = os.path.join(os.path.dirname(__file__), "fixtures/repos/repo")
 | |
|         self.lookaside = os.path.join(
 | |
|             os.path.dirname(__file__), "fixtures/repos/repo-krb5-lookaside"
 | |
|         )
 | |
| 
 | |
|     def tearDown(self):
 | |
|         shutil.rmtree(self.tmp_dir)
 | |
| 
 | |
|     def test_kernel(self):
 | |
|         packages = [
 | |
|             "dummy-kernel",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn("dummy-kernel-3.1.0-1.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         self.assertEqual(pkg_map["rpm"], ["dummy-kernel-3.1.0-1.x86_64.rpm"])
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-kernel-3.1.0-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_kernel_fulltree(self):
 | |
|         packages = [
 | |
|             "dummy-kernel",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-kernel-3.1.0-1.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-kernel-3.1.0-1.x86_64.rpm",  # Important
 | |
|                 "dummy-kernel-headers-3.1.0-1.x86_64.rpm",
 | |
|                 "dummy-kernel-doc-3.1.0-1.noarch.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-kernel-3.1.0-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_kernel_fulltree_excludes(self):
 | |
|         packages = [
 | |
|             "dummy-kernel",
 | |
|         ]
 | |
|         pkg_map = self.go(
 | |
|             packages,
 | |
|             None,
 | |
|             greedy="none",
 | |
|             fulltree=True,
 | |
|             fulltree_excludes=["dummy-kernel"],
 | |
|         )
 | |
| 
 | |
|         self.assertNotIn("dummy-kernel-3.1.0-1.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         self.assertEqual(pkg_map["rpm"], ["dummy-kernel-3.1.0-1.x86_64.rpm"])
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-kernel-3.1.0-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_kernel_doc_fulltree(self):
 | |
|         packages = [
 | |
|             "dummy-kernel-doc",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-kernel-3.1.0-1.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-kernel-3.1.0-1.x86_64.rpm",  # Important
 | |
|                 "dummy-kernel-headers-3.1.0-1.x86_64.rpm",
 | |
|                 "dummy-kernel-doc-3.1.0-1.noarch.rpm",  # Important
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-kernel-3.1.0-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_bash_noarch_pulls_64bit(self):
 | |
|         packages = [
 | |
|             "dummy-glibc.+",
 | |
|             "dummy-bash-doc",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=False, arch="ppc64")
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.ppc.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.ppc64.rpm",  # Important
 | |
|                 "dummy-bash-doc-4.2.37-6.noarch.rpm",  # Important
 | |
|                 "dummy-filesystem-4.2.37-6.ppc64.rpm",
 | |
|                 "dummy-glibc-2.14-5.ppc.rpm",
 | |
|                 "dummy-glibc-2.14-5.ppc64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.ppc64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.ppc64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.ppc64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.ppc.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.ppc64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.ppc.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.ppc64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_foo32_doc_fulltree(self):
 | |
|         packages = [
 | |
|             "dummy-foo32-doc",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-foo32-1-1.i686.rpm",  # Important
 | |
|                 "dummy-foo32-doc-1-1.noarch.rpm",  # Important
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-foo32-1-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_bash_exclude_debuginfo(self):
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|             "-dummy-bash-debuginfo",
 | |
|             "-dummy-bash-debugsource",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_multilib_exclude_debuginfo(self):
 | |
|         packages = [
 | |
|             "dummy-bash.+",
 | |
|             "-dummy-bash-debuginfo",
 | |
|             "-dummy-bash-debugsource",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash(self):
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",  # Important
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_s390x(self):
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", arch="s390x")
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.s390.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.s390x.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.s390.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.s390x.rpm",  # Important
 | |
|                 "dummy-filesystem-4.2.37-6.s390x.rpm",
 | |
|                 "dummy-glibc-2.14-5.s390x.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.s390x.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.s390x.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.s390x.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.s390x.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.s390x.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_greedy(self):
 | |
|         # we want only the latest package version
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all")
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",  # Important
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",  # Important
 | |
|                 "dummy-filesystem-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_older(self):
 | |
|         packages = [
 | |
|             "dummy-bash-4.2.37-5",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-5.x86_64.rpm",  # Important
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-5.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_system_release(self):
 | |
|         packages = [
 | |
|             "dummy-filesystem",
 | |
|             "system-release",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn(
 | |
|             "dummy-release-client-workstation-1.0.0-1.i686.rpm", pkg_map["rpm"]
 | |
|         )
 | |
|         self.assertNotIn(
 | |
|             "dummy-release-client-workstation-1.0.0-1.x86_64.rpm", pkg_map["rpm"]
 | |
|         )
 | |
|         self.assertNotIn("dummy-release-client-1.0.0-1.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-release-client-1.0.0-1.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-release-server-1.0.0-1.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-release-server-1.0.0-1.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-release-notes-1.2-1.noarch.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         self.assertEqual(pkg_map["rpm"], ["dummy-filesystem-4.2.37-6.x86_64.rpm"])
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-filesystem-4.2.37-6.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_system_release_greedy(self):
 | |
|         packages = [
 | |
|             "system-release",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all")
 | |
| 
 | |
|         self.assertNotIn("dummy-release-notes-1.2-1.noarch.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-release-client-1.0.0-1.i686.rpm",  # Important
 | |
|                 "dummy-release-client-1.0.0-1.x86_64.rpm",  # Important
 | |
|                 "dummy-release-client-workstation-1.0.0-1.i686.rpm",  # Important
 | |
|                 "dummy-release-client-workstation-1.0.0-1.x86_64.rpm",  # Important
 | |
|                 "dummy-release-server-1.0.0-1.i686.rpm",  # Important
 | |
|                 "dummy-release-server-1.0.0-1.x86_64.rpm",  # Important
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-release-client-1.0.0-1.src.rpm",
 | |
|                 "dummy-release-client-workstation-1.0.0-1.src.rpm",
 | |
|                 "dummy-release-server-1.0.0-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_smtpdaemon(self):
 | |
|         packages = [
 | |
|             "dummy-vacation",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn("dummy-postfix-2.9.2-2.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-sendmail-8.14.5-12.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-sendmail-8.14.5-12.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.x86_64.rpm",  # Important
 | |
|                 "dummy-vacation-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.src.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-postfix-debuginfo-2.9.2-2.x86_64.rpm",
 | |
|                 "dummy-vacation-debuginfo-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_smtpdaemon_sendmail(self):
 | |
|         packages = [
 | |
|             "dummy-vacation",
 | |
|             "dummy-sendmail",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn("dummy-postfix-2.9.2-2.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-postfix-2.9.2-2.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-sendmail-8.14.5-12.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.x86_64.rpm",  # Important
 | |
|                 "dummy-vacation-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.src.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-sendmail-debuginfo-8.14.5-12.x86_64.rpm",
 | |
|                 "dummy-vacation-debuginfo-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_smtpdaemon_greedy_all(self):
 | |
|         packages = [
 | |
|             "dummy-vacation",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.i686.rpm",  # Important
 | |
|                 "dummy-postfix-2.9.2-2.x86_64.rpm",  # Important
 | |
|                 "dummy-sendmail-8.14.5-12.i686.rpm",  # Important
 | |
|                 "dummy-sendmail-8.14.5-12.x86_64.rpm",  # Important
 | |
|                 "dummy-vacation-1.2.7.1-1.i686.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.src.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.src.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-postfix-debuginfo-2.9.2-2.i686.rpm",
 | |
|                 "dummy-postfix-debuginfo-2.9.2-2.x86_64.rpm",
 | |
|                 "dummy-sendmail-debuginfo-8.14.5-12.i686.rpm",
 | |
|                 "dummy-sendmail-debuginfo-8.14.5-12.x86_64.rpm",
 | |
|                 "dummy-vacation-debuginfo-1.2.7.1-1.i686.rpm",
 | |
|                 "dummy-vacation-debuginfo-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_smtpdaemon_greedy_all_explicit_postfix(self):
 | |
|         # Postfix provides smtpdaemon, but we still want sendmail in because we
 | |
|         # are greedy.
 | |
|         packages = [
 | |
|             "dummy-postfix",
 | |
|             "dummy-vacation",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.i686.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.x86_64.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.i686.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.x86_64.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.i686.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.src.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.src.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-postfix-debuginfo-2.9.2-2.i686.rpm",
 | |
|                 "dummy-postfix-debuginfo-2.9.2-2.x86_64.rpm",
 | |
|                 "dummy-sendmail-debuginfo-8.14.5-12.i686.rpm",
 | |
|                 "dummy-sendmail-debuginfo-8.14.5-12.x86_64.rpm",
 | |
|                 "dummy-vacation-debuginfo-1.2.7.1-1.i686.rpm",
 | |
|                 "dummy-vacation-debuginfo-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_smtpdaemon_greedy_all_explicit_sendmail(self):
 | |
|         # Same as above, but the other way around.
 | |
|         packages = [
 | |
|             "dummy-sendmail",
 | |
|             "dummy-vacation",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.i686.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.x86_64.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.i686.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.x86_64.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.i686.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-postfix-2.9.2-2.src.rpm",
 | |
|                 "dummy-sendmail-8.14.5-12.src.rpm",
 | |
|                 "dummy-vacation-1.2.7.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-postfix-debuginfo-2.9.2-2.i686.rpm",
 | |
|                 "dummy-postfix-debuginfo-2.9.2-2.x86_64.rpm",
 | |
|                 "dummy-sendmail-debuginfo-8.14.5-12.i686.rpm",
 | |
|                 "dummy-sendmail-debuginfo-8.14.5-12.x86_64.rpm",
 | |
|                 "dummy-vacation-debuginfo-1.2.7.1-1.i686.rpm",
 | |
|                 "dummy-vacation-debuginfo-1.2.7.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_firefox(self):
 | |
|         packages = [
 | |
|             "Dummy-firefox",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn("Dummy-firefox-16.0.1-1.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-devel-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-devel-1.10-5.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-workstation-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-workstation-1.10-5.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.x86_64.rpm",  # Important
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "Dummy-firefox-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_firefox_selfhosting(self):
 | |
|         packages = [
 | |
|             "Dummy-firefox",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", selfhosting=True)
 | |
| 
 | |
|         self.assertNotIn("Dummy-firefox-16.0.1-2.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-devel-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-workstation-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-workstation-1.10-5.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.x86_64.rpm",  # Important
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-krb5-1.10-5.x86_64.rpm",
 | |
|                 "dummy-krb5-devel-1.10-5.x86_64.rpm",  # Important
 | |
|                 "dummy-krb5-libs-1.10-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-krb5-1.10-5.src.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|                 "Dummy-firefox-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",  # Important
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",  # Important
 | |
|                 "dummy-krb5-debuginfo-1.10-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_firefox_selfhosting_with_krb5_lookaside(self):
 | |
|         packages = [
 | |
|             "Dummy-firefox",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, lookaside=self.lookaside, selfhosting=True)
 | |
| 
 | |
|         self.assertNotIn("Dummy-firefox-16.0.1-2.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-1.10-5.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-debuginfo-1.10-5.x86_64.rpm", pkg_map["debuginfo"])
 | |
|         self.assertNotIn("dummy-krb5-1.10-5.src.rpm", pkg_map["srpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.x86_64.rpm",  # Important
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "Dummy-firefox-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_old_dep_in_lookaside_is_not_pulled_in(self):
 | |
|         # main repo:
 | |
|         #   dummy-cockpit-docker-141-1 depends on dummy-cockpit-system
 | |
|         #   dummy-cockpit-system-141-1
 | |
|         # lookaside:
 | |
|         #   dummy-cockpit-system-138-1
 | |
|         #
 | |
|         # By default newer version should be pulled in.
 | |
|         self.repo = os.path.join(os.path.dirname(__file__), "fixtures/repos/cockpit")
 | |
|         self.lookaside = os.path.join(
 | |
|             os.path.dirname(__file__), "fixtures/repos/cockpit-lookaside"
 | |
|         )
 | |
|         packages = [
 | |
|             "dummy-cockpit-docker",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, lookaside=self.lookaside)
 | |
| 
 | |
|         self.assertEqual(self.broken_deps, {})
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-cockpit-docker-141-1.noarch.rpm",
 | |
|                 "dummy-cockpit-system-141-1.noarch.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_does_not_exclude_from_lookaside(self):
 | |
|         # main repo:
 | |
|         #   dummy-cockpit-docker-141-1 depends on dummy-cockpit-system
 | |
|         #   dummy-cockpit-system-141-1
 | |
|         # lookaside:
 | |
|         #   dummy-cockpit-system-138-1
 | |
|         #
 | |
|         # The -system package is excluded and the dependency should be
 | |
|         # satisfied by the older version in lookaside. No broken dependencies
 | |
|         # should be reported.
 | |
|         self.repo = os.path.join(os.path.dirname(__file__), "fixtures/repos/cockpit")
 | |
|         self.lookaside = os.path.join(
 | |
|             os.path.dirname(__file__), "fixtures/repos/cockpit-lookaside"
 | |
|         )
 | |
|         packages = [
 | |
|             "dummy-cockpit-docker",
 | |
|             "-dummy-cockpit-system",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, lookaside=self.lookaside)
 | |
| 
 | |
|         self.assertEqual(self.broken_deps, {})
 | |
|         self.assertEqual(pkg_map["rpm"], ["dummy-cockpit-docker-141-1.noarch.rpm"])
 | |
| 
 | |
|     def test_firefox_fulltree(self):
 | |
|         packages = [
 | |
|             "Dummy-firefox",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("Dummy-firefox-16.0.1-2.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-devel-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-devel-1.10-5.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-workstation-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-workstation-1.10-5.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.x86_64.rpm",  # Important
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "Dummy-firefox-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_firefox_selfhosting_fulltree(self):
 | |
|         packages = [
 | |
|             "Dummy-firefox",
 | |
|         ]
 | |
|         pkg_map = self.go(
 | |
|             packages, None, greedy="none", selfhosting=True, fulltree=True
 | |
|         )
 | |
| 
 | |
|         self.assertNotIn("Dummy-firefox-16.0.1-2.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-devel-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-workstation-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-doc-4.2.37-6.noarch.rpm",
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.x86_64.rpm",  # Important
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-krb5-1.10-5.x86_64.rpm",
 | |
|                 "dummy-krb5-devel-1.10-5.x86_64.rpm",  # Important
 | |
|                 "dummy-krb5-libs-1.10-5.x86_64.rpm",
 | |
|                 "dummy-krb5-workstation-1.10-5.x86_64.rpm",  # Important
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "Dummy-firefox-16.0.1-1.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-krb5-1.10-5.src.rpm",
 | |
|                 "Dummy-xulrunner-16.0.1-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|                 "Dummy-firefox-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-krb5-debuginfo-1.10-5.x86_64.rpm",
 | |
|                 "Dummy-xulrunner-debuginfo-16.0.1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_krb5_fulltree(self):
 | |
|         packages = [
 | |
|             "dummy-krb5",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-krb5-devel-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-krb5-workstation-1.10-5.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-krb5-1.10-5.x86_64.rpm",
 | |
|                 "dummy-krb5-devel-1.10-5.x86_64.rpm",  # Important
 | |
|                 "dummy-krb5-libs-1.10-5.x86_64.rpm",
 | |
|                 "dummy-krb5-workstation-1.10-5.x86_64.rpm",  # Important
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-krb5-1.10-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-krb5-debuginfo-1.10-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_multilib(self):
 | |
|         packages = [
 | |
|             "dummy-bash.+",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         # 'dummy-bash' req already satisfied by bash.i686
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",  # Important
 | |
|                 "dummy-bash-doc-4.2.37-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_wildcard_with_multilib_blacklist(self):
 | |
|         packages = [
 | |
|             "dummy-glibc*",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, multilib_blacklist=["dummy-glibc*"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_multilib_exclude(self):
 | |
|         # test if excluding a package really works
 | |
|         # NOTE: dummy-bash-doc would pull x86_64 bash in (we want noarch pulling 64bit deps in composes)  # noqa: E501
 | |
|         packages = [
 | |
|             "dummy-bash.+",
 | |
|             "-dummy-bash-doc",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-doc-4.2.37-6.noarch.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",  # Important
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_multilib_exclude_source(self):
 | |
|         packages = [
 | |
|             "dummy-bash.+",
 | |
|             "-dummy-bash.src",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.src.rpm", pkg_map["srpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_multilib_greedy(self):
 | |
|         packages = [
 | |
|             "dummy-bash.+",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all", fulltree=True)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",  # Important
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",  # Important
 | |
|                 "dummy-bash-doc-4.2.37-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-nscd-2.14-5.i686.rpm",
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     @unittest.skip("This test is broken")
 | |
|     def test_bash_multilib_nogreedy(self):
 | |
|         packages = [
 | |
|             "dummy-bash.+",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",  # Important
 | |
|                 "dummy-bash-doc-4.2.37-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 # "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 # "dummy-glibc-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.i686.rpm",
 | |
|                 # "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 # "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_multilib_filter_greedy(self):
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|             "-dummy-bash.+",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all", fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",  # Important
 | |
|                 "dummy-bash-doc-4.2.37-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-nscd-2.14-5.i686.rpm",
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_filter_greedy(self):
 | |
|         packages = [
 | |
|             "dummy-filesystem",
 | |
|             "dummy-bash.+",
 | |
|             "-dummy-bash",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all", fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.x86_64.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-filesystem-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-filesystem-4.2.37-6.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_ipw3945_kmod(self):
 | |
|         # every package name is different
 | |
|         packages = [
 | |
|             "dummy-kmod-ipw3945",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-kmod-ipw3945-1.2.0-4.20.x86_64.rpm",  # Important
 | |
|                 "dummy-kmod-ipw3945-xen-1.2.0-4.20.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-ipw3945-kmod-1.2.0-4.20.src.rpm"])
 | |
|         self.assertEqual(
 | |
|             pkg_map["debuginfo"], ["dummy-ipw3945-kmod-debuginfo-1.2.0-4.20.x86_64.rpm"]
 | |
|         )
 | |
| 
 | |
|     def test_multilib_method_devel_runtime(self):
 | |
|         packages = [
 | |
|             "dummy-lvm2-devel",
 | |
|         ]
 | |
|         pkg_map = self.go(
 | |
|             packages,
 | |
|             None,
 | |
|             greedy="none",
 | |
|             fulltree=False,
 | |
|             multilib_methods=["devel", "runtime"],
 | |
|         )
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-lvm2-2.02.84-4.x86_64.rpm",
 | |
|                 "dummy-lvm2-devel-2.02.84-4.i686.rpm",  # Important
 | |
|                 "dummy-lvm2-devel-2.02.84-4.x86_64.rpm",  # Important
 | |
|                 "dummy-lvm2-libs-2.02.84-4.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-lvm2-2.02.84-4.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-lvm2-debuginfo-2.02.84-4.i686.rpm",
 | |
|                 "dummy-lvm2-debuginfo-2.02.84-4.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_selinux_policy_base(self):
 | |
|         packages = [
 | |
|             "dummy-freeipa-server",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=False, arch="ppc64")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-freeipa-server-2.2.0-1.ppc64.rpm",  # Important
 | |
|                 "dummy-selinux-policy-mls-3.10.0-121.noarch.rpm",  # Important
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-freeipa-2.2.0-1.src.rpm",
 | |
|                 "dummy-selinux-policy-3.10.0-121.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_selinux_policy_base_greedy_build(self):
 | |
|         packages = [
 | |
|             "dummy-freeipa-server",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="build", fulltree=False, arch="ppc64")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-freeipa-server-2.2.0-1.ppc64.rpm",  # Important
 | |
|                 "dummy-selinux-policy-minimal-3.10.0-121.noarch.rpm",
 | |
|                 "dummy-selinux-policy-mls-3.10.0-121.noarch.rpm",  # Important
 | |
|                 "dummy-selinux-policy-targeted-3.10.0-121.noarch.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-freeipa-2.2.0-1.src.rpm",
 | |
|                 "dummy-selinux-policy-3.10.0-121.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_selinux_policy_base_existing_provides(self):
 | |
|         packages = [
 | |
|             "dummy-selinux-policy-targeted",
 | |
|             "dummy-freeipa-server",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=False, arch="ppc64")
 | |
| 
 | |
|         self.assertNotIn(
 | |
|             "dummy-selinux-policy-mls-3.10.0-121.noarch.rpm", pkg_map["rpm"]
 | |
|         )
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-freeipa-server-2.2.0-1.ppc64.rpm",  # Important
 | |
|                 "dummy-selinux-policy-targeted-3.10.0-121.noarch.rpm",  # Important
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-freeipa-2.2.0-1.src.rpm",
 | |
|                 "dummy-selinux-policy-3.10.0-121.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_selinux_policy_doc_fulltree(self):
 | |
|         packages = ["dummy-selinux-policy-doc"]
 | |
|         pkg_map = self.go(packages, None, fulltree=True)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-selinux-policy-doc-3.10.0-121.noarch.rpm",
 | |
|                 "dummy-selinux-policy-minimal-3.10.0-121.noarch.rpm",
 | |
|                 "dummy-selinux-policy-mls-3.10.0-121.noarch.rpm",
 | |
|                 "dummy-selinux-policy-targeted-3.10.0-121.noarch.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-selinux-policy-3.10.0-121.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_AdobeReader_enu_nosrc(self):
 | |
|         packages = [
 | |
|             "dummy-AdobeReader_enu",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-AdobeReader_enu-9.5.1-1.i486.rpm",  # Important
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-AdobeReader_enu-9.5.1-1.nosrc.rpm",
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_imsettings(self):
 | |
|         packages = [
 | |
|             "dummy-imsettings",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=False, arch="x86_64")
 | |
| 
 | |
|         self.assertNotIn("dummy-imsettings-gnome-1.2.9-1.x86_64.rpm", pkg_map["rpm"])
 | |
|         # prefers qt over gnome (shorter name)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-imsettings-1.2.9-1.x86_64.rpm",  # Important
 | |
|                 "dummy-imsettings-qt-1.2.9-1.x86_64.rpm",  # Important
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-imsettings-1.2.9-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_imsettings_basic_desktop(self):
 | |
|         packages = [
 | |
|             "dummy-imsettings",
 | |
|         ]
 | |
|         groups = ["basic-desktop"]
 | |
|         pkg_map = self.go(
 | |
|             packages, groups, greedy="none", fulltree=False, arch="x86_64"
 | |
|         )
 | |
| 
 | |
|         self.assertNotIn("dummy-imsettings-qt-1.2.9-1.x86_64.rpm", pkg_map["rpm"])
 | |
|         # prefers gnome over qt (condrequires in @basic-desktop)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-imsettings-1.2.9-1.x86_64.rpm",  # Important
 | |
|                 "dummy-imsettings-gnome-1.2.9-1.x86_64.rpm",  # Important
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-imsettings-1.2.9-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_imsettings_basic_desktop_nodeps(self):
 | |
|         packages = [
 | |
|             "dummy-imsettings",
 | |
|         ]
 | |
|         groups = ["basic-desktop"]
 | |
|         pkg_map = self.go(
 | |
|             packages, groups, greedy="none", fulltree=False, nodeps=True, arch="x86_64"
 | |
|         )
 | |
| 
 | |
|         self.assertNotIn("dummy-imsettings-gnome-1.2.9-1.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-imsettings-qt-1.2.9-1.x86_64.rpm", pkg_map["rpm"])
 | |
|         # prefers gnome over qt (condrequires in @basic-desktop)
 | |
| 
 | |
|         self.assertEqual(pkg_map["rpm"], ["dummy-imsettings-1.2.9-1.x86_64.rpm"])
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-imsettings-1.2.9-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_imsettings_basic_desktop_and_qt(self):
 | |
|         packages = [
 | |
|             "dummy-imsettings",
 | |
|             "dummy-imsettings-qt",
 | |
|         ]
 | |
|         groups = ["basic-desktop"]
 | |
|         pkg_map = self.go(
 | |
|             packages, groups, greedy="none", fulltree=False, arch="x86_64"
 | |
|         )
 | |
| 
 | |
|         # prefers gnome over qt (condrequires in @basic-desktop)
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-imsettings-1.2.9-1.x86_64.rpm",  # Important
 | |
|                 "dummy-imsettings-gnome-1.2.9-1.x86_64.rpm",  # Important
 | |
|                 "dummy-imsettings-qt-1.2.9-1.x86_64.rpm",  # Important
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-imsettings-1.2.9-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_bash_nodeps(self):
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", nodeps=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         self.assertEqual(pkg_map["rpm"], ["dummy-bash-4.2.37-6.x86_64.rpm"])
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-bash-4.2.37-6.src.rpm"])
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_fulltree_nodeps(self):
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, nodeps=True, fulltree=True)
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.i686.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-5.x86_64.rpm", pkg_map["rpm"])
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.i686.rpm", pkg_map["rpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",  # Important
 | |
|                 "dummy-bash-doc-4.2.37-6.noarch.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-bash-4.2.37-6.src.rpm"])
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_lookaside_empty(self):
 | |
|         # if the input repo and lookaside repo are the same, output must be empty
 | |
|         packages = [
 | |
|             "*",
 | |
|         ]
 | |
|         pkg_map = self.go(
 | |
|             packages, None, lookaside=self.repo, nodeps=True, fulltree=True
 | |
|         )
 | |
| 
 | |
|         self.assertEqual(pkg_map["rpm"], [])
 | |
|         self.assertEqual(pkg_map["srpm"], [])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_exclude_wildcards(self):
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|             "-dummy-bas*",
 | |
|             "dummy-glibc",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", nodeps=True, fulltree=True)
 | |
| 
 | |
|         # neither dummy-bash or dummy-basesystem is pulled in
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-glibc-2.14-5.src.rpm"])
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_atlas_greedy_none(self):
 | |
|         packages = [
 | |
|             "dummy-atlas-devel",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=False, arch="x86_64")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             ["dummy-atlas-3.8.4-7.x86_64.rpm", "dummy-atlas-devel-3.8.4-7.x86_64.rpm"],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-atlas-3.8.4-7.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_atlas_greedy_build(self):
 | |
|         packages = [
 | |
|             "dummy-atlas",
 | |
|             "dummy-atlas-devel",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="build", fulltree=False, arch="x86_64")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-atlas-3.8.4-7.x86_64.rpm",
 | |
|                 "dummy-atlas-devel-3.8.4-7.x86_64.rpm",
 | |
|                 "dummy-atlas-sse3-3.8.4-7.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-atlas-3.8.4-7.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_atlas_greedy_build_multilib_devel(self):
 | |
|         packages = [
 | |
|             "dummy-atlas-devel",
 | |
|         ]
 | |
|         pkg_map = self.go(
 | |
|             packages,
 | |
|             None,
 | |
|             greedy="build",
 | |
|             multilib_methods=["devel", "runtime"],
 | |
|             fulltree=False,
 | |
|             arch="x86_64",
 | |
|         )
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-atlas-3.8.4-7.x86_64.rpm",
 | |
|                 "dummy-atlas-devel-3.8.4-7.i686.rpm",
 | |
|                 "dummy-atlas-devel-3.8.4-7.x86_64.rpm",
 | |
|                 "dummy-atlas-sse3-3.8.4-7.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-atlas-3.8.4-7.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_atlas_greedy_build_multilib_devel_32bit(self):
 | |
|         packages = [
 | |
|             "dummy-atlas-devel.+",
 | |
|         ]
 | |
|         pkg_map = self.go(
 | |
|             packages,
 | |
|             None,
 | |
|             greedy="build",
 | |
|             multilib_methods=["devel", "runtime"],
 | |
|             fulltree=False,
 | |
|             arch="x86_64",
 | |
|         )
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-atlas-3.8.4-7.x86_64.rpm",
 | |
|                 "dummy-atlas-devel-3.8.4-7.i686.rpm",
 | |
|                 "dummy-atlas-sse3-3.8.4-7.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-atlas-3.8.4-7.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_atlas_greedy_all(self):
 | |
|         packages = [
 | |
|             "dummy-atlas-devel",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="all", fulltree=False, arch="x86_64")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-atlas-3.8.4-7.i686.rpm",
 | |
|                 "dummy-atlas-3dnow-3.8.4-7.i686.rpm",
 | |
|                 "dummy-atlas-devel-3.8.4-7.i686.rpm",
 | |
|                 "dummy-atlas-sse-3.8.4-7.i686.rpm",
 | |
|                 "dummy-atlas-sse2-3.8.4-7.i686.rpm",
 | |
|                 "dummy-atlas-sse3-3.8.4-7.i686.rpm",
 | |
|                 "dummy-atlas-3.8.4-7.x86_64.rpm",
 | |
|                 "dummy-atlas-devel-3.8.4-7.x86_64.rpm",
 | |
|                 "dummy-atlas-sse3-3.8.4-7.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-atlas-3.8.4-7.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_skype(self):
 | |
|         packages = [
 | |
|             "dummy-skype",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="build", fulltree=False, arch="x86_64")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-skype-4.2.0.13-1.i586.rpm",
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|             ],
 | |
|         )
 | |
|         # no SRPM for skype
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_prepopulate(self):
 | |
|         packages = [
 | |
|             "dummy-glibc",
 | |
|         ]
 | |
|         prepopulate = [
 | |
|             "dummy-bash.i686",
 | |
|             "dummy-lvm2.x86_64",
 | |
|         ]
 | |
| 
 | |
|         pkg_map = self.go(packages, None, prepopulate=prepopulate)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-lvm2-2.02.84-4.x86_64.rpm",
 | |
|                 "dummy-lvm2-libs-2.02.84-4.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-lvm2-2.02.84-4.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-lvm2-debuginfo-2.02.84-4.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_langpacks(self):
 | |
|         packages = [
 | |
|             "dummy-release-notes",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-release-notes-1.2-1.noarch.rpm",
 | |
|                 "dummy-release-notes-cs-CZ-1.2-1.noarch.rpm",
 | |
|                 "dummy-release-notes-en-US-1.2-1.noarch.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-release-notes-1.2-1.src.rpm",
 | |
|                 "dummy-release-notes-cs-CZ-1.2-1.src.rpm",
 | |
|                 "dummy-release-notes-en-US-1.2-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_multilib_whitelist(self):
 | |
|         # whitelist must work regardless if multilib_method is specified or not
 | |
|         packages = [
 | |
|             "dummy-glibc",
 | |
|         ]
 | |
| 
 | |
|         pkg_map = self.go(packages, None, multilib_whitelist=["dummy-glibc"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_noarch_debuginfo(self):
 | |
|         packages = [
 | |
|             "dummy-mingw32-qt5-qtbase",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None)
 | |
| 
 | |
|         self.assertEqual(
 | |
|             pkg_map["rpm"], ["dummy-mingw32-qt5-qtbase-5.6.0-1.noarch.rpm"]
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-mingw-qt5-qtbase-5.6.0-1.src.rpm"])
 | |
|         self.assertEqual(
 | |
|             pkg_map["debuginfo"],
 | |
|             ["dummy-mingw32-qt5-qtbase-debuginfo-5.6.0-1.noarch.rpm"],
 | |
|         )
 | |
| 
 | |
|     def test_input_by_wildcard(self):
 | |
|         packages = [
 | |
|             "dummy-release-notes-*",
 | |
|             # Yum matches globs against NVR, DNF against names; let's exclude
 | |
|             # the extra package to unify the behaviour.
 | |
|             "-dummy-release-notes",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-release-notes-cs-CZ-1.2-1.noarch.rpm",
 | |
|                 "dummy-release-notes-en-US-1.2-1.noarch.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-release-notes-cs-CZ-1.2-1.src.rpm",
 | |
|                 "dummy-release-notes-en-US-1.2-1.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_requires_pre_post(self):
 | |
|         packages = ["dummy-perl"]
 | |
|         pkg_map = self.go(packages, None)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-perl-1.0.0-1.x86_64.rpm",
 | |
|                 "dummy-perl-macros-1.0.0-1.x86_64.rpm",  # Requires(pre)
 | |
|                 "dummy-perl-utils-1.0.0-1.x86_64.rpm",  # Requires(post)
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-perl-1.0.0-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_multilib_exclude_pattern_does_not_match_noarch(self):
 | |
|         packages = [
 | |
|             "dummy-release-notes-en-US",
 | |
|             "-dummy-release-notes-en*.+",
 | |
|         ]
 | |
| 
 | |
|         pkg_map = self.go(packages, None)
 | |
| 
 | |
|         self.assertEqual(pkg_map["rpm"], ["dummy-release-notes-en-US-1.2-1.noarch.rpm"])
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-release-notes-en-US-1.2-1.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
| 
 | |
| @unittest.skipUnless(HAS_YUM, "YUM only available on Python 2")
 | |
| class PungiYumDepsolvingTestCase(DepsolvingBase, unittest.TestCase):
 | |
|     def setUp(self):
 | |
|         super(PungiYumDepsolvingTestCase, self).setUp()
 | |
|         self.ks = os.path.join(self.tmp_dir, "ks")
 | |
|         self.out = os.path.join(self.tmp_dir, "out")
 | |
|         self.cwd = os.path.join(self.tmp_dir, "cwd")
 | |
|         os.mkdir(self.cwd)
 | |
|         self.old_cwd = os.getcwd()
 | |
|         os.chdir(self.cwd)
 | |
| 
 | |
|         logger = logging.getLogger("Pungi")
 | |
|         if not logger.handlers:
 | |
|             formatter = logging.Formatter("%(name)s:%(levelname)s: %(message)s")
 | |
|             console = logging.StreamHandler(sys.stdout)
 | |
|             console.setFormatter(formatter)
 | |
|             console.setLevel(logging.INFO)
 | |
|             logger.addHandler(console)
 | |
| 
 | |
|     def tearDown(self):
 | |
|         os.chdir(self.old_cwd)
 | |
|         super(PungiYumDepsolvingTestCase, self).tearDown()
 | |
| 
 | |
|     def go(
 | |
|         self,
 | |
|         packages,
 | |
|         groups,
 | |
|         lookaside=None,
 | |
|         prepopulate=None,
 | |
|         fulltree_excludes=None,
 | |
|         multilib_blacklist=None,
 | |
|         multilib_whitelist=None,
 | |
|         **kwargs
 | |
|     ):
 | |
|         """
 | |
|         Write a kickstart with given packages and groups, then run the
 | |
|         depsolving and parse the output.
 | |
|         """
 | |
|         p = PungiWrapper()
 | |
|         repos = {"repo": self.repo}
 | |
|         if lookaside:
 | |
|             repos["lookaside"] = lookaside
 | |
|             kwargs["lookaside_repos"] = ["lookaside"]
 | |
|         p.write_kickstart(
 | |
|             self.ks,
 | |
|             repos,
 | |
|             groups,
 | |
|             packages,
 | |
|             prepopulate=prepopulate,
 | |
|             multilib_whitelist=multilib_whitelist,
 | |
|             multilib_blacklist=multilib_blacklist,
 | |
|             fulltree_excludes=fulltree_excludes,
 | |
|         )
 | |
|         kwargs.setdefault("cache_dir", self.tmp_dir)
 | |
|         # Unless the test specifies an arch, we need to default to x86_64.
 | |
|         # Otherwise the arch of current machine will be used, which will cause
 | |
|         # failure most of the time.
 | |
|         kwargs.setdefault("arch", "x86_64")
 | |
| 
 | |
|         p.run_pungi(self.ks, self.tmp_dir, "DP", **kwargs)
 | |
|         with open(self.out, "r") as f:
 | |
|             pkg_map, self.broken_deps, _ = p.parse_log(f)
 | |
|         return convert_pkg_map(pkg_map)
 | |
| 
 | |
| 
 | |
| def convert_dnf_packages(pkgs, flags):
 | |
|     convert_table = {
 | |
|         # Hawkey returns nosrc package as src
 | |
|         "dummy-AdobeReader_enu-9.5.1-1.src": "dummy-AdobeReader_enu-9.5.1-1.nosrc",
 | |
|     }
 | |
|     result = set()
 | |
|     for p in pkgs:
 | |
|         name = str(p)
 | |
|         name = convert_table.get(name, name)
 | |
|         if PkgFlag.lookaside in flags.get(p, []):
 | |
|             # Package is coming from lookaside repo, we don't want those in
 | |
|             # output.
 | |
|             continue
 | |
|         result.add(name + ".rpm")
 | |
|     return sorted(result)
 | |
| 
 | |
| 
 | |
| @unittest.skipUnless(HAS_DNF, "Dependencies are not available")
 | |
| class DNFDepsolvingTestCase(DepsolvingBase, unittest.TestCase):
 | |
|     def setUp(self):
 | |
|         super(DNFDepsolvingTestCase, self).setUp()
 | |
|         self.cachedir = os.path.join(self.tmp_dir, "pungi_dnf_cache")
 | |
|         self.get_langpacks = False
 | |
| 
 | |
|         logger = logging.getLogger("gather_dnf")
 | |
|         if not logger.handlers:
 | |
|             formatter = logging.Formatter("%(name)s:%(levelname)s: %(message)s")
 | |
|             console = logging.StreamHandler(sys.stdout)
 | |
|             console.setFormatter(formatter)
 | |
|             console.setLevel(logging.INFO)
 | |
|             logger.addHandler(console)
 | |
| 
 | |
|         self.maxDiff = None
 | |
| 
 | |
|     def go(self, packages, groups, lookaside=None, **kwargs):
 | |
|         arch = kwargs.pop("arch", "x86_64")
 | |
|         if "greedy" in kwargs:
 | |
|             kwargs["greedy_method"] = kwargs.pop("greedy")
 | |
|         if "nodeps" in kwargs:
 | |
|             kwargs["resolve_deps"] = not kwargs.pop("nodeps")
 | |
|         if lookaside:
 | |
|             kwargs["lookaside_repos"] = ["lookaside"]
 | |
| 
 | |
|         self.dnf = self.dnf_instance(arch, lookaside=lookaside, persistdir=self.tmp_dir)
 | |
| 
 | |
|         if self.get_langpacks:
 | |
|             kwargs["langpacks"] = self.dnf.comps_wrapper.get_langpacks()
 | |
| 
 | |
|         groups = groups or []
 | |
|         exclude_groups = []
 | |
|         _, conditional_packages = self.dnf.comps_wrapper.get_comps_packages(
 | |
|             groups, exclude_groups
 | |
|         )
 | |
|         self.g = Gather(self.dnf, GatherOptions(**kwargs))
 | |
| 
 | |
|         self.g.logger.handlers = [
 | |
|             h for h in self.g.logger.handlers if h.name != "capture-logs"
 | |
|         ]
 | |
|         log_output = cStringIO()
 | |
|         handler = logging.StreamHandler(log_output)
 | |
|         handler.name = "capture-logs"
 | |
|         handler.setLevel(logging.WARNING)
 | |
|         self.g.logger.addHandler(handler)
 | |
| 
 | |
|         self.g.gather(packages, conditional_packages)
 | |
|         log_output.seek(0)
 | |
|         _, self.broken_deps, _ = PungiWrapper().parse_log(log_output)
 | |
| 
 | |
|         return {
 | |
|             "debuginfo": convert_dnf_packages(
 | |
|                 self.g.result_debug_packages, self.g.result_package_flags
 | |
|             ),
 | |
|             "srpm": convert_dnf_packages(
 | |
|                 self.g.result_source_packages, self.g.result_package_flags
 | |
|             ),
 | |
|             "rpm": convert_dnf_packages(
 | |
|                 self.g.result_binary_packages, self.g.result_package_flags
 | |
|             ),
 | |
|         }
 | |
| 
 | |
|     def dnf_instance(self, base_arch, exclude=None, lookaside=False, persistdir=None):
 | |
|         conf = Conf(base_arch)
 | |
|         conf.persistdir = persistdir
 | |
|         conf.cachedir = self.cachedir
 | |
|         conf.optional_metadata_types = ["filelists"]
 | |
|         if exclude:
 | |
|             conf.exclude = exclude
 | |
|         dnf = DnfWrapper(conf)
 | |
|         if lookaside:
 | |
|             dnf.add_repo("lookaside", lookaside, lookaside=True)
 | |
|         dnf.add_repo("test-repo", self.repo)
 | |
|         dnf.fill_sack(load_system_repo=False, load_available_repos=True)
 | |
|         dnf.read_comps()
 | |
|         return dnf
 | |
| 
 | |
|     def assertFlags(self, nvra, expected_flags):
 | |
|         assert isinstance(nvra, str)
 | |
|         assert isinstance(expected_flags, list)
 | |
|         expected_flags = set(expected_flags)
 | |
| 
 | |
|         found = False
 | |
|         for pkg, flags in self.g.result_package_flags.items():
 | |
|             if nvra == "%s-%s-%s.%s" % (pkg.name, pkg.version, pkg.release, pkg.arch):
 | |
|                 self.assertEqual(
 | |
|                     flags,
 | |
|                     expected_flags,
 | |
|                     "pkg: %s; flags: %s; expected flags: %s"
 | |
|                     % (nvra, flags, expected_flags),
 | |
|                 )
 | |
|                 found = True
 | |
|         if not found:
 | |
|             flags = set()
 | |
|             self.assertEqual(
 | |
|                 flags,
 | |
|                 expected_flags,
 | |
|                 "pkg: %s; flags: %s; expected flags: %s"
 | |
|                 % (nvra, flags, expected_flags),
 | |
|             )
 | |
| 
 | |
|     def test_langpacks(self):
 | |
|         self.get_langpacks = True
 | |
|         super(DNFDepsolvingTestCase, self).test_langpacks()
 | |
| 
 | |
|     @unittest.skip("DNF code does not support NVR as input")
 | |
|     def test_bash_older(self):
 | |
|         pass
 | |
| 
 | |
|     def test_firefox_selfhosting_with_krb5_lookaside(self):
 | |
|         super(
 | |
|             DNFDepsolvingTestCase, self
 | |
|         ).test_firefox_selfhosting_with_krb5_lookaside()
 | |
|         self.assertFlags("dummy-krb5-devel-1.10-5.x86_64", [PkgFlag.lookaside])
 | |
|         self.assertFlags("dummy-krb5-1.10-5.src", [PkgFlag.lookaside])
 | |
| 
 | |
|     def test_only_required_debuginfo_pulled_in(self):
 | |
|         self.repo = os.path.join(os.path.dirname(__file__), "fixtures/repos/debuginfo")
 | |
|         packages = ["libuser.+", "python-libuser"]
 | |
| 
 | |
|         pkg_map = self.go(packages, None)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             ["libuser-1-1.i686.rpm", "python-libuser-1-1.x86_64.rpm"],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["libuser-1-1.src.rpm"])
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "libuser-debuginfo-1-1.i686.rpm",
 | |
|                 "python-libuser-debuginfo-1-1.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_skype(self):
 | |
|         packages = [
 | |
|             "dummy-skype",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="build", fulltree=False, arch="x86_64")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-skype-4.2.0.13-1.i586.rpm",
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|             ],
 | |
|         )
 | |
|         # no SRPM for skype
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_bash_multilib_exclude_debuginfo(self):
 | |
|         packages = [
 | |
|             "dummy-bash.+",
 | |
|             "-dummy-bash-debuginfo",
 | |
|             "-dummy-bash-debugsource",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_exclude_wildcards(self):
 | |
|         packages = [
 | |
|             "dummy-bash",
 | |
|             "-dummy-bas*",
 | |
|             "dummy-glibc",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", nodeps=True, fulltree=True)
 | |
| 
 | |
|         # neither dummy-bash or dummy-basesystem is pulled in
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-nscd-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-glibc-2.14-5.src.rpm"])
 | |
|         self.assertEqual(
 | |
|             pkg_map["debuginfo"], ["dummy-glibc-debuginfo-2.14-5.x86_64.rpm"]
 | |
|         )
 | |
| 
 | |
|     def test_bash_multilib_exclude_source(self):
 | |
|         packages = [
 | |
|             "dummy-bash.+",
 | |
|             "-dummy-bash.src",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none")
 | |
| 
 | |
|         self.assertNotIn("dummy-bash-4.2.37-6.src.rpm", pkg_map["srpm"])
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.i686.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.i686.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_ipw3945_kmod(self):
 | |
|         # every package name is different
 | |
|         packages = [
 | |
|             "dummy-kmod-ipw3945",
 | |
|         ]
 | |
|         pkg_map = self.go(packages, None, greedy="none", fulltree=True)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-kmod-ipw3945-1.2.0-4.20.x86_64.rpm",  # Important
 | |
|                 "dummy-kmod-ipw3945-xen-1.2.0-4.20.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         self.assertEqual(pkg_map["srpm"], ["dummy-ipw3945-kmod-1.2.0-4.20.src.rpm"])
 | |
|         self.assertEqual(pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_multilib_method_devel_runtime(self):
 | |
|         packages = [
 | |
|             "dummy-lvm2-devel",
 | |
|         ]
 | |
|         pkg_map = self.go(
 | |
|             packages,
 | |
|             None,
 | |
|             greedy="none",
 | |
|             fulltree=False,
 | |
|             multilib_methods=["devel", "runtime"],
 | |
|         )
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-lvm2-2.02.84-4.x86_64.rpm",
 | |
|                 "dummy-lvm2-devel-2.02.84-4.i686.rpm",  # Important
 | |
|                 "dummy-lvm2-devel-2.02.84-4.x86_64.rpm",  # Important
 | |
|                 "dummy-lvm2-libs-2.02.84-4.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|                 "dummy-lvm2-2.02.84-4.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.i686.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.i686.rpm",
 | |
|                 "dummy-lvm2-debuginfo-2.02.84-4.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_exclude_source(self):
 | |
|         packages = ["dummy-bash"]
 | |
|         pkg_map = self.go(packages, None, exclude_source=True)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(self, pkg_map["srpm"], [])
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             [
 | |
|                 "dummy-bash-debuginfo-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-bash-debugsource-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
| 
 | |
|     def test_exclude_debug(self):
 | |
|         packages = ["dummy-bash"]
 | |
|         pkg_map = self.go(packages, None, exclude_debug=True)
 | |
| 
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["rpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.noarch.rpm",
 | |
|                 "dummy-bash-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.x86_64.rpm",
 | |
|                 "dummy-glibc-2.14-5.x86_64.rpm",
 | |
|                 "dummy-glibc-common-2.14-5.x86_64.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["srpm"],
 | |
|             [
 | |
|                 "dummy-basesystem-10.0-6.src.rpm",
 | |
|                 "dummy-bash-4.2.37-6.src.rpm",
 | |
|                 "dummy-filesystem-4.2.37-6.src.rpm",
 | |
|                 "dummy-glibc-2.14-5.src.rpm",
 | |
|             ],
 | |
|         )
 | |
|         six.assertCountEqual(self, pkg_map["debuginfo"], [])
 | |
| 
 | |
|     def test_explicit_debug(self):
 | |
|         pkg_map = self.go(["dummy-bash-debuginfo"], None)
 | |
| 
 | |
|         six.assertCountEqual(self, pkg_map["rpm"], [])
 | |
|         six.assertCountEqual(self, pkg_map["srpm"], [])
 | |
|         six.assertCountEqual(
 | |
|             self,
 | |
|             pkg_map["debuginfo"],
 | |
|             ["dummy-bash-debuginfo-4.2.37-6.x86_64.rpm"],
 | |
|         )
 |