mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-20 20:35:00 +00:00
feat: add unit tests for Python scripting API
This commit is contained in:
parent
f7d0f0c604
commit
a480b90217
1 changed files with 53 additions and 0 deletions
|
@ -0,0 +1,53 @@
|
|||
import unittest
|
||||
from unittest.mock import patch, MagicMock
|
||||
from aider.coders import Coder
|
||||
from aider.models import Model
|
||||
from aider.io import InputOutput
|
||||
|
||||
class TestScriptingAPI(unittest.TestCase):
|
||||
|
||||
@patch('aider.coders.Coder.create')
|
||||
@patch('aider.models.Model')
|
||||
def test_basic_scripting(self, mock_model, mock_coder_create):
|
||||
# Setup
|
||||
mock_coder = MagicMock()
|
||||
mock_coder_create.return_value = mock_coder
|
||||
|
||||
# Test script
|
||||
fnames = ["greeting.py"]
|
||||
model = Model("gpt-4-turbo")
|
||||
coder = Coder.create(main_model=model, fnames=fnames)
|
||||
|
||||
coder.run("make a script that prints hello world")
|
||||
coder.run("make it say goodbye")
|
||||
|
||||
# Assertions
|
||||
mock_model.assert_called_once_with("gpt-4-turbo")
|
||||
mock_coder_create.assert_called_once_with(main_model=model, fnames=fnames)
|
||||
self.assertEqual(mock_coder.run.call_count, 2)
|
||||
mock_coder.run.assert_any_call("make a script that prints hello world")
|
||||
mock_coder.run.assert_any_call("make it say goodbye")
|
||||
|
||||
@patch('aider.coders.Coder.create')
|
||||
@patch('aider.models.Model')
|
||||
def test_scripting_with_io(self, mock_model, mock_coder_create):
|
||||
# Setup
|
||||
mock_coder = MagicMock()
|
||||
mock_coder_create.return_value = mock_coder
|
||||
|
||||
# Test script
|
||||
fnames = ["greeting.py"]
|
||||
model = Model("gpt-4-turbo")
|
||||
io = InputOutput(yes=True)
|
||||
coder = Coder.create(main_model=model, fnames=fnames, io=io)
|
||||
|
||||
coder.run("add a new function")
|
||||
|
||||
# Assertions
|
||||
mock_model.assert_called_once_with("gpt-4-turbo")
|
||||
mock_coder_create.assert_called_once_with(main_model=model, fnames=fnames, io=io)
|
||||
mock_coder.run.assert_called_once_with("add a new function")
|
||||
self.assertTrue(io.yes) # Check that 'yes' is set to True
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Add table
Add a link
Reference in a new issue