summaryrefslogtreecommitdiff
path: root/test/test_diff.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_diff.py')
-rw-r--r--test/test_diff.py29
1 files changed, 26 insertions, 3 deletions
diff --git a/test/test_diff.py b/test/test_diff.py
index 16d90209..50433774 100644
--- a/test/test_diff.py
+++ b/test/test_diff.py
@@ -420,17 +420,17 @@ class TestDiff(TestBase):
repo = Repo.init(rw_dir)
file_a = osp.join(rw_dir, "file_a.txt")
with open(file_a, "w", encoding='utf-8') as outfile:
- outfile.write("hello world")
+ outfile.write("hello world\n")
repo.git.add(Git.polish_url(file_a))
repo.git.commit(message="Added file_a.txt")
# remove file_a.txt
repo.git.rm(Git.polish_url(file_a))
- # create and commit file_b.txt
+ # create and commit file_b.txt with similarity index of 52
file_b = osp.join(rw_dir, "file_b.txt")
with open(file_b, "w", encoding='utf-8') as outfile:
- outfile.write("hello world")
+ outfile.write("hello world\nhello world")
repo.git.add(Git.polish_url(file_b))
repo.git.commit(message="Removed file_a.txt. Added file_b.txt")
@@ -458,3 +458,26 @@ class TestDiff(TestBase):
diff = diffs[1]
self.assertEqual(True, diff.new_file)
self.assertEqual('file_b.txt', diff.a_path)
+
+ # check diff with high similarity index
+ diffs = commit_b.diff(commit_a, split_single_char_options=False, M='75%')
+ self.assertEqual(2, len(diffs))
+
+ # check fileA.txt deleted
+ diff = diffs[0]
+ self.assertEqual(True, diff.deleted_file)
+ self.assertEqual('file_a.txt', diff.a_path)
+
+ # check fileB.txt added
+ diff = diffs[1]
+ self.assertEqual(True, diff.new_file)
+ self.assertEqual('file_b.txt', diff.a_path)
+
+ # check diff with low similarity index
+ diffs = commit_b.diff(commit_a, split_single_char_options=False, M='40%')
+ self.assertEqual(1, len(diffs))
+ diff = diffs[0]
+ self.assertEqual(True, diff.renamed_file)
+ self.assertEqual('file_a.txt', diff.rename_from)
+ self.assertEqual('file_b.txt', diff.rename_to)
+