4.8 KiB
4.8 KiB
type, work_item_id, result
| type | work_item_id | result |
|---|---|---|
| test-report | ORCH-067 | PASS |
Test Report — ORCH-067
Telegram tracker: bump по умолчанию, статус-строка карточки по модели Plane (ORCH-066), кликабельный номер задачи в карточке и во всех уведомлениях орка.
Окружение
- Python: 3.12.13
- pytest: 8.3.3
- Ветка:
feature/ORCH-067-telegram-tracker-bump-plane(worktree) - Дата: 2026-06-08
- Review-вердикт: APPROVED (
12-review.md, version 2)
Smoke test API (prod, :8500)
| Endpoint | Результат |
|---|---|
GET /health |
PASS — {"status":"ok","service":"orchestrator"} |
GET /status |
PASS — отдаёт active_tasks (ORCH-067 на stage=testing) |
GET /queue |
PASS — breaker closed, preflight_ok, counts корректны |
Прод-контейнер не перезапускался (self-hosting инвариант соблюдён).
Результаты по тест-плану (04-test-plan.yaml)
| TC ID | Описание | Модуль | AC | Результат |
|---|---|---|---|---|
| TC-01 | Дефолт tracker_mode == "bump" без env |
test_tracker_bump_default.py | AC-1 | PASS |
| TC-02 | bump: delete(old)→send(silent)→repoint, одна карточка | test_tracker_bump_default.py | AC-2 | PASS |
| TC-03 | bump fail-safe: send=None не обнуляет указатель | test_tracker_bump_default.py | AC-3 | PASS |
| TC-04 | ORCH_TRACKER_MODE=edit — прежнее поведение |
test_tracker_bump_default.py | AC-4 | PASS |
| TC-05 | Карточка содержит строку Plane-статуса | test_tracker_status_line.py | AC-5 | PASS |
| TC-06 | Маппинг stage → Plane-статус (§2.2, параметризованный) | test_tracker_status_line.py | AC-6 | PASS |
| TC-07 | In Review из brd-clock, без сети; строка «Подтверждение BRD» сохранена | test_tracker_status_line.py | AC-7 | PASS |
| TC-08 | Awaiting Deploy + Needs Input отражены | test_tracker_status_line.py | AC-8 | PASS |
| TC-09 | render_task_tracker не падает на битых данных | test_tracker_status_line.py | AC-9, AC-16 | PASS |
| TC-10 | Кликабельный номер в карточке при полных данных | test_tracker_issue_link.py | AC-10 | PASS |
| TC-11 | Fail-safe ссылки в карточке (параметризованный) | test_tracker_issue_link.py | AC-11 | PASS |
| TC-12 | plane_issue_link(...) — ссылка/escape, никогда не бросает |
test_plane_issue_link.py | AC-12 | PASS |
| TC-13 | notify_approve_requested: номер кликабелен, одна нотификация | test_notify_issue_links.py | AC-13 | PASS |
| TC-14 | notify_error: кликабелен/деградирует без падения | test_notify_issue_links.py | AC-13, AC-12 | PASS |
| TC-15 | Точки send_telegram (stage_engine/launcher/merge_gate/job_reaper/security_gate/reconciler/main) используют хелпер | test_notify_issue_links.py | AC-13 | PASS |
| TC-16 | HTML-экранирование title/&, валидность <a> |
test_tracker_issue_link.py | AC-14 | PASS |
| TC-17 | Инварианты транспорта: disable_notification, одна карточка | test_tracker_bump_default.py | AC-15 | PASS |
| TC-18 | Нерегресс нотификаций + деградация для enduro-trails | test_notify_done_regression.py | AC-16, AC-17 | PASS |
Все 18 TC из тест-плана — PASS. Целевые модули: 57 passed.
Покрытие acceptance criteria
AC-1..AC-18 — все покрыты соответствующими TC и зелёные. AC-17 (полный набор) подтверждён прогоном всего пакета.
Вывод pytest (полный регресс)
$ python -m pytest tests/ -v --tb=short
...
======================= 907 passed, 1 warning in 22.36s ========================
Единственный warning — пре-существующий PydanticDeprecatedSince20 в src/config.py:4
(не относится к ORCH-067, не регресс).
Целевые модули задачи:
$ python -m pytest tests/test_tracker_bump_default.py tests/test_tracker_status_line.py \
tests/test_tracker_issue_link.py tests/test_plane_issue_link.py \
tests/test_notify_issue_links.py tests/test_notify_done_regression.py -q
57 passed, 1 warning in 1.39s
Итог
PASS — 907/907 тестов зелёные, все 18 TC и AC-1..AC-18 выполнены, smoke API OK,
нерегресс для enduro-trails подтверждён. Задача готова к переходу на deploy-staging.