Coverage for src/lexigram/web/integrations/debug.py: 62%
16 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 04:37 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 04:37 +0800
1"""Debug routes integration for WebProvider."""
3from __future__ import annotations
5from typing import Any
7from starlette.applications import Starlette
9from lexigram.contracts.infra.cache import CacheBackendProtocol
10from lexigram.di.container import Container
11from lexigram.logging import get_logger
13logger = get_logger(__name__)
16class DebugIntegration:
17 """Handles debug routes and required client configuration."""
19 @staticmethod
20 async def configure(_app: Starlette, container: Container, provider: Any) -> None:
21 """Initialize debug routes and required clients."""
22 from lexigram.di.exceptions import UnresolvableDependencyError
24 try:
25 provider._debug_redis_client = await container.resolve(CacheBackendProtocol)
26 except (
27 AttributeError,
28 TypeError,
29 ImportError,
30 RuntimeError,
31 UnresolvableDependencyError,
32 ) as e:
33 logger.debug("Failed to resolve debug cache backend: %s", e)
35 logger.info("Debug routes enabled at /debug/*")