Browse Source

Add ConfigDict.itersections.

Jelmer Vernooij 11 năm trước cách đây
mục cha
commit
f3836f3650
2 tập tin đã thay đổi với 20 bổ sung1 xóa
  1. 12 1
      dulwich/config.py
  2. 8 0
      dulwich/tests/test_config.py

+ 12 - 1
dulwich/config.py

@@ -88,6 +88,14 @@ class Config(object):
         """
         raise NotImplementedError(self.iteritems)
 
+    def itersections(self):
+        """Iterate over the sections.
+
+        :return: Iterator over section tuples
+        """
+        raise NotImplementedError(self.itersections)
+
+
 
 class ConfigDict(Config, DictMixin):
     """Git configuration stored in a dictionary."""
@@ -139,7 +147,10 @@ class ConfigDict(Config, DictMixin):
         self._values.setdefault(section, OrderedDict())[name] = value
 
     def iteritems(self, section):
-        return self._values.setdefault(section, OrderedDict()).iteritems()
+        return self._values.get(section, OrderedDict()).iteritems()
+
+    def itersections(self):
+        return self._values.keys()
 
 
 def _format_string(value):

+ 8 - 0
dulwich/tests/test_config.py

@@ -198,6 +198,14 @@ class ConfigDictTests(TestCase):
         self.assertEqual([],
             list(cd.iteritems(("core", ))))
 
+    def test_itersections(self):
+        cd = ConfigDict()
+        cd.set(("core2", ), "foo", "bloe")
+
+        self.assertEqual([("core2", )],
+            list(cd.itersections()))
+
+
 
 class StackedConfigTests(TestCase):