瀏覽代碼

Run more tests on Python3.

Jelmer Vernooij 10 年之前
父節點
當前提交
fc39e7ba5a
共有 3 個文件被更改,包括 12 次插入19 次删除
  1. 6 8
      dulwich/object_store.py
  2. 6 9
      dulwich/tests/test_object_store.py
  3. 0 2
      dulwich/tests/test_refs.py

+ 6 - 8
dulwich/object_store.py

@@ -433,19 +433,17 @@ class DiskObjectStore(PackBasedObjectStore):
                     'rb')
         except (OSError, IOError) as e:
             if e.errno == errno.ENOENT:
-                return []
+                return
             raise
-        ret = []
         with f:
             for l in f.readlines():
-                l = l.rstrip("\n")
-                if l[0] == "#":
+                l = l.rstrip(b"\n")
+                if l[0] == b"#":
                     continue
                 if os.path.isabs(l):
-                    ret.append(l)
+                    yield l.decode(sys.getfilesystemencoding())
                 else:
-                    ret.append(os.path.join(self.path, l))
-            return ret
+                    yield os.path.join(self.path, l).decode(sys.getfilesystemencoding())
 
     def add_alternate_path(self, path):
         """Add an alternate path to this object store.
@@ -465,7 +463,7 @@ class DiskObjectStore(PackBasedObjectStore):
             else:
                 with orig_f:
                     f.write(orig_f.read())
-            f.write("%s\n" % path)
+            f.write(path.encode(sys.getfilesystemencoding()) + b"\n")
 
         if not os.path.isabs(path):
             path = os.path.join(self.path, path)

+ 6 - 9
dulwich/tests/test_object_store.py

@@ -53,7 +53,6 @@ from dulwich.tests.utils import (
     make_object,
     make_tag,
     build_pack,
-    skipIfPY3,
     )
 
 
@@ -238,7 +237,6 @@ class MemoryObjectStoreTests(ObjectStoreTests, TestCase):
         o.add_thin_pack(f.read, None)
 
 
-@skipIfPY3
 class PackBasedObjectStoreTests(ObjectStoreTests):
 
     def tearDown(self):
@@ -246,16 +244,16 @@ class PackBasedObjectStoreTests(ObjectStoreTests):
             pack.close()
 
     def test_empty_packs(self):
-        self.assertEqual([], self.store.packs)
+        self.assertEqual([], list(self.store.packs))
 
     def test_pack_loose_objects(self):
         b1 = make_object(Blob, data=b"yummy data")
         self.store.add_object(b1)
         b2 = make_object(Blob, data=b"more yummy data")
         self.store.add_object(b2)
-        self.assertEqual([], self.store.packs)
+        self.assertEqual([], list(self.store.packs))
         self.assertEqual(2, self.store.pack_loose_objects())
-        self.assertNotEqual([], self.store.packs)
+        self.assertNotEqual([], list(self.store.packs))
         self.assertEqual(0, self.store.pack_loose_objects())
 
 
@@ -285,13 +283,13 @@ class DiskObjectStoreTests(PackBasedObjectStoreTests, TestCase):
 
     def test_add_alternate_path(self):
         store = DiskObjectStore(self.store_dir)
-        self.assertEqual([], store._read_alternate_paths())
+        self.assertEqual([], list(store._read_alternate_paths()))
         store.add_alternate_path("/foo/path")
-        self.assertEqual(["/foo/path"], store._read_alternate_paths())
+        self.assertEqual(["/foo/path"], list(store._read_alternate_paths()))
         store.add_alternate_path("/bar/path")
         self.assertEqual(
             ["/foo/path", "/bar/path"],
-            store._read_alternate_paths())
+            list(store._read_alternate_paths()))
 
     def test_rel_alternative_path(self):
         alternate_dir = tempfile.mkdtemp()
@@ -353,7 +351,6 @@ class DiskObjectStoreTests(PackBasedObjectStoreTests, TestCase):
         o.add_thin_pack(f.read, None)
 
 
-@skipIfPY3
 class TreeLookupPathTests(TestCase):
 
     def setUp(self):

+ 0 - 2
dulwich/tests/test_refs.py

@@ -45,7 +45,6 @@ from dulwich.tests import (
 from dulwich.tests.utils import (
     open_repo,
     tear_down_repo,
-    skipIfPY3,
     )
 
 
@@ -348,7 +347,6 @@ class DiskRefsContainerTests(RefsContainerTests, TestCase):
         self.assertEqual(b'df6800012397fb85c56e7418dd4eb9405dee075c',
                          self._refs[b'refs/tags/refs-0.1'])
 
-    @skipIfPY3
     def test_add_if_new_symbolic(self):
         # Use an empty repo instead of the default.
         tear_down_repo(self._repo)