4.6 KiB
4.6 KiB
type, work_item_id, result
| type | work_item_id | result |
|---|---|---|
| test-report | ORCH-066 | PASS |
Test Report — ORCH-066
Осмысленная статусная модель Plane (слой B — индикация). Прогон полного регресса +
покрытие тест-плана 04-test-plan.yaml + проверка инвариантов слоя A.
Окружение
- Python: 3.12.13
- pytest: 8.3.3
- Ветка: feature/ORCH-066-plane
- Дата: 2026-06-07
Результаты по тест-плану (04-test-plan.yaml)
| TC ID | Покрывает | Описание | Модуль | Результат |
|---|---|---|---|---|
| TC-01 | AC-1 | To Analyse без task → start_pipeline | test_status_trigger.py | PASS |
| TC-02 | AC-2,BR-11 | To Analyse resume аналитика, без двойного task | test_plane_to_analyse_resume.py | PASS |
| TC-03 | AC-3 | Старт/relaunch → статус Analysis | test_plane_status_model.py | PASS |
| TC-04 | AC-4 | Busy-guard: active-job → не relaunch | test_plane_to_analyse_resume.py | PASS |
| TC-05 | AC-5 | review → статус Code-Review | test_plane_status_model.py | PASS |
| TC-06 | AC-6,AC-13 | Phase A → Awaiting Deploy (не In Review) | test_deploy_approve.py | PASS |
| TC-07 | AC-7 | Phase B → Deploying | test_deploy_approve.py | PASS |
| TC-08 | AC-8 | Phase C self → Monitoring after Deploy | test_deploy_terminal_sync.py | PASS |
| TC-09 | AC-9 | Не-self deploy→done → Done (без регресса) | test_deploy_terminal_sync.py | PASS |
| TC-10 | AC-10 | Post-deploy HEALTHY → Done | test_post_deploy.py | PASS |
| TC-11 | AC-11 | Post-deploy DEGRADED → Blocked | test_post_deploy.py | PASS |
| TC-12 | AC-12 | Self-тик не рестартит прод | test_post_deploy.py | PASS |
| TC-13 | AC-13 | In Review только за approve-pending | test_analyst_status_only_regression.py | PASS |
| TC-14 | AC-14,BR-10 | Needs Input без изменений | test_plane_status_model.py | PASS |
| TC-15 | AC-15 | Cancelled → нет действий конвейера | test_plane_webhook.py | PASS |
| TC-16 | AC-16,BR-12 | Fail-closed default-алиасы, нет исключений | test_plane_status_failclosed.py | PASS |
| TC-17 | AC-16 | Plane API down → fallback, never-raise | test_plane_status_failclosed.py | PASS |
| TC-18 | AC-17 | enduro In Progress стартует через алиас | test_plane_status_failclosed.py | PASS |
| TC-19 | AC-18 | Резолв по имени → корректный UUID | test_orch10_states.py | PASS |
| TC-20 | AC-19 | F-2 реконсилирует To Analyse | test_reconciler_plane.py | PASS |
| TC-21 | AC-20,BR-13 | Guard 2 skip активных ожиданий | test_reconciler.py | PASS |
| TC-22 | AC-21 | STAGE_TRANSITIONS не изменён | test_plane_status_model.py | PASS |
| TC-23 | AC-22 | QG_CHECKS/check_deploy_status не изменены | test_plane_status_model.py | PASS |
| TC-24 | AC-23 | Полный регресс pytest зелёный | tests/ | PASS |
Все 24 тест-кейса — PASS.
Инварианты слоя A (AC-21 / AC-22)
Diff против origin/main (merge-base 4815e378):
src/stages.py(STAGE_TRANSITIONS) — diff пуст ✔src/qg/checks.py(QG_CHECKS, check_deploy_status) — diff пуст ✔src/config.py(без kill-switch) — diff пуст ✔
Smoke test API (TestClient — прод-контейнер 8500 не трогался)
curlв окружении недоступен; smoke прогнан через FastAPI TestClient (lifespan), без рестарта/обращения к прод-контейнеру (self-hosting safety).
| Endpoint | Статус | Тело (фрагмент) |
|---|---|---|
| GET /health | 200 | {"status":"ok","service":"orchestrator"} |
| GET /status | 200 | {"active_tasks":[...]} |
| GET /queue | 200 | {"counts":{...},"max_concurrency":1,...} |
Вывод pytest
======================= 774 passed, 1 warning in 17.68s ========================
(единственный warning — PydanticDeprecatedSince20 в src/config.py, предсуществующий, не связан с ORCH-066)
Прогон по модулям тест-плана: 117 passed (ORCH-066-специфичные файлы).
Итог
PASS — все тесты зелёные (774 passed), все 24 TC покрыты, инварианты слоя A сохранены (diff пуст), smoke-эндпоинты отвечают 200. Review-вердикт APPROVED. Задача готова к переходу на стадию deploy-staging.