summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Thiel <sebastian.thiel@icloud.com>2021-01-05 21:53:24 +0800
committerSebastian Thiel <sebastian.thiel@icloud.com>2021-01-05 21:59:24 +0800
commit21e2c4589934d4801c15a482a37322cb704fc55b (patch)
treebfef3cc8f73cac668b51924976163c410c2aa378
parent90a6e1c8f793571730f1c77f2dce745813938b66 (diff)
downloadgitpython-more-robust-git-diff.tar.gz
try fixing up test fixtures and implementationmore-robust-git-diff
-rw-r--r--git/diff.py4
-rw-r--r--test/test_diff.py12
2 files changed, 10 insertions, 6 deletions
diff --git a/git/diff.py b/git/diff.py
index 17ef15af..cd7cc23c 100644
--- a/git/diff.py
+++ b/git/diff.py
@@ -511,11 +511,11 @@ class Diff(object):
new_file = True
elif change_type == 'C':
copied_file = True
- a_path, b_path = path.split('\t', 1)
+ a_path, b_path = path.split('\x00', 1)
a_path = a_path.encode(defenc)
b_path = b_path.encode(defenc)
elif change_type == 'R':
- a_path, b_path = path.split('\t', 1)
+ a_path, b_path = path.split('\x00', 1)
a_path = a_path.encode(defenc)
b_path = b_path.encode(defenc)
rename_from, rename_to = a_path, b_path
diff --git a/test/test_diff.py b/test/test_diff.py
index 378a58de..c6c9b67a 100644
--- a/test/test_diff.py
+++ b/test/test_diff.py
@@ -26,6 +26,10 @@ from test.lib import with_rw_directory
import os.path as osp
+def to_raw(input):
+ return input.replace(b'\t', b'\x00')
+
+
@ddt.ddt
class TestDiff(TestBase):
@@ -112,7 +116,7 @@ class TestDiff(TestBase):
self.assertEqual(diff.raw_rename_to, b'm\xc3\xbcller')
assert isinstance(str(diff), str)
- output = StringProcessAdapter(fixture('diff_rename_raw'))
+ output = StringProcessAdapter(to_raw(fixture('diff_rename_raw')))
diffs = Diff._index_from_raw_format(self.rorepo, output)
self.assertEqual(len(diffs), 1)
diff = diffs[0]
@@ -137,7 +141,7 @@ class TestDiff(TestBase):
self.assertTrue(diff.b_path, 'test2.txt')
assert isinstance(str(diff), str)
- output = StringProcessAdapter(fixture('diff_copied_mode_raw'))
+ output = StringProcessAdapter(to_raw(fixture('diff_copied_mode_raw')))
diffs = Diff._index_from_raw_format(self.rorepo, output)
self.assertEqual(len(diffs), 1)
diff = diffs[0]
@@ -165,7 +169,7 @@ class TestDiff(TestBase):
self.assertIsNotNone(diff.new_file)
assert isinstance(str(diff), str)
- output = StringProcessAdapter(fixture('diff_change_in_type_raw'))
+ output = StringProcessAdapter(to_raw(fixture('diff_change_in_type_raw')))
diffs = Diff._index_from_raw_format(self.rorepo, output)
self.assertEqual(len(diffs), 1)
diff = diffs[0]
@@ -175,7 +179,7 @@ class TestDiff(TestBase):
self.assertEqual(len(list(diffs.iter_change_type('T'))), 1)
def test_diff_of_modified_files_not_added_to_the_index(self):
- output = StringProcessAdapter(fixture('diff_abbrev-40_full-index_M_raw_no-color'))
+ output = StringProcessAdapter(to_raw(fixture('diff_abbrev-40_full-index_M_raw_no-color')))
diffs = Diff._index_from_raw_format(self.rorepo, output)
self.assertEqual(len(diffs), 1, 'one modification')