39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
import pytest
|
|
|
|
from app.core.contracts import AgentDefinition, CoreResult, ResolvedAgentConfig
|
|
from app.service.agent.base import BaseAgent
|
|
from app.service.agent.factory import AgentFactory
|
|
from app.service.agent.governance import review_output
|
|
|
|
|
|
@pytest.fixture
|
|
def governance():
|
|
class TestGovernance:
|
|
async def resolve(self, definition, context):
|
|
return ResolvedAgentConfig(config_version="test", prompt_version="test",
|
|
model_endpoint="test")
|
|
|
|
async def recall(self, context):
|
|
return ()
|
|
|
|
async def review(self, result, context, config, memories):
|
|
return review_output(result, context, config, memories)
|
|
|
|
return TestGovernance()
|
|
|
|
|
|
@pytest.fixture
|
|
def acceptance_registry(monkeypatch, governance):
|
|
"""Explicit test registration; production does not silently create business Agents."""
|
|
class TestAgent(BaseAgent):
|
|
async def handle(self, request, context):
|
|
return CoreResult(text="test result")
|
|
|
|
definition = AgentDefinition(agent_type="customer_service", version="test",
|
|
allowed_roles=("customer",), allowed_portals=("api",))
|
|
registry = AgentFactory(governance)
|
|
registry.register(definition, lambda _: TestAgent(definition))
|
|
monkeypatch.setattr("app.service.agent_run_application_service.get_agent_factory",
|
|
lambda: registry)
|
|
return registry
|