[merge] LazyFactory
Adeodato Simó
dato at net.com.org.es
Tue Aug 15 03:16:55 BST 2006
* Adeodato Simó [Tue, 15 Aug 2006 04:14:47 +0200]:
> Oh, good point. I've fixed that (diff included below; mergeable from [1]).
Er, including it now, sorry:
=== modified file 'bzrlib/registry.py'
--- bzrlib/registry.py 2006-08-15 01:50:06 +0000
+++ bzrlib/registry.py 2006-08-15 02:00:51 +0000
@@ -43,7 +43,7 @@
self._default_key = key
self._dict[key] = object
- def get(self, key=_marker, fallback_key=_marker):
+ def get(self, key=None, fallback_key=_marker):
"""Return the object register()'ed by the given key.
This may raise KeyError if the key is not present.
@@ -58,13 +58,16 @@
if fallback_key is _marker:
fallback_key = self.default_key
- if key is _marker:
- return self._dict[fallback_key]
- else:
- try:
+ try:
+ if key is None:
+ return self._dict[fallback_key]
+ else:
return self._dict[key]
- except KeyError:
+ except KeyError:
+ if fallback_key is not None:
return self._dict[fallback_key]
+ else:
+ raise
def keys(self):
"""Get a list of registered entries"""
=== modified file 'bzrlib/tests/test_registry.py'
--- bzrlib/tests/test_registry.py 2006-08-10 21:47:27 +0000
+++ bzrlib/tests/test_registry.py 2006-08-15 02:00:51 +0000
@@ -42,9 +42,11 @@
# test get() (self.default_key == None)
self.assertRaises(KeyError, registry_.get)
+ self.assertRaises(KeyError, registry_.get, None)
self.assertEqual(2, registry_.get('two'))
self.assertRaises(KeyError, registry_.get, 'three')
self.assertEqual(4, registry_.get('three', 'four'))
+ self.assertEqual(4, registry_.get(None, 'four'))
self.assertRaises(KeyError, registry_.get, 'three', 'no-such-key')
# test _set_default_key
@@ -64,9 +66,11 @@
# test get() (self.default_key == 'one')
self.assertEqual(1, registry_.get())
+ self.assertEqual(1, registry_.get(None))
self.assertEqual(2, registry_.get('two'))
self.assertEqual(1, registry_.get('three'))
self.assertEqual(4, registry_.get('three', 'four'))
+ self.assertEqual(4, registry_.get(None, 'four'))
self.assertRaises(KeyError, registry_.get, 'three', 'no-such-key')
# test _set_default_key
--
Adeodato Simó dato at net.com.org.es
Debian Developer adeodato at debian.org
Acaba de...
Acaba de una vez...
Acaba de una vez conmigo
-- Astrud, Masaje
More information about the bazaar
mailing list