def set(self, section, name, value):
"""Set a configuration value.
+ :param section: Tuple with section name and optional subsection namee
:param name: Name of the configuration value, including section
and optional subsection
:param: Value of the setting
"""
raise NotImplementedError(self.set)
+ def iteritems(self, section):
+ """Iterate over the configuration pairs for a specific section.
+
+ :param section: Tuple with section name and optional subsection namee
+ :return: Iterator over (name, value) pairs
+ """
+ raise NotImplementedError(self.iteritems)
+
class ConfigDict(Config, DictMixin):
"""Git configuration stored in a dictionary."""
section = (section, )
self._values.setdefault(section, OrderedDict())[name] = value
+ def iteritems(self, section):
+ return self._values.setdefault(section, OrderedDict()).iteritems()
+
def _format_string(value):
if (value.startswith(" ") or
cd.set(("core", ), "foo", "bla")
cd.set(("core2", ), "foo", "bloe")
- self.assertEqual([
- (('core',), OrderedDict([('foo', 'bla')])),
- (('core2',), OrderedDict([('foo', 'bloe')]))],
- list(cd.iteritems()))
+ self.assertEqual(
+ [('foo', 'bla')],
+ list(cd.iteritems(("core", ))))
+
+ def test_iteritems_nonexistant(self):
+ cd = ConfigDict()
+ cd.set(("core2", ), "foo", "bloe")
+
+ self.assertEqual([],
+ list(cd.iteritems(("core", ))))
class StackedConfigTests(TestCase):