Bug Description

Testing schooltool on python 2.5 I have noticed a strange bug, I was getting "Invalid value, None. for security checker" while displaying a view for Not Found exception, the traceback seemed to indicate that i was getting an error while trying to look up __parent__ for the context object (the not found exception) in a viewlet on that page. I could not find the error in python code, as it only exists in C code and was introduced in:

it seems that python2.5 and python2.4 diverged in a different place in the code, as __Security_checker__ is a property not an attribute, the problem is in it's implementation. Which again is different in C from what it is in python...

Apparently - all the exceptions ins python2.4 were of <type 'instance'> , and were using _instanceChecker (as defined by zope.security.checker._checkers)

In python2.5 - exceptions have types of their own like: <class 'zope.publisher.interfaces.NotFound'> and _checkers dict
has no entries for these kinds of exceptions so it's as if none of the exceptions have any checkers defined for them.

Thus C implementation of selecChecker returns None for all the Exceptions in python2.5