summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrey Lebedev <andrey@lebedev.lt>2013-02-19 19:07:25 +0200
committerAndrey Lebedev <andrey@lebedev.lt>2013-02-19 19:07:25 +0200
commit67e4c91acc5d16e1408696189d31771be73d311e (patch)
treeb26882d8e014a081d5f3e6a74791a54187b244d1 /src
parente1d5f7cf375ccdfb8f6207c2bf813ca64c1d7bda (diff)
parentaad857434f77e494a9c1ea1ba90f95bb1cc60551 (diff)
downloadzope-security-67e4c91acc5d16e1408696189d31771be73d311e.tar.gz
Merge branch 'moretests'
Diffstat (limited to 'src')
-rw-r--r--src/zope/security/checker.py8
-rw-r--r--src/zope/security/testing.py19
2 files changed, 24 insertions, 3 deletions
diff --git a/src/zope/security/checker.py b/src/zope/security/checker.py
index e5f88dc..5f1d7df 100644
--- a/src/zope/security/checker.py
+++ b/src/zope/security/checker.py
@@ -595,7 +595,7 @@ _typeChecker = NamesChecker(
'__implemented__'])
_namedChecker = NamesChecker(['__name__'])
-_iteratorChecker = NamesChecker(['next', '__iter__'])
+_iteratorChecker = NamesChecker(['next', '__iter__', '__len__'])
_setChecker = NamesChecker(['__iter__', '__len__', '__str__', '__contains__',
'copy', 'difference', 'intersection', 'issubset',
@@ -642,9 +642,13 @@ _basic_types = {
datetime.time: NoProxy,
datetime.tzinfo: NoProxy,
}
-if PYTHON2:
+if PYTHON2:
_basic_types[long] = NoProxy
_basic_types[unicode] = NoProxy
+else: #pragma NO COVER
+ _basic_types[type({}.values())] = NoProxy
+ _basic_types[type({}.keys())] = NoProxy
+ _basic_types[type({}.items())] = NoProxy
try:
import pytz
diff --git a/src/zope/security/testing.py b/src/zope/security/testing.py
index 53d1ebe..ee13db8 100644
--- a/src/zope/security/testing.py
+++ b/src/zope/security/testing.py
@@ -15,13 +15,30 @@
This module provides some helper/stub objects for setting up interactions.
"""
+import sys
+import re
from zope import interface, component
from zope.security import interfaces
from zope.security.permission import Permission
import contextlib
import zope.security.management
-
+from zope.testing import renormalizing
+
+PY2 = sys.version_info[0] == 2
+
+if PY2:
+ _u = unicode
+ rules = [(re.compile("b('.*?')"), r"\1"),
+ (re.compile('b(".*?")'), r"\1"),
+ ]
+ output_checker = renormalizing.RENormalizing(rules)
+else:
+ _u = str
+ rules = [(re.compile("u('.*?')"), r"\1"),
+ (re.compile('u(".*?")'), r"\1"),
+ ]
+ output_checker = renormalizing.RENormalizing(rules)
@interface.implementer(interfaces.IPrincipal)
class Principal: