Files
voidea/tests/unit/agents/test_observer_agent.py
T

71 lines
2.0 KiB
Python

"""Tests for ObserverAgent."""
import pytest
from app.agents.observer_agent import ObserverAgent
@pytest.fixture
def observer_agent():
return ObserverAgent(session=None)
@pytest.mark.asyncio
async def test_observer_agent_initialization(observer_agent):
"""Test ObserverAgent initializes correctly."""
assert observer_agent.name == "observer_agent"
assert observer_agent.version == "1.0.0"
@pytest.mark.asyncio
async def test_observer_agent_health_check(observer_agent):
"""Test ObserverAgent health check."""
result = await observer_agent.health_check()
assert result is True
@pytest.mark.asyncio
async def test_observer_agent_run_without_session(observer_agent):
"""Test ObserverAgent run without session."""
result = await observer_agent.run()
assert result.success is False
@pytest.mark.asyncio
async def test_observer_agent_collect_disabled(observer_agent):
"""Test ObserverAgent collect when disabled."""
context = {
"action": "collect",
"metric_name": "test_metric",
"metric_value": 1.0,
}
result = await observer_agent.run(context)
assert result.success
assert result.data.get("skipped") or result.data.get("enabled") is False
@pytest.mark.asyncio
async def test_observer_agent_status(observer_agent):
"""Test ObserverAgent status."""
await observer_agent.set_running("observation")
assert observer_agent.status.value == "running"
await observer_agent.set_idle()
assert observer_agent.status.value == "idle"
@pytest.mark.asyncio
async def test_observer_agent_metrics(observer_agent):
"""Test ObserverAgent metrics."""
metrics = await observer_agent.get_metrics()
assert "agent_id" in metrics
assert "enabled" in metrics
assert "status" in metrics
@pytest.mark.asyncio
async def test_observer_agent_report_without_session(observer_agent):
"""Test ObserverAgent report without session."""
context = {"action": "report", "period": "daily"}
result = await observer_agent.run(context)
assert result.success is False