fix: use simple sleep for server readiness, restore Windows parallelism

This commit is contained in:
Chris Guidry 2025-12-05 12:36:20 -05:00
commit e63855ccf3
2 changed files with 3 additions and 16 deletions

View file

@ -48,13 +48,7 @@ jobs:
run: uv sync --upgrade
- name: Run tests (excluding integration and client_process)
run: |
if [ "$RUNNER_OS" == "Windows" ]; then
# Run without parallelism on Windows to debug xdist crashes
uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process"
else
uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process" --numprocesses auto --maxprocesses 4 --dist worksteal
fi
run: uv run pytest --inline-snapshot=disable tests -m "not integration and not client_process" --numprocesses auto --maxprocesses 4 --dist worksteal
shell: bash
- name: Run client process tests separately

View file

@ -212,15 +212,8 @@ async def run_server_async(
# Wait for server lifespan to be ready
await server._started.wait()
# Wait for HTTP server to be ready by making a request
url = f"http://{host}:{port}{path}"
async with httpx.AsyncClient() as client:
for _ in range(50): # 50 * 0.1s = 5s timeout
try:
await client.get(url, timeout=0.1)
break
except (httpx.ConnectError, httpx.TimeoutException):
await asyncio.sleep(0.1)
# Give uvicorn a moment to bind the port after lifespan is ready
await asyncio.sleep(0.1)
try:
yield f"http://{host}:{port}{path}"