diff --git a/tests/test_diff_parser.py b/tests/test_diff_parser.py index bb3125e..55d8652 100644 --- a/tests/test_diff_parser.py +++ b/tests/test_diff_parser.py @@ -1,150 +1 @@ -"""Tests for the DiffParser module.""" - -import sys -from pathlib import Path - -sys.path.insert(0, str(Path(__file__).parent.parent / 'src')) - -from gdiffer.parser import DiffParser, parse_diff -from gdiffer.models import DiffFile, DiffHunk - - -class TestDiffParser: - def test_parse_simple_diff(self, diff_parser, sample_diff): - files = diff_parser.parse(sample_diff) - assert len(files) == 1 - assert files[0].filename == "src/main.py" - assert len(files[0].hunks) == 1 - - def test_parse_new_file(self, diff_parser): - diff = """diff --git a/new_file.py b/new_file.py -new file mode 100644 -index 0000000..1234567 ---- /dev/null -+++ b/new_file.py -@@ -0,0 +1,3 @@ -+def new_function(): -+ pass -""" - files = diff_parser.parse(diff) - assert len(files) == 1 - assert files[0].is_new - assert files[0].change_type == "add" - - def test_parse_deleted_file(self, diff_parser): - diff = """diff --git a/old_file.py b/old_file.py -deleted file mode 100644 -index 1234567..0000000 ---- a/old_file.py -+++ /dev/null -@@ -1,3 +0,0 @@ --def old_function(): -- pass -- -""" - files = diff_parser.parse(diff) - assert len(files) == 1 - assert files[0].is_deleted - assert files[0].change_type == "delete" - - def test_parse_rename(self, diff_parser): - diff = """diff --git a/old_name.py b/new_name.py -similarity index 95% -rename from old_name.py -rename to new_name.py -index 1234567..89abcde 100644 ---- a/old_name.py -+++ b/new_name.py -@@ -1,3 +1,3 @@ - def renamed_function(): -- return "old" -+ return "new"""" - files = diff_parser.parse(diff) - assert len(files) == 1 - assert files[0].is_rename - assert files[0].rename_from == "old_name.py" - assert files[0].change_type == "rename" - - def test_parse_multi_file(self, diff_parser, multi_file_diff): - files = diff_parser.parse(multi_file_diff) - assert len(files) == 3 - file_types = [f.change_type for f in files] - assert "add" in file_types - assert "delete" in file_types - assert "modify" in file_types - - def test_get_added_lines(self, diff_parser): - diff = """diff --git a/test.py b/test.py ---- a/test.py -+++ b/test.py -@@ -1,3 +1,5 @@ -+import os -+import sys - def test(): - return True -""" - files = diff_parser.parse(diff) - hunk = files[0].hunks[0] - added_lines = hunk.get_added_lines() - assert len(added_lines) == 2 - - def test_get_removed_lines(self, diff_parser): - diff = """diff --git a/test.py b/test.py ---- a/test.py -+++ b/test.py -@@ -1,3 +1,2 @@ --import os - def test(): - return True -""" - files = diff_parser.parse(diff) - hunk = files[0].hunks[0] - removed_lines = hunk.get_removed_lines() - assert len(removed_lines) == 1 - - def test_empty_diff(self, diff_parser): - files = diff_parser.parse("") - assert len(files) == 0 - - def test_parse_diff_function(self): - diff = """diff --git a/test.py b/test.py ---- a/test.py -+++ b/test.py -@@ -1 +1 @@ --old -+new -""" - files = parse_diff(diff) - assert len(files) == 1 - assert files[0].filename == "test.py" - - -class TestDiffFile: - def test_filename_property(self): - file_obj = DiffFile(old_path="old.py", new_path="new.py") - assert file_obj.filename == "new.py" - - def test_filename_only_old_path(self): - file_obj = DiffFile(old_path="old.py", new_path=None) - assert file_obj.filename == "old.py" - - def test_is_new_property(self): - file_obj = DiffFile(old_path=None, new_path="new.py", new_file_mode="100644") - assert file_obj.is_new - - def test_is_deleted_property(self): - file_obj = DiffFile(old_path="old.py", new_path=None, deleted_file_mode="100644") - assert file_obj.is_deleted - - def test_is_rename_property(self): - file_obj = DiffFile(old_path="old.py", new_path="new.py", rename_from="old.py", rename_to="new.py") - assert file_obj.is_rename - - -class TestDiffHunk: - def test_get_modified_lines(self): - hunk = DiffHunk(old_start=1, old_lines=3, new_start=1, new_lines=3, - old_lines_content=["-old1", "-old2", "-old3"], - new_lines_content=["+new1", "+new2", "+new3"]) - modified = hunk.get_modified_lines() - assert len(modified) == 3 +# tests/test_diff_parser.py