Merge 3.5 (asyncio)

This commit is contained in:
Yury Selivanov 2016-06-28 10:55:49 -04:00
commit 7c6b3ea48c
2 changed files with 17 additions and 0 deletions

View File

@ -5,6 +5,7 @@ try:
except ImportError: # pragma: no cover except ImportError: # pragma: no cover
ssl = None ssl = None
from . import base_events
from . import compat from . import compat
from . import protocols from . import protocols
from . import transports from . import transports

View File

@ -1,5 +1,6 @@
"""Tests for asyncio/sslproto.py.""" """Tests for asyncio/sslproto.py."""
import logging
import unittest import unittest
from unittest import mock from unittest import mock
try: try:
@ -8,6 +9,7 @@ except ImportError:
ssl = None ssl = None
import asyncio import asyncio
from asyncio import log
from asyncio import sslproto from asyncio import sslproto
from asyncio import test_utils from asyncio import test_utils
@ -66,6 +68,20 @@ class SslProtoHandshakeTests(test_utils.TestCase):
test_utils.run_briefly(self.loop) test_utils.run_briefly(self.loop)
self.assertIsInstance(waiter.exception(), ConnectionResetError) self.assertIsInstance(waiter.exception(), ConnectionResetError)
def test_fatal_error_no_name_error(self):
# From issue #363.
# _fatal_error() generates a NameError if sslproto.py
# does not import base_events.
waiter = asyncio.Future(loop=self.loop)
ssl_proto = self.ssl_protocol(waiter)
# Temporarily turn off error logging so as not to spoil test output.
log_level = log.logger.getEffectiveLevel()
log.logger.setLevel(logging.FATAL)
try:
ssl_proto._fatal_error(None)
finally:
# Restore error logging.
log.logger.setLevel(log_level)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()