mirror of
https://github.com/dataforcanada/d4c-service-geo-assistant.git
synced 2026-06-13 14:31:01 +02:00
Add api test back in
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import pytest
|
||||
import pytest_asyncio
|
||||
from httpx import AsyncClient, ASGITransport
|
||||
from uuid import uuid4
|
||||
|
||||
from geo_assistant.api.app import app
|
||||
from geo_assistant.agent.graph import create_graph
|
||||
|
||||
|
||||
@pytest_asyncio.fixture
|
||||
async def initialized_app():
|
||||
"""Initialize the app's chatbot before testing"""
|
||||
# Manually initialize the chatbot as the lifespan would
|
||||
app.state.chatbot = await create_graph()
|
||||
yield app
|
||||
# Cleanup if needed
|
||||
if hasattr(app.state, "chatbot"):
|
||||
del app.state.chatbot
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_hello_world(initialized_app):
|
||||
"""Hello world test for the API"""
|
||||
async with AsyncClient(
|
||||
transport=ASGITransport(app=initialized_app), base_url="http://test"
|
||||
) as client:
|
||||
thread_id = uuid4()
|
||||
response = await client.post(
|
||||
"/chat",
|
||||
json={
|
||||
"agent_state_input": {
|
||||
"messages": [{"content": "Hello, world!", "type": "human"}],
|
||||
"place": None,
|
||||
},
|
||||
"thread_id": str(thread_id),
|
||||
},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.headers["content-type"] == "application/x-ndjson; charset=utf-8"
|
||||
|
||||
# Read the streaming response
|
||||
content = response.text
|
||||
assert content is not None
|
||||
assert len(content) > 0
|
||||
Reference in New Issue
Block a user