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