Files
orchestrator/docs/work-items/ORCH-116/13-test-report.md
claude-bot 62967b285e
Some checks failed
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 1m8s
tester(ET): auto-commit from tester run_id=742
2026-06-16 03:10:23 +03:00

5.1 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-116 testing tester pass 2026-06-16 claude-opus-4-8 test-report ORCH-116

Test Report — ORCH-116

Детерминированный test-раннер вместо LLM-тестера (стадия testing).

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3 (plugins: cov-5.0.0, anyio-4.14.0, asyncio-0.23.8)
  • Worktree: /repos/_wt/orchestrator/feature_ORCH-116-orch-replace-llm-tester-with-d
  • Ветка: feature/ORCH-116-orch-replace-llm-tester-with-d
  • Дата: 2026-06-16

Smoke API (read-only)

  • GET /health{"status":"ok","service":"orchestrator"}OK
  • GET /status → активные задачи отданы (ORCH-116 на testing) — OK
  • GET /queue → отдан; блок serial_gate присутствует (ORCH-088), блок auto_labels присутствует, блок test_runner присутствует (ORCH-116 наблюдаемость) — OK

Результаты по тест-плану (04-test-plan.yaml)

TC ID Описание Тест(ы) Результат
TC-01 applies(repo): kill-switch/скоуп/тест-контракт (BR-9), never-raise test_tc01_applies_killswitch_scope_and_contract, test_tc01_applies_never_raises PASS
TC-02 Маппинг exit-кода 0→PASS / иначе/None→FAIL (fail-closed, единый контракт) test_tc02_map_exit_code PASS
TC-03 Рендер 13-test-report.md: result: UPPERCASE + 52c-схема + хвост stdout/smoke test_tc03_report_render_schema_and_status_alignment PASS
TC-04 Артефакт читается неизменённым _parse_tests_verdict для PASS/FAIL test_tc04_gate_parser_unchanged, test_tc04_status_field_never_false_negatives_a_pass PASS
TC-05 launch_job перехватывает tester-джоб до _spawn; agent_runs не создаётся, None test_tc05_launch_job_intercepts_before_spawn PASS
TC-06 Дискриминатор: не-testing/не-tester/не-self не перехватываются; never-raise→False test_tc06_* (4 теста) PASS
TC-07 PASS→advance(tester)→deploy-staging; FAIL→откат testing→development + retry test_tc07_advance_initiated_like_llm[0-PASS], [1-FAIL] PASS
TC-08 Kill-switch test_runner_enabled=False_spawn (LLM-путь байт-в-байт) test_tc08_killswitch_falls_back_to_spawn PASS
TC-09 Анти-дрейф NFR-1: STAGE_TRANSITIONS/QG_CHECKS/check_tests_passed/токены/схема БД целы test_tc09_pipeline_contract_unchanged PASS
TC-10 Two-level (анти-ORCH-110): tool-error→bounded DEFER; исчерпание→fail-closed FAIL+alert test_tc10_nonzero_exit_is_fail_and_advances, test_tc10_timeout_defers_without_advance, test_tc10_tool_error_budget_exhausted_fails_closed PASS
TC-11 never-raise/fail-safe: pytest-бросок/таймаут/worktree-ошибка → FAIL/DEFER, не клинит test_tc11_run_gate_never_raises, test_tc11_launcher_contains_runner_fault PASS
TC-12 Изоляция/таймаут: proc_group tree-kill в worktree; малформ→дефолт 900+WARNING test_tc12_resolve_timeout_default_on_bad_value, test_tc12_pytest_runs_in_worktree_via_proc_group PASS
TC-13 Self-hosting safety: нет опасных литералов; smoke строго read-only GET; push в фичеветку test_tc13_* (5 тестов) PASS
TC-14 Наблюдаемость+гибрид: блок test_runner в /queue; структурный лог; LLM вне control-path test_tc14_* (4 теста) PASS
TC-15 Анти-дрейф LLM-карты: llm-call-sites/roadmap/policy зелёные после правок test_tc15_llm_map_anti_drift_green, test_llm_call_site_inventory.py, test_llm_determinization_docs.py PASS

Каждый TC из 04-test-plan.yaml выполнен и сопоставлен с критериями 03-acceptance-criteria.md.

Вывод pytest

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

$ python -m pytest tests/ -q --tb=short
........................................................................ [ 97%]
.................................................                        [100%]
2137 passed, 1 warning in 84.57s (0:01:24)

(единственный warning — несвязанный Pydantic V2 deprecation в src/config.py:8)

Тесты ORCH-116 (verbose)

$ python -m pytest tests/test_orch116_test_runner.py tests/test_llm_call_site_inventory.py tests/test_llm_determinization_docs.py -v
45 passed, 1 warning in 2.20s

Итог

PASS — полный регресс зелёный (2137 passed), smoke read-only OK (/health//status//queue, блок serial_gate присутствует), все 15 TC выполнены и сопоставлены с критериями приёмки. Задача переходит на deploy-staging.