https://github.com/python/cpython/commit/54ee0386151139de9e65ac247ae980d599703458 commit: 54ee0386151139de9e65ac247ae980d599703458 branch: 3.11 author: Miss Islington (bot) <[email protected]> committer: vstinner <[email protected]> date: 2024-03-29T11:21:56Z summary:
[3.11] [3.12] gh-117347: Fix test_clinic side effects (GH-117363) (GH-117365) (#117366) [3.12] gh-117347: Fix test_clinic side effects (GH-117363) (GH-117365) gh-117347: Fix test_clinic side effects (GH-117363) Save/restore converters in ClinicWholeFileTest and ClinicExternalTest. (cherry picked from commit c80d13838dbcfe239eeabfd950bc524d797e6db1) Co-authored-by: Victor Stinner <[email protected]> (cherry picked from commit 35b6c4a4da201a947b2ceb96ae4c0d83d4d2df4f) Co-authored-by: Victor Stinner <[email protected]> files: M Lib/test/test_clinic.py diff --git a/Lib/test/test_clinic.py b/Lib/test/test_clinic.py index 748a63e5348fce..902d43cb1d67df 100644 --- a/Lib/test/test_clinic.py +++ b/Lib/test/test_clinic.py @@ -22,6 +22,20 @@ from clinic import DSLParser +def restore_dict(converters, old_converters): + converters.clear() + converters.update(old_converters) + + +def save_restore_converters(testcase): + testcase.addCleanup(restore_dict, clinic.converters, + clinic.converters.copy()) + testcase.addCleanup(restore_dict, clinic.legacy_converters, + clinic.legacy_converters.copy()) + testcase.addCleanup(restore_dict, clinic.return_converters, + clinic.return_converters.copy()) + + class _ParserBase(TestCase): maxDiff = None @@ -108,6 +122,7 @@ def directive(self, name, args): class ClinicWholeFileTest(_ParserBase): def setUp(self): + save_restore_converters(self) self.clinic = clinic.Clinic(clinic.CLanguage(None), filename="test.c") def expect_failure(self, raw): @@ -1317,6 +1332,9 @@ class ClinicExternalTest(TestCase): maxDiff = None clinic_py = os.path.join(test_tools.toolsdir, "clinic", "clinic.py") + def setUp(self): + save_restore_converters(self) + def _do_test(self, *args, expect_success=True): with subprocess.Popen( [sys.executable, "-Xutf8", self.clinic_py, *args], _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: [email protected]
