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_base import BaseSimulation def test_base_simulation_init(): with patch('simulation.sim_base.ApiHookClient') as mock_client_class: mock_client = MagicMock() mock_client_class.return_value = mock_client sim = BaseSimulation() assert sim.client == mock_client assert sim.sim is not None def test_base_simulation_setup(): mock_client = MagicMock() mock_client.wait_for_server.return_value = True with patch('simulation.sim_base.WorkflowSimulator') as mock_sim_class: mock_sim = MagicMock() mock_sim_class.return_value = mock_sim sim = BaseSimulation(mock_client) sim.setup("TestSim") mock_client.wait_for_server.assert_called() mock_client.click.assert_any_call("btn_reset") mock_sim.setup_new_project.assert_called() assert sim.project_path.endswith("temp_testsim.toml")