- 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
32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
from typing import Any
|
|
from unittest.mock import patch, MagicMock
|
|
|
|
def test_send_invokes_adapter_send() -> None:
|
|
import src.ai_client as ai_client
|
|
ai_client._gemini_cli_adapter = None
|
|
|
|
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"
|
|
|
|
def test_get_history_bleed_stats() -> None:
|
|
import src.ai_client as ai_client
|
|
ai_client._gemini_cli_adapter = None
|
|
|
|
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")
|
|
ai_client.send("context", "msg")
|
|
stats = ai_client.get_history_bleed_stats()
|
|
assert stats["provider"] == "gemini_cli"
|