[Checkins] SVN: zope.security/trunk/ Replace assertions with appropriate errors in non-test code.
Tres Seaver
cvs-admin at zope.org
Mon Dec 24 20:25:32 UTC 2012
Log message for revision 128902:
Replace assertions with appropriate errors in non-test code.
Also, expose the pure-Python checker class for testing.
Changed:
_U zope.security/trunk/
U zope.security/trunk/CHANGES.txt
U zope.security/trunk/src/zope/security/checker.py
-=-
Modified: zope.security/trunk/CHANGES.txt
===================================================================
--- zope.security/trunk/CHANGES.txt 2012-12-24 20:25:30 UTC (rev 128901)
+++ zope.security/trunk/CHANGES.txt 2012-12-24 20:25:31 UTC (rev 128902)
@@ -5,6 +5,10 @@
4.0.0 (unreleased)
------------------
+- Converted use of ``assert`` in non-test code to apprpriate error types:
+
+ - Non-dict's passed to ``Checker.__init__``.
+
- Removed dprecattion of ``zope.security.adapter.TrustedAdapterFactory``.
Although it has been marked as deprectaed since before Zope3 3.2, current
versions of ``zope.compoent`` still rely on it.
Modified: zope.security/trunk/src/zope/security/checker.py
===================================================================
--- zope.security/trunk/src/zope/security/checker.py 2012-12-24 20:25:30 UTC (rev 128901)
+++ zope.security/trunk/src/zope/security/checker.py 2012-12-24 20:25:31 UTC (rev 128902)
@@ -148,7 +148,7 @@
return True
@implementer(INameBasedChecker)
-class Checker(object):
+class CheckerPy(object):
def __init__(self, get_permissions, set_permissions=None):
"""Create a checker
@@ -164,10 +164,12 @@
set attribute access.
"""
- assert isinstance(get_permissions, dict)
+ if not isinstance(get_permissions, dict):
+ raise TypeError('get_permissions must be a dict')
self.get_permissions = get_permissions
if set_permissions is not None:
- assert isinstance(set_permissions, dict)
+ if not isinstance(set_permissions, dict):
+ raise TypeError('set_permissions must be a dict')
self.set_permissions = set_permissions
def permission_id(self, name):
@@ -231,9 +233,9 @@
return value
return Proxy(value, checker)
+Checker = CheckerPy # in case no C optimizations
-
# Helper class for __traceback_supplement__
class TracebackSupplement(object):
@@ -291,7 +293,7 @@
# Now we wrap it in a security proxy so that it retains it's
# identity when it needs to be security proxied.
d={}
-CheckerPublic = Proxy(CheckerPublic, Checker(d))
+CheckerPublic = Proxy(CheckerPublic, Checker(d)) # XXX uses CheckerPy
d['__reduce__'] = CheckerPublic
del d
More information about the checkins
mailing list