From 1cc6841bad7eb441760d66e6e14298bba28e5df1 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 12 Aug 2024 14:27:17 -0700 Subject: [PATCH] feat: add test for check_for_file_mentions with read-only file --- tests/basic/test_coder.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/basic/test_coder.py b/tests/basic/test_coder.py index 0e540035f..4befc2342 100644 --- a/tests/basic/test_coder.py +++ b/tests/basic/test_coder.py @@ -189,6 +189,30 @@ class TestCoder(unittest.TestCase): self.assertEqual(coder.abs_fnames, set([str(fname.resolve())])) + def test_check_for_file_mentions_read_only(self): + with GitTemporaryDirectory(): + io = InputOutput(pretty=False, yes=False) # Set yes=False to simulate user not confirming + coder = Coder.create(self.GPT35, None, io) + + fname = Path("readonly_file.txt") + fname.touch() + + coder.abs_read_only_fnames.add(str(fname.resolve())) + + # Mock the get_tracked_files method + mock = MagicMock() + mock.return_value = set([str(fname)]) + coder.repo.get_tracked_files = mock + + # Call the check_for_file_mentions method + result = coder.check_for_file_mentions(f"Please check {fname}!") + + # Assert that the method returns None (user not asked to add the file) + self.assertIsNone(result) + + # Assert that abs_fnames is still empty (file not added) + self.assertEqual(coder.abs_fnames, set()) + def test_check_for_subdir_mention(self): with GitTemporaryDirectory(): io = InputOutput(pretty=False, yes=True)