[autodev] fix csv_reporter --csv collision with pytest-csv

Subprocess-spawned tests in e2e/_unit_tests/reporting/ crashed with
"argparse.ArgumentError: argument --csv: conflicting option string: --csv"
because pytest-csv (autoloaded via entry-point) and our custom plugin both
register --csv. pytest's option registry does not allow overrides.

Fix: drop pytest-csv from e2e/runner/requirements.txt. It was unused, dead
weight, and incompatible with pytest 9.x (uses removed hookwrapper marker).
Update conftest + csv_reporter comments to match.

After fix: 1229/1229 in e2e/_unit_tests pass.

Bug ticket creation deferred (user skipped interactive Q this session) —
payload recorded in _docs/_process_leftovers/2026-05-17_csv_reporter_*.md
for replay on next /autodev.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-05-17 19:07:33 +03:00
parent c64e492aa5
commit eb6dc17880
4 changed files with 97 additions and 10 deletions
+8 -6
View File
@@ -6,12 +6,14 @@ Emits one row per test with the exact columns declared in
test_id, test_name, traces_to, fc_adapter, vio_strategy, tier,
started_at_utc, execution_time_ms, result, error_message, evidence_paths
Why a custom plugin rather than `pytest-csv` defaults?
- `pytest-csv` is dependency-installed for its column-extension hooks, but
its default emission is `name`/`status`/`duration` — our matrix needs the
`traces_to`, `fc_adapter`, `vio_strategy`, `tier`, `started_at_utc`,
`evidence_paths` columns to feed the downstream badge generator and
regression detector.
Why a custom plugin rather than `pytest-csv`?
- `pytest-csv`'s default emission is `name`/`status`/`duration`; our matrix
needs the `traces_to`, `fc_adapter`, `vio_strategy`, `tier`,
`started_at_utc`, `evidence_paths` columns to feed the downstream badge
generator and regression detector.
- pytest's option registry does not allow override of an already-registered
flag, so this plugin owns `--csv` exclusively — `pytest-csv` is NOT a
dependency (and is incompatible with pytest 9.x anyway).
Result classification per AC-9:
- PASS / FAIL / SKIP map 1:1 to pytest's own outcome.