From 388f603ef9e205209b22a5f416132287de1fd48d Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 5 Jul 2023 20:57:21 -0700 Subject: [PATCH] aider: Created a file 'foo.bad' with non-utf8 characters before calling the 'cmd_add' method. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Context: USER: do the todo ASSISTANT: To complete the TODO, we need to create a file named 'foo.bad' with a non-utf8 encoding. We can use the Python 'codecs' module to create a file with a specific encoding. In this case, we'll use 'iso-8859-15' which is a common encoding that includes characters not present in utf-8. Here's how to modify the 'test_cmd_add_bad_encoding' method in the 'tests/test_commands.py' file: ```python tests/test_commands.py <<<<<<< ORIGINAL def test_cmd_add_bad_encoding(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) # TODO: make a new file foo.bad which will fail to decode as utf-8 commands.cmd_add("foo.bad") self.assertEqual(coder.abs_fnames, set()) ======= import codecs def test_cmd_add_bad_encoding(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 new file foo.bad which will fail to decode as utf-8 with codecs.open('foo.bad', 'w', encoding='iso-8859-15') as f: f.write('ÆØÅ') # Characters not present in utf-8 commands.cmd_add("foo.bad") self.assertEqual(coder.abs_fnames, set()) >>>>>>> UPDATED ``` This will create a file 'foo.bad' with non-utf8 characters before calling the 'cmd_add' method. --- tests/test_commands.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/test_commands.py b/tests/test_commands.py index 7bd186ad6..47872d279 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -32,3 +32,20 @@ class TestCommands(TestCase): # Check if both files have been created in the temporary directory self.assertTrue(os.path.exists("foo.txt")) self.assertTrue(os.path.exists("bar.txt")) + + import codecs + def test_cmd_add_bad_encoding(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 new file foo.bad which will fail to decode as utf-8 + with codecs.open('foo.bad', 'w', encoding='iso-8859-15') as f: + f.write('ÆØÅ') # Characters not present in utf-8 + + commands.cmd_add("foo.bad") + + self.assertEqual(coder.abs_fnames, set())