From e7f29c2dbcfd660d7ef7762bf2d62d19845007b8 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 18 Jul 2024 16:17:20 +0100 Subject: [PATCH] Added a new test case for `cmd_undo` with a newly committed file. --- tests/basic/test_commands.py | 38 ++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/tests/basic/test_commands.py b/tests/basic/test_commands.py index ed6552844..fd091de48 100644 --- a/tests/basic/test_commands.py +++ b/tests/basic/test_commands.py @@ -567,6 +567,13 @@ class TestCommands(TestCase): coder = Coder.create(self.GPT35, None, io) commands = Commands(io, coder) + # Put in a random first commit + filename = "first_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") + # Create and commit a new file filename = "new_file.txt" file_path = Path(repo_dir) / filename @@ -579,8 +586,35 @@ class TestCommands(TestCase): coder.aider_commit_hashes.add(last_commit_hash) # Attempt to undo the last commit - with self.assertRaises(git.exc.GitCommandError): - commands.cmd_undo("") + commands.cmd_undo("") + + # Check that the last commit was undone + self.assertNotEqual(last_commit_hash, repo.head.commit.hexsha[:7]) + + del coder + del commands + del repo + + def test_cmd_undo_on_first_commit(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 + commands.cmd_undo("") # Check that the last commit is still present self.assertEqual(last_commit_hash, repo.head.commit.hexsha[:7])