Skip to content

Commit 5f660e8

Browse files
authored
gh-121084: Fix test_typing random leaks (#121360)
Clear typing ABC caches when running tests for refleaks (-R option): call _abc_caches_clear() on typing abstract classes and their subclasses.
1 parent f5c8d67 commit 5f660e8

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

Lib/test/libregrtest/utils.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,12 @@ def clear_caches():
264264
for f in typing._cleanups:
265265
f()
266266

267+
import inspect
268+
abs_classes = filter(inspect.isabstract, typing.__dict__.values())
269+
for abc in abs_classes:
270+
for obj in abc.__subclasses__() + [abc]:
271+
obj._abc_caches_clear()
272+
267273
try:
268274
fractions = sys.modules['fractions']
269275
except KeyError:
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Fix test_typing random leaks. Clear typing ABC caches when running tests for
2+
refleaks (``-R`` option): call ``_abc_caches_clear()`` on typing abstract
3+
classes and their subclasses. Patch by Victor Stinner.

0 commit comments

Comments
 (0)