mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-28 16:25:00 +00:00
![]() # 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. |
||
---|---|---|
.. | ||
__init__.py | ||
test_coder.py | ||
test_commands.py | ||
test_editblock.py | ||
test_io.py | ||
test_main.py | ||
test_models.py | ||
test_repomap.py | ||
test_wholefile.py |