Files
orchestrator/docs/work-items/ORCH-019/13-test-report.md
claude-bot 5ecc870897
All checks were successful
CI / test (push) Successful in 50s
CI / test (pull_request) Successful in 52s
tester(ET): auto-commit from tester run_id=562
2026-06-10 03:58:15 +03:00

7.3 KiB
Raw Blame History

result, work_item, stage, author_agent, status, created_at, model_used, type, work_item_id
result work_item stage author_agent status created_at model_used type work_item_id
PASS ORCH-019 testing tester pass 2026-06-10 claude-opus-4-8 test-report ORCH-019

Test Report — ORCH-019 — Багфикс-трек (упрощённый/дешёвый маршрут для багов)

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3 (plugins: cov-5.0.0, anyio-4.13.0, asyncio-0.23.8)
  • Worktree: /repos/_wt/orchestrator/feature_ORCH-019- (ветка feature/ORCH-019-)
  • Дата: 2026-06-10T00:53:34Z
  • Предусловие: review 12-review.md = verdict: APPROVED

Smoke API (read-only)

Endpoint Результат Примечание
GET /health PASS {"status":"ok","service":"orchestrator"}
GET /status PASS отвечает; ORCH-019 (task 84) виден на стадии testing
GET /queue PASS блок serial_gate присутствует (ORCH-088) ✓; auto_labels присутствует ✓

Прод-контейнер (8500) исполняет код до ORCH-019 (фича ещё не задеплоена), поэтому блока bug_fast_track в живом /queue ожидаемо нет — это не регресс смока. Обязательные для смока блоки serial_gate и auto_labels присутствуют. Новый блок bug_fast_track верифицирован юнит/интеграционными тестами test_queue_endpoint.py (TC-13) на коде ветки. Smoke — read-only, прод-контейнер не трогался.

Результаты — покрытие TC из 04-test-plan.yaml

TC ID Описание (кратко) Тип Тесты AC Результат
TC-01 is_bug_task() True для метки Bug; источник — Plane API, не payload unit test_tc01_is_bug_task_true, test_tc01_label_from_plane_api_not_payload AC-1 PASS
TC-02 is_bug_task() False при отсутствии/неоднозначной метке/labels=None (fail-safe) unit test_tc02_label_absent, test_tc02_labels_none, test_tc02_label_ambiguous, test_tc02_empty_label_config AC-1/AC-6 PASS
TC-03 bug_fast_track_applies(repo): локальная область ПЕРВОЙ; выключенный флаг → без сети unit test_tc03_empty_csv_self_hosting_only, test_tc03_csv_membership, test_tc03_killswitch_off_no_network AC-6 PASS
TC-04 never-raise: исключение в fetch labels → деградация в False (полный цикл) unit test_tc04_is_bug_task_never_raises, test_tc04_applies_never_raises AC-6 PASS
TC-05 Маршрут: bug → next stage после analysis = development; не-баг = architecture unit test_tc05_bug_task_skips_architecture, test_tc05_full_task_keeps_architecture, test_tc05_killswitch_off_bug_keeps_architecture, test_tc05_bug_only_affects_analysis_edge AC-2 PASS
TC-06 STAGE_TRANSITIONS структурно не изменён (анти-регресс) unit test_tc06_stage_transitions_unchanged, test_tc06_get_next_stage_pure AC-2 PASS
TC-07 QG_CHECKS/сигнатуры check_*/вердикт-ключи не изменены (имя+регистр) unit test_tc07_qg_checks_registry_unchanged, test_tc07_verdict_keys_preserved AC-3 PASS
TC-08 E2E багфикс-трек проходит development→…→deploy, минуя architecture, все гейты integration test_tc08_bug_task_full_walk_skips_architecture AC-2/AC-3 PASS
TC-09 start_pipeline: метка Bug → bug-track; без метки → full-track integration test_tc09_bug_label_creates_bug_track, test_tc09_no_label_creates_full_track AC-1 PASS
TC-10 Fail-safe: enabled=False → метка Bug идёт полным циклом (нулевая регрессия) integration test_tc10_killswitch_off_bug_label_full_cycle AC-6 PASS
TC-11 Эскалация: 'bug'→'full' → штатный маршрут с architecture integration test_tc11_escalate_returns_to_full_cycle, test_tc11_escalate_unknown_work_item, test_tc11_escalate_missing_arg, test_tc11_escalate_idempotent_on_full AC-5 PASS
TC-12 check_analysis_* не блокирует ложно lite-пакет; не ослаблен для не-баг unit test_tc12_bug_lite_package_with_all_four_passes, test_tc12_missing_file_still_fails_for_any_track, test_tc12_signature_has_no_track_param AC-3/FR-6 PASS
TC-13 GET /queue несёт read-only блок bug_fast_track; существующие ключи целы integration test_queue_has_bug_fast_track_block_and_keeps_existing_keys, test_queue_bug_fast_track_counts_bug_tasks AC-7 PASS
TC-14 Композиция: bug-задача учтена serial-gate; autoApprove/autoDeploy применимы integration test_tc14_bug_task_counts_as_active_in_serial_gate, test_tc14_bug_task_itself_gated_behind_predecessor, test_tc14_bug_task_claimable_once_predecessor_done, test_tc14_auto_label_applies_track_agnostic AC-9 PASS
TC-15 Миграция tasks.track аддитивна/идемпотентна; дефолт 'full' unit test_tc15_track_column_present_with_default, test_tc15_init_db_idempotent, test_tc15_helpers_round_trip, test_tc15_get_task_track_missing_row_failsafe AC-8 PASS

Итог покрытия: все 15 TC из 04-test-plan.yaml выполнены и сопоставлены с критериями 03-acceptance-criteria.md (AC-1…AC-9). Непокрытых/пропущенных TC нет.

Вывод pytest

Целевые suite ORCH-019 (6 файлов + queue/migrations)

$ pytest tests/test_bug_fast_track.py tests/test_bug_fast_track_routing.py \
         tests/test_bug_fast_track_gates.py tests/test_bug_fast_track_e2e.py \
         tests/test_bug_fast_track_escalation.py tests/test_bug_fast_track_composition.py \
         tests/test_queue_endpoint.py tests/test_db_migrations.py -v
...
======================== 46 passed, 1 warning in 2.51s =========================

46/46 целевых тестов — PASS.

Полный регресс

$ pytest tests/ -q --tb=short
........................................................................ [100%]
1551 passed, 1 warning in 56.64s

1551/1551 — PASS, 0 failed. (Единственный warning — известный Pydantic V2 deprecation в src/config.py:8, не относится к ORCH-019.)

Итог

PASS — полный регресс (1551 passed) и целевые suites ORCH-019 (46 passed) зелёные; smoke API (/health//status//queue с блоками serial_gate+auto_labels) — OK; все 15 TC выполнены и сопоставлены с AC-1…AC-9. Корневой инвариант NFR-1 (неизменность STAGE_TRANSITIONS/QG_CHECKS/ вердикт-ключей) подтверждён анти-регресс-тестами TC-06/TC-07. → стадия переходит на deploy-staging.