tester(ET): auto-commit from tester run_id=161
This commit is contained in:
84
docs/work-items/ORCH-044/13-test-report.md
Normal file
84
docs/work-items/ORCH-044/13-test-report.md
Normal file
@@ -0,0 +1,84 @@
|
||||
---
|
||||
type: test-report
|
||||
work_item_id: ORCH-044
|
||||
result: PASS
|
||||
---
|
||||
|
||||
# Test Report — ORCH-044
|
||||
|
||||
Надёжность запуска агента: preflight auth (P1) + пустой лог = провал (P3).
|
||||
**P2 (`--effort`) исключён из scope владельцем** (06.06) — вынесен в ORCH-50;
|
||||
AC-7/AC-8/AC-9 и TC-09/TC-11 (effort) в этой задаче **не применяются (N/A)**.
|
||||
|
||||
## Окружение
|
||||
- Python: 3.12.13
|
||||
- pytest: 8.3.3
|
||||
- Branch: feature/ORCH-044-preflight-auth-effort
|
||||
- Дата: 2026-06-06T08:39Z
|
||||
- Прод-инстанс (8500): не трогался; smoke — read-only GET.
|
||||
|
||||
## Результаты — Quality Gate тесты (04-test-plan.yaml)
|
||||
|
||||
| TC ID | Описание | Тест(ы) | Результат |
|
||||
|-------|----------|---------|-----------|
|
||||
| TC-01 | Нет `.credentials.json` ⇒ FAIL про auth | `test_missing_credentials_fails` | PASS |
|
||||
| TC-02 | Протухший OAuth `expiresAt` ⇒ FAIL | `test_expired_token_fails` | PASS |
|
||||
| TC-03 | Валидный логин ⇒ OK без регрессии | `test_valid_login_ok` | PASS |
|
||||
| TC-04 | Битый JSON ⇒ FAIL без исключения | `test_broken_json_fails_without_raising` | PASS |
|
||||
| TC-05 | Token-free: нет сетевого вызова | `test_auth_check_makes_no_network_call` | PASS |
|
||||
| TC-06 | Кеширование auth в пределах TTL | `test_auth_result_cached_within_ttl` | PASS |
|
||||
| TC-07 | Путь credentials от HOME агента (/home/slin) | `test_credentials_path_follows_agent_home` | PASS |
|
||||
| TC-08 | Worker не клеймит job при auth-fail | `test_worker_does_not_claim_when_auth_fails` | PASS |
|
||||
| TC-09 | (effort) cmd без `--effort` | `test_effort_flag.py` | N/A — scope исключён владельцем (ORCH-50) |
|
||||
| TC-10 | `resolve_agent_effort` согласован | `test_resolve_agent_effort.py` (11 тестов) | PASS — effort не тронут, тесты зелёные |
|
||||
| TC-11 | (effort) дефолтный путь даёт непустой JSON | `test_effort_flag.py` | N/A — scope исключён владельцем (ORCH-50) |
|
||||
| TC-12 | Пустой лог + exit0 ⇒ failed + алерт | `test_empty_log_exit0_terminal_failed_alerts` | PASS |
|
||||
| TC-13 | Лог без result-JSON ⇒ провал | `test_garbage_log_exit0_not_done` | PASS |
|
||||
| TC-14 | Провал ⇒ нет advance/успешного коммента | `test_empty_result_suppresses_advance_and_comment` | PASS |
|
||||
| TC-15 | Валидный JSON ⇒ done без регрессии | `test_valid_result_done`, `test_success_advances_and_comments` | PASS |
|
||||
| TC-16 | Никогда не вечный `running` | `test_never_running_after_empty_result` | PASS |
|
||||
| TC-17 | Классификация permanent/transient | `test_empty_result_defaults_permanent`, `..._with_transient_marker_goes_transient` | PASS |
|
||||
| TC-18 | Регресс preflight (bin/version) | `test_resilience.py::TestPreflight` | PASS |
|
||||
| TC-19 | Полный `pytest tests/` зелёный | вся сюита | PASS (504 passed) |
|
||||
|
||||
Дополнительно покрыто (вне нумерации плана): постфактум auth-маркер
|
||||
(`test_is_auth_failure_text_*`, `TestAuthMarkerHandling`), тумблер
|
||||
`ORCH_PREFLIGHT_CHECK_AUTH` (`test_auth_toggle_off_skips_check`), явный путь
|
||||
credentials (`test_explicit_credentials_path_wins`).
|
||||
|
||||
## Сопоставление с критериями приёмки
|
||||
- **AC-1…AC-6** (preflight auth): PASS — TC-01…TC-08.
|
||||
- **AC-7/AC-8/AC-9** (effort): N/A — исключены владельцем (см. 02-trz.md, 03-acceptance-criteria.md).
|
||||
- **AC-10…AC-14** (пустой результат ⇒ провал): PASS — TC-12…TC-16.
|
||||
- **AC-15** (документация в том же PR): PASS — подтверждено review (APPROVED): README/internals/INFRA/CHANGELOG/ADR обновлены.
|
||||
- **AC-16** (тесты зелёные): PASS — 504 passed.
|
||||
- **AC-17** (self-hosting): PASS — изменения в слое preflight/launch; прод-контейнер не рестартовался; smoke 8500 read-only.
|
||||
|
||||
## Smoke test API (8500, read-only GET)
|
||||
| Endpoint | Код | Замечание |
|
||||
|----------|-----|-----------|
|
||||
| GET /health | 200 | `{"status":"ok","service":"orchestrator"}` |
|
||||
| GET /status | 200 | активна задача ORCH-044 (stage=testing) |
|
||||
| GET /queue | 200 | counts ok (failed=0), `preflight_ok=true`, breaker=closed |
|
||||
|
||||
> curl в окружении отсутствует — smoke выполнен через `urllib` (эквивалентные GET).
|
||||
|
||||
## Вывод pytest
|
||||
```
|
||||
======================= 504 passed, 1 warning in 10.82s ========================
|
||||
```
|
||||
Модули плана (детально):
|
||||
```
|
||||
tests/test_preflight_auth.py ......... 18 passed
|
||||
tests/test_resolve_agent_effort.py ... 11 passed
|
||||
tests/test_empty_log_failure.py ...... 18 passed
|
||||
tests/test_resilience.py ............. 31 passed
|
||||
(итого по модулям плана: 78 passed)
|
||||
```
|
||||
Warning: `PydanticDeprecatedSince20` в `src/config.py:4` — предсуществующий,
|
||||
вне scope ORCH-044 (зафиксировано в review как P2/опционально).
|
||||
|
||||
## Итог
|
||||
**PASS** — все применимые тесты плана зелёные, существующая сюита не сломана,
|
||||
smoke API исправен. TC-09/TC-11 (effort) корректно N/A: P2 исключён владельцем
|
||||
и вынесен в ORCH-50. Задача готова к стадии **deploy-staging**.
|
||||
Reference in New Issue
Block a user