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