42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
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_ai_settings import AISettingsSimulation
|
|
|
|
def test_ai_settings_simulation_run():
|
|
mock_client = MagicMock()
|
|
mock_client.wait_for_server.return_value = True
|
|
|
|
mock_client.get_value.side_effect = lambda key: {
|
|
"current_provider": "gemini",
|
|
"current_model": "gemini-2.5-flash-lite"
|
|
}.get(key)
|
|
|
|
with patch('simulation.sim_base.WorkflowSimulator') as mock_sim_class:
|
|
mock_sim = MagicMock()
|
|
mock_sim_class.return_value = mock_sim
|
|
|
|
sim = AISettingsSimulation(mock_client)
|
|
|
|
# Override the side effect after initial setup if needed or just let it return the same for simplicity
|
|
# Actually, let's use a side effect that updates
|
|
vals = {"current_provider": "gemini", "current_model": "gemini-2.5-flash-lite"}
|
|
def side_effect(key):
|
|
return vals.get(key)
|
|
def set_side_effect(key, val):
|
|
vals[key] = val
|
|
|
|
mock_client.get_value.side_effect = side_effect
|
|
mock_client.set_value.side_effect = set_side_effect
|
|
|
|
sim.run()
|
|
|
|
# Verify calls
|
|
mock_client.set_value.assert_any_call("current_model", "gemini-1.5-flash")
|
|
mock_client.set_value.assert_any_call("current_model", "gemini-2.5-flash-lite")
|