From 58fc0a8b9445d967c277677a6deb45fd916b518a Mon Sep 17 00:00:00 2001 From: claude-bot Date: Fri, 5 Jun 2026 21:07:30 +0000 Subject: [PATCH] tester(ET): auto-commit from tester run_id=129 --- docs/work-items/ORCH-047/13-test-report.md | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 docs/work-items/ORCH-047/13-test-report.md diff --git a/docs/work-items/ORCH-047/13-test-report.md b/docs/work-items/ORCH-047/13-test-report.md new file mode 100644 index 0000000..8f5ef9f --- /dev/null +++ b/docs/work-items/ORCH-047/13-test-report.md @@ -0,0 +1,78 @@ +--- +type: test-report +work_item_id: ORCH-047 +result: PASS +--- + +# Test Report — ORCH-047 + +`check_tests_passed` / `_parse_tests_verdict` читает `result:` наравне с `verdict:`/`status:`. + +## Окружение +- Python: 3.12.13 +- pytest: 8.3.3 +- Ветка: feature/ORCH-047-check-tests-passed-gate-must-r +- Среда: dev worktree (прод-контейнер `orchestrator` :8500 не затронут) +- Дата: 2026-06-05 + +## Smoke test API (prod :8500, read-only) +| Endpoint | Результат | +|----------|-----------| +| `GET /health` | `{"status":"ok","service":"orchestrator"}` — OK | +| `GET /status` | 200, активные задачи отдаются (ORCH-047 в testing) — OK | +| `GET /queue` | 200, counts/breaker/preflight в норме (running:1, failed:0) — OK | + +## Результаты (план `04-test-plan.yaml`) + +| TC ID | Описание | Тест | Результат | +|-------|----------|------|-----------| +| TC-01 | `result: PASS` без verdict/status → PASS (AC-01) | `test_result_pass_passes` | PASS | +| TC-02 | `result: FAIL` → FAIL, reason содержит FAIL (AC-02) | `test_result_fail_fails` | PASS | +| TC-03 | `result: PASS` + `verdict: BLOCKED` → negative авторитетен → FAIL (AC-03) | `test_result_pass_but_verdict_blocked_fails` | PASS | +| TC-04 | `result: PASS` + `status: failed` → FAIL (AC-03) | `test_result_pass_but_status_failed_fails` | PASS | +| TC-05 | `result: ready-to-deploy` → PASS (AC-04) | `test_result_ready_to_deploy_passes` | PASS | +| TC-06 | Легаси `verdict: PASS` → PASS, без регресса (AC-05) | `test_verdict_pass_passes` | PASS | +| TC-07 | `verdict: BLOCKED` + проза «23 passed» → FAIL (AC-05) | `test_passed_count_in_body_but_blocked_verdict_fails` | PASS | +| TC-08 | Нет машинных полей, проза «Result: PASS» → FAIL (AC-06) | `test_no_machine_field_reason_mentions_result` | PASS | +| TC-09 | Нет frontmatter → FAIL (AC-07) | `test_no_frontmatter_fails` | PASS | +| TC-10 | Битый YAML → FAIL без исключения (AC-08) | `test_invalid_yaml_fails_no_exception` | PASS | +| TC-11 | Отчёт отсутствует → FAIL «not found» (AC-09) | `test_no_report` | PASS | +| TC-12 | Реестр `QG_CHECKS` неизменен (AC-10) | `test_qg_registry_snapshot.py` (2 теста) | PASS | +| TC-13 | Полный регресс зелёный (AC-05, AC-12) | `pytest tests/` | PASS | + +## Покрытие критериев приёмки + +| AC | Статус | +|----|--------| +| AC-01 `result: PASS` проходит | PASS | +| AC-02 `result: FAIL` откатывает | PASS | +| AC-03 negative авторитетен между полями | PASS | +| AC-04 positive в любом из трёх полей → PASS | PASS | +| AC-05 обратная совместимость (TestCheckTestsPassed) | PASS | +| AC-06 ни одно поле не задано → FAIL | PASS | +| AC-07 только проза без frontmatter → FAIL | PASS | +| AC-08 битый YAML → FAIL без raise | PASS | +| AC-09 отчёт отсутствует → FAIL | PASS | +| AC-10 реестр гейтов неизменен | PASS | +| AC-11 ADR/README/CHANGELOG обновлены | PASS | +| AC-12 полный регресс зелёный | PASS | + +AC-11 проверено вручную: +- `docs/work-items/ORCH-047/06-adr/ADR-001-result-field-in-tests-gate.md` — присутствует. +- `docs/architecture/README.md` — строка вердикт-парсера перечисляет `result:`/`verdict:`/`status:`. +- `CHANGELOG.md` — запись `fix:` про ORCH-047. + +## Вывод pytest +``` +tests/test_qg.py ............................... TestCheckTestsPassed (все PASS, + включая новые test_result_* и легаси-кейсы) +tests/test_qg_registry_snapshot.py::test_tc20_qg_callables_unchanged PASSED +tests/test_qg_registry_snapshot.py::test_tc20_stage_transitions_unchanged PASSED +... +======================== 442 passed, 1 warning in 7.77s ======================== +``` +(1 warning — предсуществующий PydanticDeprecatedSince20 в `src/config.py`, не связан с ORCH-047.) + +## Итог +PASS — все 13 TC и 12 AC выполнены, полный регресс зелёный (442 passed), smoke OK, +реестр гейтов не изменён. Задача готова к стадии deploy-staging.