Re: [PATCH RESEND 3/4] tests/test_config: Refactor LicenseManager testing to test multiple configurations
Sam James <[email protected]> Thu, 18 Dec 2025 01:27:44 +0000
| Newsgroups | gmane.linux.gentoo.portage.devel |
|---|---|
| Organization | Gentoo |
| Message-ID | <[email protected]> |
Louis Chauvet <[email protected]> writes: > In order to easly test per-profile per-package license unmasking, extract > common code from testLicenseManager. Reviewed-by: Sam James <[email protected]> > > Signed-off-by: Louis Chauvet <[email protected]> > --- > 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 83046a7dc97b..b36073504b11 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()