Skip to content

Commit d10cd20

Browse files
author
rodrigo.nogueira
committed
Fix make_client_request fixture to prevent session leaks
1 parent 4a2e2e0 commit d10cd20

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

tests/conftest.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -431,13 +431,14 @@ async def make_client_request(
431431
loop: asyncio.AbstractEventLoop,
432432
) -> AsyncIterator[Callable[[str, URL, Unpack[ClientRequestArgs]], ClientRequest]]:
433433
"""Fixture to help creating test ClientRequest objects with defaults."""
434-
request = session = None
434+
requests: list[ClientRequest] = []
435+
sessions: list[ClientSession] = []
435436

436437
def maker(
437438
method: str, url: URL, **kwargs: Unpack[ClientRequestArgs]
438439
) -> ClientRequest:
439-
nonlocal request, session
440440
session = ClientSession()
441+
sessions.append(session)
441442
default_args: ClientRequestArgs = {
442443
"loop": loop,
443444
"params": {},
@@ -462,13 +463,14 @@ def maker(
462463
"server_hostname": None,
463464
}
464465
request = ClientRequest(method, url, **(default_args | kwargs))
466+
requests.append(request)
465467
return request
466468

467469
yield maker
468470

469-
if request is not None:
471+
for request in requests:
470472
await request._close()
471-
assert session is not None
473+
for session in sessions:
472474
await session.close()
473475

474476

0 commit comments

Comments
 (0)