test_basic.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. """基本功能测试"""
  2. import pytest
  3. import asyncio
  4. from unittest.mock import Mock, patch
  5. from src.models.schemas import ChatRequest, QuestionType
  6. from src.agents.orchestrator import QuestionOrchestratorAgent
  7. from src.agents.expert_agents import ExpertAgentFactory
  8. class TestBasicFunctionality:
  9. """基本功能测试类"""
  10. def test_question_types_enum(self):
  11. """测试问题类型枚举"""
  12. assert QuestionType.PAGE_NAVIGATION == "page_navigation"
  13. assert QuestionType.SYSTEM_GUIDE == "system_guide"
  14. assert QuestionType.PRODUCTION_QA == "production_qa"
  15. assert QuestionType.CHAT == "chat"
  16. def test_chat_request_model(self):
  17. """测试聊天请求模型"""
  18. request = ChatRequest(message="测试消息")
  19. assert request.message == "测试消息"
  20. assert request.session_id is None
  21. assert request.context == {}
  22. def test_expert_agent_factory(self):
  23. """测试专家Agent工厂"""
  24. mock_client = Mock()
  25. # 测试每种问题类型都能创建对应的Agent
  26. for question_type in QuestionType:
  27. agent = ExpertAgentFactory.create_agent(question_type, mock_client)
  28. assert agent is not None
  29. assert hasattr(agent, 'need_rag')
  30. assert hasattr(agent, 'need_tool_call')
  31. assert hasattr(agent, 'generate_response')
  32. class TestAPIModels:
  33. """API模型测试"""
  34. def test_chat_request_validation(self):
  35. """测试聊天请求验证"""
  36. # 正常请求
  37. request = ChatRequest(message="你好")
  38. assert request.message == "你好"
  39. # 带会话ID的请求
  40. request = ChatRequest(message="你好", session_id="test-session")
  41. assert request.session_id == "test-session"
  42. # 带上下文的请求
  43. request = ChatRequest(
  44. message="你好",
  45. context={"user_id": "123"}
  46. )
  47. assert request.context["user_id"] == "123"
  48. @pytest.mark.asyncio
  49. async def test_async_functionality():
  50. """测试异步功能"""
  51. # 这里可以添加异步测试
  52. pass
  53. if __name__ == "__main__":
  54. # 运行基本测试
  55. test_basic = TestBasicFunctionality()
  56. test_basic.test_question_types_enum()
  57. test_basic.test_chat_request_model()
  58. test_api = TestAPIModels()
  59. test_api.test_chat_request_validation()
  60. print("✅ 所有基本测试通过")