aider/tests/test_udiff.py
2023-12-31 09:54:01 -08:00

73 lines
1.5 KiB
Python

import unittest
from aider.coders.udiff_coder import find_diffs
from aider.dump import dump # noqa: F401
class TestUnifiedDiffCoder(unittest.TestCase):
def test_find_diffs_single_hunk(self):
# Test find_diffs with a single hunk
content = """
Some text...
```diff
--- file.txt
+++ file.txt
@@ ... @@
-Original
+Modified
```
"""
edits = find_diffs(content)
dump(edits)
self.assertEqual(len(edits), 1)
edit = edits[0]
self.assertEqual(edit[0], "file.txt")
self.assertEqual(edit[1], ["-Original\n", "+Modified\n"])
def test_find_diffs_dev_null(self):
# Test find_diffs with a single hunk
content = """
Some text...
```diff
--- /dev/null
+++ file.txt
@@ ... @@
-Original
+Modified
```
"""
edits = find_diffs(content)
dump(edits)
self.assertEqual(len(edits), 1)
edit = edits[0]
self.assertEqual(edit[0], "file.txt")
self.assertEqual(edit[1], ["-Original\n", "+Modified\n"])
def test_find_diffs_dirname_with_spaces(self):
# Test find_diffs with a single hunk
content = """
Some text...
```diff
--- dir name with spaces/file.txt
+++ dir name with spaces/file.txt
@@ ... @@
-Original
+Modified
```
"""
edits = find_diffs(content)
dump(edits)
self.assertEqual(len(edits), 1)
edit = edits[0]
self.assertEqual(edit[0], "dir name with spaces/file.txt")
self.assertEqual(edit[1], ["-Original\n", "+Modified\n"])
if __name__ == "__main__":
unittest.main()