- Replace PostgreSQL AsyncPostgresSaver with MemorySaver in test fixtures - Create test_app fixture with test_lifespan using in-memory dependencies - Mock LLM model to avoid requiring API keys during tests - Update test_api.py to use test_app fixture instead of production app - Fix test_root endpoint URL to match root_path configuration - All API tests now pass without requiring external services (0.06s vs 30s+ timeout) This change allows tests to run in isolation without PostgreSQL or API keys, making them faster and more reliable for CI/CD and local development.
31 lines
642 B
Python
31 lines
642 B
Python
import pytest
|
|
from fastapi.testclient import TestClient
|
|
|
|
|
|
@pytest.fixture
|
|
def client(test_app):
|
|
"""Create a test client using the test app with in-memory dependencies."""
|
|
with TestClient(test_app) as client:
|
|
yield client
|
|
|
|
|
|
def test_root(client):
|
|
response = client.get("/agent/api")
|
|
|
|
assert response.status_code == 200
|
|
|
|
|
|
def test_health(client):
|
|
response = client.get("/health")
|
|
|
|
assert response.status_code == 200
|
|
|
|
|
|
def test_chat(client):
|
|
response = client.post(
|
|
"/chat", json={"messages": "Hello, how are you?"}
|
|
)
|
|
|
|
assert response.status_code == 200
|
|
assert response.json() is not None
|