https://github.com/python/cpython/commit/c80d13838dbcfe239eeabfd950bc524d797e6db1
commit: c80d13838dbcfe239eeabfd950bc524d797e6db1
branch: 3.12
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2024-03-29T12:04:25+01:00
summary:
[3.12] gh-117347: Fix test_clinic side effects (#117363) (#117365)
gh-117347: Fix test_clinic side effects (#117363)
Save/restore converters in ClinicWholeFileTest and
ClinicExternalTest.
(cherry picked from commit 35b6c4a4da201a947b2ceb96ae4c0d83d4d2df4f)
files:
M Lib/test/test_clinic.py
diff --git a/Lib/test/test_clinic.py b/Lib/test/test_clinic.py
index e81d3824e0ce28..3a0ff940d6a620 100644
--- a/Lib/test/test_clinic.py
+++ b/Lib/test/test_clinic.py
@@ -21,6 +21,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
@@ -107,6 +121,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):
@@ -1369,6 +1384,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]