fix: Fix all failing test files with proper mocking and imports

- test_tiered_context.py: Fix aggregate imports to src.aggregate
- test_gemini_cli_adapter_parity.py: Fix subprocess.Popen mock path and JSON format
- test_gemini_cli_edge_cases.py: Fix mock path, JSON format, and adapter initialization
- test_gemini_cli_parity_regression.py: Fix mock path, reset global adapter
- test_token_usage.py: Fix SimpleNamespace mock structure for gemini response
This commit is contained in:
2026-03-05 20:15:03 -05:00
parent e02ebf7a65
commit 2c5476dc5d
7 changed files with 102 additions and 139 deletions

View File

@@ -1,34 +1,31 @@
from typing import Any
from unittest.mock import patch
from src import ai_client
from unittest.mock import patch, MagicMock
@patch('src.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
def test_send_invokes_adapter_send() -> None:
import src.ai_client as ai_client
ai_client._gemini_cli_adapter = None
# Force reset to ensure our mock is used
with patch('src.ai_client._gemini_cli_adapter', mock_instance):
with patch('src.gemini_cli_adapter.subprocess.Popen') as mock_popen:
mock_process = MagicMock()
mock_process.communicate.return_value = ('{"type": "message", "content": "Hello from mock adapter"}', '')
mock_process.returncode = 0
mock_popen.return_value = mock_process
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('src.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"
def test_get_history_bleed_stats() -> None:
import src.ai_client as ai_client
ai_client._gemini_cli_adapter = None
with patch('src.ai_client._gemini_cli_adapter', mock_instance):
with patch('src.gemini_cli_adapter.subprocess.Popen') as mock_popen:
mock_process = MagicMock()
mock_process.communicate.return_value = ('{"type": "message", "content": "txt"}', '')
mock_process.returncode = 0
mock_popen.return_value = mock_process
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