"""Minimal tests for marketing_intelligence.agent_workflows.monitor_direct.""" from unittest.mock import MagicMock from marketing_intelligence.agent_workflows.monitor_direct import ( _BROWSER_ROTATION, _MAX_RETRIES, _block_signal, ) class TestBlockSignal: def test_returns_none_when_no_signals_attr(self) -> None: result = MagicMock(spec=[]) # no signals attribute assert _block_signal(result) == "none" def test_returns_none_when_signals_is_none(self) -> None: result = MagicMock() result.signals = None assert _block_signal(result) == "none" def test_returns_signal_from_signals(self) -> None: signals = MagicMock() signals.block_signal = "captcha" result = MagicMock() result.signals = signals assert _block_signal(result) == "captcha" def test_returns_none_when_block_signal_is_none(self) -> None: signals = MagicMock() signals.block_signal = None result = MagicMock() result.signals = signals assert _block_signal(result) == "none" def test_returns_soft_block(self) -> None: signals = MagicMock() signals.block_signal = "soft" result = MagicMock() result.signals = signals assert _block_signal(result) == "soft" class TestBrowserRotation: def test_has_three_entries(self) -> None: assert len(_BROWSER_ROTATION) == 3 def test_first_is_camoufox_desktop(self) -> None: assert _BROWSER_ROTATION[0]["stealth"] == "camoufox" assert _BROWSER_ROTATION[0]["profile"] == "desktop" def test_last_is_webkit_mobile_ios(self) -> None: assert _BROWSER_ROTATION[-1]["stealth"] == "webkit" assert _BROWSER_ROTATION[-1]["profile"] == "mobile_ios" def test_all_have_stealth_and_profile_keys(self) -> None: for entry in _BROWSER_ROTATION: assert "stealth" in entry assert "profile" in entry class TestMaxRetries: def test_is_three(self) -> None: assert _MAX_RETRIES == 3