bpo-36565: Fix libregrtest for Python without builtin _abc (GH-12733)
Fix reference hunting (``python3 -m test -R 3:3``) when Python has no
built-in abc module: fix _get_dump() reimplementation of libregrtest.
diff --git a/Lib/test/libregrtest/refleak.py b/Lib/test/libregrtest/refleak.py
index 6724488..d68ea63 100644
--- a/Lib/test/libregrtest/refleak.py
+++ b/Lib/test/libregrtest/refleak.py
@@ -8,9 +8,13 @@
try:
from _abc import _get_dump
except ImportError:
+ import weakref
+
def _get_dump(cls):
- # For legacy Python version
- return (cls._abc_registry, cls._abc_cache,
+ # Reimplement _get_dump() for pure-Python implementation of
+ # the abc module (Lib/_py_abc.py)
+ registry_weakrefs = set(weakref.ref(obj) for obj in cls._abc_registry)
+ return (registry_weakrefs, cls._abc_cache,
cls._abc_negative_cache, cls._abc_negative_cache_version)