From b3fa4fae23cc326645d257ceaae35c979311fe2c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 9 Nov 2025 13:14:48 -0500 Subject: [PATCH] be more aggressive in removing all references python3.14t is showing connections being referenced and not finalized. explicit closes/disposes and such dont seem to be working but ensuring globs are cleared out is working better Change-Id: I0c53f7702027e37ad11bd6e15e828900c8f52213 --- test/base/test_tutorials.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/test/base/test_tutorials.py b/test/base/test_tutorials.py index 616da4d581..7734669278 100644 --- a/test/base/test_tutorials.py +++ b/test/base/test_tutorials.py @@ -74,6 +74,18 @@ class DocTest(fixtures.TestBase): parser = doctest.DocTestParser() globs = {"print_function": print} + try: + self._run_doctest_impl(fnames, sqla_base, runner, parser, globs) + finally: + # Clear all references from doctest execution + globs.clear() + + # Delete references to avoid keeping stack frames alive + del runner + del parser + del globs + + def _run_doctest_impl(self, fnames, sqla_base, runner, parser, globs): for fname in fnames: path = os.path.join(sqla_base, "doc/build", fname) if not os.path.exists(path): @@ -103,8 +115,13 @@ class DocTest(fixtures.TestBase): buf[0][0], ) buf[:] = [] - runner.run(test, clear_globs=False) - globs.update(test.globs) + try: + runner.run(test, clear_globs=False) + globs.update(test.globs) + finally: + # Clear test object references + test.globs.clear() + test.examples.clear() doctest_enabled = True @@ -132,8 +149,8 @@ class DocTest(fixtures.TestBase): run_buf(fname, False) - runner.summarize() - assert not runner.failures + runner.summarize() + assert not runner.failures @requires.has_json_each def test_20_style(self): -- 2.47.3