Files
orchestrator/docs/work-items/ORCH-089/13-test-report.md
claude-bot 9b3490ceaa
All checks were successful
CI / test (push) Successful in 35s
CI / test (pull_request) Successful in 29s
tester(ET): auto-commit from tester run_id=445
2026-06-09 12:31:24 +03:00

5.1 KiB
Raw Permalink Blame History

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

Test Report — ORCH-089

Авто-режим по лейблам: autoApprove (авто-BRD) + autoDeploy (авто-деплой).

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3
  • Branch: feature/ORCH-089-autoapprove-brd-autodeploy
  • Дата: 2026-06-09

Предусловия

  • Review verdict: APPROVED (12-review.md, P0/P1 — нет).
  • Prod health (8500): {"status":"ok"} — конвейер всех проектов жив, деструктивные операции не выполнялись.

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

Все 26 TC из плана покрыты 43 целевыми тестами (7 модулей). Сопоставление с критериями приёмки (03-acceptance-criteria.md):

TC ID Описание AC Результат
TC-01 has_label=True когда лейбл присутствует AC-1 PASS
TC-02 has_label=False когда лейбла нет AC-4 PASS
TC-03 has_label при ошибке Plane/таймауте → fail-safe, never-raise AC-6 PASS
TC-04 Нормализация имени лейбла; неоднозначность → нет авто AC-6 PASS
TC-05 applies: scope CSV + self-hosting; пустой scope по дефолту AC-8 PASS
TC-06 auto_label_enabled=False → нет авто без сетевых вызовов AC-8 PASS
TC-07 fetch_issue_labels парсит labels + резолв uuid→имя AC-1 PASS
TC-08 Карта лейблов проекта кэшируется с TTL AC-8 PASS
TC-09 set_issue_approved PATCH в Approved-UUID; never-raise AC-1 PASS
TC-10 autoApprove → авто-advance analysis→architecture, Approved, клок закрыт AC-1 PASS
TC-11 Без лейбла autoApprove → In Review, return без advance AC-4 PASS
TC-12 autoApprove без артефактов → НЕ advance AC-5 PASS
TC-13 autoApprove через тот же advance-путь; идемпотентно AC-1 PASS
TC-14 autoApprove: лог + Telegram/карточка + Plane-коммент AC-7 PASS
TC-15 autoDeploy + Phase A → авто _handle_self_deploy_phase_b AC-2 PASS
TC-16 Без лейбла autoDeploy → Awaiting Deploy, ждёт человека AC-4 PASS
TC-17 autoDeploy идемпотентен: маркер INITIATED → no-op AC-2 PASS
TC-18 autoDeploy не-self/вне scope → no-op AC-8 PASS
TC-19 autoDeploy: лог + Telegram + Plane-коммент AC-7 PASS
TC-20 Только autoApprove: BRD авто, деплой ждёт человека AC-9 PASS
TC-21 Только autoDeploy: BRD ждёт человека, деплой авто AC-9 PASS
TC-22 auto_label_enabled=False → оба гейта ручные AC-8 PASS
TC-23 Оба лейбла + зелёные тех-гейты → analysis→deploy автономно AC-3 PASS
TC-24 autoDeploy + красный staging/merge-gate → Phase B НЕ инициирован AC-5 PASS
TC-25 Регресс: без лейблов оба гейта как до ORCH-089 AC-4 PASS
TC-26 Инвариант: STAGE_TRANSITIONS и QG_CHECKS не изменены AC-10 PASS

Smoke test API (prod 8500)

  • GET /health{"status":"ok","service":"orchestrator"} — OK
  • GET /status → 200, активные задачи перечислены (ORCH-089 = testing) — OK
  • GET /queue → 200, блоки наблюдаемости присутствуют — OK

Примечание: блок auto_labels в GET /queue на 8500 пока отсутствует — это ожидаемо: прод-контейнер исполняет код до ORCH-089 (задача ещё в testing, не задеплоена). Блок добавляется кодом ветки и покрыт юнит-тестами (snapshot/observability) выше.

Вывод pytest (полный регресс)

======================= 1157 passed, 1 warning in 37.99s =======================

Целевой набор ORCH-089 (7 модулей):

tests/test_labels.py ................ (14)
tests/test_plane_sync_labels.py ..... (11)
tests/test_auto_approve_brd.py ...... (5)
tests/test_auto_deploy.py ........... (5)
tests/test_auto_label_combinations.py (3)
tests/test_auto_labels_integration.py (3)
tests/test_auto_labels_invariants.py . (2)
======================== 43 passed, 1 warning in 1.09s =========================

Единственный warning — PydanticDeprecatedSince20 (class-based config в src/config.py), не связан с ORCH-089, присутствует в baseline.

Итог

PASS — все 26 TC плана зелёные, полный регресс 1157/1157 пройден, smoke-тесты OK, инварианты (STAGE_TRANSITIONS/QG_CHECKS, AC-10) подтверждены. Задача готова к deploy-staging.