|
|
|
|
@@ -6,6 +6,11 @@ Functional reference for orchestrator E2E scenarios. Tests live under `e2e/`, us
|
|
|
|
|
pytest e2e/ --override-ini testpaths=e2e -m e2e
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Every section below maps 1:1 to an actual test function** (named in each section, or as a bullet
|
|
|
|
|
under a `Source:` heading) — this file describes what the suite verifies today, not planned or
|
|
|
|
|
aspirational coverage. Adding a scenario here without a matching test (or vice versa) is a doc bug;
|
|
|
|
|
fix the mismatch instead of leaving it for later.
|
|
|
|
|
|
|
|
|
|
## Execution context
|
|
|
|
|
|
|
|
|
|
- MongoDB, Redis, PostgreSQL: testcontainers (session-scoped).
|
|
|
|
|
@@ -21,31 +26,20 @@ Source: `e2e/test_orchestrator_main_workflow.py`
|
|
|
|
|
|
|
|
|
|
### 1.1.1 Happy path
|
|
|
|
|
|
|
|
|
|
Pipelines in Mongo → schedules created in correct namespace/task queue, Redis slots written, `orchestrated_schedules` updated.
|
|
|
|
|
|
|
|
|
|
### 1.2.1 No-op tick
|
|
|
|
|
|
|
|
|
|
Mongo, Redis, and Temporal already match desired state → no new schedules or slot writes.
|
|
|
|
|
Pipelines in Mongo → Temporal schedule created in the `laborious` namespace, `orchestrated_schedules` entries written.
|
|
|
|
|
|
|
|
|
|
### 1.3.1 Create-only
|
|
|
|
|
|
|
|
|
|
New pipeline only → schedules created, timestamps inserted.
|
|
|
|
|
|
|
|
|
|
### 1.3.2 Update-only
|
|
|
|
|
|
|
|
|
|
Existing pipeline with newer `updated_at` → schedule updated in Temporal.
|
|
|
|
|
New pipeline only → Temporal schedule created for it.
|
|
|
|
|
|
|
|
|
|
### 1.3.3 Delete-only
|
|
|
|
|
|
|
|
|
|
Pipeline removed from Mongo → schedule deleted from Temporal.
|
|
|
|
|
|
|
|
|
|
### 1.4.1 Conflict ordering
|
|
|
|
|
|
|
|
|
|
Pipeline update and slot delete on same OPC server → slot insert before delete (production ordering).
|
|
|
|
|
Pipeline removed from Mongo → previously-created Temporal schedule deleted.
|
|
|
|
|
|
|
|
|
|
### 1.5.1 Empty pipelines
|
|
|
|
|
|
|
|
|
|
No active pipelines → orphan schedules removed, no new orchestration writes.
|
|
|
|
|
No active pipelines → no `orchestrated_schedules` documents written, even with a pre-existing
|
|
|
|
|
unrelated Temporal schedule present.
|
|
|
|
|
|
|
|
|
|
### 1.6.1 TTL index bootstrap
|
|
|
|
|
|
|
|
|
|
@@ -65,10 +59,6 @@ ERROR notification → one SMTP message, one `log_report` row, Redis cache key.
|
|
|
|
|
|
|
|
|
|
Second run with same data and cache seeded → no extra email or log row.
|
|
|
|
|
|
|
|
|
|
### A.1.3 Persistent escalation
|
|
|
|
|
|
|
|
|
|
Alert past `notification_ttl` with cache cleared → new email sent.
|
|
|
|
|
|
|
|
|
|
### A.2.1 Group filtering
|
|
|
|
|
|
|
|
|
|
Receiver group `levels` / `ignore_models_id` honored, both halves now covered:
|
|
|
|
|
|