feat: use GitTemporaryDirectory for scripting tests

This commit is contained in:
Paul Gauthier (aider) 2024-08-01 15:44:55 -03:00
parent 99ce27f151
commit a4b6dea54d

View file

@ -1,14 +1,17 @@
import unittest import unittest
from unittest.mock import patch from unittest.mock import patch
from pathlib import Path
from aider.coders import Coder from aider.coders import Coder
from aider.io import InputOutput from aider.io import InputOutput
from aider.models import Model from aider.models import Model
from aider.utils import GitTemporaryDirectory
class TestScriptingAPI(unittest.TestCase): class TestScriptingAPI(unittest.TestCase):
@patch("aider.coders.base_coder.Coder.send") @patch("aider.coders.base_coder.Coder.send")
def test_basic_scripting(self, mock_send): def test_basic_scripting(self, mock_send):
with GitTemporaryDirectory():
# Setup # Setup
def mock_send_side_effect(messages, functions=None): def mock_send_side_effect(messages, functions=None):
coder.partial_response_content = "Changes applied successfully." coder.partial_response_content = "Changes applied successfully."
@ -18,7 +21,9 @@ class TestScriptingAPI(unittest.TestCase):
mock_send.side_effect = mock_send_side_effect mock_send.side_effect = mock_send_side_effect
# Test script # Test script
fnames = ["greeting.py"] fname = Path("greeting.py")
fname.touch()
fnames = [str(fname)]
model = Model("gpt-4-turbo") model = Model("gpt-4-turbo")
coder = Coder.create(main_model=model, fnames=fnames) coder = Coder.create(main_model=model, fnames=fnames)
@ -39,6 +44,7 @@ class TestScriptingAPI(unittest.TestCase):
@patch("aider.coders.base_coder.Coder.send") @patch("aider.coders.base_coder.Coder.send")
def test_scripting_with_io(self, mock_send): def test_scripting_with_io(self, mock_send):
with GitTemporaryDirectory():
# Setup # Setup
def mock_send_side_effect(messages, functions=None): def mock_send_side_effect(messages, functions=None):
coder.partial_response_content = "New function added successfully." coder.partial_response_content = "New function added successfully."
@ -48,7 +54,9 @@ class TestScriptingAPI(unittest.TestCase):
mock_send.side_effect = mock_send_side_effect mock_send.side_effect = mock_send_side_effect
# Test script # Test script
fnames = ["greeting.py"] fname = Path("greeting.py")
fname.touch()
fnames = [str(fname)]
model = Model("gpt-4-turbo") model = Model("gpt-4-turbo")
io = InputOutput(yes=True) io = InputOutput(yes=True)
coder = Coder.create(main_model=model, fnames=fnames, io=io) coder = Coder.create(main_model=model, fnames=fnames, io=io)