never ends
This commit is contained in:
@@ -5,46 +5,38 @@ from src.gemini_cli_adapter import GeminiCliAdapter
|
||||
from src import mcp_client
|
||||
|
||||
def test_gemini_cli_context_bleed_prevention() -> 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:
|
||||
adapter = GeminiCliAdapter()
|
||||
|
||||
mock_process = MagicMock()
|
||||
stdout_output = (
|
||||
'{"type": "message", "role": "user", "content": "Echoed user prompt"}' + "\n" +
|
||||
'{"type": "message", "role": "model", "content": "Model response"}'
|
||||
)
|
||||
mock_process.communicate.return_value = (stdout_output, '')
|
||||
mock_process.returncode = 0
|
||||
mock_popen.return_value = mock_process
|
||||
|
||||
result = adapter.send("msg")
|
||||
assert result["text"] == "Model response"
|
||||
import src.ai_client as ai_client
|
||||
ai_client._gemini_cli_adapter = None
|
||||
with patch('src.gemini_cli_adapter.subprocess.Popen') as mock_popen:
|
||||
adapter = GeminiCliAdapter()
|
||||
mock_process = MagicMock()
|
||||
stdout_output = (
|
||||
'{"type": "message", "role": "user", "content": "Echoed user prompt"}' + "\n" +
|
||||
'{"type": "message", "role": "model", "content": "Model response"}'
|
||||
)
|
||||
mock_process.communicate.return_value = (stdout_output, '')
|
||||
mock_process.returncode = 0
|
||||
mock_popen.return_value = mock_process
|
||||
result = adapter.send("msg")
|
||||
assert result["text"] == "Model response"
|
||||
|
||||
def test_gemini_cli_parameter_resilience() -> None:
|
||||
from src import mcp_client
|
||||
|
||||
with patch('src.mcp_client.read_file', return_value="content") as mock_read:
|
||||
mcp_client.dispatch("read_file", {"file_path": "aliased.txt"})
|
||||
mock_read.assert_called_once_with("aliased.txt")
|
||||
|
||||
with patch('src.mcp_client.list_directory', return_value="files") as mock_list:
|
||||
mcp_client.dispatch("list_directory", {"dir_path": "aliased_dir"})
|
||||
mock_list.assert_called_once_with("aliased_dir")
|
||||
from src import mcp_client
|
||||
with patch('src.mcp_client.read_file', return_value="content") as mock_read:
|
||||
mcp_client.dispatch("read_file", {"file_path": "aliased.txt"})
|
||||
mock_read.assert_called_once_with("aliased.txt")
|
||||
with patch('src.mcp_client.list_directory', return_value="files") as mock_list:
|
||||
mcp_client.dispatch("list_directory", {"dir_path": "aliased_dir"})
|
||||
mock_list.assert_called_once_with("aliased_dir")
|
||||
|
||||
def test_gemini_cli_loop_termination() -> 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": "Final answer", "tool_calls": []}', "")
|
||||
mock_process.returncode = 0
|
||||
mock_popen.return_value = mock_process
|
||||
|
||||
ai_client.set_provider("gemini_cli", "gemini-2.0-flash")
|
||||
|
||||
result = ai_client.send("context", "prompt")
|
||||
assert result == "Final answer"
|
||||
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": "Final answer", "tool_calls": []}', "")
|
||||
mock_process.returncode = 0
|
||||
mock_popen.return_value = mock_process
|
||||
ai_client.set_provider("gemini_cli", "gemini-2.0-flash")
|
||||
result = ai_client.send("context", "prompt")
|
||||
assert result == "Final answer"
|
||||
|
||||
Reference in New Issue
Block a user