Files
orchestrator/docs/work-items/ORCH-048/13-test-report.md
claude-bot 4abe746fc0
All checks were successful
CI / test (push) Successful in 12s
CI / test (pull_request) Successful in 12s
tester(ET): auto-commit from tester run_id=149
2026-06-06 05:29:49 +00:00

4.8 KiB
Raw Blame History

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

Test Report — ORCH-048

Title: staging B6 check reads registry from host worktree, not staging container Stage: testing Branch: feature/ORCH-048-staging-b6-check-reads-registr Review verdict: APPROVED (12-review.md, version 1)

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3
  • Дата: 2026-06-06T05:28Z
  • prod orchestrator (8500): /health → 200 {"status":"ok"}
  • staging orchestrator-staging (8501): /health → 200 {"status":"ok"}
  • Примечание: curl в окружении тестера отсутствует — HTTP-smoke выполнен через python urllib/TestClient.

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

TC ID Тип Описание Результат
TC-01 unit B6 PASS при чистом реестре known={SANDBOX} (test_tc01_clean_registry_passes) PASS
TC-02 unit B6 FAIL при known={SANDBOX,PROD_ET} (test_tc02_prod_et_pollution_fails) PASS
TC-03 unit B6 FAIL при known={SANDBOX,PROD_ORCH} (test_tc03_prod_orch_pollution_fails) PASS
TC-04 unit B6 FAIL детерминированно при known=set() без исключения (test_tc04_sandbox_absent_fails_deterministically) PASS
TC-05 unit B6 FAIL при known={SANDBOX,PROD_ET,PROD_ORCH} (test_tc05_both_prod_pollution_fails) PASS
TC-06 unit Нет host-path хака sys.path.insert("/repos/orchestrator") в источнике B6 (test_tc06_no_host_path_hack_in_source) PASS
TC-07 unit Деградация источника (network error / non-200 / нет ключа / битый тип) → детерминированный FAIL (test_tc07_* ×4 + test_check_b6_polluted_endpoint_fails) PASS
TC-08 unit Регрессия src/projects.py зелёная, файл не изменён (tests/test_projects.py, 16 тестов) PASS
TC-09 integration Полный pytest tests/ -q → exit 0 (476 passed) PASS
TC-10 integration Живой staging-прогон B6 против orchestrator-staging (8501) DEFERRED → deployer (deploy-staging)

Доп. проверки

  • GET /projects в коде ветки (TestClient): HTTP 200, схема {known_plane_project_ids, projects}, prod-реестр ET+ORCH — корректно.
  • Smoke staging API: /status → 200, /queue → 200 (breaker closed, preflight_ok). /health prod+staging → 200.

TC-10 — почему DEFERRED (не FAIL)

GET /projects на работающем staging-инстансе (8501) сейчас отдаёт 404: новый read-only эндпоинт присутствует в коде ветки, но в staging-контейнер ещё не задеплоен (деплой staging — следующая стадия). Это ожидаемо и не является дефектом. По 04-test-plan.yaml TC-10 явно помечен «Выполняется деплоером на стадии deploy-staging», т.е. вне зоны ответственности тестера. В коде ветки эндпоинт верифицирован через TestClient (200 + корректная схема), что подтверждает готовность к staging-прогону.

Покрытие Acceptance Criteria (03-acceptance-criteria.md)

  • AC-1 (B6 читает реестр из staging-окружения по HTTP, без host-path хака) — покрыто TC-01, TC-06; живой прогон → deployer.
  • AC-2 (оба исхода вердикта покрыты юнитами) — покрыто TC-01…TC-05, TC-07.
  • AC-3 (src/projects.py, .env* не тронуты; прочие чеки целы) — git diff подтверждён ревью; TC-08 зелёный.
  • AC-4 (существующие тесты зелёные) — 476 passed, exit 0.
  • AC-5 (документация/ADR в том же PR) — подтверждено на review (APPROVED).

Вывод pytest

tests/test_staging_check_b6.py ... 12 passed
tests/test_projects.py ......... 16 passed
========================= 476 passed, 1 warning in 7.99s =========================

Единственное предупреждение — PydanticDeprecatedSince20 в src/config.py (class-based Config), не связано с ORCH-048, не влияет на результат.

Итог

PASS — полный регресс (476 passed) зелёный, все unit/integration TC тестера (TC-01…TC-09) PASS, smoke API OK. TC-10 (живой staging-прогон B6) корректно делегирован деплоеру на стадию deploy-staging. Задача переходит на deploy-staging.