Files
orchestrator/docs/work-items/ORCH-036/13-test-report.md
claude-bot c0bcb544cf
All checks were successful
CI / test (push) Successful in 17s
CI / test (pull_request) Successful in 15s
tester(ET): auto-commit from tester run_id=201
2026-06-06 21:07:35 +00:00

5.8 KiB
Raw Blame History

type, work_item_id, result
type work_item_id result
test-report ORCH-036 PASS

Test Report — ORCH-036

Исполняемый самодеплой стадии deploy (Вариант B) — дёргает хост-хук scripts/orchestrator-deploy-hook.sh, три фазы (A/B/C), условность по self-hosting репо.

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3 (pluggy 1.6.0, anyio 4.13.0, asyncio 0.23.8 — mode AUTO)
  • Worktree: feature/ORCH-036-orch-36-deploy-b
  • Дата: 2026-06-06
  • Prod (8500) во время тестов НЕ тронут: вся проверка изолированная (моки subprocess/ssh/хука). Smoke выполнялся read-only GET-запросами.

Smoke test API (prod 8500, read-only)

Endpoint Результат
GET /health {"status":"ok","service":"orchestrator"} — OK
GET /status OK (отдаёт активные задачи)
GET /queue OK (counts/max_concurrency/resilience; breaker=closed, preflight_ok=true)

curl в окружении отсутствует — smoke выполнен через urllib.request (эквивалент GET).

Результаты по тест-плану (04-test-plan.yaml)

TC ID Описание Тест Результат
TC-01 exit 0 → deploy_status: SUCCESS test_tc01_exit0_maps_to_success PASS
TC-02 exit 1 (rolled back) → FAILED test_tc02_exit1_rolled_back_maps_to_failed PASS
TC-03 exit 2 (rollback тоже упал) → FAILED test_tc03_exit2_rollback_also_failed_maps_to_failed PASS
TC-04 DEPLOY_REQUIRE_MANUAL_APPROVE дефолт == true test_tc04_manual_approve_default_true PASS
TC-05 true и нет approve → прод-хук НЕ вызван test_tc05_no_approve_does_not_call_prod_hook PASS
TC-06 true и approve → прод-хук вызван ровно 1 раз test_tc06_approved_calls_prod_hook_exactly_once PASS
TC-07 is_self_hosting_repo: только orchestrator True test_tc07_is_self_hosting_repo_only_orchestrator PASS
TC-08 self-репо: рестарт detached host-процессом test_tc08_self_repo_launches_detached_host_process PASS
TC-09 не-self репо: прежний ssh-путь test_tc09_non_self_repo_uses_legacy_path PASS
TC-10 FAILED → откат deploy→development, blocked, release lease test_tc10_failed_deploy_rolls_back_to_development PASS
TC-11 staging_status FAILED → до deploy не доходит test_tc11_staging_failed_never_reaches_deploy PASS
TC-12 успех → Plane-коммент + Telegram test_tc12_success_notifies_plane_and_telegram PASS
TC-13 откат → Plane-коммент + Telegram test_tc13_rollback_notifies_plane_and_telegram PASS
TC-14 build-once: retag staging-образа, без build test_tc14_deploy_command_retags_staging_image_no_build PASS
TC-15 _parse_deploy_status контракт цел (проза не проходит) test_qg_checks::test_tc15_* (5 кейсов) PASS
TC-16 STAGE_TRANSITIONS deploy/deploy-staging не изменены test_stages::test_tc16_* PASS
TC-17 terminal-sync deploy→done сохранён test_tc17_success_deploy_syncs_terminal_done PASS
TC-18 merge-gate (ORCH-43) на ребре не затронут test_merge_gate (14 кейсов) PASS
TC-19 симуляция битого деплоя: авто-rollback → healthy, exit 1 test_tc19_unhealthy_deploy_auto_rolls_back_exit1 PASS

Доп. регрессионные тесты (review-fix): test_clear_state_removes_all_markers_and_is_idempotent, test_tc11_re_deploy_after_rollback_not_wedgedоба PASS (stale deploy-state очищается, повторный заход на deploy после отката не зависает).

Покрытие критериев приёмки

AC Покрыт тестами Статус
AC-1 реальный деплой (не бумажный) TC-01..03, TC-14, TC-19 PASS
AC-2 self-репо рестарт detached, агент себя не убивает TC-08 PASS
AC-3 deploy_status из exit-code TC-01..03 PASS
AC-4 FAILED → откат на development TC-10 PASS
AC-5 ручной approve реально тормозит прод TC-05, TC-06 PASS
AC-6 уведомления о промоуте и откате TC-12, TC-13 PASS
AC-7 build-once (образ из staging) TC-14 PASS
AC-8 staging-гейт обязателен TC-11 PASS
AC-9 авто-rollback восстанавливает прод (MTTR<60с) TC-19 PASS
AC-10 инварианты не сломаны TC-15..18 + полный регресс PASS
AC-11 условность по репо (не-self не ломается) TC-07, TC-09 PASS
AC-12 флаг авто НЕ выключен (остаётся true) TC-04 PASS
AC-13 документация обновлена проверено reviewer (12-review.md, APPROVED) PASS

Вывод pytest

Полный регресс:

======================= 568 passed, 1 warning in 15.25s ========================

(единственный warning — PydanticDeprecatedSince20 в src/config.py, не связан с задачей)

Целевые модули тест-плана:

======================== 46 passed, 1 warning in 2.17s =========================

Итог

PASS — все 19 TC зелёные, все критерии приёмки AC-1…AC-13 покрыты, полный регресс 568/568 passed, smoke API OK, прод (8500) не тронут. Задача готова к стадии deploy-staging.