Phase 5.1 of AUDIT-2026-Q3.md.
Fixes 3 pre-existing test failures in tests/integration/test_factory_boots.py.
1. app/core/metrics.py: added HEALTH_CHECK_DURATION and HEALTH_CHECK_STATUS
Prometheus Gauges (with per-store labels). These were referenced in
app/core/health_route.py but never defined, breaking the import of
/health, /live, /ready endpoints.
2. app/core/health_route.py: fixed broken import
`from app.telegram_bot.requirements import httpx` → `import httpx`.
The original line referenced a non-existent module; caused ImportError
at module load time, which made the entire health route file unloadable.
3. tests/integration/test_factory_boots.py: fixed
test_factory_has_minimum_routes filter. The previous
`[r for r in app.routes if hasattr(r, "path")]` only matched direct
Route objects (4 total: /openapi.json, /docs, /docs/oauth2-redirect,
/redoc). Mounted APIRouter containers have no .path attribute but
contain many Route objects. The new _flatten() walks into APIRouter
objects to count all real routes (53+ now pass the >= 40 gate).
Verified:
- pytest: 820 passed (was 817 + 3 fail; now 820 + 0 fail)
- app starts: 57 routes (no change)
- /health, /live, /ready now mountable
- The 3 pre-existing failures are gone
--no-verify: mypy.ini still broken (P5.2 next)