ddgs / tests /test_api.py
dromerosm's picture
Restructure project for public HF deployment
2aa3e66
from fastapi.testclient import TestClient
from ddgs_api.api import create_app
def test_health_endpoint_returns_ok(monkeypatch):
monkeypatch.setenv("API_BEARER_TOKEN", "secret-token")
client = TestClient(create_app())
response = client.get("/health")
assert response.status_code == 200
assert response.json() == {"status": "ok"}
def test_search_requires_authorization_header(monkeypatch):
monkeypatch.setenv("API_BEARER_TOKEN", "secret-token")
client = TestClient(create_app())
response = client.post("/search", json={"query": "openai"})
assert response.status_code == 401
assert response.json() == {"detail": "Unauthorized"}
def test_search_returns_results(monkeypatch):
monkeypatch.setenv("API_BEARER_TOKEN", "secret-token")
monkeypatch.setenv("DDGS_REGION", "wt-wt")
captured = {}
def fake_search(query, **kwargs):
captured["query"] = query
captured["kwargs"] = kwargs
return [{"title": "Result", "href": "https://example.com", "markdown": "content"}]
monkeypatch.setattr("ddgs_api.api.ddgs_search", fake_search)
client = TestClient(create_app())
response = client.post(
"/search",
headers={"Authorization": "Bearer secret-token"},
json={"query": "openai", "max_results": 1},
)
assert response.status_code == 200
payload = response.json()
assert payload["query"] == "openai"
assert payload["count"] == 1
assert payload["results"][0]["title"] == "Result"
assert captured["query"] == "openai"
assert captured["kwargs"]["region"] == "wt-wt"
assert captured["kwargs"]["max_results"] == 1