From 099b47386af772e134fe3cd7a23122b078dd6868 Mon Sep 17 00:00:00 2001 From: carlitogwapito <20962552+carlitogwapito@users.noreply.github.com> Date: Fri, 16 Oct 2026 20:07:13 -0600 Subject: [PATCH] test: document rename-only Git path normalization --- tests/test_rename_only.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/test_rename_only.py diff --git a/tests/test_rename_only.py b/tests/test_rename_only.py new file mode 100644 index 0000000..d9a69f5 --- /dev/null +++ b/tests/test_rename_only.py @@ -0,0 +1,37 @@ +import unittest + +from src import whatthepatch as wtp + + +class TestRenameOnlyPaths(unittest.TestCase): + def _check_rename_paths(self, old_path, new_path): + text = ( + "diff --git a/{old} b/{new}\n" + "similarity index 100%\n" + "rename from {old}\n" + "rename to {new}\n" + ).format(old=old_path, new=new_path) + diffs = list(wtp.parse_patch(text)) + self.assertEqual(len(diffs), 1) + diff = diffs[0] + self.assertIsNone(diff.changes) + self.assertEqual( + (diff.header.old_path, diff.header.new_path), (old_path, new_path) + ) + + @unittest.expectedFailure + def test_rename_only_removes_git_prefixes(self): + self._check_rename_paths("before.txt", "after.txt") + + @unittest.expectedFailure + def test_rename_only_preserves_real_a_and_b_directories(self): + self._check_rename_paths("a/before.txt", "b/after.txt") + + def test_unified_paths_without_git_header_keep_a_and_b_directories(self): + text = "--- a/a/before.txt\n+++ b/b/after.txt\n@@ -1 +1 @@\n-before\n+after\n" + diffs = list(wtp.parse_patch(text)) + self.assertEqual(len(diffs), 1) + self.assertEqual( + (diffs[0].header.old_path, diffs[0].header.new_path), + ("a/before.txt", "b/after.txt"), + )