Files
orchestrator/docs/work-items/ORCH-069/13-test-report.md
claude-bot de70ee811d
All checks were successful
CI / test (push) Successful in 20s
CI / test (pull_request) Successful in 20s
tester(ET): auto-commit from tester run_id=378
2026-06-08 11:30:17 +00:00

5.9 KiB
Raw Blame History

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 81200 проходит при дефолте 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"} — OK
  • GET /status → отдаёт активные задачи (ORCH-069 в стадии testing) — OK
  • GET /queuecounts: queued=0 running=1 done=459 failed=4 cancelled=1; breaker closed, 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.