diff --git a/docs/work-items/ORCH-088/13-test-report.md b/docs/work-items/ORCH-088/13-test-report.md new file mode 100644 index 0000000..df264ab --- /dev/null +++ b/docs/work-items/ORCH-088/13-test-report.md @@ -0,0 +1,94 @@ +--- +type: test-report +work_item_id: ORCH-088 +result: PASS +--- + +# Test Report — ORCH-088 (Per-repo serial gate, Этап 1: serial e2e) + +## Окружение +- Python: 3.12.13 +- pytest: 8.3.3 (plugins: anyio-4.13.0, asyncio-0.23.8; mode=AUTO) +- Repo / ветка: `orchestrator` / `feature/ORCH-088-orch-88-10-20` +- Дата: 2026-06-09T08:19Z + +## Результаты + +### Полный регресс +`python -m pytest tests/ -v --tb=short` → **1114 passed, 1 warning, 31.52s**. +Единственное предупреждение — известный `PydanticDeprecatedSince20` в `src/config.py:5` +(не относится к ORCH-088). + +### Профильные сюиты ORCH-088 (24 теста, 0 fail) +`test_serial_gate*`, `test_queue_endpoint` → **24 passed, 1.39s**. + +### Сопоставление с тест-планом `04-test-plan.yaml` + +| TC ID | Описание | Тест | Результат | +|-------|----------|------|-----------| +| TC-01 | gate закрыт при активной задаче (claim не берёт analyst B) | `test_serial_gate::test_gate_closed_when_repo_has_active_task` | PASS | +| TC-02 | `serial_gate_applies`: enabled+пустой CSV/членство/вне CSV | `test_serial_gate::test_serial_gate_applies_scopes` | PASS | +| TC-03 | job'ы уже активной задачи gate'ом не блокируются | `test_serial_gate::test_non_analyst_job_of_active_task_passes` | PASS | +| TC-04 | автостарт B после A.stage='done' | `test_serial_gate_e2e::test_next_starts_automatically_when_predecessor_done` | PASS | +| TC-05 | очередь из 3 задач — строго по одной, FIFO по jobs.id | `test_serial_gate_e2e::test_three_tasks_processed_one_at_a_time_fifo` | PASS | +| TC-06 | restart-safe: активная задача из БД | `test_serial_gate_e2e::test_restart_safe_active_task_from_db` | PASS | +| TC-07 | freeze переживает рестарт | `test_serial_gate_freeze::test_freeze_survives_restart` | PASS | +| TC-08 | per-repo: orchestrator не блокирует enduro-trails | `test_serial_gate::test_per_repo_isolation` | PASS | +| TC-09 | freeze orchestrator не влияет на enduro-trails | `test_serial_gate_freeze::test_freeze_is_per_repo` | PASS | +| TC-10 | post-deploy DEGRADED → durable freeze + Telegram-алерт | `test_serial_gate_freeze::test_post_deploy_degraded_sets_freeze_and_alerts` | PASS | +| TC-11 | freeze гейтит даже без задач stage