import pytest 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__), ".."))) from simulation.sim_tools import ToolsSimulation def test_tools_simulation_run(): 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 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.")