--- type: test-report work_item_id: ORCH-048 result: 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 ## Окружение - Python: 3.12.13 - pytest: 8.3.3 - Дата: 2026-06-06T07:06Z - Prod API (8500): `/health` 200 ok, `/status` 200 (ORCH-048 в stage=testing), `/queue` 200 (breaker closed, preflight ok) ## Результаты | TC ID | Тип | Описание | Результат | |-------|-----|----------|-----------| | TC-01 | unit | `known={SANDBOX}` → B6 PASS, detail sandbox=YES/prod-ET=NO/prod-ORCH=NO | PASS | | TC-02 | unit | `known={SANDBOX,PROD_ET}` → B6 FAIL, prod-ET помечен нарушением | PASS | | TC-03 | unit | `known={SANDBOX,PROD_ORCH}` → B6 FAIL, prod-ORCH помечен нарушением | PASS | | TC-04 | unit | `known=set()` (нет sandbox) → детерминированный FAIL без исключения | PASS | | TC-05 | unit | `known={SANDBOX,PROD_ET,PROD_ORCH}` → B6 FAIL | PASS | | TC-06 | unit | Нет host-path хака `/repos/orchestrator`; реестр строится не локальным импортом в произвольном process-env | PASS | | TC-07 | unit | Деградация источника реестра → детерминированный FAIL с понятным detail (не ложный PASS, не необработанное исключение) | PASS | | TC-08 | unit | Регрессия `src/projects.py` (16 тестов) зелёные — реестр не изменён | PASS | | TC-09 | integration | `python -m pytest tests/ -q` → exit 0 | PASS | | TC-10 | integration | Живой staging-прогон B6 на 8501 | DEFERRED — выполняется деплоером на стадии deploy-staging (см. 04-test-plan TC-10) | Доп. покрытие: `test_run_b6_records_pass_for_clean_registry` (happy-path wiring `_run_b6`). ## Покрытие критериев приёмки | AC | Подтверждение | Статус | |----|---------------|--------| | AC-1 | B6 PASS на чистом реестре (TC-01), источник — окружение инстанса, host-path хак удалён (TC-06) | PASS | | AC-2 | Оба исхода покрыты: clean→PASS (TC-01), polluted→FAIL (TC-02/03/05), без sandbox→FAIL (TC-04) | PASS | | AC-3 | `git diff origin/main...HEAD` НЕ содержит `src/projects.py` / `.env*`; блоки A/B4/B5/C не тронуты | PASS | | AC-4 | `pytest tests/ -q` → exit 0, 470 passed | PASS | | AC-5 | STAGING_CHECK.md, deployer.md, CHANGELOG.md, ADR-001 обновлены в том же PR (подтверждено review) | PASS | ## Проверка scope (AC-3) Изменённые файлы ветки vs origin/main: ``` .openclaw/agents/deployer.md CHANGELOG.md docs/operations/STAGING_CHECK.md docs/work-items/ORCH-048/* (артефакты задачи) scripts/staging_check.py tests/test_staging_check_b6.py ``` Forbidden-path check: OK — `src/projects.py` и `.env*` НЕ затронуты. ## Вывод pytest Полный прогон: ``` 470 passed, 1 warning in 9.07s pytest exit code: 0 ``` (warning — PydanticDeprecatedSince20 в `src/config.py`, предсуществующий, к ORCH-048 не относится.) B6 suite: ``` tests/test_staging_check_b6.py ......... [9 passed] 9 passed, 1 warning in 0.29s ``` projects-регрессия (TC-08): ``` 16 passed, 1 warning in 0.31s ``` ## Итог **PASS** — все unit/integration тесты зелёные (470 passed, exit 0), smoke API prod исправен, scope-инвариант AC-3 соблюдён. Живой staging-прогон B6 (TC-10) выполняется деплоером на стадии deploy-staging.