Files
orchestrator/docs/work-items/ORCH-071/13-test-report.md
claude-bot d49e88cf3f
All checks were successful
CI / test (push) Successful in 23s
CI / test (pull_request) Successful in 24s
tester(ET): auto-commit from tester run_id=359
2026-06-08 08:45:31 +00:00

4.1 KiB
Raw Permalink Blame History

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

Test Report — ORCH-071

Верификация merge-в-main как условие done (фантомный merge).

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3
  • Ветка: feature/ORCH-071-crit-bug-merge-main (HEAD d72b1f5)
  • Review verdict: APPROVED (12-review.md)
  • Дата: 2026-06-08

Smoke test API (prod 8500, read-only)

Endpoint Результат
GET /health PASS — {"status":"ok","service":"orchestrator"}
GET /status PASS — отдаёт активные задачи (ORCH-071 на стадии testing)
GET /queue PASS — counts/resilience/reconcile/reaper/post_deploy в норме, breaker=closed, preflight_ok

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

TC ID Описание Тест Результат
TC-01 verify True: deployed SHA — предок origin/main test_tc01_verify_true_when_sha_is_ancestor PASS
TC-02 verify True: PR.merged==true даже без git test_tc02_verify_true_when_pr_merged_even_without_git PASS
TC-03 verify False: фантом (не предок И merged==false) test_tc03_verify_false_when_phantom PASS
TC-04 never-raise (AC-7): ошибка git/HTTP → False test_tc04_verify_never_raises_on_git_error / _http_error PASS
TC-05 finalizer: SUCCESS но PR open → НЕ done + alert test_tc05_success_but_not_merged_holds_and_alerts PASS
TC-06 finalizer: SUCCESS + merge подтверждён → done test_tc06_success_and_merged_reaches_done PASS
TC-07 merge-актор зовёт Gitea POST /pulls/{i}/merge test_tc07_merge_actor_calls_gitea_merge PASS
TC-08 идемпотентность: already_merged → no-op test_tc08_idempotent_already_merged / _no_open_pr_is_not_an_error PASS
TC-09 merge-актор never-raise: ошибка Gitea → (False, reason) test_tc09_never_raise_on_http_error / _non_2xx_is_false PASS
TC-10 smoke (AC-3): рестарт в Phase B → re-drive докатывает merge → done test_tc10_merge_recovers_after_restart PASS
TC-11 non-self репо: новая логика = no-op test_tc11_non_self_repo_does_not_apply / _csv_scopes_to_listed_repos PASS
TC-12 kill-switch off → прежнее поведение test_tc12_kill_switch_disables_under_gate PASS
TC-13 self-hosting safety: нет shell-out / force-push в main test_tc13_no_shell_out_no_force_push PASS
TC-14 Phase B только при confirm_deploy=True; Approved → no-op test_tc14_plain_approved_on_deploy_is_noop_no_merge / _confirm_deploy_initiates_phase_b PASS
TC-15 регресс: check_deploy_status / _parse_deploy_status неизменны test_tc15_* (7 кейсов) PASS
TC-16 регресс: STAGE_TRANSITIONS / QG_CHECKS, deploy→done на месте test_tc16_* (4 кейса) PASS

Покрыты все критерии приёмки AC-1..AC-11 (03-acceptance-criteria.md).

Целевой прогон модулей ORCH-071

tests/test_merge_verify.py ................ 8 passed
tests/test_merge_actor.py ................. 6 passed
tests/test_deploy_finalizer_merge_gate.py . 4 passed
tests/test_deploy_restart_merge_recovery.py 1 passed
tests/test_qg_checks.py ................... 13 passed
tests/test_stages.py ...................... 4 passed
======================== 36 passed, 1 warning in 0.61s =========================

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

pytest tests/ -v --tb=short
======================= 853 passed, 1 warning in 22.77s ========================

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

Итог

PASS — все 853 теста зелёные, целевые 36 тестов ORCH-071 (TC-01..TC-16) PASS, smoke API (health/status/queue) OK. Регрессы существующих контрактов (STAGE_TRANSITIONS, QG_CHECKS, check_deploy_status) не выявлены. Задача готова к переходу на deploy-staging.