Я хотел бы задать вопрос об обработке asyncio.CancelledError из IsolatedAsyncioTestCase , который предназначен для тестирования asyncio на py3.8
Учитывая следующие тестовые случаи
import unittest
from unittest import IsolatedAsyncioTestCase
import asyncio
class Test(IsolatedAsyncioTestCase):
def setUp(self):
print('setup')
async def asyncSetUp(self):
print('async setup')
async def test_response(self):
print('test_response')
self.addAsyncCleanup(self.on_cleanup)
def tearDown(self):
print('teardown')
async def asyncTearDown(self):
print('before async teardown')
fut = asyncio.Future()
fut.cancel()
await fut
print('after async teardown')
async def on_cleanup(self):
print('clean up')
if __name__ == "__main__":
unittest.main()
Он был засосан на tearDown
root@1318a3fe59d0:/# python --version
Python 3.8.0
root@1318a3fe59d0:/# python /workspace/b.py
setup
async setup
test_response
before async teardown
....
После копания в стеке ошибок (нажав CTRL + C, чтобы завершить процесс) и исходных кодов из github , это коды, связанные сэта ошибка.
Ошибка asyncio.CancelledError была выборочно повышена, но не другимиисключение. Итак, мне интересно, как отловить и обработать эту ошибку вместо зависания в терминале.