4.4 KiB
4.4 KiB
type, work_item_id, result
| type | work_item_id | result |
|---|---|---|
| test-report | ORCH-047 | 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 (3 теста) |
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.