47 lines
1.0 KiB
Python
47 lines
1.0 KiB
Python
from ai_reviewer.diff import chunk_files, parse_diff
|
|
|
|
|
|
def test_chunking_splits_on_hunks_when_large():
|
|
diff_text = """
|
|
diff --git a/app.py b/app.py
|
|
index 0000000..1111111 100644
|
|
--- a/app.py
|
|
+++ b/app.py
|
|
@@ -1,2 +1,2 @@
|
|
-print('old')
|
|
+print('new')
|
|
@@ -10,2 +10,2 @@
|
|
-x = 1
|
|
+x = 2
|
|
""".strip()
|
|
|
|
files = parse_diff(diff_text)
|
|
chunks = chunk_files(files, max_lines=7)
|
|
|
|
assert len(chunks) == 2
|
|
assert all(chunk.path == "app.py" for chunk in chunks)
|
|
assert all(len(chunk.hunks) == 1 for chunk in chunks)
|
|
|
|
|
|
def test_chunking_preserves_file_boundaries():
|
|
diff_text = """
|
|
diff --git a/a.txt b/a.txt
|
|
--- a/a.txt
|
|
+++ b/a.txt
|
|
@@ -1 +1 @@
|
|
-a
|
|
+b
|
|
diff --git a/b.txt b/b.txt
|
|
--- a/b.txt
|
|
+++ b/b.txt
|
|
@@ -1 +1 @@
|
|
-c
|
|
+d
|
|
""".strip()
|
|
|
|
files = parse_diff(diff_text)
|
|
chunks = chunk_files(files, max_lines=50)
|
|
|
|
assert {chunk.path for chunk in chunks} == {"a.txt", "b.txt"}
|
|
assert all(len(chunk.hunks) == 1 for chunk in chunks)
|