diff --git a/tests/test_main.py b/tests/test_main.py index 23591af9a..f8b891bb3 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -1,6 +1,7 @@ import os import tempfile import subprocess +import shutil from unittest import TestCase from unittest.mock import patch from aider.main import main @@ -12,70 +13,68 @@ from prompt_toolkit.output import DummyOutput class TestMain(TestCase): def setUp(self): os.environ["OPENAI_API_KEY"] = "deadbeef" + self.original_cwd = os.getcwd() + self.tempdir = tempfile.mkdtemp() + os.chdir(self.tempdir) + + def tearDown(self): + os.chdir(self.original_cwd) + shutil.rmtree(self.tempdir) def test_main_with_empty_dir_no_files_on_command(self): - with tempfile.TemporaryDirectory() as temp_dir: - os.chdir(temp_dir) - pipe_input = create_input(StringIO("")) - main([], input=pipe_input, output=DummyOutput()) - pipe_input.close() + pipe_input = create_input(StringIO("")) + main([], input=pipe_input, output=DummyOutput()) + pipe_input.close() def test_main_with_empty_dir_new_file(self): - with tempfile.TemporaryDirectory() as temp_dir: - os.chdir(temp_dir) - pipe_input = create_input(StringIO("")) - main(["foo.txt"], input=pipe_input, output=DummyOutput()) - pipe_input.close() - self.assertTrue(os.path.exists("foo.txt")) + pipe_input = create_input(StringIO("")) + main(["foo.txt"], input=pipe_input, output=DummyOutput()) + pipe_input.close() + self.assertTrue(os.path.exists("foo.txt")) def test_main_with_empty_git_dir_new_file(self): - with tempfile.TemporaryDirectory() as temp_dir: - os.chdir(temp_dir) - subprocess.run(["git", "init"], cwd=temp_dir) - subprocess.run(["git", "config", "user.email", "dummy@example.com"], cwd=temp_dir) - subprocess.run(["git", "config", "user.name", "Dummy User"], cwd=temp_dir) - pipe_input = create_input(StringIO("")) - main(["--yes", "foo.txt"], input=pipe_input, output=DummyOutput()) - pipe_input.close() - self.assertTrue(os.path.exists("foo.txt")) + subprocess.run(["git", "init"]) + subprocess.run(["git", "config", "user.email", "dummy@example.com"]) + subprocess.run(["git", "config", "user.name", "Dummy User"]) + pipe_input = create_input(StringIO("")) + main(["--yes", "foo.txt"], input=pipe_input, output=DummyOutput()) + pipe_input.close() + self.assertTrue(os.path.exists("foo.txt")) def test_main_args(self): - with tempfile.TemporaryDirectory() as temp_dir: - os.chdir(temp_dir) + with patch("aider.main.Coder") as MockCoder: + main(["--no-auto-commits"]) + _, kwargs = MockCoder.call_args + assert kwargs["auto_commits"] is False - with patch("aider.main.Coder") as MockCoder: - main(["--no-auto-commits"]) - _, kwargs = MockCoder.call_args - assert kwargs["auto_commits"] is False + with patch("aider.main.Coder") as MockCoder: + main(["--auto-commits"]) + _, kwargs = MockCoder.call_args + assert kwargs["auto_commits"] is True - with patch("aider.main.Coder") as MockCoder: - main(["--auto-commits"]) - _, kwargs = MockCoder.call_args - assert kwargs["auto_commits"] is True + with patch("aider.main.Coder") as MockCoder: + main([]) + _, kwargs = MockCoder.call_args + assert kwargs["dirty_commits"] is True + assert kwargs["auto_commits"] is True + assert kwargs["pretty"] is True - with patch("aider.main.Coder") as MockCoder: - main([]) - _, kwargs = MockCoder.call_args - assert kwargs["dirty_commits"] is True - assert kwargs["auto_commits"] is True - assert kwargs["pretty"] is True + with patch("aider.main.Coder") as MockCoder: + main(["--no-pretty"]) + _, kwargs = MockCoder.call_args + assert kwargs["pretty"] is False - with patch("aider.main.Coder") as MockCoder: - main(["--no-pretty"]) - _, kwargs = MockCoder.call_args - assert kwargs["pretty"] is False + with patch("aider.main.Coder") as MockCoder: + main(["--pretty"]) + _, kwargs = MockCoder.call_args + assert kwargs["pretty"] is True - with patch("aider.main.Coder") as MockCoder: - main(["--pretty"]) - _, kwargs = MockCoder.call_args - assert kwargs["pretty"] is True + with patch("aider.main.Coder") as MockCoder: + main(["--no-dirty-commits"]) + _, kwargs = MockCoder.call_args + assert kwargs["dirty_commits"] is False - with patch("aider.main.Coder") as MockCoder: - main(["--no-dirty-commits"]) - _, kwargs = MockCoder.call_args - assert kwargs["dirty_commits"] is False - - with patch("aider.main.Coder") as MockCoder: - main(["--dirty-commits"]) - _, kwargs = MockCoder.call_args - assert kwargs["dirty_commits"] is True + with patch("aider.main.Coder") as MockCoder: + main(["--dirty-commits"]) + _, kwargs = MockCoder.call_args + assert kwargs["dirty_commits"] is True