mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-24 06:15:00 +00:00
feat: add test for handling read-only files in cmd_add
This commit is contained in:
parent
9700bb68d9
commit
e84418f048
1 changed files with 32 additions and 0 deletions
|
@ -537,6 +537,38 @@ class TestCommands(TestCase):
|
||||||
commands.cmd_add("file.txt")
|
commands.cmd_add("file.txt")
|
||||||
self.assertEqual(coder.abs_fnames, set())
|
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):
|
def test_cmd_test_unbound_local_error(self):
|
||||||
with ChdirTemporaryDirectory():
|
with ChdirTemporaryDirectory():
|
||||||
io = InputOutput(pretty=False, yes=False)
|
io = InputOutput(pretty=False, yes=False)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue