2
0
Jelmer Vernooij 15 жил өмнө
parent
commit
f6d9b89e61

+ 4 - 0
dulwich/objects.py

@@ -600,6 +600,10 @@ class Tree(ShaFile):
         self._ensure_parsed()
         return len(self._entries)
 
+    def __iter__(self):
+        self._ensure_parsed()
+        return iter(self._entries)
+
     def add(self, mode, name, hexsha):
         assert type(mode) == int
         assert type(name) == str

+ 5 - 0
dulwich/tests/test_objects.py

@@ -387,6 +387,11 @@ class TreeTests(ShaFileCheckTests):
         self.assertCheckFails(t, '100644 a\0%s\n100755 a\0%s' % (sha, sha2))
         self.assertCheckFails(t, '100644 b\0%s\n100644 a\0%s' % (sha2, sha))
 
+    def test_iter(self):
+        t = Tree()
+        t["foo"] = (0100644, a_sha)
+        self.assertEquals(set(["foo"]), set(t))
+
 
 class TagSerializeTests(unittest.TestCase):