You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.3 KiB
41 lines
1.3 KiB
# test_main.py
|
|
import subprocess
|
|
import uuid
|
|
import pytest
|
|
from source.server.i import configure_interpreter
|
|
from unittest.mock import Mock
|
|
from fastapi.testclient import TestClient
|
|
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
def test_ping(client):
|
|
response = client.get("/ping")
|
|
assert response.status_code == 200
|
|
assert response.text == "pong"
|
|
|
|
|
|
def test_interpreter_chat(mock_interpreter):
|
|
# Set up a sample conversation
|
|
messages = [
|
|
{"role": "user", "type": "message", "content": "Hello."},
|
|
{"role": "assistant", "type": "message", "content": "Hi there!"},
|
|
# Add more messages as needed
|
|
]
|
|
|
|
# Configure the mock interpreter with the sample conversation
|
|
mock_interpreter.messages = messages
|
|
|
|
# Simulate additional user input
|
|
user_input = {"role": "user", "type": "message", "content": "How are you?"}
|
|
mock_interpreter.chat([user_input])
|
|
|
|
# Ensure the interpreter processed the user input
|
|
assert len(mock_interpreter.messages) == len(messages)
|
|
assert mock_interpreter.messages[-1]["role"] == "assistant"
|
|
assert "don't have feelings" in mock_interpreter.messages[-1]["content"]
|
|
|
|
def test_interpreter_configuration(mock_interpreter):
|
|
# Test interpreter configuration
|
|
interpreter = configure_interpreter(mock_interpreter)
|
|
assert interpreter is not None |