[Zope-Checkins] SVN: Zope/branches/2.13/ - fixed TypeError handling in unrestrictedTraverse
Yvo Schubbe
cvs-admin at zope.org
Tue Jul 10 06:48:14 UTC 2012
Log message for revision 127292:
- fixed TypeError handling in unrestrictedTraverse
Changed:
U Zope/branches/2.13/doc/CHANGES.rst
UU Zope/branches/2.13/src/OFS/Traversable.py
UU Zope/branches/2.13/src/OFS/tests/testTraverse.py
-=-
Modified: Zope/branches/2.13/doc/CHANGES.rst
===================================================================
--- Zope/branches/2.13/doc/CHANGES.rst 2012-07-10 06:29:24 UTC (rev 127291)
+++ Zope/branches/2.13/doc/CHANGES.rst 2012-07-10 06:48:11 UTC (rev 127292)
@@ -8,6 +8,8 @@
2.13.16 (unreleased)
--------------------
+- OFS: Fixed TypeError handling in unrestrictedTraverse.
+
- Updated distributions:
- AccessControl = 2.13.8
Modified: Zope/branches/2.13/src/OFS/Traversable.py
===================================================================
--- Zope/branches/2.13/src/OFS/Traversable.py 2012-07-10 06:29:24 UTC (rev 127291)
+++ Zope/branches/2.13/src/OFS/Traversable.py 2012-07-10 06:48:11 UTC (rev 127292)
@@ -260,9 +260,10 @@
if isinstance(next, NullResource):
resource = next
raise KeyError(name)
- except AttributeError:
+ except (AttributeError, TypeError):
# Raise NotFound for easier debugging
# instead of AttributeError: __getitem__
+ # or TypeError: not subscriptable
raise NotFound(name)
if restricted and not validate(
obj, obj, None, next):
Property changes on: Zope/branches/2.13/src/OFS/Traversable.py
___________________________________________________________________
Deleted: svn:keywords
- Id
Modified: Zope/branches/2.13/src/OFS/tests/testTraverse.py
===================================================================
--- Zope/branches/2.13/src/OFS/tests/testTraverse.py 2012-07-10 06:29:24 UTC (rev 127291)
+++ Zope/branches/2.13/src/OFS/tests/testTraverse.py 2012-07-10 06:48:11 UTC (rev 127292)
@@ -402,6 +402,20 @@
self.assertEqual(
self.root.folder1.restrictedTraverse('stuff', 42), 42)
+ def testNotFoundIsRaised(self):
+ from OFS.SimpleItem import SimpleItem
+ from zExceptions import NotFound
+ from operator import getitem
+ self.folder1._setObject('foo', SimpleItem('foo'))
+ self.assertRaises(AttributeError, getitem, self.folder1.foo,
+ 'doesntexist')
+ self.assertRaises(NotFound, self.folder1.unrestrictedTraverse,
+ 'foo/doesntexist')
+ self.assertRaises(TypeError, getitem,
+ self.folder1.foo.isPrincipiaFolderish, 'doesntexist')
+ self.assertRaises(NotFound, self.folder1.unrestrictedTraverse,
+ 'foo/isPrincipiaFolderish/doesntexist')
+
def testDefaultValueWhenNotFound(self):
# Test that traversing to a non-existent object returns
# the default when provided
Property changes on: Zope/branches/2.13/src/OFS/tests/testTraverse.py
___________________________________________________________________
Deleted: svn:keywords
- Id
More information about the Zope-Checkins
mailing list