From ff018e406cd96d117b54edcb30808a56fc2f689a Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 28 Jan 2015 00:30:40 +0100 Subject: [PATCH] asyncio: sync with Tulip * Remove unused SSLProtocol._closing attribute * test_sslproto: skip test if ssl module is missing * Python issue #23208: Don't use the traceback of the current handle if we already know the traceback of the source. The handle may be more revelant, but having 3 tracebacks (handle, source, exception) becomes more difficult to read. The handle may be preferred later but it requires more work to make this choice. --- Lib/asyncio/base_events.py | 3 ++- Lib/asyncio/sslproto.py | 1 - Lib/test/test_asyncio/test_sslproto.py | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 1c51a7cf853..e40d3ad5f2b 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -956,7 +956,8 @@ class BaseEventLoop(events.AbstractEventLoop): else: exc_info = False - if (self._current_handle is not None + if ('source_traceback' not in context + and self._current_handle is not None and self._current_handle._source_traceback): context['handle_traceback'] = self._current_handle._source_traceback diff --git a/Lib/asyncio/sslproto.py b/Lib/asyncio/sslproto.py index 117dc565b6c..f2b856c40cb 100644 --- a/Lib/asyncio/sslproto.py +++ b/Lib/asyncio/sslproto.py @@ -408,7 +408,6 @@ class SSLProtocol(protocols.Protocol): self._write_buffer_size = 0 self._waiter = waiter - self._closing = False self._loop = loop self._app_protocol = app_protocol self._app_transport = _SSLProtocolTransport(self._loop, diff --git a/Lib/test/test_asyncio/test_sslproto.py b/Lib/test/test_asyncio/test_sslproto.py index 812dedbe1d7..b1a61c483d2 100644 --- a/Lib/test/test_asyncio/test_sslproto.py +++ b/Lib/test/test_asyncio/test_sslproto.py @@ -2,6 +2,10 @@ import unittest from unittest import mock +try: + import ssl +except ImportError: + ssl = None import asyncio from asyncio import sslproto @@ -14,6 +18,7 @@ class SslProtoHandshakeTests(test_utils.TestCase): self.loop = asyncio.new_event_loop() self.set_event_loop(self.loop) + @unittest.skipIf(ssl is None, 'No ssl module') def test_cancel_handshake(self): # Python issue #23197: cancelling an handshake must not raise an # exception or log an error, even if the handshake failed