From b801b11c3b82c456149a502bfbaf3c29f3662dfd Mon Sep 17 00:00:00 2001 From: Ed_ Date: Tue, 9 Jun 2026 10:39:29 -0400 Subject: [PATCH] conductor(todo): mark task 9 (test deps in dev + conftest gate) as shipped --- .../todos/TODO_test_full_live_workflow_v2.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/conductor/todos/TODO_test_full_live_workflow_v2.md b/conductor/todos/TODO_test_full_live_workflow_v2.md index d397bae0..54c4aef7 100644 --- a/conductor/todos/TODO_test_full_live_workflow_v2.md +++ b/conductor/todos/TODO_test_full_live_workflow_v2.md @@ -127,6 +127,22 @@ These are from `conductor/todos/TODO_test_full_live_workflow.md` and were marked - **Effort:** 5 minutes (run + commit). - **Risk:** Low. +### 9. [HIGH] Ensure required test deps are in [dependency-groups].dev + conftest gate + +**STATUS: SHIPPED 2026-06-09 (commit a341d7a7)** + +- **What:** Add session-start gate in `tests/conftest.py` that fails fast with a clear, actionable error if a required test dep is missing. Move `sentence-transformers` from `[project.optional-dependencies].local-rag` to `[dependency-groups].dev` so a normal `uv sync` pulls it in. +- **Where:** `tests/conftest.py` (added `pytest_configure` + `_check_required_test_dependencies`), `pyproject.toml:34-41` (added dep to dev), `tests/test_required_test_dependencies.py` (new TDD test). +- **Why:** The RAG batch failure was environment-dependent. The test required `sentence-transformers` unconditionally (sets `rag_emb_provider='local'`), but the dep was in optional extras so a fresh `uv sync` (no `--extra`) left the test env without it. The failure mode was a confusing 80s batch failure with no clear fix. The gate prevents future incidents of this class. +- **Acceptance:** + - `uv sync` (no extras) installs the dep + - `uv run pytest` at session start runs `_check_required_test_dependencies` via `pytest_configure` + - If a required dep is missing, the session fails with: "Required test dependencies are missing from the venv: ... Fix: uv sync --extra local-rag" + - 22 unit tests pass (gate test + RAG status tests + io_pool + warmup + gui_health) + - 4 sims pass (no conftest regression) +- **Effort:** DONE. +- **Risk:** Low. The dep is in dev so the gate is a no-op for normal `uv run pytest` usage. The gate is a HARD fail (not a soft skip) per the user's "no skip markers" constraint. + --- ## Order of Work (recommended)