Prechádzať zdrojové kódy

Implement RefsContainer.__iter__.

Fixes #717
Jelmer Vernooij 5 rokov pred
rodič
commit
3870673777
3 zmenil súbory, kde vykonal 11 pridanie a 0 odobranie
  1. 3 0
      NEWS
  2. 3 0
      dulwich/refs.py
  3. 5 0
      dulwich/tests/test_refs.py

+ 3 - 0
NEWS

@@ -15,6 +15,9 @@
  * Mark ``.git`` directories as hidden on Windows.
    (Martin Packman, #585)
 
+ * Implement ``RefsContainer.__iter__``
+   (Jelmer Vernooij, #717)
+
 0.19.11	2019-02-07
 
  IMPROVEMENTS

+ 3 - 0
dulwich/refs.py

@@ -158,6 +158,9 @@ class RefsContainer(object):
         """All refs present in this container."""
         raise NotImplementedError(self.allkeys)
 
+    def __iter__(self):
+        return iter(self.allkeys())
+
     def keys(self, base=None):
         """Refs present in this container.
 

+ 5 - 0
dulwich/tests/test_refs.py

@@ -185,6 +185,11 @@ class RefsContainerTests(object):
         self.assertEqual([b'refs-0.1', b'refs-0.2'],
                          sorted(self._refs.keys(b'refs/tags')))
 
+    def test_iter(self):
+        actual_keys = set(self._refs.keys())
+        self.assertEqual(set(self._refs), actual_keys)
+        self.assertEqual(set(_TEST_REFS.keys()), actual_keys)
+
     def test_as_dict(self):
         # refs/heads/loop does not show up even if it exists
         expected_refs = dict(_TEST_REFS)