|
21 | 21 | from clinic import DSLParser
|
22 | 22 |
|
23 | 23 |
|
| 24 | +def restore_dict(converters, old_converters): |
| 25 | + converters.clear() |
| 26 | + converters.update(old_converters) |
| 27 | + |
| 28 | + |
| 29 | +def save_restore_converters(testcase): |
| 30 | + testcase.addCleanup(restore_dict, clinic.converters, |
| 31 | + clinic.converters.copy()) |
| 32 | + testcase.addCleanup(restore_dict, clinic.legacy_converters, |
| 33 | + clinic.legacy_converters.copy()) |
| 34 | + testcase.addCleanup(restore_dict, clinic.return_converters, |
| 35 | + clinic.return_converters.copy()) |
| 36 | + |
| 37 | + |
24 | 38 | class _ParserBase(TestCase):
|
25 | 39 | maxDiff = None
|
26 | 40 |
|
@@ -107,6 +121,7 @@ def directive(self, name, args):
|
107 | 121 |
|
108 | 122 | class ClinicWholeFileTest(_ParserBase):
|
109 | 123 | def setUp(self):
|
| 124 | + save_restore_converters(self) |
110 | 125 | self.clinic = clinic.Clinic(clinic.CLanguage(None), filename="test.c")
|
111 | 126 |
|
112 | 127 | def expect_failure(self, raw):
|
@@ -1369,6 +1384,9 @@ class ClinicExternalTest(TestCase):
|
1369 | 1384 | maxDiff = None
|
1370 | 1385 | clinic_py = os.path.join(test_tools.toolsdir, "clinic", "clinic.py")
|
1371 | 1386 |
|
| 1387 | + def setUp(self): |
| 1388 | + save_restore_converters(self) |
| 1389 | + |
1372 | 1390 | def _do_test(self, *args, expect_success=True):
|
1373 | 1391 | with subprocess.Popen(
|
1374 | 1392 | [sys.executable, "-Xutf8", self.clinic_py, *args],
|
|
0 commit comments