[Python-checkins] cpython (merge 3.3 -> default): merge 3.3 (#16900)

benjamin.peterson python-checkins at python.org
Thu Jan 10 21:17:02 CET 2013


http://hg.python.org/cpython/rev/e23d51f17cce
changeset:   81373:e23d51f17cce
parent:      81369:7a62b5ee32ec
parent:      81372:c8105251cc1f
user:        Benjamin Peterson <benjamin at python.org>
date:        Thu Jan 10 14:16:42 2013 -0600
summary:
  merge 3.3 (#16900)

files:
  Lib/ssl.py           |  4 ----
  Lib/test/test_ssl.py |  8 ++++++++
  Misc/NEWS            |  2 ++
  3 files changed, 10 insertions(+), 4 deletions(-)


diff --git a/Lib/ssl.py b/Lib/ssl.py
--- a/Lib/ssl.py
+++ b/Lib/ssl.py
@@ -604,10 +604,6 @@
             return None
         return self._sslobj.tls_unique_cb()
 
-    def __del__(self):
-        # sys.stderr.write("__del__ on %s\n" % repr(self))
-        self._real_close()
-
 
 def wrap_socket(sock, keyfile=None, certfile=None,
                 server_side=False, cert_reqs=CERT_NONE,
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -383,6 +383,14 @@
         ss = ssl.wrap_socket(s, server_side=True, certfile=CERTFILE)
         self.assertIsNone(ss.get_channel_binding("tls-unique"))
 
+    def test_dealloc_warn(self):
+        ss = ssl.wrap_socket(socket.socket(socket.AF_INET))
+        r = repr(ss)
+        with self.assertWarns(ResourceWarning) as cm:
+            ss = None
+            support.gc_collect()
+        self.assertIn(r, str(cm.warning.args[0]))
+
 class ContextTests(unittest.TestCase):
 
     @skip_if_broken_ubuntu_ssl
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -212,6 +212,8 @@
 Library
 -------
 
+- Issue #16900: Issue a ResourceWarning when an ssl socket is left unclosed.
+
 - Issue #15545: Fix regression in sqlite3's iterdump method where it was
   failing if the connection used a row factory (such as sqlite3.Row) that
   produced unsortable objects. (Regression was introduced by fix for 9750).

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list