]> granicus.if.org Git - python/commitdiff
Merged revisions 80426 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Fri, 23 Apr 2010 23:12:22 +0000 (23:12 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Fri, 23 Apr 2010 23:12:22 +0000 (23:12 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80426 | antoine.pitrou | 2010-04-24 01:10:32 +0200 (sam., 24 avril 2010) | 13 lines

  Only the test is merged in.

  Merged revisions 80423 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80423 | antoine.pitrou | 2010-04-24 00:54:59 +0200 (sam., 24 avril 2010) | 4 lines

    Issue #7943: Fix circular reference created when instantiating an SSL
    socket.  Initial patch by Péter Szabó.
  ........
................

Lib/test/test_ssl.py

index fb9c9a2ff5f2f513def3f3c875083407831a636e..eab15ab61a605a36b758793044597fdd25d69e34 100644 (file)
@@ -14,6 +14,7 @@ import urllib.parse, urllib.request
 import shutil
 import traceback
 import asyncore
+import weakref
 
 from http.server import HTTPServer, SimpleHTTPRequestHandler
 
@@ -97,6 +98,16 @@ class BasicTests(unittest.TestCase):
         if (d1 != d2):
             raise support.TestFailed("PEM-to-DER or DER-to-PEM translation failed")
 
+    @support.cpython_only
+    def test_refcycle(self):
+        # Issue #7943: an SSL object doesn't create reference cycles with
+        # itself.
+        s = socket.socket(socket.AF_INET)
+        ss = ssl.wrap_socket(s)
+        wr = weakref.ref(ss)
+        del ss
+        self.assertEqual(wr(), None)
+
 class NetworkedTests(unittest.TestCase):
 
     def testConnect(self):