tester(ET): auto-commit from tester run_id=457
This commit is contained in:
85
docs/work-items/ORCH-076/13-test-report.md
Normal file
85
docs/work-items/ORCH-076/13-test-report.md
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
type: test-report
|
||||
work_item_id: ORCH-076
|
||||
result: PASS
|
||||
---
|
||||
|
||||
# Test Report — ORCH-076
|
||||
|
||||
ORCH-52c: протокол handoff + единый frontmatter-контракт (writer/валидатор/схема).
|
||||
|
||||
## Окружение
|
||||
- Python: 3.12.13
|
||||
- pytest: 8.3.3
|
||||
- Ветка: `feature/ORCH-076-orch-52c-handoff-frontmatter-w`
|
||||
- Worktree: `/repos/_wt/orchestrator/feature_ORCH-076-orch-52c-handoff-frontmatter-w`
|
||||
- Дата: 2026-06-09
|
||||
|
||||
## Предусловия
|
||||
- Review-вердикт `12-review.md`: **APPROVED** (P0/P1/P2 — нет; два P3 nice-to-have, не блокирующие).
|
||||
- Prod health (8500): `{"status":"ok","service":"orchestrator"}` — конвейер прочих проектов не тронут.
|
||||
|
||||
## Smoke test API (prod 8500, read-only)
|
||||
| Endpoint | Результат |
|
||||
|----------|-----------|
|
||||
| `GET /health` | PASS — `{"status":"ok","service":"orchestrator"}` |
|
||||
| `GET /status` | PASS — задача ORCH-076 видна на стадии `testing` (id 69) |
|
||||
| `GET /queue` | PASS — counts/reconcile/reaper/post_deploy/merge_verify в норме (done=897, failed=4) |
|
||||
|
||||
## Результаты по тест-плану (04-test-plan.yaml)
|
||||
|
||||
| TC ID | Описание | Модуль | Результат |
|
||||
|-------|----------|--------|-----------|
|
||||
| TC-01 | Writer сериализует mapping в каноничный YAML-frontmatter | tests/test_frontmatter.py | PASS |
|
||||
| TC-02 | Round-trip writer → read_frontmatter_value | tests/test_frontmatter.py | PASS |
|
||||
| TC-03 | Валидатор: полная схема → valid=True | tests/test_frontmatter.py | PASS |
|
||||
| TC-04 | Валидатор: неполная схема → valid=False, без исключения | tests/test_frontmatter.py | PASS |
|
||||
| TC-05 | never-raise: writer/валидатор на битом вводе | tests/test_frontmatter.py | PASS |
|
||||
| TC-06 | reader read_frontmatter_value: прежний контракт (BC) | tests/test_frontmatter.py | PASS |
|
||||
| TC-07 | kill-switch frontmatter_validation_strict (False/True) | tests/test_frontmatter.py | PASS |
|
||||
| TC-08 | check_reviewer_verdict через единый API (APPROVED/REQUEST_CHANGES/missing) | tests/test_qg_verdicts.py | PASS |
|
||||
| TC-09 | _parse_tests_verdict: ORCH-047 3 поля + приоритет негативного токена | tests/test_qg_verdicts.py | PASS |
|
||||
| TC-10 | _parse_deploy_status: SUCCESS/FAILED/missing (БАГ-8 1:1) | tests/test_qg_verdicts.py | PASS |
|
||||
| TC-11 | _parse_staging_status: SUCCESS/FAILED + условность ORCH-35 | tests/test_qg_verdicts.py | PASS |
|
||||
| TC-12 | parse_security_status: PASS/FAIL семантика 1:1 | tests/test_security_gate.py | PASS |
|
||||
| TC-13 | Старый док-вердикт без новой схемы читается всеми 5 гейтами | tests/test_qg_verdicts.py | PASS |
|
||||
| TC-14 | Док с полной схемой + вердикт-ключом — тот же вердикт (схема аддитивна) | tests/test_qg_verdicts.py | PASS |
|
||||
| TC-15 | fallback worktree → origin/main сохранён через единый API | tests/test_qg_verdicts.py | PASS |
|
||||
| TC-16 | Состав QG_CHECKS и STAGE_TRANSITIONS не изменён | tests/test_stages_invariants.py | PASS |
|
||||
| TC-17 | Полный прогон tests/ зелёный (анти-регресс) | tests/ | PASS |
|
||||
|
||||
Все 17 тест-кейсов плана покрыты и зелёные. TC-таргетные модули
|
||||
(`test_frontmatter.py`, `test_qg_verdicts.py`, `test_security_gate.py`,
|
||||
`test_stages_invariants.py`) — **49 passed**.
|
||||
|
||||
## Покрытие критериев приёмки (03-acceptance-criteria.md)
|
||||
| AC | Подтверждено | Результат |
|
||||
|----|--------------|-----------|
|
||||
| AC-1 reader+writer+валидатор, unit-tested | TC-01…TC-07 | PASS |
|
||||
| AC-2 спека handoff в docs/_standards/ согласована | (review/doc-check) | PASS |
|
||||
| AC-3 единый контракт вердиктов (5 точек) | TC-08…TC-12 | PASS |
|
||||
| AC-4 BC старых доков + регресс зелёный + самопрохождение | TC-13/TC-14 + полный регресс + задача на testing | PASS |
|
||||
| AC-5 never-raise + warning-only + kill-switch | TC-05/TC-07 | PASS |
|
||||
| AC-6 STAGE_TRANSITIONS/QG_CHECKS неизменны | TC-16 | PASS |
|
||||
| AC-7 документация обновлена | review «Документация» | PASS |
|
||||
|
||||
## Вывод pytest
|
||||
|
||||
Полный регресс:
|
||||
```
|
||||
1212 passed, 1 warning in 34.97s
|
||||
```
|
||||
|
||||
TC-таргетные модули:
|
||||
```
|
||||
49 passed, 1 warning in 0.44s
|
||||
```
|
||||
|
||||
Единственное предупреждение — `PydanticDeprecatedSince20` (class-based config в
|
||||
`src/config.py`), предсуществующее, не связано с ORCH-076, не влияет на результат.
|
||||
Сетевых зависимостей в тестах нет (frontmatter — файловый/in-memory контракт).
|
||||
|
||||
## Итог
|
||||
**PASS** — полный регресс зелёный (1212 passed), все 17 TC плана PASS, smoke API OK,
|
||||
prod-контейнер не тронут. Регрессий гейтов (review/tester/deploy/staging/security) нет,
|
||||
семантика вердиктов 1:1. Задача готова к переходу на `deploy-staging`.
|
||||
Reference in New Issue
Block a user