47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
"""
|
|
ANTI-SIMPLIFICATION: These tests verify the infrastructure of the user action simulator.
|
|
They MUST NOT be simplified. They ensure that the simulator correctly interacts with the
|
|
ApiHookClient to mimic real user behavior, which is critical for regression detection.
|
|
"""
|
|
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_base import BaseSimulation
|
|
|
|
def test_base_simulation_init() -> None:
|
|
"""
|
|
Verifies that the BaseSimulation initializes the ApiHookClient correctly.
|
|
"""
|
|
with patch('simulation.sim_base.ApiHookClient') as mock_client_class:
|
|
mock_client = MagicMock()
|
|
mock_client_class.return_value = mock_client
|
|
sim = BaseSimulation()
|
|
# ANTI-SIMPLIFICATION: Ensure the client is stored
|
|
assert sim.client == mock_client
|
|
assert sim.sim is not None
|
|
|
|
def test_base_simulation_setup() -> None:
|
|
"""
|
|
Verifies that the setup routine correctly resets the GUI state
|
|
and initializes a clean temporary project for simulation.
|
|
"""
|
|
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")
|
|
|
|
# ANTI-SIMPLIFICATION: Verify exact sequence of setup calls
|
|
mock_client.wait_for_server.assert_called()
|
|
mock_client.click.assert_any_call("btn_reset")
|
|
mock_sim.setup_new_project.assert_called()
|
|
from pathlib import Path
|
|
assert Path(sim.project_path).as_posix().endswith("tests/artifacts/temp_testsim.toml")
|