| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import pytest
- from httpx import AsyncClient, ASGITransport
- from app.main import app
- @pytest.mark.asyncio
- async def test_health_check():
- transport = ASGITransport(app=app)
- async with AsyncClient(transport=transport, base_url="http://test") as client:
- resp = await client.get("/health")
- assert resp.status_code == 200
- assert resp.json() == {"status": "ok"}
- @pytest.mark.asyncio
- async def test_recommend_empty_tags():
- """空标签应返回空列表"""
- transport = ASGITransport(app=app)
- async with AsyncClient(transport=transport, base_url="http://test") as client:
- resp = await client.post("/api/v1/recommend", json={
- "user_id": 1,
- "tags": [],
- "query": "推荐一些适合孩子的活动",
- "limit": 3,
- })
- assert resp.status_code == 200
- data = resp.json()
- assert "items" in data
- @pytest.mark.asyncio
- async def test_recommend_with_tags():
- """带标签应返回推荐结果"""
- transport = ASGITransport(app=app)
- async with AsyncClient(transport=transport, base_url="http://test") as client:
- resp = await client.post("/api/v1/recommend", json={
- "user_id": 1,
- "tags": ["益生菌", "肠胃"],
- "limit": 3,
- })
- assert resp.status_code == 200
- data = resp.json()
- assert "items" in data
- assert "source" in data
|