commit:     fa28b4d591a8eb2bb186b5db174c12d713549673
Author:     Louis Chauvet <louis.chauvet <AT> bootlin <DOT> com>
AuthorDate: Wed Dec 17 07:10:14 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 18 01:34:08 2025 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=fa28b4d5

tests/test_config: Refactor LicenseManager testing to test multiple 
configurations

In order to easly test per-profile per-package license unmasking, extract
common code from testLicenseManager.

Bug: https://bugs.gentoo.org/686888
Signed-off-by: Louis Chauvet <louis.chauvet <AT> bootlin.com>
Reviewed-by: Sam James <sam <AT> gentoo.org>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 lib/portage/tests/ebuild/test_config.py | 181 ++++++++++++++++----------------
 1 file changed, 88 insertions(+), 93 deletions(-)

diff --git a/lib/portage/tests/ebuild/test_config.py 
b/lib/portage/tests/ebuild/test_config.py
index 83046a7dc9..b36073504b 100644
--- a/lib/portage/tests/ebuild/test_config.py
+++ b/lib/portage/tests/ebuild/test_config.py
@@ -83,16 +83,94 @@ class ConfigTestCase(TestCase):
         finally:
             playground.cleanup()
 
+    _testLicenseManagerPackageLicense = (
+        "dev-libs/* TEST",
+        "dev-libs/A -TEST2",
+        "=dev-libs/A-2 TEST3 @TEST",
+        "*/* @EULA TEST2",
+        "=dev-libs/C-1 *",
+        "=dev-libs/C-2 -*",
+    )
+
+    def _testLicenseManager(self, lic_man):
+        self.assertEqual(lic_man._accept_license_str, None)
+        self.assertEqual(lic_man._accept_license, None)
+        self.assertEqual(lic_man._license_groups, {"EULA": 
frozenset(["TEST"])})
+        self.assertEqual(lic_man._undef_lic_groups, {"TEST"})
+
+        self.assertEqual(lic_man.extract_global_changes(), "TEST TEST2")
+        self.assertEqual(lic_man.extract_global_changes(), "")
+
+        lic_man.set_accept_license_str("TEST TEST2")
+        self.assertEqual(
+            lic_man._getPkgAcceptLicense("dev-libs/B-1", "0", None),
+            ["TEST", "TEST2", "TEST"],
+        )
+        self.assertEqual(
+            lic_man._getPkgAcceptLicense("dev-libs/A-1", "0", None),
+            ["TEST", "TEST2", "TEST", "-TEST2"],
+        )
+        self.assertEqual(
+            lic_man._getPkgAcceptLicense("dev-libs/A-2", "0", None),
+            ["TEST", "TEST2", "TEST", "-TEST2", "TEST3", "@TEST"],
+        )
+
+        self.assertEqual(
+            lic_man.get_prunned_accept_license("dev-libs/B-1", [], "TEST", 
"0", None),
+            "TEST",
+        )
+        self.assertEqual(
+            lic_man.get_prunned_accept_license("dev-libs/A-1", [], "-TEST2", 
"0", None),
+            "",
+        )
+        self.assertEqual(
+            lic_man.get_prunned_accept_license(
+                "dev-libs/A-2", [], "|| ( TEST TEST2 )", "0", None
+            ),
+            "TEST",
+        )
+        self.assertEqual(
+            lic_man.get_prunned_accept_license("dev-libs/C-1", [], "TEST5", 
"0", None),
+            "TEST5",
+        )
+        self.assertEqual(
+            lic_man.get_prunned_accept_license("dev-libs/C-2", [], "TEST2", 
"0", None),
+            "",
+        )
+
+        self.assertEqual(
+            lic_man.getMissingLicenses("dev-libs/B-1", [], "TEST", "0", None), 
[]
+        )
+        self.assertEqual(
+            lic_man.getMissingLicenses("dev-libs/A-1", [], "-TEST2", "0", 
None),
+            ["-TEST2"],
+        )
+        self.assertEqual(
+            lic_man.getMissingLicenses(
+                "dev-libs/A-2", [], "|| ( TEST TEST2 )", "0", None
+            ),
+            [],
+        )
+        self.assertEqual(
+            lic_man.getMissingLicenses(
+                "dev-libs/A-3", [], "|| ( TEST2 || ( TEST3 TEST4 ) )", "0", 
None
+            ),
+            ["TEST2", "TEST3", "TEST4"],
+        )
+        self.assertEqual(
+            lic_man.getMissingLicenses("dev-libs/C-1", [], "TEST5", "0", 
None), []
+        )
+        self.assertEqual(
+            lic_man.getMissingLicenses("dev-libs/C-2", [], "TEST2", "0", None),
+            ["TEST2"],
+        )
+        self.assertEqual(
+            lic_man.getMissingLicenses("dev-libs/D-1", [], "", "0", None), []
+        )
+
     def testLicenseManager(self):
         user_config = {
-            "package.license": (
-                "dev-libs/* TEST",
-                "dev-libs/A -TEST2",
-                "=dev-libs/A-2 TEST3 @TEST",
-                "*/* @EULA TEST2",
-                "=dev-libs/C-1 *",
-                "=dev-libs/C-2 -*",
-            ),
+            "package.license": self._testLicenseManagerPackageLicense,
         }
 
         playground = ResolverPlayground(user_config=user_config)
@@ -100,92 +178,9 @@ class ConfigTestCase(TestCase):
         try:
             portage.util.noiselimit = -2
 
-            pkg_license = os.path.join(playground.eroot, "etc", "portage")
-
-            lic_man = LicenseManager(settings._locations_manager, pkg_license)
-
-            self.assertEqual(lic_man._accept_license_str, None)
-            self.assertEqual(lic_man._accept_license, None)
-            self.assertEqual(lic_man._license_groups, {"EULA": 
frozenset(["TEST"])})
-            self.assertEqual(lic_man._undef_lic_groups, {"TEST"})
-
-            self.assertEqual(lic_man.extract_global_changes(), "TEST TEST2")
-            self.assertEqual(lic_man.extract_global_changes(), "")
-
-            lic_man.set_accept_license_str("TEST TEST2")
-            self.assertEqual(
-                lic_man._getPkgAcceptLicense("dev-libs/B-1", "0", None),
-                ["TEST", "TEST2", "TEST"],
-            )
-            self.assertEqual(
-                lic_man._getPkgAcceptLicense("dev-libs/A-1", "0", None),
-                ["TEST", "TEST2", "TEST", "-TEST2"],
-            )
-            self.assertEqual(
-                lic_man._getPkgAcceptLicense("dev-libs/A-2", "0", None),
-                ["TEST", "TEST2", "TEST", "-TEST2", "TEST3", "@TEST"],
-            )
-
-            self.assertEqual(
-                lic_man.get_prunned_accept_license(
-                    "dev-libs/B-1", [], "TEST", "0", None
-                ),
-                "TEST",
-            )
-            self.assertEqual(
-                lic_man.get_prunned_accept_license(
-                    "dev-libs/A-1", [], "-TEST2", "0", None
-                ),
-                "",
-            )
-            self.assertEqual(
-                lic_man.get_prunned_accept_license(
-                    "dev-libs/A-2", [], "|| ( TEST TEST2 )", "0", None
-                ),
-                "TEST",
-            )
-            self.assertEqual(
-                lic_man.get_prunned_accept_license(
-                    "dev-libs/C-1", [], "TEST5", "0", None
-                ),
-                "TEST5",
-            )
-            self.assertEqual(
-                lic_man.get_prunned_accept_license(
-                    "dev-libs/C-2", [], "TEST2", "0", None
-                ),
-                "",
-            )
+            lic_man = LicenseManager(settings._locations_manager)
+            self._testLicenseManager(lic_man)
 
-            self.assertEqual(
-                lic_man.getMissingLicenses("dev-libs/B-1", [], "TEST", "0", 
None), []
-            )
-            self.assertEqual(
-                lic_man.getMissingLicenses("dev-libs/A-1", [], "-TEST2", "0", 
None),
-                ["-TEST2"],
-            )
-            self.assertEqual(
-                lic_man.getMissingLicenses(
-                    "dev-libs/A-2", [], "|| ( TEST TEST2 )", "0", None
-                ),
-                [],
-            )
-            self.assertEqual(
-                lic_man.getMissingLicenses(
-                    "dev-libs/A-3", [], "|| ( TEST2 || ( TEST3 TEST4 ) )", 
"0", None
-                ),
-                ["TEST2", "TEST3", "TEST4"],
-            )
-            self.assertEqual(
-                lic_man.getMissingLicenses("dev-libs/C-1", [], "TEST5", "0", 
None), []
-            )
-            self.assertEqual(
-                lic_man.getMissingLicenses("dev-libs/C-2", [], "TEST2", "0", 
None),
-                ["TEST2"],
-            )
-            self.assertEqual(
-                lic_man.getMissingLicenses("dev-libs/D-1", [], "", "0", None), 
[]
-            )
         finally:
             portage.util.noiselimit = 0
             playground.cleanup()

Reply via email to