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

1"""Debug routes integration for WebProvider.""" 

2 

3from __future__ import annotations 

4 

5from typing import Any 

6 

7from starlette.applications import Starlette 

8 

9from lexigram.contracts.infra.cache import CacheBackendProtocol 

10from lexigram.di.container import Container 

11from lexigram.logging import get_logger 

12 

13logger = get_logger(__name__) 

14 

15 

16class DebugIntegration: 

17 """Handles debug routes and required client configuration.""" 

18 

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 

23 

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) 

34 

35 logger.info("Debug routes enabled at /debug/*")