83 lines
4.0 KiB
YAML
83 lines
4.0 KiB
YAML
work_item: ORCH-060
|
||
description: >
|
||
Reconciler F-1 пропускает escalated (retry >= MAX_DEVELOPER_RETRIES) и
|
||
явно-blocked / needs-input задачи; happy-path и no-spam сохранены.
|
||
Конвенции test-фикстур — как в существующем tests/test_reconciler.py
|
||
(изолированная sqlite-БД, моки Plane/Telegram/gate). Хелпер _make_task
|
||
вставляет задачу; developer-ретраи моделируются вставкой N строк в agent_runs
|
||
(agent='developer'); зелёный CI — через _green_ci(monkeypatch).
|
||
|
||
tests:
|
||
- id: TC-01
|
||
type: unit
|
||
description: "AC-1: escalated dev-задача (ровно MAX_DEVELOPER_RETRIES developer-ранов) при зелёном CI НЕ разблокируется — стадия остаётся development, unblocked_total==0, новых job нет"
|
||
module: tests/test_reconciler.py
|
||
setup: "_make_task('development', age_s=grace+60); insert MAX_DEVELOPER_RETRIES rows agent_runs(agent='developer'); _green_ci()"
|
||
expected: PASS
|
||
|
||
- id: TC-02
|
||
type: unit
|
||
description: "AC-2: developer-ранов > MAX_DEVELOPER_RETRIES (4–5) → также skip"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-03
|
||
type: unit
|
||
description: "AC-3 (регресс happy-path): developer-ранов < MAX (0/1/2) при зелёном CI → задача доигрывается development->review, unblocked_total==1"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-04
|
||
type: unit
|
||
description: "AC-4: граница — задача с ровно MAX пропущена, задача с MAX-1 доиграна (ровно одна advance)"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-05
|
||
type: unit
|
||
description: "AC-5: задача в Plane-статусе Blocked (retry<лимита) пропущена — стадия не меняется, unblocked_total==0 (мок проверки статуса возвращает Blocked)"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-06
|
||
type: unit
|
||
description: "AC-6: задача в Plane-статусе Needs Input (retry<лимита) пропущена"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-07
|
||
type: unit
|
||
description: "AC-7 (no spam): на escalated-задаче не вызваны _note_unblock / send_telegram / notify_qg_failure; нет лог-строки 'разблокирована'"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-08
|
||
type: unit
|
||
description: "AC-8: на escalated-задаче мок check_ci_green НЕ вызван (skip раньше пред-оценки гейта)"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-09
|
||
type: unit
|
||
description: "AC-9 (регресс F-2): issue в Blocked/Needs Input не передаётся ни в handle_status_start, ни в handle_verdict при reconcile_plane_once; unblocked_total==0"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-10
|
||
type: unit
|
||
description: "AC-10 (never-raise): проверка blocked/needs-input бросает исключение на одной задаче → тик не падает, сбойная skip, валидная соседняя обработана"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-11
|
||
type: unit
|
||
description: "AC-11: граница берётся из stage_engine.MAX_DEVELOPER_RETRIES — тест с monkeypatch значения константы меняет точку отсечения (нет хардкода 3)"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|
||
|
||
- id: TC-12
|
||
type: integration
|
||
description: "AC-13 (регресс): полный прогон tests/test_reconciler.py (ORCH-053 кейсы) — все прежние тесты зелёные"
|
||
module: tests/test_reconciler.py
|
||
expected: PASS
|