Files
sientia-dataops-orchestrato…/e2e
vitor-aignosi 11e350a6ce SIENTIAPDE-1974
Add e2e tag-database scenarios and cover worker/email/formatter gaps

- Add e2e scenarios 1.9.1-1.9.4 for PI Web API through the tag
  database: scouter and output tag resolution, mixed-connector schedule
  hold, and OPC slot unchanged by PI connectors. Seed connectors and
  connector_tags from a new scenario input.
- Tighten the happy-path e2e to assert both schedules and that no PI
  output config is produced when the tag database is unused.
- Drop dead `if self.server` / `if notification_handler` guards in the
  email reconnect and worker shutdown paths, since both are always set.
- Log the traceback inside the message on worker failure, as the
  sientia_do Logger.error does not accept exc_info.
- Add unit tests for the worker failure exit, Prometheus startup
  failure, email reconnect without a password, and formatter, mongo,
  temporal manager and orchestrator edge cases.
2026-10-28 16:07:10 -03:00
..
2026-10-28 16:07:10 -03:00
2026-05-22 15:02:16 -03:00
2026-10-27 16:27:58 -03:00
2026-05-22 15:02:16 -03:00
2026-10-28 16:07:10 -03:00
2026-05-22 15:02:16 -03:00
2026-10-28 16:07:10 -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.