5.2 KiB
type, work_item_id, result
| type | work_item_id | result |
|---|---|---|
| test-report | ORCH-076 | 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.