mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-21 04:44:59 +00:00
68 lines
2.3 KiB
Python
68 lines
2.3 KiB
Python
import unittest
|
|
from unittest.mock import patch, MagicMock
|
|
import os
|
|
|
|
from aider.models import Model, get_model_info, sanity_check_model
|
|
|
|
|
|
class TestModels(unittest.TestCase):
|
|
def test_get_model_info_nonexistent(self):
|
|
info = get_model_info("non-existent-model")
|
|
self.assertEqual(info, {})
|
|
|
|
def test_max_context_tokens(self):
|
|
model = Model("gpt-3.5-turbo")
|
|
self.assertEqual(model.info["max_input_tokens"], 16385)
|
|
|
|
model = Model("gpt-3.5-turbo-16k")
|
|
self.assertEqual(model.info["max_input_tokens"], 16385)
|
|
|
|
model = Model("gpt-3.5-turbo-1106")
|
|
self.assertEqual(model.info["max_input_tokens"], 16385)
|
|
|
|
model = Model("gpt-4")
|
|
self.assertEqual(model.info["max_input_tokens"], 8 * 1024)
|
|
|
|
model = Model("gpt-4-32k")
|
|
self.assertEqual(model.info["max_input_tokens"], 32 * 1024)
|
|
|
|
model = Model("gpt-4-0613")
|
|
self.assertEqual(model.info["max_input_tokens"], 8 * 1024)
|
|
|
|
@patch('os.environ')
|
|
def test_sanity_check_model_all_set(self, mock_environ):
|
|
mock_environ.get.return_value = "dummy_value"
|
|
mock_io = MagicMock()
|
|
model = MagicMock()
|
|
model.name = "test-model"
|
|
model.missing_keys = ["API_KEY1", "API_KEY2"]
|
|
model.keys_in_environment = True
|
|
model.info = {"some": "info"}
|
|
|
|
sanity_check_model(mock_io, model)
|
|
|
|
mock_io.tool_error.assert_called_once_with("Model test-model: Environment variables status:")
|
|
calls = mock_io.tool_error.call_args_list
|
|
self.assertIn("- API_KEY1: ✓ Set", str(calls))
|
|
self.assertIn("- API_KEY2: ✓ Set", str(calls))
|
|
|
|
@patch('os.environ')
|
|
def test_sanity_check_model_not_set(self, mock_environ):
|
|
mock_environ.get.return_value = ""
|
|
mock_io = MagicMock()
|
|
model = MagicMock()
|
|
model.name = "test-model"
|
|
model.missing_keys = ["API_KEY1", "API_KEY2"]
|
|
model.keys_in_environment = True
|
|
model.info = {"some": "info"}
|
|
|
|
sanity_check_model(mock_io, model)
|
|
|
|
mock_io.tool_error.assert_called_once_with("Model test-model: Environment variables status:")
|
|
calls = mock_io.tool_error.call_args_list
|
|
self.assertIn("- API_KEY1: ✗ Not set", str(calls))
|
|
self.assertIn("- API_KEY2: ✗ Not set", str(calls))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|