Fix: Test Process Text

This commit is contained in:
sinergia 2024-11-07 16:58:29 -05:00
parent db895532a8
commit 379708e986

View File

@ -1,38 +1,27 @@
#!/usr/bin/env python3
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from app.server import app from app.server import app # Asegúrate de importar tu aplicación FastAPI
# Crea un cliente de prueba
client = TestClient(app) client = TestClient(app)
def test_process_text(mocker): def test_process_text():
# Configurar el texto de entrada # Define el texto de entrada
test_input = "Hola, ¿cómo estás?" input_text = {"text": "Hola, ¿cómo estás?"}
mock_response = [{
"agent": {
"messages": [{"content": "Estoy bien, ¿en qué te puedo ayudar?"}]}
}]
# Simular la función `graph.stream` usando mocker # Realiza una solicitud POST al endpoint
mock_stream = mocker.patch('app.graph.stream', return_value=mock_response) response = client.post("/process_text", json=input_text)
# Realizar la solicitud POST # Verifica que la respuesta tenga un código de estado 200
response = client.post('/process_text', json={"text": test_input})
# Comprobar que el estado de la respuesta es 200 (éxito)
assert response.status_code == 200 assert response.status_code == 200
# Verificar la respuesta JSON # Verifica que la respuesta contenga la clave 'response'
json_data = response.json() assert 'response' in response.json()
expected_response = {
'response': ["Estoy bien, ¿en qué te puedo ayudar?"]
}
assert json_data == expected_response
# Confirmar que `graph.stream` fue llamada con los parámetros correctos # Verifica que la respuesta sea una lista
mock_stream.assert_called_once_with( assert isinstance(response.json()['response'], list)
{"messages": [("user", test_input)], "is_last_step": False},
config={"configurable": { # Aquí puedes agregar más verificaciones
"thread_id": "thread-1", "recursion_limit": 50}}, # según lo que esperas en la respuesta
stream_mode="updates" # Por ejemplo, verificar que la lista no esté vacía
) assert len(response.json()['response']) > 0