[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