Files
orchestrator/docs/work-items/ORCH-022/13-test-report.md
claude-bot 8cdb9f194a
All checks were successful
CI / test (push) Successful in 19s
CI / test (pull_request) Successful in 19s
tester(ET): auto-commit from tester run_id=331
2026-06-07 18:04:50 +00:00

5.2 KiB
Raw Blame History

type, work_item_id, result
type work_item_id result
test-report ORCH-022 PASS

Test Report — ORCH-022

Security-гейт: secret-scanning (gitleaks) + dependency audit (pip-audit) как под-гейт ребра deploy-staging → deploy.

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3
  • Дата: 2026-06-07
  • Ветка: feature/ORCH-022-security-secret-scanning
  • Review verdict: APPROVED (12-review.md)

Smoke test API (prod 8500, self-hosting — не трогаем контейнер)

Endpoint Результат
GET /health {"status":"ok","service":"orchestrator"} — OK
GET /status OK (active task ORCH-022 в stage=testing виден)
GET /queue OK (counts/resilience/reconcile/reaper/post_deploy присутствуют)

Результаты (привязка к 04-test-plan.yaml)

TC ID Описание Тест Результат
TC-01 Секрет в diff → FAIL, secrets_found>=1, причина называет находку test_security_gate.py::test_tc01_secret_in_diff_fails PASS
TC-02 Чистая ветка → PASS, secrets_found=0 test_tc02_clean_branch_passes PASS
TC-03 Аллоулист подавляет заведомо-безопасное test_tc03_allowlisted_match_does_not_fail PASS
TC-04 HIGH/CRITICAL CVE при пороге HIGH → FAIL, deps_blocking>=1 test_tc04_high_cve_at_high_threshold_blocks PASS
TC-05 Только MEDIUM/LOW → PASS, deps_warning>=1 test_tc05_only_medium_low_warns_passes PASS
TC-06 Конфиг порога severity влияет на классификацию test_tc06_threshold_config_changes_classification PASS
TC-07 Недоступный фид → детерминированный degrade (fail-open default / fail-closed strict) test_tc07_degraded_feed_failopen_default_failclosed_strict PASS
TC-08 Вердикт ТОЛЬКО из frontmatter; negative-токен авторитетен test_tc08_verdict_only_from_frontmatter PASS
TC-09 Нет/битый frontmatter → (False, reason) fail-closed test_tc09_missing_or_broken_frontmatter_failclosed PASS
TC-10 Артефакт 17-security-report.md с валидным frontmatter + телом test_tc10_artifact_has_valid_frontmatter_and_body PASS
TC-11 Нет бинаря / исключение → (False, reason), never-raise test_tc11_missing_binary_failclosed_never_raises PASS
TC-12 Таймаут → детерминированный fail-closed, без зависания test_tc12_timeout_is_deterministic_failclosed PASS
TC-13 Не-self репо при пустом scope → (True, N/A) мгновенно test_qg_security.py::test_tc13_non_self_repo_empty_scope_is_na PASS
TC-14 ORCH_SECURITY_GATE_ENABLED=false → no-op pass test_tc14_disabled_is_noop_pass PASS
TC-15 Зарегистрирован в QG_CHECKS и диспетчеризуется _run_qg test_tc15_registered_in_qg_checks / test_tc15_dispatched_by_run_qg PASS
TC-16 FAIL → откат на development, enqueue developer, notify_qg_failure test_stage_engine_security_gate.py::test_tc16_fail_rolls_back_and_enqueues_developer PASS
TC-17 task_desc несёт дословную причину (ORCH-046) test_tc17_task_desc_has_verbatim_findings PASS
TC-18 После MAX_DEVELOPER_RETRIES (3) → set_issue_blocked + Telegram test_tc18_retry_cap_blocks_and_alerts PASS
TC-19 PASS → штатное продвижение конвейера test_tc19_pass_advances_normally PASS
TC-20 STAGE_TRANSITIONS не изменён; тесты стадий зелёные tests/test_stages.py (полный прогон) PASS
TC-21 Гейт не вызывает деплой-хук/рестарт прод (self-hosting safety) test_tc21_fail_never_triggers_deploy PASS

Все 21 TC покрыты и зелёные. Соответствие критериям приёмки (03-acceptance-criteria): AC-1..AC-21 закрыты соответствующими TC (AC-N ↔ TC-N для N=1..21; AC-20 «документация» подтверждён в review 12-review.md).

Вывод pytest

Security-специфичные тесты (25 шт.)

tests/test_security_gate.py ............... (15)
tests/test_qg_security.py ...... (6)
tests/test_stage_engine_security_gate.py ..... (5)
======================== 25 passed, 1 warning in 0.49s =========================

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

======================= 772 passed, 1 warning in 14.70s ========================

(1 warning — PydanticDeprecatedSince20 в src/config.py, не связан с ORCH-022, существовал до задачи.)

Итог

PASS — полный регресс 772/772 зелёный, 25 security-тестов покрывают все 21 TC плана и AC-1..AC-21, smoke-тесты API прод-инстанса OK. Прод-контейнер в процессе тестирования не затронут (тесты офлайн/изолированы). Задача готова к стадии deploy-staging.