diff --git a/tests/test_coder.py b/tests/test_coder.py index 6adf5b17c..e42767cec 100644 --- a/tests/test_coder.py +++ b/tests/test_coder.py @@ -62,6 +62,11 @@ class TestCoder(unittest.TestCase): self.assertTrue(coder.allowed_to_edit("repo.txt")) self.assertTrue(coder.allowed_to_edit("new.txt")) + self.assertIn("repo.txt", str(coder.abs_fnames)) + self.assertIn("new.txt", str(coder.abs_fnames)) + + self.assertFalse(coder.need_commit_before_edits) + def test_allowed_to_edit_no(self): with GitTemporaryDirectory(): repo = git.Repo() @@ -85,6 +90,33 @@ class TestCoder(unittest.TestCase): self.assertFalse(coder.allowed_to_edit("repo.txt")) self.assertFalse(coder.allowed_to_edit("new.txt")) + self.assertNotIn("repo.txt", str(coder.abs_fnames)) + self.assertNotIn("new.txt", str(coder.abs_fnames)) + + self.assertFalse(coder.need_commit_before_edits) + + def test_allowed_to_edit_dirty(self): + with GitTemporaryDirectory(): + repo = git.Repo() + + fname = Path("added.txt") + fname.touch() + repo.git.add(str(fname)) + + repo.git.commit("-m", "init") + + # say NO + io = InputOutput(yes=False) + + coder = Coder.create(models.GPT4, None, io, fnames=["added.txt"]) + + self.assertTrue(coder.allowed_to_edit("added.txt")) + self.assertFalse(coder.need_commit_before_edits) + + fname.write_text("dirty!") + self.assertTrue(coder.allowed_to_edit("added.txt")) + self.assertTrue(coder.need_commit_before_edits) + def test_get_last_modified(self): # Mock the IO object mock_io = MagicMock()