mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-24 22:34:59 +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