diff options
| author | Benjamin Peterson <benjamin@python.org> | 2013-01-10 14:16:20 -0600 | 
|---|---|---|
| committer | Benjamin Peterson <benjamin@python.org> | 2013-01-10 14:16:20 -0600 | 
| commit | 36f7b97787f3428037ffa007bf93dadb738eef03 (patch) | |
| tree | 784e50cbf1821bf57970fa6b9b1e0bb28f70c278 | |
| parent | 7bd04867e53d78ddb0f5e8f78b9256298d41fadd (diff) | |
| download | cpython-git-36f7b97787f3428037ffa007bf93dadb738eef03.tar.gz | |
remove __del__ because it's evil and also prevents the ResourceWarning on the socket from happening (closes #16900)
| -rw-r--r-- | Lib/ssl.py | 4 | ||||
| -rw-r--r-- | Lib/test/test_ssl.py | 8 | ||||
| -rw-r--r-- | Misc/NEWS | 2 | 
3 files changed, 10 insertions, 4 deletions
| diff --git a/Lib/ssl.py b/Lib/ssl.py index 5e5a5ce091..6ff5c53884 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -574,10 +574,6 @@ class SSLSocket(socket):              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 index 0a6af5e0cb..2f63eaa110 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -374,6 +374,14 @@ class BasicSocketTests(unittest.TestCase):          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 @@ -142,6 +142,8 @@ Core and Builtins  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). | 
