mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-23 05:45:00 +00:00
aider: Add a test case to reproduce the issue of trying to add a directory using the /add
command.
# Aider chat conversation: USER: add a test case to reproduce this issue: Trying to add just a directory makes the program throw the following and exit: > /add src/components Traceback (most recent call last): File "/home/palmerd/.local/bin/aider", line 8, in <module> sys.exit(main()) ^^^^^^ File "/home/palmerd/.local/lib/python3.11/site-packages/aider/main.py", line 369, in main coder.run() File "/home/palmerd/.local/lib/python3.11/site-packages/aider/coders/base_coder.py", line 382, in run new_user_message = self.run_loop() ^^^^^^^^^^^^^^^ File "/home/palmerd/.local/lib/python3.11/site-packages/aider/coders/base_coder.py", line 446, in run_loop return self.commands.run(inp) ^^^^^^^^^^^^^^^^^^^^^^ File "/home/palmerd/.local/lib/python3.11/site-packages/aider/commands.py", line 60, in run return self.do_run(matching_commands[0][1:], rest_inp) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/palmerd/.local/lib/python3.11/site-packages/aider/commands.py", line 45, in do_run return cmd_method(args) ^^^^^^^^^^^^^^^^ File "/home/palmerd/.local/lib/python3.11/site-packages/aider/commands.py", line 264, in cmd_add content = self.io.read_text(abs_file_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/palmerd/.local/lib/python3.11/site-packages/aider/io.py", line 142, in read_text with open(str(filename), "r", encoding=self.encoding) as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ IsADirectoryError: [Errno 21] Is a directory: '/home/palmerd/vue-frontend/src/components' ASSISTANT: To reproduce this issue, we need to create a test case that tries to add a directory using the `/add` command. However, the code you've provided is not designed to handle test cases. Could you please provide the test suite or the file where the test cases are written so that I can add a new test case? USER: I added these *read-write* files: tests/test_commands.py ASSISTANT: Great, we can add a test case in the `tests/test_commands.py` file. This test case will attempt to add a directory and check if the appropriate error is handled. Here is the proposed change: ```python tests/test_commands.py <<<<<<< ORIGINAL def test_cmd_add_no_match(self): # Initialize the Commands and InputOutput objects io = InputOutput(pretty=False, yes=True) from aider.coders import Coder coder = Coder.create(models.GPT35, None, io, openai_api_key="deadbeef") commands = Commands(io, coder) # Call the cmd_add method with a non-existent file pattern commands.cmd_add("*.nonexistent") # Check if no files have been added to the chat session self.assertEqual(len(coder.abs_fnames), 0) ======= def test_cmd_add_no_match(self): # Initialize the Commands and InputOutput objects io = InputOutput(pretty=False, yes=True) from aider.coders import Coder coder = Coder.create(models.GPT35, None, io, openai_api_key="deadbeef") commands = Commands(io, coder) # Call the cmd_add method with a non-existent file pattern commands.cmd_add("*.nonexistent") # Check if no files have been added to the chat session self.assertEqual(len(coder.abs_fnames), 0) def test_cmd_add_directory(self): # Initialize the Commands and InputOutput objects io = InputOutput(pretty=False, yes=True) from aider.coders import Coder coder = Coder.create(models.GPT35, None, io, openai_api_key="deadbeef") commands = Commands(io, coder) # Create a directory os.mkdir("test_dir") # Call the cmd_add method with a directory with self.assertRaises(IsADirectoryError): commands.cmd_add("test_dir") >>>>>>> UPDATED ``` This new test case `test_cmd_add_directory` creates a directory named `test_dir` and attempts to add it using the `cmd_add` method. We expect an `IsADirectoryError` to be raised in this scenario.
This commit is contained in:
parent
3857a09a70
commit
8be2f8086c
1 changed files with 15 additions and 0 deletions
|
@ -79,6 +79,21 @@ class TestCommands(TestCase):
|
||||||
# Check if no files have been added to the chat session
|
# Check if no files have been added to the chat session
|
||||||
self.assertEqual(len(coder.abs_fnames), 0)
|
self.assertEqual(len(coder.abs_fnames), 0)
|
||||||
|
|
||||||
|
def test_cmd_add_directory(self):
|
||||||
|
# Initialize the Commands and InputOutput objects
|
||||||
|
io = InputOutput(pretty=False, yes=True)
|
||||||
|
from aider.coders import Coder
|
||||||
|
|
||||||
|
coder = Coder.create(models.GPT35, None, io, openai_api_key="deadbeef")
|
||||||
|
commands = Commands(io, coder)
|
||||||
|
|
||||||
|
# Create a directory
|
||||||
|
os.mkdir("test_dir")
|
||||||
|
|
||||||
|
# Call the cmd_add method with a directory
|
||||||
|
with self.assertRaises(IsADirectoryError):
|
||||||
|
commands.cmd_add("test_dir")
|
||||||
|
|
||||||
def test_cmd_drop_with_glob_patterns(self):
|
def test_cmd_drop_with_glob_patterns(self):
|
||||||
# Initialize the Commands and InputOutput objects
|
# Initialize the Commands and InputOutput objects
|
||||||
io = InputOutput(pretty=False, yes=True)
|
io = InputOutput(pretty=False, yes=True)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue