Vitor asked whether limit=0 really means "no limit" on the Mongo side and whether that had actually been tested. It's pymongo's own documented convention, but nothing in the suite exercised it against a real MongoDB with enough documents to mean anything -- the existing tests only ever seed 2-5. Seeds 12 (more than any other test in this file) with the batch size left at its config default (0) and asserts all 12 come back in one run, against real testcontainers Mongo. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.