Log message for revision 67701: Last test failure fixes! Changed: U Zope/branches/easter-sprint_traversal-refactor/lib/python/OFS/Traversable.py U Zope/branches/easter-sprint_traversal-refactor/lib/python/ZPublisher/BaseRequest.py
-=- Modified: Zope/branches/easter-sprint_traversal-refactor/lib/python/OFS/Traversable.py =================================================================== --- Zope/branches/easter-sprint_traversal-refactor/lib/python/OFS/Traversable.py 2006-04-28 09:42:45 UTC (rev 67700) +++ Zope/branches/easter-sprint_traversal-refactor/lib/python/OFS/Traversable.py 2006-04-28 09:55:12 UTC (rev 67701) @@ -242,10 +242,11 @@ except (NotFound, KeyError): # Try to look for a view next = queryMultiAdapter((obj, self.REQUEST), - Interface, name).__of__(obj) + Interface, name) if next is None: # Didn't find one, reraise the error: raise + next = next.__of__(obj) if restricted and not securityManager.validate( obj, obj, _none, next): raise Unauthorized, name Modified: Zope/branches/easter-sprint_traversal-refactor/lib/python/ZPublisher/BaseRequest.py =================================================================== --- Zope/branches/easter-sprint_traversal-refactor/lib/python/ZPublisher/BaseRequest.py 2006-04-28 09:42:45 UTC (rev 67700) +++ Zope/branches/easter-sprint_traversal-refactor/lib/python/ZPublisher/BaseRequest.py 2006-04-28 09:55:12 UTC (rev 67701) @@ -72,33 +72,33 @@ if name[:1]=='_': raise Forbidden("Object name begins with an underscore at: %s" % URL) - if hasattr(object,'__bobo_traverse__'): - subobject=object.__bobo_traverse__(request, name) - if type(subobject) is type(()) and len(subobject) > 1: - # Add additional parents into the path - parents[-1:] = list(subobject[:-1]) - object, subobject = subobject[-2:] - else: - try: - subobject=getattr(object, name) - except AttributeError: + try: + if hasattr(object,'__bobo_traverse__'): + subobject=object.__bobo_traverse__(request, name) + if type(subobject) is type(()) and len(subobject) > 1: + # Add additional parents into the path + # XXX This needs handling. Check the publish refactor branch... + parents[-1:] = list(subobject[:-1]) + object, subobject = subobject[-2:] + else: try: + subobject=getattr(object, name) + except AttributeError: subobject=object[name] - except (AttributeError, KeyError, NotFound): - # Find a view even if it doesn't start with @@, but only - # If nothing else could be found - ob2 = queryMultiAdapter((object, request), Interface, name) - if ob2 is not None: - # OFS.Application.__bobo_traverse__ calls - # REQUEST.RESPONSE.notFoundError which sets the HTTP - # status code to 404 - request.RESPONSE.setStatus(200) - # We don't need to do the docstring security check - # for views, so lets skip it and return the object here. - return ob2.__of__(object) - else: - # There was no view, reraise the earlier error: - raise + + except (AttributeError, KeyError, NotFound): + # Find a view even if it doesn't start with @@, but only + # If nothing else could be found + subobject = queryMultiAdapter((object, request), Interface, name) + if subobject is not None: + # OFS.Application.__bobo_traverse__ calls + # REQUEST.RESPONSE.notFoundError which sets the HTTP + # status code to 404 + request.RESPONSE.setStatus(200) + # We don't need to do the docstring security check + # for views, so lets skip it and return the object here. + return subobject.__of__(object) + raise # Ensure that the object has a docstring, or that the parent # object has a pseudo-docstring for the object. Objects that _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins