Simplify config example and log API bodies

This commit is contained in:
2026-06-08 13:26:22 +08:00
parent 5500947ddb
commit 64e3ea9631
4 changed files with 85 additions and 7 deletions

View File

@ -1,3 +1,8 @@
import logging
from fastapi.testclient import TestClient
def test_memory_system_server_exposes_routes():
from memory_system_api.server import app
@ -60,3 +65,29 @@ def test_memory_system_messages_does_not_require_account_key_header():
route = next(route for route in app.routes if getattr(route, "path", "") == "/memory-system/messages")
assert all(getattr(dependency.call, "__name__", "") != "account_key_header" for dependency in route.dependant.dependencies)
def test_memory_system_logs_request_and_response_bodies(caplog):
from memory_system_api.api import get_service
from memory_system_api.server import app
class FakeService:
async def create_user(self, user_id: str):
return {"status": "success", "account": {"user_id": user_id}}
app.dependency_overrides[get_service] = lambda: FakeService()
try:
with caplog.at_level(logging.INFO, logger="memory_system_api.requests"):
response = TestClient(app).post("/memory-system/users", json={"user_id": "userA"})
finally:
app.dependency_overrides.clear()
assert response.status_code == 200
assert response.json() == {"status": "success", "account": {"user_id": "userA"}}
assert any("request POST /memory-system/users body={\"user_id\":\"userA\"}" in record.message for record in caplog.records)
assert any(
"response POST /memory-system/users status=200 body={\"status\":\"success\",\"account\":{\"user_id\":\"userA\"}}"
in record.message
for record in caplog.records
)