71 lines
2.0 KiB
Python
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 |