Spaces:
Running
Running
| """Tests for the /transformations/feed endpoint in the proxy server.""" | |
| import pytest | |
| # Skip if fastapi not available | |
| pytest.importorskip("fastapi") | |
| from httpx import ASGITransport, AsyncClient | |
| from headroom.proxy.server import create_app | |
| def app(): | |
| return create_app() | |
| async def test_transformations_feed_endpoint_returns_list(app): | |
| """The endpoint should return a list of recent transformations.""" | |
| async with AsyncClient(transport=ASGITransport(app=app), base_url="http://test") as client: | |
| response = await client.get("/transformations/feed") | |
| assert response.status_code == 200 | |
| data = response.json() | |
| assert isinstance(data, dict) | |
| assert "transformations" in data | |
| assert isinstance(data["transformations"], list) | |
| async def test_transformations_feed_returns_messages(app): | |
| """Each transformation should include request_messages and response_content.""" | |
| async with AsyncClient(transport=ASGITransport(app=app), base_url="http://test") as client: | |
| response = await client.get("/transformations/feed") | |
| data = response.json() | |
| transformations = data["transformations"] | |
| for t in transformations: | |
| assert "request_messages" in t or t.get("request_messages") is None | |
| assert "response_content" in t or t.get("response_content") is None | |
| async def test_transformations_feed_respects_limit(app): | |
| """The endpoint should respect a ?limit= query parameter.""" | |
| async with AsyncClient(transport=ASGITransport(app=app), base_url="http://test") as client: | |
| response = await client.get("/transformations/feed?limit=5") | |
| data = response.json() | |
| assert len(data["transformations"]) <= 5 | |