@@ -1129,7 +1129,7 @@ async def inner(httpd):
11291129
11301130 self .assertEqual (messages , [])
11311131
1132- def test_unhandled_exceptions (self ) -> None :
1132+ def _basetest_unhandled_exceptions (self , handle_echo ) :
11331133 port = socket_helper .find_unused_port ()
11341134
11351135 messages = []
@@ -1143,9 +1143,6 @@ async def client():
11431143 await wr .wait_closed ()
11441144
11451145 async def main ():
1146- async def handle_echo (reader , writer ):
1147- raise Exception ('test' )
1148-
11491146 server = await asyncio .start_server (
11501147 handle_echo , 'localhost' , port )
11511148 await server .start_serving ()
@@ -1154,11 +1151,20 @@ async def handle_echo(reader, writer):
11541151 await server .wait_closed ()
11551152
11561153 self .loop .run_until_complete (main ())
1154+ return messages
11571155
1156+ def test_unhandled_exception (self ):
1157+ async def handle_echo (reader , writer ):
1158+ raise Exception ('test' )
1159+ messages = self ._basetest_unhandled_exceptions (handle_echo )
11581160 self .assertEqual (messages [0 ]['message' ],
1159- 'Unhandled exception in client_connected_cb' )
1160- # Break explicitly reference cycle
1161- messages = None
1161+ 'Unhandled exception in client_connected_cb' )
1162+
1163+ def test_unhandled_cancel (self ):
1164+ async def handle_echo (reader , writer ):
1165+ asyncio .current_task ().cancel ()
1166+ messages = self ._basetest_unhandled_exceptions (handle_echo )
1167+ self .assertEqual (messages , [])
11621168
11631169
11641170if __name__ == '__main__' :
0 commit comments