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()
