4.7 KiB
4.7 KiB
type, work_item_id, result
| type | work_item_id | result |
|---|---|---|
| test-report | ORCH-059 | PASS |
Test Report — ORCH-059
Выделенный Plane-статус «Confirm Deploy» как единственный триггер Фазы B прод-деплоя
self-hosting; Approved на стадии deploy — детерминированный no-op.
Окружение
- Python: 3.12.13
- pytest: 8.3.3
- Prod orchestrator (8500):
/health→{"status":"ok"} - Дата: 2026-06-07
Результаты (контракт-тесты 04-test-plan.yaml)
| TC ID | Описание | Тест | Результат |
|---|---|---|---|
| TC-01 | _PLANE_NAME_TO_KEY: 'Confirm Deploy' → 'confirm_deploy' |
test_tc01_confirm_deploy_name_to_key_mapping; test_tc01_confirm_deploy_not_in_default_states | PASS |
| TC-02 | get_project_states ORCH резолвит непустой UUID под confirm_deploy, ≠ approved |
test_tc02_get_project_states_resolves_confirm_deploy | PASS |
| TC-03 | Fail-closed при отсутствии статуса (API недоступен / нет на доске) — без исключения | test_tc03_fail_closed_when_api_unreachable; test_tc03_fail_closed_when_status_not_on_board | PASS |
| TC-04 | handle_issue_updated: Confirm Deploy на deploy → путь Фазы B |
test_tc04_confirm_deploy_routes_phase_b; test_tc04b_confirm_deploy_off_deploy_stage_is_noop | PASS |
| TC-05 | Approved на deploy НЕ вызывает initiate_deploy |
test_tc05_approved_on_deploy_does_not_initiate | PASS |
| TC-06 | Approved на analysis по-прежнему продвигает → architecture |
test_tc06_approved_on_analysis_still_advances | PASS |
| TC-07 | stage_engine: Фаза B только по confirm-deploy; Approved → no-op |
test_tc07_confirm_deploy_initiates; test_tc07_approved_without_confirm_is_noop | PASS |
| TC-08 | Идемпотентность: повтор Confirm Deploy при маркере initiated → no-op |
test_tc08_idempotent_repeat_confirm_deploy | PASS |
| TC-09 | CTA Фазы A содержит «Confirm Deploy», не предлагает «Approved» как триггер | test_tc09_phase_a_cta_requests_confirm_deploy | PASS |
| TC-10 | E2E: Confirm Deploy → initiate_deploy вызван, finalizer поставлен, маркер записан |
test_tc10_confirm_deploy_e2e_initiates | PASS |
| TC-11 | E2E: Approved → деплой НЕ инициирован, задача остаётся на deploy |
test_tc11_approved_e2e_noop | PASS |
| TC-12 | Условность: не-self репо verdict-статусы не меняют поведение деплоя | test_tc12_non_self_repo_unaffected | PASS |
| RG-01 | Полный регресс зелёный; STAGE_TRANSITIONS / QG_CHECKS без изменений | tests/ (763 passed) | PASS |
Все 16 целевых тестов ORCH-059 (TC-01..TC-12) — PASS.
Сопоставление с критериями приёмки (03-acceptance-criteria.md)
| AC | Покрытие | Результат |
|---|---|---|
| AC-1 Статус резолвится | TC-01, TC-02 | PASS |
AC-2 Confirm Deploy на deploy → Фаза B |
TC-04, TC-07, TC-10 | PASS |
AC-3 Approved на deploy НЕ деплоит |
TC-05, TC-07, TC-11 | PASS |
AC-4 Approved на analysis без регрессии |
TC-06 | PASS |
| AC-5 Идемпотентность Фазы B | TC-08 | PASS |
| AC-6 CTA Фазы A просит Confirm Deploy | TC-09 | PASS |
| AC-7 Fail-closed без статуса | TC-03 | PASS |
| AC-8 Условность для не-self | TC-12 | PASS |
| AC-9 Инварианты, pytest зелёный | RG-01 (763 passed) | PASS |
| AC-10 Документация обновлена | проверено reviewer (12-review.md, APPROVED) | PASS |
Smoke test API (prod 8500)
GET /health→{"status":"ok","service":"orchestrator"}GET /status→ 200, активные задачи отдаются (вкл. ORCH-059 наtesting)GET /queue→ 200, counts + resilience + reconcile + reaper + post_deploy
Вывод pytest
======================= 763 passed, 1 warning in 15.45s ========================
Целевой набор ORCH-059:
======================== 16 passed, 1 warning in 0.75s =========================
(1 warning — PydanticDeprecatedSince20 в src/config.py, не относится к ORCH-059.)
Итог
PASS — все контракт-тесты (TC-01..TC-12) и регресс (763 passed) зелёные, критерии приёмки AC-1..AC-10 покрыты, smoke API OK. Задача готова к стадии deploy-staging.