Files
manual_slop/tests/test_sim_tools.py

43 lines
1.6 KiB
Python

"""
ANTI-SIMPLIFICATION: These tests verify the Tool Usage simulation.
They MUST NOT be simplified. They ensure that tool execution flows are properly
simulated and verified within the GUI state.
"""
from unittest.mock import MagicMock, patch
import os
import sys
# Ensure project root is in path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src")))
from simulation.sim_tools import ToolsSimulation
def test_tools_simulation_run() -> None:
"""
Verifies that ToolsSimulation requests specific tool executions
and verifies they appear in the resulting session history.
"""
mock_client = MagicMock()
mock_client.wait_for_server.return_value = True
# Mock session entries with tool output
mock_session = {
'session': {
'entries': [
{'role': 'User', 'content': 'List files'},
{'role': 'Tool', 'content': 'aggregate.py, ai_client.py', 'tool_call_id': 'call_1'},
{'role': 'AI', 'content': 'The files are: aggregate.py, ai_client.py'}
]
}
}
mock_client.get_session.return_value = mock_session
with patch('simulation.sim_base.WorkflowSimulator') as mock_sim_class:
mock_sim = MagicMock()
mock_sim_class.return_value = mock_sim
sim = ToolsSimulation(mock_client)
sim.run()
# Verify calls
# ANTI-SIMPLIFICATION: Must assert the specific commands were tested
mock_sim.run_discussion_turn.assert_any_call("List the files in the current directory.")
mock_sim.run_discussion_turn.assert_any_call("Read the first 10 lines of aggregate.py.")