tester(ET): auto-commit from tester run_id=384
This commit is contained in:
83
docs/work-items/ORCH-073/13-test-report.md
Normal file
83
docs/work-items/ORCH-073/13-test-report.md
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
type: test-report
|
||||
work_item_id: ORCH-073
|
||||
result: PASS
|
||||
---
|
||||
|
||||
# Test Report — ORCH-073
|
||||
|
||||
CRIT: системный фикс эрозии `main` (фантомный merge ORCH-067/069) + восстановление кода.
|
||||
|
||||
## Окружение
|
||||
- Python: 3.12.13
|
||||
- pytest: 8.3.3
|
||||
- Дата: 2026-06-08
|
||||
- Worktree: `feature/ORCH-073-crit-main-orch-067-069`
|
||||
- Prod health (8500): `{"status":"ok","service":"orchestrator"}` — контейнер не тронут
|
||||
|
||||
## Smoke-тесты API (prod 8500, read-only)
|
||||
| Endpoint | Результат |
|
||||
|----------|-----------|
|
||||
| `GET /health` | `{"status":"ok"}` — PASS |
|
||||
| `GET /status` | active_tasks отдаётся, ORCH-073 на стадии `testing` — PASS |
|
||||
| `GET /queue` | counts/reconcile/reaper/post_deploy снимок отдаётся, breaker `closed` — PASS |
|
||||
|
||||
## Результаты по тест-плану (04-test-plan.yaml)
|
||||
|
||||
| TC ID | Описание | Тест-функция | Результат |
|
||||
|-------|----------|--------------|-----------|
|
||||
| TC-01 | verify_merged_to_main: sha — предок main → True (AC-6) | test_tc01_true_when_sha_is_ancestor | PASS |
|
||||
| TC-02 | sha НЕ в main + merged docs-PR → False (баг 067/069, AC-2) | test_tc02_false_when_sha_not_in_main_even_with_merged_docs_pr | PASS |
|
||||
| TC-03 | пустой sha → False (fail-closed) | test_tc03_empty_sha_is_false | PASS |
|
||||
| TC-04 | git error → False (never-raise, INV-1) | test_tc04_never_raises_on_git_error / _worktree_error | PASS |
|
||||
| TC-05 | merged docs-PR не засчитан как code-merge (FR-2) | test_tc05_merged_docs_pr_not_counted | PASS |
|
||||
| TC-06 | merged code-PR распознан (base=main, head=branch) | test_tc06_merged_code_pr_recognised / _onto_non_main_base_not_counted | PASS |
|
||||
| TC-07 | HTTP-ошибка/не-200 → False (never-raise) | test_tc07_non_200_is_false / _http_exception_is_false | PASS |
|
||||
| TC-08 | merge_pr выбирает code-PR, не docs/* (FR-3) | test_tc08_merges_code_pr_not_docs_pr / _skips_pr_onto_non_main_base | PASS |
|
||||
| TC-09 | нет open code-PR → (False,...), без push main (INV-2) | test_tc09_no_open_pr_no_shell_out | PASS |
|
||||
| TC-10 | merge_pr идемпотентен, без второго POST (AC-7/INV-4) | test_tc10_idempotent_already_merged | PASS |
|
||||
| TC-11 | .gitattributes: CHANGELOG.md merge=union (AC-4) | test_tc11_gitattributes_declares_union | PASS |
|
||||
| TC-12 | union-merge сохраняет обе записи Unreleased без конфликта | test_tc12_union_merge_keeps_both_entries | PASS |
|
||||
| TC-13 | _handle_merge_verify: SHA в main + маркеры → advance (AC-6) | test_tc13_confirmed_and_intact_advances | PASS |
|
||||
| TC-14 | docs-only merge → HOLD + alert, НЕ done (AC-3) | test_tc14_sha_not_in_main_holds | PASS |
|
||||
| TC-15 | регресс-гард: маркер ранее-merged задачи пропал → HOLD + alert (AC-5) | test_tc15_marker_missing_holds | PASS |
|
||||
| TC-16 | внутр. ошибка верификатора → HOLD + alert, never-raise (INV-1) | test_tc16_internal_error_holds_never_raises | PASS |
|
||||
| TC-17 | conditionality: non-self/kill-switch → под-гейт no-op (AC-6/INV-5) | test_tc17_merge_verify_applies_scope / _under_gate_noop_for_non_self | PASS |
|
||||
| TC-18 | регресс-гард уважает kill-switch / non-self → no-op (INV-5) | test_tc18_guard_kill_switch_skips_guard / _guard_noop_for_non_self_repo | PASS |
|
||||
| TC-19 | полный pytest tests/ -q зелёный (AC-8) | весь набор tests/ | PASS |
|
||||
|
||||
Все 19 TC из тест-плана покрыты (24 тест-функции в 6 файлах `tests/test_orch073_*.py`).
|
||||
|
||||
## Проверка критериев приёмки (03-acceptance-criteria.md)
|
||||
|
||||
| AC | Проверка | Результат |
|
||||
|----|----------|-----------|
|
||||
| AC-1 | Маркеры в origin/main: plane_issue_link=8, qg0_title_max=3, verify_merged_to_main=4 (все >0) | PASS |
|
||||
| AC-2 | TC-02: sha не в main + merged docs-PR → False | PASS |
|
||||
| AC-3 | TC-14: docs-only merge → HOLD + alert, НЕ done | PASS |
|
||||
| AC-4 | `git check-attr merge CHANGELOG.md` → `merge: union`; TC-11/12 | PASS |
|
||||
| AC-5 | TC-15: уменьшение набора маркеров → HOLD + alert «main regressed» | PASS |
|
||||
| AC-6 | TC-01/13/17: happy-path done без ложного alert; enduro no-op | PASS |
|
||||
| AC-7 | TC-10: re-drive слитой задачи → no-op, без второго merge | PASS |
|
||||
| AC-8 | 941 passed; доки/ADR/CHANGELOG обновлены (см. 12-review) | PASS |
|
||||
| AC-9 | G4-аудит в ADR-001 (root cause docs-only merge) — подтверждён reviewer | PASS |
|
||||
| AC-10 | staging-проверка — стадия deploy-staging (вне scope tester) | — |
|
||||
| AC-11 | merge только PR-API; прод-контейнер не падал в рамках тестов | PASS |
|
||||
|
||||
## Вывод pytest
|
||||
|
||||
```
|
||||
tests/ -q --tb=short:
|
||||
........................................................................ [100%]
|
||||
941 passed, 1 warning in 25.37s
|
||||
|
||||
tests/test_orch073_*.py -v:
|
||||
24 passed, 1 warning in 0.54s
|
||||
```
|
||||
(1 warning — PydanticDeprecatedSince20 в src/config.py, не относится к ORCH-073, не блокирует.)
|
||||
|
||||
## Итог
|
||||
**PASS** — полный регресс зелёный (941 passed), все 24 теста ORCH-073 PASS, smoke API OK,
|
||||
маркеры AC-1 присутствуют в `origin/main`, прод-контейнер не затронут. Задача готова к
|
||||
переходу на стадию `deploy-staging` (где будет проверен AC-10 — воспроизведение «исправлено
|
||||
навсегда» на двух задачах с правкой CHANGELOG).
|
||||
Reference in New Issue
Block a user