from unittest.mock import MagicMock, patch import pytest from src import ai_client @pytest.fixture(autouse=True) def _reset_grok_state(): if hasattr(ai_client, '_grok_client'): ai_client._grok_client = None if hasattr(ai_client, '_grok_history'): ai_client._grok_history = [] yield def test_send_grok_uses_xai_endpoint(monkeypatch: pytest.MonkeyPatch) -> None: ai_client.set_provider("grok", "grok-2") mock_client = MagicMock() mock_client.chat.completions.create.return_value = MagicMock( choices=[MagicMock(message=MagicMock(content="hi from grok", tool_calls=[]))], usage=MagicMock(prompt_tokens=10, completion_tokens=5), ) with patch("src.ai_client._ensure_grok_client", return_value=mock_client): result = ai_client._send_grok("system", "user", ".", None, "", False, None, None, None) assert result == "hi from grok" assert mock_client.chat.completions.create.called def test_grok_2_vision_supports_image() -> None: from src.vendor_capabilities import get_capabilities caps = get_capabilities("grok", "grok-2-vision") assert caps.vision is True