209ba45477
Removes the deprecated `workflow_template` concept entirely across both backend API routers, internal logic handling within the `supervisory_node` and `consciousness_node`, and front-end components. Enables `consciousness_node` to work autonomously. Also refactors core package structure to enforce the "one python package, one Ray Actor" architectural rule. `GlobalWorkflowManager`, `WorkflowRunningEngine`, `PostgresDatabase`, and `WorkerCluster` have been moved to their own top-level decoupled package directories with properly exported `__init__.py` modules. Test suites have been relocated and import paths updated across the system. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: zhaoxi826 <198742034+zhaoxi826@users.noreply.github.com>
62 lines
2.3 KiB
Python
62 lines
2.3 KiB
Python
import pytest
|
|
from unittest.mock import MagicMock, patch
|
|
from pretor.adapter.model_adapter.agent_factory import AgentFactory
|
|
from pretor.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("pretor.adapter.model_adapter.agent_factory.Agent") as mock_agent_cls:
|
|
with patch(
|
|
"pretor.adapter.model_adapter.agent_factory.OpenAIChatModel"
|
|
) as mock_model_cls:
|
|
with patch(
|
|
"pretor.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")
|