"""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