procurement-ingest/pytest.ini
Adam Moussa df80a2e3ec
test: address Open SWE review — xfail the web_ui non-ASCII auth pin, document subset coverage-floor override
- tests/test_web_ui_auth.py: replace the TypeError characterization pin with an
  xfail(strict, raises=TypeError) asserting the DESIRED fail-closed (False)
  behavior. Documents the intended fix and auto-fails (xpass) once web_ui_auth is
  corrected, instead of requiring a passing test to be knowingly deleted. The
  module stays frozen this phase; the underlying hmac.compare_digest ASCII-only
  defect is tracked as a follow-up.
- pytest.ini: document that the aggregate 80% floor (enforced in CI via the
  reusable workflow's bare pytest) red-exits local subset runs by design, with the
  --cov-fail-under=0 override for iteration. Floor stays in addopts because the
  centralized ci-python-sam workflow exposes no per-run test command.
2026-07-20 15:55:27 -04:00

24 lines
1.1 KiB
INI

[pytest]
; Three test roots: cross-pipeline tests/, plus each pipeline's own
; email_processor/tests/ offline suite (deterministic template parser +
; Bedrock fallback dispatch + healthcheck, per pipeline).
testpaths =
tests
lambdas/wo/email_processor/tests
lambdas/po/email_processor/tests
addopts =
--cov=lambdas/po/email_processor
--cov=lambdas/wo/email_processor
--cov=lambdas/po/web_ui
--cov=lambdas/wo/web_ui
--cov=lambdas/po/site_extractor
--cov=lambdas/shared
--cov-report=term-missing
--cov-fail-under=80
; The 80% floor is an aggregate whole-suite gate, enforced in CI by the
; reusable ci-python-sam workflow's bare `pytest` run (which inherits these
; addopts). Because the floor is inherited by every invocation, running a
; single root or file for local iteration (e.g. `pytest tests/test_web_ui_auth.py`)
; under-measures the fixed --cov set and red-exits even when the selected tests
; pass. That is expected: append `--cov-fail-under=0` (or `-p no:cov`) to a
; subset run to skip the floor while iterating. The full-suite run still gates.