Spaces:
Sleeping
Sleeping
File size: 1,111 Bytes
0d683e2 fa85955 0d683e2 7e21075 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
"""
Integration tests for API endpoints.
"""
import pytest
from unittest.mock import patch
from starlette.testclient import TestClient
from app.main import app
from tests.test_services import StubAsyncClient, StubAsyncResponse
client = TestClient(app)
@pytest.mark.integration
def test_summarize_endpoint_success(sample_text, mock_ollama_response):
"""Test successful summarization via API endpoint."""
stub_response = StubAsyncResponse(json_data=mock_ollama_response)
with patch('httpx.AsyncClient', return_value=StubAsyncClient(post_result=stub_response)):
resp = client.post(
"/api/v1/summarize/",
json={"text": sample_text, "max_tokens": 128}
)
assert resp.status_code == 200
data = resp.json()
assert data["summary"] == mock_ollama_response["response"]
assert data["model"]
@pytest.mark.integration
def test_summarize_endpoint_validation_error():
"""Test validation error for empty text."""
resp = client.post(
"/api/v1/summarize/",
json={"text": ""}
)
assert resp.status_code == 422 |