File tree Expand file tree Collapse file tree 3 files changed +13
-4
lines changed
Expand file tree Collapse file tree 3 files changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -308,6 +308,6 @@ def register_surrogateescape():
308308
309309
310310try:
311- "hello ".decode(defenc, "surrogateescape")
311+ b"100644 \x9f\0aaa ".decode(defenc, "surrogateescape")
312312except:
313313 register_surrogateescape()
Original file line number Diff line number Diff line change 22from stat import S_ISDIR
33from git.compat import (
44 byte_ord,
5+ safe_decode,
56 defenc,
67 xrange,
78 text_type,
@@ -76,7 +77,7 @@ def tree_entries_from_data(data):
7677 # default encoding for strings in git is utf8
7778 # Only use the respective unicode object if the byte stream was encoded
7879 name = data[ns:i]
79- name = name.decode(defenc, 'surrogateescape' )
80+ name = safe_decode(name )
8081
8182 # byte is NULL, get next 20
8283 i += 1
Original file line number Diff line number Diff line change 1616from gitdb.util import bin_to_hex
1717from gitdb.base import IStream
1818from gitdb.typ import str_tree_type
19+ from git.compat import PY3
1920
21+ from unittest.case import skipIf
2022from stat import (
2123 S_IFDIR,
2224 S_IFREG,
@@ -256,6 +258,12 @@ def test_tree_traversal_single(self):
256258 assert entries
257259 # END for each commit
258260
259- def test_tree_entries_from_data_with_failing_name_decode(self):
261+ @skipIf(PY3, 'odd types returned ... maybe figure it out one day')
262+ def test_tree_entries_from_data_with_failing_name_decode_py2(self):
260263 r = tree_entries_from_data(b'100644 \x9f\0aaa')
261- assert r == [(b'aaa', 33188, b'\x9f')], r
264+ assert r == [('aaa', 33188, u'\udc9f')], r
265+
266+ @skipIf(not PY3, 'odd types returned ... maybe figure it out one day')
267+ def test_tree_entries_from_data_with_failing_name_decode_py3(self):
268+ r = tree_entries_from_data(b'100644 \x9f\0aaa')
269+ assert r == [(b'aaa', 33188, '\udc9f')], r
You can’t perform that action at this time.
0 commit comments