File tree Expand file tree Collapse file tree 3 files changed +24
-1
lines changed Expand file tree Collapse file tree 3 files changed +24
-1
lines changed Original file line number Diff line number Diff line change
1
+ Fixed auto-created :py:class: `~aiohttp.TCPConnector ` not using the session's event loop when :py:class: `~aiohttp.ClientSession ` is created without an explicit connector -- by :user: `bdraco `.
Original file line number Diff line number Diff line change @@ -369,7 +369,9 @@ def __init__(
369
369
)
370
370
371
371
if connector is None :
372
- connector = TCPConnector (ssl_shutdown_timeout = ssl_shutdown_timeout )
372
+ connector = TCPConnector (
373
+ loop = loop , ssl_shutdown_timeout = ssl_shutdown_timeout
374
+ )
373
375
374
376
if connector ._loop is not loop :
375
377
raise RuntimeError ("Session and connector has to use same event loop" )
Original file line number Diff line number Diff line change @@ -422,6 +422,26 @@ async def make_sess():
422
422
another_loop .run_until_complete (connector .close ())
423
423
424
424
425
+ def test_auto_created_connector_uses_session_loop (
426
+ loop : asyncio .AbstractEventLoop ,
427
+ ) -> None :
428
+ """Test that auto-created TCPConnector uses the session's loop."""
429
+ # Create a ClientSession without providing a connector
430
+ # The session should auto-create a TCPConnector with the provided loop
431
+ session = ClientSession (loop = loop )
432
+
433
+ # Verify the connector was created
434
+ assert session .connector is not None
435
+ assert isinstance (session .connector , TCPConnector )
436
+
437
+ # Verify the connector uses the same loop as the session
438
+ assert session .connector ._loop is loop
439
+ assert session .connector ._loop is session ._loop
440
+
441
+ # Clean up
442
+ loop .run_until_complete (session .close ())
443
+
444
+
425
445
def test_detach (loop , session ) -> None :
426
446
conn = session .connector
427
447
try :
You can’t perform that action at this time.
0 commit comments