Add get_stats to MemoryBackend and update pytest config

Added get_stats() method for consistency with RedisBackend. Also added
httpx and pytest-asyncio as dev dependencies.
This commit is contained in:
2026-01-09 00:50:43 +00:00
parent dfaa0aaec4
commit 9fe700296d
3 changed files with 20 additions and 0 deletions

View File

@@ -134,6 +134,19 @@ class MemoryBackend(Backend):
self._cleanup_task = None
await self.clear()
async def ping(self) -> bool:
"""Check if the backend is available. Always returns True for memory backend."""
return True
async def get_stats(self) -> dict[str, Any]:
"""Get statistics about the rate limit storage."""
async with self._lock:
return {
"total_keys": len(self._data),
"max_size": self._max_size,
"backend": "memory",
}
def __len__(self) -> int:
"""Return the number of stored entries."""
return len(self._data)

View File

@@ -94,12 +94,15 @@ reportMissingImports = false
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
testpaths = ["tests"]
addopts = "-v --tb=short"
[dependency-groups]
dev = [
"fastapi>=0.128.0",
"httpx>=0.28.1",
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
"uvicorn>=0.40.0",
]

4
uv.lock generated
View File

@@ -247,7 +247,9 @@ redis = [
[package.dev-dependencies]
dev = [
{ name = "fastapi" },
{ name = "httpx" },
{ name = "pytest" },
{ name = "pytest-asyncio" },
{ name = "uvicorn" },
]
@@ -273,7 +275,9 @@ provides-extras = ["redis", "fastapi", "all", "dev"]
[package.metadata.requires-dev]
dev = [
{ name = "fastapi", specifier = ">=0.128.0" },
{ name = "httpx", specifier = ">=0.28.1" },
{ name = "pytest", specifier = ">=9.0.2" },
{ name = "pytest-asyncio", specifier = ">=1.3.0" },
{ name = "uvicorn", specifier = ">=0.40.0" },
]