| from types import SimpleNamespace |
| from unittest.mock import MagicMock, patch |
|
|
|
|
| def test_run_task_kimi_omits_temperature(): |
| """Kimi models should NOT have client-side temperature overrides. |
| |
| The Kimi gateway selects the correct temperature server-side. |
| """ |
| with patch("openai.OpenAI") as mock_openai: |
| client = MagicMock() |
| client.chat.completions.create.return_value = SimpleNamespace( |
| choices=[SimpleNamespace(message=SimpleNamespace(content="done", tool_calls=[]))] |
| ) |
| mock_openai.return_value = client |
|
|
| from mini_swe_runner import MiniSWERunner |
|
|
| runner = MiniSWERunner( |
| model="kimi-for-coding", |
| base_url="https://api.kimi.com/coding/v1", |
| api_key="test-key", |
| env_type="local", |
| max_iterations=1, |
| ) |
| runner._create_env = MagicMock() |
| runner._cleanup_env = MagicMock() |
|
|
| result = runner.run_task("2+2") |
|
|
| assert result["completed"] is True |
| assert "temperature" not in client.chat.completions.create.call_args.kwargs |
|
|
|
|
| def test_run_task_public_moonshot_kimi_k2_5_omits_temperature(): |
| """kimi-k2.5 on the public Moonshot API should not get a forced temperature.""" |
| with patch("openai.OpenAI") as mock_openai: |
| client = MagicMock() |
| client.base_url = "https://api.moonshot.ai/v1" |
| client.chat.completions.create.return_value = SimpleNamespace( |
| choices=[SimpleNamespace(message=SimpleNamespace(content="done", tool_calls=[]))] |
| ) |
| mock_openai.return_value = client |
|
|
| from mini_swe_runner import MiniSWERunner |
|
|
| runner = MiniSWERunner( |
| model="kimi-k2.5", |
| base_url="https://api.moonshot.ai/v1", |
| api_key="test-key", |
| env_type="local", |
| max_iterations=1, |
| ) |
| runner._create_env = MagicMock() |
| runner._cleanup_env = MagicMock() |
|
|
| result = runner.run_task("2+2") |
|
|
| assert result["completed"] is True |
| assert "temperature" not in client.chat.completions.create.call_args.kwargs |
|
|