@@ -260,7 +260,7 @@ async def handler(request: web.Request) -> web.Response:
260
260
assert 0 == len (client ._session .connector ._conns )
261
261
262
262
263
- async def test_keepalive_timeout_async_sleep () -> None :
263
+ async def test_keepalive_timeout_async_sleep (unused_port_socket : socket . socket ) -> None :
264
264
async def handler (request : web .Request ) -> web .Response :
265
265
body = await request .read ()
266
266
assert b"" == body
@@ -272,17 +272,18 @@ async def handler(request: web.Request) -> web.Response:
272
272
runner = web .AppRunner (app , tcp_keepalive = True , keepalive_timeout = 0.001 )
273
273
await runner .setup ()
274
274
275
- port = unused_port ()
276
- site = web .TCPSite (runner , host = "localhost" , port = port )
275
+ site = web .SockSite (runner , unused_port_socket )
277
276
await site .start ()
278
277
278
+ host , port = unused_port_socket .getsockname ()[:2 ]
279
+
279
280
try :
280
281
async with aiohttp .ClientSession () as sess :
281
- resp1 = await sess .get (f"http://localhost :{ port } /" )
282
+ resp1 = await sess .get (f"http://{ host } :{ port } /" )
282
283
await resp1 .read ()
283
284
# wait for server keepalive_timeout
284
285
await asyncio .sleep (0.01 )
285
- resp2 = await sess .get (f"http://localhost :{ port } /" )
286
+ resp2 = await sess .get (f"http://{ host } :{ port } /" )
286
287
await resp2 .read ()
287
288
finally :
288
289
await asyncio .gather (runner .shutdown (), site .stop ())
@@ -292,7 +293,7 @@ async def handler(request: web.Request) -> web.Response:
292
293
sys .version_info [:2 ] == (3 , 11 ),
293
294
reason = "https://github.com/pytest-dev/pytest/issues/10763" ,
294
295
)
295
- async def test_keepalive_timeout_sync_sleep () -> None :
296
+ async def test_keepalive_timeout_sync_sleep (unused_port_socket : socket . socket ) -> None :
296
297
async def handler (request : web .Request ) -> web .Response :
297
298
body = await request .read ()
298
299
assert b"" == body
@@ -304,18 +305,19 @@ async def handler(request: web.Request) -> web.Response:
304
305
runner = web .AppRunner (app , tcp_keepalive = True , keepalive_timeout = 0.001 )
305
306
await runner .setup ()
306
307
307
- port = unused_port ()
308
- site = web .TCPSite (runner , host = "localhost" , port = port )
308
+ site = web .SockSite (runner , unused_port_socket )
309
309
await site .start ()
310
310
311
+ host , port = unused_port_socket .getsockname ()[:2 ]
312
+
311
313
try :
312
314
async with aiohttp .ClientSession () as sess :
313
- resp1 = await sess .get (f"http://localhost :{ port } /" )
315
+ resp1 = await sess .get (f"http://{ host } :{ port } /" )
314
316
await resp1 .read ()
315
317
# wait for server keepalive_timeout
316
318
# time.sleep is a more challenging scenario than asyncio.sleep
317
319
time .sleep (0.01 )
318
- resp2 = await sess .get (f"http://localhost :{ port } /" )
320
+ resp2 = await sess .get (f"http://{ host } :{ port } /" )
319
321
await resp2 .read ()
320
322
finally :
321
323
await asyncio .gather (runner .shutdown (), site .stop ())
0 commit comments