From fe1049ee99be0c36d581a9208576818f28c8790b Mon Sep 17 00:00:00 2001 From: timmy Date: Sun, 23 Aug 2026 02:40:35 +0000 Subject: [PATCH] test: make health timing gate deterministic (Closes #1289) --- tests/test_authored_idempotency.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test_authored_idempotency.py b/tests/test_authored_idempotency.py index de27bd8..3007484 100644 --- a/tests/test_authored_idempotency.py +++ b/tests/test_authored_idempotency.py @@ -419,11 +419,12 @@ async def test_slow_ledger_completion_does_not_block_health_requests(monkeypatch return {"id": 249, "body": body} started = threading.Event() + release = threading.Event() original_complete = main._idempotency_ledger.complete def slow_complete(key, response): started.set() - time.sleep(0.2) + assert release.wait(1) return original_complete(key, response) monkeypatch.setattr(main._idempotency_ledger, "complete", slow_complete) @@ -432,15 +433,16 @@ async def test_slow_ledger_completion_does_not_block_health_requests(monkeypatch transport = httpx.ASGITransport(app=main.app) async with httpx.AsyncClient(transport=transport, base_url="http://test") as client: - started_at = asyncio.get_running_loop().time() authored = asyncio.create_task(client.post( "/api/v1/repos/stackchain/api/issues/248/comments", json={"body": "Persist without freezing"}, headers={"Idempotency-Key": "slow-completion-248"}, )) assert await asyncio.to_thread(started.wait, 1) + started_at = asyncio.get_running_loop().time() health = await client.get("/healthz") health_elapsed = asyncio.get_running_loop().time() - started_at + release.set() authored_response = await authored assert health.status_code == 200