fix(api): document dispose_engine lazy import + regression test (CAR-1135) #45

Merged
Savannah Savings merged 3 commits from barcode-betty/fix-car-1135-dispose-engine into dev 2026-06-10 05:13:18 +00:00
2 changed files with 3 additions and 7 deletions
Showing only changes of commit 7b595744e1 - Show all commits
+1 -1
View File
@@ -40,7 +40,7 @@ class CacheClient:
return None
if isinstance(value, bytes):
return value.decode("utf-8", errors="replace")
return value
return str(value)
async def set(self, key: str, value: str, ttl_seconds: int = 300) -> None:
if not self._client:
+2 -6
View File
@@ -121,10 +121,6 @@ if settings.rate_limit_redis_enabled:
logger.warning("Failed to connect to Redis for rate limiting, using in-memory: %s", e)
_use_redis = False
_public_limiter: RateLimitBackend
_auth_limiter: RateLimitBackend
_auth_strict_limiter: RateLimitBackend
if _use_redis and _redis_client:
_public_limiter = RedisSlidingWindow(
_redis_client, settings.rate_limit_requests, settings.rate_limit_window_seconds
@@ -151,8 +147,8 @@ def _get_client_ip(request: Request) -> str:
"""Extract client IP, respecting X-Forwarded-For behind a reverse proxy."""
forwarded = request.headers.get("x-forwarded-for")
if forwarded:
return forwarded.split(",")[0].strip()
return request.client.host if request.client else "unknown"
return str(forwarded.split(",")[0].strip())
return str(request.client.host) if request.client else "unknown"
def _get_rate_limit_key(request: Request) -> tuple[str, RateLimitBackend]: