Files
KiloStar/tests/adapter/model_adapter/agent_factory_test.py
T
zhaoxi ee9bbbf676 style: 项目重构
1.项目改名为kilostar(千星)
2.后端部分进行大规模重构
3.node功能进行大规模重新设计
2026-05-11 15:29:16 +00:00

62 lines
2.3 KiB
Python

import pytest
from unittest.mock import MagicMock, patch
from kilostar.adapter.model_adapter.agent_factory import AgentFactory
from kilostar.utils.error import ModelNotExistError
def test_create_agent_success_real():
mock_provider = MagicMock()
mock_provider.provider_type = "openai"
mock_provider.provider_models = ["gpt-4"]
mock_provider.provider_apikey = "key"
mock_provider.provider_url = "url"
with patch("kilostar.adapter.model_adapter.agent_factory.Agent") as mock_agent_cls:
with patch(
"kilostar.adapter.model_adapter.agent_factory.OpenAIChatModel"
) as mock_model_cls:
with patch(
"kilostar.adapter.model_adapter.agent_factory.OpenAIProvider"
) as mock_provider_cls:
factory = AgentFactory()
agent = factory.create_agent(
provider=mock_provider,
model_id="gpt-4",
output_type=str,
system_prompt="You are an AI",
deps_type=dict,
agent_name="myagent",
)
mock_provider_cls.assert_called_once_with(api_key="key", base_url="url")
mock_model_cls.assert_called_once_with(
"gpt-4", provider=mock_provider_cls.return_value
)
mock_agent_cls.assert_called_once_with(
model=mock_model_cls.return_value,
name="myagent",
system_prompt="You are an AI",
output_type=str,
deps_type=dict,
tools=None,
)
assert agent == mock_agent_cls.return_value
def test_create_agent_model_not_exist():
factory = AgentFactory()
mock_provider = MagicMock()
mock_provider.provider_models = ["gpt-3"]
with pytest.raises(ModelNotExistError):
factory.create_agent(mock_provider, "gpt-4", str, "prompt", dict, "agent")
def test_create_agent_invalid_provider_type():
factory = AgentFactory()
mock_provider = MagicMock()
mock_provider.provider_type = "unknown"
mock_provider.provider_models = ["gpt-4"]
with pytest.raises(ValueError, match="不支持的协议类型: unknown"):
factory.create_agent(mock_provider, "gpt-4", str, "prompt", dict, "agent")