From 0b9645683c723d145e8d7a8ff82f1a1208b94118 Mon Sep 17 00:00:00 2001 From: claude-bot Date: Tue, 9 Jun 2026 12:27:19 +0300 Subject: [PATCH] tester(ET): auto-commit from tester run_id=445 --- docs/work-items/ORCH-089/13-test-report.md | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 docs/work-items/ORCH-089/13-test-report.md diff --git a/docs/work-items/ORCH-089/13-test-report.md b/docs/work-items/ORCH-089/13-test-report.md new file mode 100644 index 0000000..fe2366d --- /dev/null +++ b/docs/work-items/ORCH-089/13-test-report.md @@ -0,0 +1,88 @@ +--- +type: test-report +work_item_id: ORCH-089 +result: 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`.