[Zope-Checkins] CVS: Zope/lib/python/OFS - Traversable.py:1.18

Casey Duncan casey@zope.com
Wed, 26 Feb 2003 11:51:47 -0500


Update of /cvs-repository/Zope/lib/python/OFS
In directory cvs.zope.org:/tmp/cvs-serv4016

Modified Files:
	Traversable.py 
Log Message:
Fix failure mode in (un)restrictedTraverse so that it raises a NotFound error wh
en traversing from a non-mapping object, rather than an obscure AttributeError o
n __getitem__


=== Zope/lib/python/OFS/Traversable.py 1.17 => 1.18 ===
--- Zope/lib/python/OFS/Traversable.py:1.17	Wed Sep 18 11:48:59 2002
+++ Zope/lib/python/OFS/Traversable.py	Wed Feb 26 11:51:46 2003
@@ -140,7 +140,11 @@
                     else:
                         o = get(object, name, M)
                     if o is M:
-                        o=object[name]
+                        try:
+                            o=object[name]
+                        except AttributeError:
+                            # Raise a NotFound for easier debugging
+                            raise 'NotFound', name
                         if (restricted and not securityManager.validate(
                             object, object, N, o)):
                             raise Unauthorized, name