35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
from typing import Any
|
|
from unittest.mock import patch
|
|
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
|