Skip to content

Commit 761c3cf

Browse files
[3.13 backport] Fix test_data_file race condition on Python 3.14 free-threaded (aio-libs#12171)
1 parent cf5d7a9 commit 761c3cf

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

CHANGES/12170.misc.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed race condition in ``test_data_file`` on Python 3.14 free-threaded builds -- by :user:`rodrigobnogueira`.

tests/test_client_request.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,18 @@ async def test_data_file(loop, buf, conn) -> None:
11731173
assert isinstance(req.body, payload.BufferedReaderPayload)
11741174
assert req.headers["TRANSFER-ENCODING"] == "chunked"
11751175

1176-
resp = await req.send(conn)
1176+
original_write_bytes = req.write_bytes
1177+
1178+
async def _mock_write_bytes(
1179+
writer: AbstractStreamWriter, conn: mock.Mock, content_length: Optional[int]
1180+
) -> None:
1181+
# Ensure the task is scheduled so _writer isn't None
1182+
await asyncio.sleep(0)
1183+
await original_write_bytes(writer, conn, content_length)
1184+
1185+
with mock.patch.object(req, "write_bytes", _mock_write_bytes):
1186+
resp = await req.send(conn)
1187+
11771188
assert asyncio.isfuture(req._writer)
11781189
await resp.wait_for_close()
11791190

0 commit comments

Comments
 (0)