|
22 | 22 | from clinic import DSLParser
|
23 | 23 |
|
24 | 24 |
|
| 25 | +def restore_dict(converters, old_converters): |
| 26 | + converters.clear() |
| 27 | + converters.update(old_converters) |
| 28 | + |
| 29 | + |
| 30 | +def save_restore_converters(testcase): |
| 31 | + testcase.addCleanup(restore_dict, clinic.converters, |
| 32 | + clinic.converters.copy()) |
| 33 | + testcase.addCleanup(restore_dict, clinic.legacy_converters, |
| 34 | + clinic.legacy_converters.copy()) |
| 35 | + testcase.addCleanup(restore_dict, clinic.return_converters, |
| 36 | + clinic.return_converters.copy()) |
| 37 | + |
| 38 | + |
25 | 39 | class _ParserBase(TestCase):
|
26 | 40 | maxDiff = None
|
27 | 41 |
|
@@ -108,6 +122,7 @@ def directive(self, name, args):
|
108 | 122 |
|
109 | 123 | class ClinicWholeFileTest(_ParserBase):
|
110 | 124 | def setUp(self):
|
| 125 | + save_restore_converters(self) |
111 | 126 | self.clinic = clinic.Clinic(clinic.CLanguage(None), filename="test.c")
|
112 | 127 |
|
113 | 128 | def expect_failure(self, raw):
|
@@ -1317,6 +1332,9 @@ class ClinicExternalTest(TestCase):
|
1317 | 1332 | maxDiff = None
|
1318 | 1333 | clinic_py = os.path.join(test_tools.toolsdir, "clinic", "clinic.py")
|
1319 | 1334 |
|
| 1335 | + def setUp(self): |
| 1336 | + save_restore_converters(self) |
| 1337 | + |
1320 | 1338 | def _do_test(self, *args, expect_success=True):
|
1321 | 1339 | with subprocess.Popen(
|
1322 | 1340 | [sys.executable, "-Xutf8", self.clinic_py, *args],
|
|
0 commit comments