Files
orchestrator/docs/work-items/ORCH-053/13-test-report.md
claude-bot 5089f99bb1
All checks were successful
CI / test (push) Successful in 15s
CI / test (pull_request) Successful in 16s
tester(ET): auto-commit from tester run_id=200
2026-06-06 20:55:25 +00:00

6.0 KiB
Raw Permalink Blame History

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

Test Report — ORCH-053 (Sweeper потерянных webhook / reconciler)

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3 (plugins: anyio-4.13.0, asyncio-0.23.8; asyncio mode=AUTO)
  • Ветка: feature/ORCH-053-sweeper-webhook-stuck-task
  • Дата: 2026-06-06
  • Review verdict: APPROVED (12-review.md)

Команда прогона

python -m pytest tests/ -v --tb=short563 passed, 1 warning, 12.09s (warning — известный PydanticDeprecatedSince20 в src/config.py, не связан с ORCH-053).

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

TC ID Описание Тест Результат
TC-01 F-1: продвижение застрявшей development-задачи test_reconciler::test_tc01_advances_stuck_development_task PASS
TC-02 Источник истины — гейт, advance только через advance_stage(finished_agent=None) test_reconciler::test_tc02_advances_via_advance_stage_finished_agent_none PASS
TC-03 Активный job → задача пропускается test_reconciler::test_tc03_active_job_skipped PASS
TC-04 Per-stage grace, граница age>=grace test_reconciler::test_tc04_grace_boundary PASS
TC-05 grace_for_stage: overrides + невалидный JSON → дефолт test_reconciler::test_tc05_grace_for_stage_overrides / _invalid_json_falls_back PASS
TC-06 Нет спама нотификаций на красном гейте test_reconciler::test_tc06_red_gate_no_spam PASS
TC-07 Тишина при синхронности test_reconciler::test_tc07_silence_when_in_sync PASS
TC-08 AC-16: F-1 не продвигает analysis test_reconciler::test_tc08_analysis_not_advanced_by_f1 PASS
TC-09 Never-raise изолирует сбой одной задачи test_reconciler::test_tc09_never_raise_isolates_failure PASS
TC-10 Kill-switch (reconcile_enabled / reconcile_plane_enabled) test_reconciler::test_tc10_kill_switch_disables_gate / _plane_switch_mutes_only_f2 PASS
TC-11 F-2: In Progress без задачи → handle_status_start test_reconciler_plane::test_tc11_in_progress_without_task_starts_pipeline PASS
TC-12 F-2: Approved → handle_verdict(approved=True) test_reconciler_plane::test_tc12_approved_replays_verdict PASS
TC-13 F-2: Rejected → handle_verdict(approved=False) test_reconciler_plane::test_tc13_rejected_replays_verdict PASS
TC-14 Идемпотентность F-2: активный job / в пределах grace test_reconciler_plane::test_tc14_active_job_skips / test_tc14b_within_grace_skipped PASS
TC-15 AC-4 анти-дубль на создании (create_task_atomic) test_reconciler_plane::test_tc15_create_task_atomic_no_duplicate PASS
TC-16 list_issues_by_state never-raise + пагинация/фильтр test_reconciler_plane::test_tc16_list_issues_never_raises_on_error / _paginates_and_filters PASS
TC-17 F-2 опрашивает все проекты, резолвит state per-project test_reconciler_plane::test_tc17_polls_all_projects_resolves_states_per_project PASS
TC-18 F-3: sha→branch БД-fallback однозначный матч test_gitea_sha_resolve::test_tc18_db_fallback_unique_match_advances PASS
TC-19 F-3: неоднозначность → нет ложного матча test_gitea_sha_resolve::test_tc19_db_fallback_ambiguous_no_match PASS
TC-20 F-4: лог-строка разблокировки + Telegram (вкл/выкл) test_reconciler::test_tc20_unblock_logs_and_notifies / _no_telegram_when_disabled PASS
TC-21 Restart-safe daemon-поток: start/stop/идемпотентный start test_reconciler::test_tc21_daemon_thread_lifecycle PASS
TC-22 Конфиг reconcile_* дефолты + env ORCH_ test_config::test_reconcile_settings_defaults / _env_override PASS
TC-23 Регресс реестров STAGE_TRANSITIONS / QG_CHECKS не изменены test_qg_registry_snapshot::test_tc20_qg_registry_unchanged / _qg_callables_unchanged / _stage_transitions_unchanged PASS

Все 23 TC покрыты тестами и зелёные (целевые файлы: 36 passed).

Smoke test API (прод-контейнер 8500, только read-only GET, без касания состояния)

  • GET /health → 200 {"status":"ok","service":"orchestrator"}
  • GET /status → 200 (active_tasks отдаётся; видна задача id=44 ORCH-053 на стадии testing)
  • GET /queue → 200 (counts/max_concurrency/resilience отдаются)
  • Блок reconcile в /queue на проде ОТСУТСТВУЕТ — ожидаемо: прод работает на старом коде, ORCH-053 ещё не задеплоен. В коде ветки блок реализован (src/main.py:131"reconcile": reconciler.status()). Появится после deploy-staging/deploy.

Покрытие Acceptance Criteria (03-acceptance-criteria.md)

AC-1…AC-16 — покрыты соответствующими TC (см. таблицу) и зелёные. AC-17 (документация — golden source) — подтверждён на стадии review (APPROVED, секция «Документация»): README.md архитектуры, ADR-001, adr-0007, CHANGELOG.md, INFRA.md обновлены.

Вывод pytest (хвост)

======================= 563 passed, 1 warning in 12.09s ========================

Целевые файлы ORCH-053:

======================== 36 passed, 1 warning in 1.20s =========================

Итог

PASS — полный регресс зелёный (563 passed), все 23 TC из тест-плана выполнены, acceptance-criteria покрыты, smoke прод-API здоров. Задача готова к стадии deploy-staging.