47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
import json
|
|
from unittest.mock import patch
|
|
from langflow.api.schemas import ChatMessage
|
|
from fastapi.testclient import TestClient
|
|
|
|
|
|
def test_websocket_connection(client: TestClient):
|
|
with client.websocket_connect("/ws/test_client") as websocket:
|
|
assert websocket.scope["client"] == ["testclient", 50000]
|
|
assert websocket.scope["path"] == "/ws/test_client"
|
|
|
|
|
|
def test_chat_history(client: TestClient):
|
|
chat_history = []
|
|
|
|
# Mock the process_graph function to return a specific value
|
|
with patch("langflow.api.chat_manager.process_graph") as mock_process_graph:
|
|
mock_process_graph.return_value = ("Hello, I'm a mock response!", "")
|
|
|
|
with client.websocket_connect("/ws/test_client") as websocket:
|
|
# First message should be the history
|
|
history = websocket.receive_json()
|
|
assert json.loads(history) == [] # Empty history
|
|
# Send a message
|
|
payload = {"message": "Hello"}
|
|
websocket.send_json(json.dumps(payload))
|
|
|
|
# Receive the response from the server
|
|
response = websocket.receive_json()
|
|
assert json.loads(response) == {
|
|
"is_bot": True,
|
|
"message": None,
|
|
"intermediate_steps": "",
|
|
"type": "start",
|
|
}
|
|
# Send another message
|
|
payload = {"message": "How are you?"}
|
|
websocket.send_json(json.dumps(payload))
|
|
|
|
# Receive the response from the server
|
|
response = websocket.receive_json()
|
|
assert json.loads(response) == {
|
|
"is_bot": True,
|
|
"message": "Hello, I'm a mock response!",
|
|
"intermediate_steps": "",
|
|
"type": "end",
|
|
}
|