43 lines
989 B
Python
43 lines
989 B
Python
"""Tests for FastAPI endpoints."""
|
|
|
|
import pytest
|
|
from fastapi.testclient import TestClient
|
|
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
from app.api.main import app
|
|
from app.db import Base, get_db
|
|
|
|
|
|
def get_test_db():
|
|
engine = create_engine("sqlite:///:memory:")
|
|
Base.metadata.create_all(bind=engine)
|
|
Session = sessionmaker(bind=engine)
|
|
db = Session()
|
|
try:
|
|
yield db
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
app.dependency_overrides[get_db] = get_test_db
|
|
client = TestClient(app)
|
|
|
|
|
|
def test_health():
|
|
response = client.get("/health")
|
|
assert response.status_code == 200
|
|
assert response.json()["status"] == "ok"
|
|
|
|
|
|
def test_list_samples_empty():
|
|
response = client.get("/api/datasets/samples")
|
|
assert response.status_code == 200
|
|
assert response.json() == []
|
|
|
|
|
|
def test_list_models():
|
|
response = client.get("/api/models")
|
|
assert response.status_code == 200
|
|
assert "deepseek" in response.json()["models"]
|