feat: add test for handling read-only files in cmd_add

This commit is contained in:
Paul Gauthier (aider) 2024-08-12 09:00:27 -07:00
parent 9700bb68d9
commit e84418f048

View file

@ -537,6 +537,38 @@ class TestCommands(TestCase):
commands.cmd_add("file.txt")
self.assertEqual(coder.abs_fnames, set())
def test_cmd_add_read_only_file(self):
# Initialize the Commands and InputOutput objects
io = InputOutput(pretty=False, yes=True)
from aider.coders import Coder
coder = Coder.create(self.GPT35, None, io)
commands = Commands(io, coder)
# Create a test file
test_file = Path("test_read_only.txt")
test_file.write_text("Test content")
# Add the file as read-only
commands.cmd_read(str(test_file))
# Verify it's in abs_read_only_fnames
self.assertTrue(any(os.path.samefile(str(test_file.resolve()), fname) for fname in coder.abs_read_only_fnames))
# Mock the repo to simulate a tracked file
coder.repo = mock.MagicMock()
coder.repo.is_tracked_file.return_value = True
# Try to add the read-only file
commands.cmd_add(str(test_file))
# Verify it's now in abs_fnames and not in abs_read_only_fnames
self.assertTrue(any(os.path.samefile(str(test_file.resolve()), fname) for fname in coder.abs_fnames))
self.assertFalse(any(os.path.samefile(str(test_file.resolve()), fname) for fname in coder.abs_read_only_fnames))
# Clean up
test_file.unlink()
def test_cmd_test_unbound_local_error(self):
with ChdirTemporaryDirectory():
io = InputOutput(pretty=False, yes=False)