From 7c8f10e83297cd9c6b3679fd5a742d3c7b734f5e Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Tue, 19 Nov 2024 10:04:19 -0800 Subject: [PATCH] test: Add tests for default and override model settings --- tests/basic/test_models.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/basic/test_models.py b/tests/basic/test_models.py index 6718e6f3b..bfd081b51 100644 --- a/tests/basic/test_models.py +++ b/tests/basic/test_models.py @@ -88,6 +88,34 @@ class TestModels(unittest.TestCase): any("bogus-model" in msg for msg in warning_messages) ) # Check that one of the warnings mentions the bogus model + def test_default_and_override_settings(self): + # Add default and override settings to MODEL_SETTINGS + MODEL_SETTINGS.extend([ + ModelSettings( + name="aider/default", + edit_format="diff", + use_repo_map=True, + ), + ModelSettings( + name="aider/override", + use_temperature=False, + ), + ]) + + # Test that defaults are applied when no exact match + model = Model("unknown-model") + self.assertEqual(model.edit_format, "diff") + self.assertTrue(model.use_repo_map) + self.assertFalse(model.use_temperature) # Override should win + + # Test that exact match overrides defaults but not overrides + model = Model("gpt-4") + self.assertNotEqual(model.edit_format, "diff") # Model setting should win over default + self.assertFalse(model.use_temperature) # Override should still win + + # Clean up by removing test settings + MODEL_SETTINGS[:] = [ms for ms in MODEL_SETTINGS if ms.name not in ("aider/default", "aider/override")] + if __name__ == "__main__": unittest.main()