5.9 KiB
5.9 KiB
type, work_item_id, result
| type | work_item_id | result |
|---|---|---|
| test-report | ORCH-069 | PASS |
Test Report — ORCH-069
QG-0 title-лимит → параметр ORCH_QG0_TITLE_MAX (дефолт 200)
Окружение
- Python: 3.12.13
- pytest: 8.3.3 (plugins: anyio-4.13.0, asyncio-0.23.8; asyncio mode=auto)
- Ветка:
feature/ORCH-069-qg-0-title-orch-qg0-title-max- - Worktree:
/repos/_wt/orchestrator/feature_ORCH-069-qg-0-title-orch-qg0-title-max- - Prod-health (8500):
{"status":"ok","service":"orchestrator"}— не трогался (self-hosting safety) - Дата: 2026-06-08
Предусловия
- Review-вердикт
12-review.md: APPROVED (version 3) ✓ - Изменения изолированы:
src/config.py,src/webhooks/plane.py(+ тесты, + документация)
Результаты по тест-плану (04-test-plan.yaml)
| TC ID | Описание | Покрывает | Результат |
|---|---|---|---|
| TC-01 | Дефолт 200: title=200 → нет ошибки длины (граница PASS) | AC-1 | PASS |
| TC-02 | Дефолт 200: title=201 → ошибка длины, текст упоминает «200» | AC-1 | PASS |
| TC-03 | Лимит 120: title=120 → нет ошибки длины | AC-2 | PASS |
| TC-04 | Лимит 120: title=121 → ошибка, текст «120» (не «80») | AC-2 | PASS |
| TC-05 | Graceful: env abc → дефолт 200, без краха Settings() |
AC-3 | PASS |
| TC-06 | Graceful: пустой env "" → дефолт 200, без исключения |
AC-3 | PASS |
| TC-07 | Валидный env 150 → применяется 150 (позитивный путь) |
AC-2, AC-3 | PASS |
| TC-08 | Нижний лимит title < 5 не сломан | AC-4 | PASS |
| TC-09 | Лимит description < 20 не сломан | AC-4 | PASS |
| TC-10 | Обратная совместимость: title 81–200 проходит при дефолте | AC-7 | PASS |
| TC-11 | Полный набор тестов зелёный (нет регрессии) | AC-5 | PASS |
Сопоставление с критериями приёмки (03-acceptance-criteria.md)
| AC | Критерий | Статус |
|---|---|---|
| AC-1 | Дефолт 200, граница на 201, текст упоминает 200 | PASS (TC-01/02) |
| AC-2 | Настраиваемый лимит 120, граница 121, текст 120 | PASS (TC-03/04/07) |
| AC-3 | Graceful при пустом/нечисловом значении → 200 | PASS (TC-05/06) |
| AC-4 | Нижние лимиты title<5 / description<20 не сломаны | PASS (TC-08/09) |
| AC-5 | Юнит-тесты зелёные (весь набор) | PASS (863 passed) |
| AC-6 | Документация в том же PR (.env.example, .env.staging.example, CHANGELOG, README) | PASS (подтверждено review) |
| AC-7 | Обратная совместимость (≤80 проходит при 200) | PASS (TC-10) |
| AC-8 | Изоляция: slug [:30], БД, STAGE_TRANSITIONS/QG_CHECKS, handle_* не тронуты |
PASS (diff = 2 файла src/) |
Smoke test API (prod 8500, read-only)
GET /health→{"status":"ok","service":"orchestrator"}— OKGET /status→ отдаёт активные задачи (ORCH-069 в стадииtesting) — OKGET /queue→counts: queued=0 running=1 done=459 failed=4 cancelled=1; breakerclosed, preflight ok — OK
Целевой прогон ORCH-069 (tests/test_qg0_title_limit.py)
collected 10 items
tests/test_qg0_title_limit.py::test_tc01_default_limit_200_boundary_pass PASSED
tests/test_qg0_title_limit.py::test_tc02_default_limit_200_boundary_fail PASSED
tests/test_qg0_title_limit.py::test_tc03_custom_limit_120_boundary_pass PASSED
tests/test_qg0_title_limit.py::test_tc04_custom_limit_120_boundary_fail PASSED
tests/test_qg0_title_limit.py::test_tc05_graceful_non_numeric_env PASSED
tests/test_qg0_title_limit.py::test_tc06_graceful_empty_env PASSED
tests/test_qg0_title_limit.py::test_tc07_valid_numeric_env PASSED
tests/test_qg0_title_limit.py::test_tc08_short_title_still_errors PASSED
tests/test_qg0_title_limit.py::test_tc09_short_description_still_errors PASSED
tests/test_qg0_title_limit.py::test_tc10_backward_compat_titles_81_to_200 PASSED
======================== 10 passed, 1 warning in 0.31s =========================
Полный прогон (pytest tests/ -q)
........................................................................ [ 8%]
........................................................................ [ 16%]
........................................................................ [ 25%]
........................................................................ [ 33%]
........................................................................ [ 41%]
........................................................................ [ 50%]
........................................................................ [ 58%]
........................................................................ [ 66%]
........................................................................ [ 75%]
........................................................................ [ 83%]
........................................................................ [ 91%]
....................................................................... [100%]
863 passed, 1 warning in 21.49s
(Единственный warning — PydanticDeprecatedSince20 в src/config.py:5, существующий
class-based config; к ORCH-069 не относится, не является ошибкой.)
Итог
PASS — все 11 TC из тест-плана пройдены, все 8 критериев приёмки выполнены,
полный регресс зелёный (863 passed), smoke-тесты API OK. Регрессии не внесены.
Задача готова к переходу на стадию deploy-staging.