[Tests] Replace flaky sleep with polling in test_background_cancel (#32986)

Signed-off-by: 7. Sun <jhao.sun@gmail.com>
This commit is contained in:
7. Sun
2026-01-24 16:39:07 +00:00
committed by GitHub
parent da5e7b12be
commit cd775bdbe0

View File

@@ -70,15 +70,28 @@ async def test_background_cancel(client: openai.AsyncOpenAI):
assert response.status == "queued"
# Cancel the response before it is completed.
# FIXME: This test can be flaky.
await asyncio.sleep(0.5)
# Poll until the response is no longer queued (started processing) or timeout
loop = asyncio.get_running_loop()
start_time = loop.time()
max_wait_seconds = 5.0
poll_interval = 0.1
while loop.time() - start_time < max_wait_seconds:
response = await client.responses.retrieve(response.id)
if response.status != "queued":
# Started processing or completed - try to cancel
break
await asyncio.sleep(poll_interval)
response = await client.responses.cancel(response.id)
assert response.status == "cancelled"
# Make sure the response status remains unchanged.
await asyncio.sleep(5)
response = await client.responses.retrieve(response.id)
assert response.status == "cancelled"
# Make sure the response status remains unchanged after some time.
max_retries = 10
for _ in range(max_retries):
await asyncio.sleep(0.5)
response = await client.responses.retrieve(response.id)
# Verify status is still cancelled
assert response.status == "cancelled"
@pytest.mark.asyncio