From 079b37aac5592ca543253b6c1230ef0dd4623e46 Mon Sep 17 00:00:00 2001 From: Xubin Ren Date: Tue, 12 May 2026 11:56:49 +0000 Subject: [PATCH] test(config): cover legacy model defaults without presets Co-authored-by: Cursor --- tests/agent/test_self_model_preset.py | 2 ++ tests/config/test_model_presets.py | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/tests/agent/test_self_model_preset.py b/tests/agent/test_self_model_preset.py index 7b385f20f..0f52f777b 100644 --- a/tests/agent/test_self_model_preset.py +++ b/tests/agent/test_self_model_preset.py @@ -273,6 +273,8 @@ def test_from_config_injects_default_preset(tmp_path) -> None: fake_provider = _provider("openai/gpt-4.1") with patch("nanobot.providers.factory.make_provider", return_value=fake_provider): loop = AgentLoop.from_config(config) + assert loop.model == "openai/gpt-4.1" + assert loop.model_preset is None assert "default" in loop.model_presets assert loop.model_presets["default"].model == "openai/gpt-4.1" diff --git a/tests/config/test_model_presets.py b/tests/config/test_model_presets.py index 498597b88..046c5b04d 100644 --- a/tests/config/test_model_presets.py +++ b/tests/config/test_model_presets.py @@ -12,6 +12,31 @@ def test_resolve_preset_returns_defaults_when_no_preset() -> None: assert resolved.reasoning_effort == config.agents.defaults.reasoning_effort +def test_legacy_defaults_config_without_presets_still_resolves() -> None: + config = Config.model_validate({ + "agents": { + "defaults": { + "model": "openai/gpt-4.1", + "provider": "openai", + "maxTokens": 4096, + "contextWindowTokens": 128_000, + "temperature": 0.2, + "reasoningEffort": "low", + } + } + }) + + resolved = config.resolve_preset() + assert config.agents.defaults.model_preset is None + assert config.model_presets == {} + assert resolved.model == "openai/gpt-4.1" + assert resolved.provider == "openai" + assert resolved.max_tokens == 4096 + assert resolved.context_window_tokens == 128_000 + assert resolved.temperature == 0.2 + assert resolved.reasoning_effort == "low" + + def test_resolve_preset_returns_active_preset() -> None: config = Config.model_validate({ "model_presets": {