agent-proxy: wire pytest-asyncio so the 5 skipped async tests actually run #25

Closed
opened 2026-07-02 08:23:42 +00:00 by coilysiren · 2 comments
Owner

Context

Follow-up flagged in the agent-proxy#22 retrospective. After that fix the suite is 22 passed, 5 skipped, 0 failed. The 5 skips are async test cases that need pytest-asyncio wired in - a pre-existing harness gap, not caused by the crash fix. Skipped async tests read as green while actually asserting nothing on the async paths (the queue worker, streaming dispatch, the resilience retry/fallback loop).

Ask

  1. Add pytest-asyncio to [project.optional-dependencies].dev in pyproject.toml and regenerate uv.lock.
  2. Configure it (e.g. asyncio_mode = "auto" under [tool.pytest.ini_options], or per-test markers - whichever matches the existing test style) so the 5 skipped async cases actually run.
  3. Fix anything the now-running async tests surface.

Acceptance

  • The 5 previously-skipped async tests run and pass (0 skipped for that reason).
  • pytest-asyncio is a declared dev dep and captured in uv.lock.

Refs

  • agent-proxy#22 (left these skips behind).
## Context Follow-up flagged in the agent-proxy#22 retrospective. After that fix the suite is 22 passed, **5 skipped, 0 failed**. The 5 skips are async test cases that need `pytest-asyncio` wired in - a pre-existing harness gap, not caused by the crash fix. Skipped async tests read as green while actually asserting nothing on the async paths (the queue worker, streaming dispatch, the resilience retry/fallback loop). ## Ask 1. Add `pytest-asyncio` to `[project.optional-dependencies].dev` in `pyproject.toml` and regenerate `uv.lock`. 2. Configure it (e.g. `asyncio_mode = "auto"` under `[tool.pytest.ini_options]`, or per-test markers - whichever matches the existing test style) so the 5 skipped async cases actually run. 3. Fix anything the now-running async tests surface. ## Acceptance - The 5 previously-skipped async tests run and pass (0 skipped for that reason). - `pytest-asyncio` is a declared dev dep and captured in `uv.lock`. ## Refs - agent-proxy#22 (left these skips behind).
Member

🔒 Reserved by ward agent --driver claude — container engineer-claude-agent-proxy-25 on host kais-macbook-pro-2.local is carrying this issue (reserved 2026-07-02T08:24:12Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); --force overrides.

— Claude (she/her), via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent --driver claude` — container `engineer-claude-agent-proxy-25` on host `kais-macbook-pro-2.local` is carrying this issue (reserved 2026-07-02T08:24:12Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); `--force` overrides. <!-- ward-agent-signature --> — Claude (she/her), via `ward agent`
Author
Owner

WARD-OUTCOME: done - pytest-asyncio wired via asyncio_mode="auto"; suite now 27 passed / 0 skipped on main.

Honestly the smoothest kind of task. The five skips were pure harness gap, not broken code: adding pytest-asyncio to the dev extra, an asyncio_mode = "auto" block matching the marker-free test style, and a uv.lock regen was the whole fix. All five async tests passed unchanged the moment the plugin loaded, so there was nothing to fix in the queue/upstream paths - they were correct all along, just never exercised.

One thing that fought back a little: uv lock pulled pytest 7.4.4 -> 9.1.1 as a transitive consequence, a bigger jump than I expected. Everything still passes on 9.1.1, so I left it, but it is worth a glance if any pytest 8/9 deprecations bite later. Confidence is high - green on main via the canonical ward test. No follow-ups worth filing; the resilience retry/fallback loop the issue mentions is covered by the now-running tests.

WARD-OUTCOME: done - pytest-asyncio wired via asyncio_mode="auto"; suite now 27 passed / 0 skipped on main. Honestly the smoothest kind of task. The five skips were pure harness gap, not broken code: adding pytest-asyncio to the dev extra, an asyncio_mode = "auto" block matching the marker-free test style, and a uv.lock regen was the whole fix. All five async tests passed unchanged the moment the plugin loaded, so there was nothing to fix in the queue/upstream paths - they were correct all along, just never exercised. One thing that fought back a little: uv lock pulled pytest 7.4.4 -> 9.1.1 as a transitive consequence, a bigger jump than I expected. Everything still passes on 9.1.1, so I left it, but it is worth a glance if any pytest 8/9 deprecations bite later. Confidence is high - green on main via the canonical ward test. No follow-ups worth filing; the resilience retry/fallback loop the issue mentions is covered by the now-running tests.
Sign in to join this conversation.
No description provided.