Merge 3.5 (issue #27040)

This commit is contained in:
Yury Selivanov 2016-05-16 15:32:26 -04:00
commit 7c3ac2d1f8
4 changed files with 12 additions and 0 deletions

View File

@ -1079,6 +1079,11 @@ class BaseEventLoop(events.AbstractEventLoop):
logger.info('%s: %r' % (debug_log, transport))
return transport, protocol
def get_exception_handler(self):
"""Return an exception handler, or None if the default one is in use.
"""
return self._exception_handler
def set_exception_handler(self, handler):
"""Set handler as the new event loop exception handler.

View File

@ -484,6 +484,9 @@ class AbstractEventLoop:
# Error handlers.
def get_exception_handler(self):
raise NotImplementedError
def set_exception_handler(self, handler):
raise NotImplementedError

View File

@ -658,8 +658,10 @@ class BaseEventLoopTests(test_utils.TestCase):
self.loop.set_debug(True)
self.loop._process_events = mock.Mock()
self.assertIsNone(self.loop.get_exception_handler())
mock_handler = mock.Mock()
self.loop.set_exception_handler(mock_handler)
self.assertIs(self.loop.get_exception_handler(), mock_handler)
handle = run_loop()
mock_handler.assert_called_with(self.loop, {
'exception': MOCK_ANY,

View File

@ -979,6 +979,8 @@ Library
- Issue #26848: Fix asyncio/subprocess.communicate() to handle empty input.
Patch by Jack O'Connor.
- Issue #27040: Add loop.get_exception_handler method
IDLE
----