Files
Eduardo Rios eaf0ca7863 docs: make e2e/scenarios.md a strict 1:1 mirror of actual e2e tests
Removed scenarios documented with no backing test (1.2.1, 1.3.2, 1.4.1,
A.1.3) and corrected three descriptions that claimed assertions the
tests don't actually make (1.1.1's "Redis slots written", 1.3.1's
"timestamps inserted", 1.5.1's "orphan schedules removed") to match
what's really verified. A.2.1 stays as-is here -- it's already accurate
for this branch's real per-group filtering test.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 09:52:38 -03:00
..
2026-05-22 15:02:16 -03:00
2026-05-22 15:02:16 -03:00
2026-05-22 15:02:16 -03:00
2026-05-22 15:02:16 -03:00
2026-05-22 15:02:16 -03:00
2026-05-22 15:02:16 -03:00
2026-05-22 15:02:16 -03:00

Orchestrator end-to-end tests

End-to-end tests run every external dependency for real (MongoDB, Redis, PostgreSQL via testcontainers; SMTP via in-process aiosmtpd; Temporal via WorkflowEnvironment.start_local()).

Requirements

  • Docker (for testcontainers)
  • Python dev dependencies: pip install -r requirements-dev.txt

Run locally

source ./venv/bin/activate
pytest e2e/ --override-ini testpaths=e2e -m e2e -v

Stop on first failure:

pytest e2e/ --override-ini testpaths=e2e -m e2e -x

Coverage (separate from unit tests)

COVERAGE_FILE=.coverage.e2e pytest e2e/ --override-ini testpaths=e2e -m e2e --cov=orchestrator --cov-branch
coverage combine .coverage .coverage.e2e
coverage report

Unit tests keep the default .coverage file; the E2E run must set COVERAGE_FILE=.coverage.e2e so reports do not overwrite each other.

Scenario catalog

See scenarios.md for numbered scenarios and which test module implements each case.