-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_main.py
More file actions
33 lines (23 loc) · 973 Bytes
/
test_main.py
File metadata and controls
33 lines (23 loc) · 973 Bytes
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
from unittest.mock import patch
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
mock_openai_response = [{"choices": [{"delta": {"content": "Mocked response"}}]}]
def test_get_homepage():
response = client.get("/")
assert response.status_code == 200
assert "<h1>WebSocket Chat</h1>" in response.text
@patch("openai.ChatCompletion.create")
def test_query_endpoint(mock_openai):
mock_openai.return_value = mock_openai_response
response = client.post("/query", json={"text": "Hello"})
assert response.status_code == 200
response_content = response.content
assert len(response_content) > 0
@patch("openai.ChatCompletion.create")
def test_websocket_endpoint(mock_openai):
mock_openai.return_value = mock_openai_response
with client.websocket_connect("/ws") as websocket:
websocket.send_text("Hello")
data = websocket.receive_text()
assert "Mocked response" in data