From e05831b12bf473a407e0198e405394c4f14b6746 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 29 Mar 2024 12:04:25 +0100 Subject: [PATCH] [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 (cherry picked from commit 35b6c4a4da201a947b2ceb96ae4c0d83d4d2df4f) --- Lib/test/test_clinic.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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], pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy