coulomb-social/tests/conftest.py
tegwick a1989f19db
Some checks failed
Use-case regression gate / usecase-regressions (push) Failing after 6m2s
Establish use-case regression collection and real browser gate
Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a10e2d-a5ef-7e92-b03d-b1694e915680
2026-10-06 14:02:01 +02:00

27 lines
1 KiB
Python

"""Keep registered use-case coverage present before any marker deselection."""
import pytest
from tests.usecases.registry import load_cases, validate_coverage
def pytest_addoption(parser):
parser.addoption("--verify-usecases", action="store_true",
help="Fail if established use cases lose registered test coverage")
@pytest.hookimpl(tryfirst=True)
def pytest_collection_modifyitems(config, items):
if not config.getoption("--verify-usecases"):
return
collected = {}
for item in items:
collected[item.nodeid] = {
"usecases": {m.args[0] for m in item.iter_markers("usecase") if m.args},
"browser": item.get_closest_marker("browser") is not None,
"disabled": any(item.get_closest_marker(m) for m in ("skip", "skipif", "xfail")),
}
try:
validate_coverage(load_cases(), collected)
except (KeyError, ValueError, TypeError, OSError) as exc:
raise pytest.UsageError(f"Use-case regression contract failed: {exc}") from exc