[Checkins] SVN: zope.traversing/trunk/ - Made sure traversing
doesn't raise an TypeError but a TraversalError when the
Christian Zagrodnick
cz at gocept.com
Fri Aug 1 09:41:54 EDT 2008
Log message for revision 89149:
- Made sure traversing doesn't raise an TypeError but a TraversalError when the
traversal step before yielded a string.
Changed:
U zope.traversing/trunk/CHANGES.txt
U zope.traversing/trunk/src/zope/traversing/adapters.py
U zope.traversing/trunk/src/zope/traversing/tests/test_traverser.py
-=-
Modified: zope.traversing/trunk/CHANGES.txt
===================================================================
--- zope.traversing/trunk/CHANGES.txt 2008-08-01 13:34:27 UTC (rev 89148)
+++ zope.traversing/trunk/CHANGES.txt 2008-08-01 13:41:54 UTC (rev 89149)
@@ -9,7 +9,10 @@
compliant TAL interpreter as available in zope.tal >= 3.5.0.
- Fixed deprecation warning caused by using an old module name for
ZopeSecurityPolicy in ftesting.zcml
+- Made sure traversing doesn't raise an TypeError but a TraversalError when the
+ traversal step before yielded a string.
+
3.5.0a3 (2007-12-28)
--------------------
Modified: zope.traversing/trunk/src/zope/traversing/adapters.py
===================================================================
--- zope.traversing/trunk/src/zope/traversing/adapters.py 2008-08-01 13:34:27 UTC (rev 89148)
+++ zope.traversing/trunk/src/zope/traversing/adapters.py 2008-08-01 13:41:54 UTC (rev 89149)
@@ -47,7 +47,7 @@
if hasattr(subject, '__getitem__'):
try:
return subject[name]
- except KeyError:
+ except (KeyError, TypeError):
pass
raise TraversalError(subject, name)
Modified: zope.traversing/trunk/src/zope/traversing/tests/test_traverser.py
===================================================================
--- zope.traversing/trunk/src/zope/traversing/tests/test_traverser.py 2008-08-01 13:34:27 UTC (rev 89148)
+++ zope.traversing/trunk/src/zope/traversing/tests/test_traverser.py 2008-08-01 13:41:54 UTC (rev 89149)
@@ -158,6 +158,13 @@
self.assertEqual(tr.traverse('anotherdict/items'),
adict['anotherdict'].items)
+ def testTraversingDoesntFailOnStrings(self):
+ adict = {'foo': 'bar'}
+ tr = Traverser(adict)
+ # This used to raise type error before
+ self.assertRaises(TraversalError, tr.traverse, 'foo/baz')
+
+
class RestrictedTraverseTests(PlacefulSetup, unittest.TestCase):
_oldPolicy = None
_deniedNames = ()
More information about the Checkins
mailing list