gh-117347: Fix test_clinic side effects (#117363)

Save/restore converters in ClinicWholeFileTest and
ClinicExternalTest.
This commit is contained in:
Victor Stinner 2024-03-29 11:25:17 +01:00 committed by GitHub
parent 7e2fef8658
commit 35b6c4a4da
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -52,6 +52,20 @@ def _expect_failure(tc, parser, code, errmsg, *, filename=None, lineno=None,
return cm.exception
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 ClinicWholeFileTest(TestCase):
maxDiff = None
@ -60,6 +74,7 @@ def expect_failure(self, raw, errmsg, *, filename=None, lineno=None):
filename=filename, lineno=lineno)
def setUp(self):
save_restore_converters(self)
self.clinic = _make_clinic(filename="test.c")
def test_eol(self):
@ -2431,6 +2446,9 @@ def test_state_func_docstring_only_one_param_template(self):
class ClinicExternalTest(TestCase):
maxDiff = None
def setUp(self):
save_restore_converters(self)
def run_clinic(self, *args):
with (
support.captured_stdout() as out,