from typing import Any import pytest from unittest.mock import patch, MagicMock import ai_client @patch('ai_client.GeminiCliAdapter') def test_send_invokes_adapter_send(mock_adapter_class: Any) -> None: mock_instance = mock_adapter_class.return_value mock_instance.send.return_value = {"text": "Hello from mock adapter", "tool_calls": []} mock_instance.last_usage = {"total_tokens": 100} mock_instance.last_latency = 0.5 mock_instance.session_id = None # Force reset to ensure our mock is used with patch('ai_client._gemini_cli_adapter', mock_instance): ai_client.set_provider("gemini_cli", "gemini-2.0-flash") res = ai_client.send("context", "msg") assert res == "Hello from mock adapter" mock_instance.send.assert_called() @patch('ai_client.GeminiCliAdapter') def test_get_history_bleed_stats(mock_adapter_class: Any) -> None: mock_instance = mock_adapter_class.return_value mock_instance.send.return_value = {"text": "txt", "tool_calls": []} mock_instance.last_usage = {"input_tokens": 1500} mock_instance.last_latency = 0.5 mock_instance.session_id = "sess" with patch('ai_client._gemini_cli_adapter', mock_instance): ai_client.set_provider("gemini_cli", "gemini-2.0-flash") # Initialize by sending a message ai_client.send("context", "msg") stats = ai_client.get_history_bleed_stats() assert stats["provider"] == "gemini_cli" assert stats["current"] == 1500