@@ -1123,7 +1123,7 @@ async def inner(httpd):
11231123
11241124 self .assertEqual (messages , [])
11251125
1126- def test_unhandled_exceptions (self ) -> None :
1126+ def _basetest_unhandled_exceptions (self , handle_echo ) :
11271127 port = socket_helper .find_unused_port ()
11281128
11291129 messages = []
@@ -1137,9 +1137,6 @@ async def client():
11371137 await wr .wait_closed ()
11381138
11391139 async def main ():
1140- async def handle_echo (reader , writer ):
1141- raise Exception ('test' )
1142-
11431140 server = await asyncio .start_server (
11441141 handle_echo , 'localhost' , port )
11451142 await server .start_serving ()
@@ -1148,11 +1145,20 @@ async def handle_echo(reader, writer):
11481145 await server .wait_closed ()
11491146
11501147 self .loop .run_until_complete (main ())
1148+ return messages
11511149
1150+ def test_unhandled_exception (self ):
1151+ async def handle_echo (reader , writer ):
1152+ raise Exception ('test' )
1153+ messages = self ._basetest_unhandled_exceptions (handle_echo )
11521154 self .assertEqual (messages [0 ]['message' ],
1153- 'Unhandled exception in client_connected_cb' )
1154- # Break explicitly reference cycle
1155- messages = None
1155+ 'Unhandled exception in client_connected_cb' )
1156+
1157+ def test_unhandled_cancel (self ):
1158+ async def handle_echo (reader , writer ):
1159+ asyncio .current_task ().cancel ()
1160+ messages = self ._basetest_unhandled_exceptions (handle_echo )
1161+ self .assertEqual (messages , [])
11561162
11571163
11581164if __name__ == '__main__' :
0 commit comments