mirror of
https://github.com/python/cpython.git
synced 2025-11-01 02:38:53 +00:00
asyncio, Tulip issue 137: In debug mode, save traceback where Future, Task and
Handle objects are created. Pass the traceback to call_exception_handler() in the 'source_traceback' key. The traceback is truncated to hide internal calls in asyncio, show only the traceback from user code. Add tests for the new source_traceback, and a test for the 'Future/Task exception was never retrieved' log.
This commit is contained in:
parent
bbd96c6f47
commit
80f53aa9a0
8 changed files with 180 additions and 26 deletions
|
|
@ -406,19 +406,22 @@ class BaseEventLoopTests(test_utils.TestCase):
|
|||
1/0
|
||||
|
||||
def run_loop():
|
||||
self.loop.call_soon(zero_error)
|
||||
handle = self.loop.call_soon(zero_error)
|
||||
self.loop._run_once()
|
||||
return handle
|
||||
|
||||
self.loop.set_debug(True)
|
||||
self.loop._process_events = mock.Mock()
|
||||
|
||||
mock_handler = mock.Mock()
|
||||
self.loop.set_exception_handler(mock_handler)
|
||||
run_loop()
|
||||
handle = run_loop()
|
||||
mock_handler.assert_called_with(self.loop, {
|
||||
'exception': MOCK_ANY,
|
||||
'message': test_utils.MockPattern(
|
||||
'Exception in callback.*zero_error'),
|
||||
'handle': MOCK_ANY,
|
||||
'handle': handle,
|
||||
'source_traceback': handle._source_traceback,
|
||||
})
|
||||
mock_handler.reset_mock()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue