tester(ET): auto-commit from tester run_id=118
This commit is contained in:
91
docs/work-items/ORCH-017/13-test-report.md
Normal file
91
docs/work-items/ORCH-017/13-test-report.md
Normal file
@@ -0,0 +1,91 @@
|
||||
---
|
||||
type: test-report
|
||||
work_item_id: ORCH-017
|
||||
result: PASS
|
||||
---
|
||||
|
||||
# Test Report — ORCH-017
|
||||
|
||||
Прямые ссылки на BRD и Plane-таску в Telegram-уведомлении об апруве BRD.
|
||||
Вердикт review (`12-review.md`): **APPROVED** ✔ — прогон регресса допущен.
|
||||
|
||||
## Окружение
|
||||
- Python: 3.12.13
|
||||
- pytest: 8.3.3 (pytest-asyncio 0.23.8, anyio 4.13.0)
|
||||
- Дата: 2026-06-05
|
||||
- Ветка: `feature/ORCH-017-brd-plane-telegram`
|
||||
- Прод-контейнер `orchestrator` (8500) НЕ перезапускался; smoke — только read-only GET.
|
||||
|
||||
## Smoke test API (prod, read-only)
|
||||
| Endpoint | HTTP | Результат |
|
||||
|----------|------|-----------|
|
||||
| `GET /health` | 200 | `{"status":"ok","service":"orchestrator"}` — PASS |
|
||||
| `GET /status` | 200 | active_tasks содержит task #35 ORCH-017 (stage=testing) — PASS |
|
||||
| `GET /queue` | 200 | counts running=1, failed=0, breaker=closed, preflight ok — PASS |
|
||||
|
||||
> `curl` в окружении отсутствует — smoke выполнен через `urllib.request` (GET, без побочных эффектов).
|
||||
|
||||
## Результаты по test-plan (04-test-plan.yaml)
|
||||
|
||||
| TC ID | Описание | Тест | Результат |
|
||||
|-------|----------|------|-----------|
|
||||
| TC-01 | BRD-ссылка на `01-brd.md` (Gitea branch-view) | `test_notify_approve_links::test_tc01_brd_link_present` | PASS |
|
||||
| TC-02 | Plane-ссылка (web-URL+workspace+project+issue_id) | `…::test_tc02_plane_link_present` | PASS |
|
||||
| TC-03 | Фоллбэки URL (gitea_public_url→gitea_url, plane_web_url→plane_api_url) | `…::test_tc03_url_fallbacks` | PASS |
|
||||
| TC-04 | Сохранён призыв «Approved» | `…::test_tc04_keeps_approved_call_to_action` | PASS |
|
||||
| TC-05 | Ровно одно пингующее сообщение (не silent) | `…::test_tc05_single_notifying_message` | PASS |
|
||||
| TC-06 | Graceful: branch/issue=None — без исключения | `…::test_tc06_graceful_missing_branch_and_issue` | PASS |
|
||||
| TC-07 | Пустой Plane-base → Plane-ссылка опущена, BRD остаётся | `…::test_tc07_plane_base_empty_drops_plane_link_keeps_brd` | PASS |
|
||||
| TC-07b | Loopback Plane-base отбрасывается (доп.) | `…::test_tc07b_loopback_plane_base_dropped` | PASS |
|
||||
| TC-08 | parse_mode=HTML, html.escape, валидная разметка | `…::test_tc08_html_escaped_and_valid_markup` | PASS |
|
||||
| TC-08b | send_telegram сохраняет parse_mode=HTML (доп.) | `…::test_tc08b_send_telegram_keeps_parse_mode_html` | PASS |
|
||||
| TC-09 | Регрессия трекера (silent edit, без дублей) | `test_telegram_tracker.py` (полный набор) | PASS |
|
||||
| TC-10 | Поток analysis-approved строит ссылки из БД | `test_analysis_approve_flow_links::test_tc10_approved_flow_builds_links_from_db` | PASS |
|
||||
| TC-11 | (Условный) inline-кнопки | — | N/A — вариант кнопок отклонён (ADR-001 Р-1) |
|
||||
| TC-12 | (Условный) обратная совместимость send_telegram c reply_markup | — | N/A — вариант кнопок отклонён (ADR-001 Р-1) |
|
||||
|
||||
Все запланированные тесты (TC-01…TC-10) — PASS. Условные TC-11/TC-12 не применимы:
|
||||
ADR-001 (Р-1) зафиксировал HTML-ссылки в тексте без изменения сигнатуры `send_telegram`.
|
||||
|
||||
## Покрытие критериев приёмки (03-acceptance-criteria.md)
|
||||
| AC | Покрывающие TC | Статус |
|
||||
|----|----------------|--------|
|
||||
| AC-1 | TC-01, TC-10 | PASS |
|
||||
| AC-2 | TC-02, TC-10 | PASS |
|
||||
| AC-3 | TC-01, TC-02, TC-03 | PASS |
|
||||
| AC-4 | TC-04 | PASS |
|
||||
| AC-5 | TC-05, TC-09 | PASS |
|
||||
| AC-6 | TC-06, TC-07, TC-07b | PASS |
|
||||
| AC-7 | TC-08, TC-08b | PASS |
|
||||
| AC-8 | TC-09, TC-10 | PASS |
|
||||
| AC-9 | проверено review (CHANGELOG/.env.example/INFRA.md/ADR) | PASS |
|
||||
| AC-10 | полный регресс `pytest tests/` | PASS |
|
||||
|
||||
## Вывод pytest
|
||||
|
||||
### Целевые тесты ORCH-017
|
||||
```
|
||||
tests/test_notify_approve_links.py::test_tc01_brd_link_present PASSED
|
||||
tests/test_notify_approve_links.py::test_tc02_plane_link_present PASSED
|
||||
tests/test_notify_approve_links.py::test_tc03_url_fallbacks PASSED
|
||||
tests/test_notify_approve_links.py::test_tc04_keeps_approved_call_to_action PASSED
|
||||
tests/test_notify_approve_links.py::test_tc05_single_notifying_message PASSED
|
||||
tests/test_notify_approve_links.py::test_tc06_graceful_missing_branch_and_issue PASSED
|
||||
tests/test_notify_approve_links.py::test_tc07_plane_base_empty_drops_plane_link_keeps_brd PASSED
|
||||
tests/test_notify_approve_links.py::test_tc07b_loopback_plane_base_dropped PASSED
|
||||
tests/test_notify_approve_links.py::test_tc08_html_escaped_and_valid_markup PASSED
|
||||
tests/test_notify_approve_links.py::test_tc08b_send_telegram_keeps_parse_mode_html PASSED
|
||||
tests/test_analysis_approve_flow_links.py::test_tc10_approved_flow_builds_links_from_db PASSED
|
||||
11 passed in 0.53s
|
||||
```
|
||||
|
||||
### Полный регресс
|
||||
```
|
||||
======================== 434 passed, 1 warning in 7.99s ========================
|
||||
```
|
||||
Единственное предупреждение — PydanticDeprecatedSince20 (`src/config.py:4`, class-based config),
|
||||
предсуществующее, к ORCH-017 не относится, на результат не влияет.
|
||||
|
||||
## Итог
|
||||
**PASS** — 434/434 теста зелёные, целевые TC-01…TC-10 пройдены, все 10 критериев приёмки
|
||||
покрыты, smoke API прод-инстанса OK. Задача готова к стадии **deploy-staging**.
|
||||
Reference in New Issue
Block a user