From b129850dd5bff4b048d411b7ad4518f1c09d6b50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?= Date: Fri, 17 Jan 2025 16:11:09 +0000 Subject: [PATCH] Add basic unit tests around reposync filters --- .../spacewalk/satellite_tools/test_yum_src.py | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/python/test/unit/spacewalk/satellite_tools/test_yum_src.py b/python/test/unit/spacewalk/satellite_tools/test_yum_src.py index e3498c4d1b00..6eeb597933f6 100644 --- a/python/test/unit/spacewalk/satellite_tools/test_yum_src.py +++ b/python/test/unit/spacewalk/satellite_tools/test_yum_src.py @@ -111,8 +111,64 @@ def test_list_packages_empty(self): self.assertEqual(cs.list_packages(filters=None, latest=False), []) + def test_list_packages_filters(self): + cs = self._make_dummy_cs() + + class ChecksumMock(): + def typestr(self): + pass + + def hex(self): + pass + + class SolvableMock(): + def __init__(self, name, evr, nevra, arch): + self.name = name + self.evr = evr + self.nevra = nevra + self.arch = arch + + def lookup_checksum(self, x): + return ChecksumMock() + + def lookup_num(self, x): + pass + + def lookup_location(self): + return ["foobar"] + + def __str__(self): + return self.nevra + + cs._get_solvable_packages = MagicMock(side_effect = lambda: + [ + SolvableMock("pkg1", "1.2.3-xx.0.foobar", "pkg1-1.2.3-xx.0.foobar.x86_64", "x86_64"), + SolvableMock("pkg1", "1.2.4-xx.0.foobar", "pkg1-1.2.4-xx.0.foobar.x86_64", "x86_64"), + SolvableMock("pkg2", "3.2.1-1", "pkg2-3.2.1-1.x86_64", "x86_64"), + SolvableMock("pkg2", "3.2.2-1", "pkg2-3.2.2-1.x86_64", "x86_64"), + ] + ) + cs._get_solvable_dependencies = MagicMock(side_effect = lambda x: x) + + self.assertEqual(len(cs.list_packages(filters=None, latest=False)), 4) + + cs.nevra_filter = False + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg*"])], latest=False)), 4) + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg1*"])], latest=False)), 2) + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg1-1.2*"])], latest=False)), 0) + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg1"])], latest=False)), 2) + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg1-1.2.3-xx.0.foobar.x86_64"])], latest=False)), 0) + + cs.nevra_filter = True + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg*"])], latest=False)), 4) + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg1*"])], latest=False)), 2) + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg1-1.2*"])], latest=False)), 2) + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg1"])], latest=False)), 0) + self.assertEqual(len(cs.list_packages(filters=[("+", ["pkg1-1.2.3-xx.0.foobar.x86_64"])], latest=False)), 1) + @unittest.skip def test_list_packages_with_pack(self): + cs = self._make_dummy_cs() package_attrs = [