From 9aeeaf383f64ebc82c3c8e4618516af1486b38ed Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 18 Jul 2024 16:09:38 +0100 Subject: [PATCH] Implemented a test that will trigger the bug described in issue #882. --- tests/basic/test_commands.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/basic/test_commands.py b/tests/basic/test_commands.py index 740cb147d..ed6552844 100644 --- a/tests/basic/test_commands.py +++ b/tests/basic/test_commands.py @@ -560,6 +560,36 @@ class TestCommands(TestCase): del commands del repo + def test_cmd_undo_with_newly_committed_file(self): + with GitTemporaryDirectory() as repo_dir: + repo = git.Repo(repo_dir) + io = InputOutput(pretty=False, yes=True) + coder = Coder.create(self.GPT35, None, io) + commands = Commands(io, coder) + + # Create and commit a new file + filename = "new_file.txt" + file_path = Path(repo_dir) / filename + file_path.write_text("new file content") + repo.git.add(filename) + repo.git.commit("-m", "Add new file") + + # Store the commit hash + last_commit_hash = repo.head.commit.hexsha[:7] + coder.aider_commit_hashes.add(last_commit_hash) + + # Attempt to undo the last commit + with self.assertRaises(git.exc.GitCommandError): + commands.cmd_undo("") + + # Check that the last commit is still present + self.assertEqual(last_commit_hash, repo.head.commit.hexsha[:7]) + self.assertTrue(file_path.exists()) + + del coder + del commands + del repo + def test_cmd_add_aiderignored_file(self): with GitTemporaryDirectory(): repo = git.Repo()