Travel_Assistant / tests /test_travel_assistant.py
Eliot0110's picture
feat: 添加Docker配置、依赖管理和测试框架
68e8f6c
# tests/test_travel_assistant.py
import pytest
from unittest.mock import Mock, patch
from modules.travel_assistant import TravelAssistant
class TestTravelAssistant:
@pytest.fixture
def mock_travel_assistant(self):
"""创建模拟的旅游助手"""
with patch('modules.travel_assistant.ConfigLoader') as mock_config, \
patch('modules.travel_assistant.KnowledgeBase') as mock_kb, \
patch('modules.travel_assistant.AIModel') as mock_ai:
# 设置模拟对象
mock_config.return_value.cities = {"巴黎": {"name": "巴黎", "country": "法国"}}
mock_config.return_value.personas = {"planner": {"name": "规划型"}}
assistant = TravelAssistant()
yield assistant
def test_chat_basic_flow(self, mock_travel_assistant):
"""测试基本聊天流程"""
reply, session_id, status_info, history = mock_travel_assistant.chat(
message="我想去巴黎旅游",
session_id=None,
history=[]
)
assert isinstance(reply, str)
assert len(session_id) == 8 # UUID前8位
assert isinstance(status_info, str)
assert len(history) == 1
assert history[0][0] == "我想去巴黎旅游"
def test_session_persistence(self, mock_travel_assistant):
"""测试会话持久性"""
# 第一次对话
_, session_id, _, _ = mock_travel_assistant.chat(
message="我想去巴黎",
session_id=None,
history=[]
)
# 第二次对话使用相同session_id
reply, same_session_id, _, _ = mock_travel_assistant.chat(
message="3天行程",
session_id=session_id,
history=[]
)
assert session_id == same_session_id