"""Tests for RolloutAgent.""" import pytest from app.agents.rollout_agent import RolloutAgent @pytest.fixture def rollout_agent(): return RolloutAgent() @pytest.mark.asyncio async def test_rollout_agent_initialization(rollout_agent): """Test RolloutAgent initializes correctly.""" assert rollout_agent.name == "rollout_agent" assert rollout_agent.version == "1.0.0" assert rollout_agent._current_stage == 0 @pytest.mark.asyncio async def test_rollout_agent_health_check(rollout_agent): """Test RolloutAgent health check.""" result = await rollout_agent.health_check() assert result is True @pytest.mark.asyncio async def test_rollout_agent_get_status(rollout_agent): """Test RolloutAgent get status.""" result = await rollout_agent._get_status() assert result.success assert "current_stage" in result.data assert result.data["stage_name"] == "development" @pytest.mark.asyncio async def test_rollout_agent_promote(rollout_agent): """Test RolloutAgent promote.""" result = await rollout_agent._promote_to_next_stage() assert result.success assert result.data["stage_name"] == "3_users" @pytest.mark.asyncio async def test_rollout_agent_rollback(rollout_agent): """Test RolloutAgent rollback.""" await rollout_agent._promote_to_next_stage() result = await rollout_agent._rollback(0) assert result.success assert result.data.get("rollback_history") @pytest.mark.asyncio async def test_rollout_agent_pause_resume(rollout_agent): """Test RolloutAgent pause and resume.""" pause_result = await rollout_agent._pause_rollout() assert pause_result.success resume_result = await rollout_agent._resume_rollout() assert resume_result.success @pytest.mark.asyncio async def test_rollout_agent_health_check_metrics(rollout_agent): """Test RolloutAgent health check.""" result = await rollout_agent._check_stage_health() assert hasattr(result, "success") assert "metrics" in result.data assert "issues" in result.data @pytest.mark.asyncio async def test_rollout_agent_final_stage_cannot_promote(rollout_agent): """Test RolloutAgent cannot promote past final stage.""" rollout_agent._current_stage = 5 result = await rollout_agent._promote_to_next_stage() assert result.success is False