~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/registry.py

  • Committer: Vincent Ladeuil
  • Date: 2009-09-16 10:37:29 UTC
  • mto: (4695.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 4696.
  • Revision ID: v.ladeuil+lp@free.fr-20090916103729-m6h1pyvjprm6puvm
Respect items() protocol for registry objects.

* bzrlib/tests/test_registry.py:
(TestRegistryIter): Test some corner cases where object are
registered while the registry is iterated.

* bzrlib/registry.py:
(Registry): iteritems() and items() have different intents, don't
mix them under the covers or devs get tricked (see bug #277048
which seemed to have fixed the issue).

Show diffs side-by-side

added added

removed removed

Lines of Context:
222
222
            yield key, getter.get_obj()
223
223
 
224
224
    def items(self):
225
 
        return sorted(self.iteritems())
 
225
        # We should not use the iteritems() implementation below (see bug
 
226
        # #430510)
 
227
        return sorted([(key, getter.get_obj())
 
228
                       for key, getter in self._dict.items()])
226
229
 
227
230
    def _set_default_key(self, key):
228
231
        if not self._dict.has_key(key):