2
0
Эх сурвалжийг харах

Fix python3 compatibility.

Jelmer Vernooij 8 жил өмнө
parent
commit
0ee2ec1d37

+ 4 - 2
dulwich/objects.py

@@ -825,7 +825,7 @@ def key_entry_name_order(entry):
     return entry[0]
 
 
-def pretty_format_tree_entry(name, mode, hexsha):
+def pretty_format_tree_entry(name, mode, hexsha, encoding="utf-8"):
     """Pretty format tree entry.
 
     :param name: Name of the directory entry
@@ -837,7 +837,9 @@ def pretty_format_tree_entry(name, mode, hexsha):
         kind = "tree"
     else:
         kind = "blob"
-    return "%04o %s %s\t%s\n" % (mode, kind, hexsha, name)
+    return "%04o %s %s\t%s\n" % (
+            mode, kind, hexsha.decode('ascii'),
+            name.decode(encoding, 'replace'))
 
 
 class Tree(ShaFile):

+ 2 - 2
dulwich/tests/test_objects.py

@@ -1138,6 +1138,6 @@ class PrettyFormatTreeEntryTests(TestCase):
     def test_format(self):
         self.assertEquals(
                 '40000 tree 40820c38cfb182ce6c8b261555410d8382a5918b\tfoo\n',
-                pretty_format_tree_entry("foo", 0o40000,
-                    "40820c38cfb182ce6c8b261555410d8382a5918b"))
+                pretty_format_tree_entry(b"foo", 0o40000,
+                    b"40820c38cfb182ce6c8b261555410d8382a5918b"))
 

+ 2 - 2
dulwich/tests/test_porcelain.py

@@ -811,7 +811,7 @@ class LsTreeTests(PorcelainTestCase):
             author=b'', committer=b'')
 
         f = StringIO()
-        porcelain.ls_tree(self.repo, "HEAD", outstream=f)
+        porcelain.ls_tree(self.repo, b"HEAD", outstream=f)
         self.assertEquals(f.getvalue(), "")
 
     def test_simple(self):
@@ -825,7 +825,7 @@ class LsTreeTests(PorcelainTestCase):
             author=b'', committer=b'')
 
         f = StringIO()
-        porcelain.ls_tree(self.repo, "HEAD", outstream=f)
+        porcelain.ls_tree(self.repo, b"HEAD", outstream=f)
         self.assertEquals(
                 f.getvalue(),
                 '100644 blob 8b82634d7eae019850bb883f06abf428c58bc9aa\tfoo\n')