make _socket.socket weakrefable (closes #22569)
Patch from Alex Gaynor.
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 81bd537..0ce80b9 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -12,9 +12,9 @@
import os
import array
import contextlib
-from weakref import proxy
import signal
import math
+import weakref
try:
import _socket
except ImportError:
@@ -264,7 +264,7 @@
def test_weakref(self):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- p = proxy(s)
+ p = weakref.proxy(s)
self.assertEqual(p.fileno(), s.fileno())
s.close()
s = None
@@ -275,6 +275,14 @@
else:
self.fail('Socket proxy still exists')
+ def test_weakref__sock(self):
+ s = socket.socket()._sock
+ w = weakref.ref(s)
+ self.assertIs(w(), s)
+ del s
+ test_support.gc_collect()
+ self.assertIsNone(w())
+
def testSocketError(self):
# Testing socket module exceptions
def raise_error(*args, **kwargs):