[Checkins] SVN: zope.security/trunk/ Coverage for z.s.checker.TracebackSupplement.
Tres Seaver
cvs-admin at zope.org
Wed Dec 26 22:26:38 UTC 2012
Log message for revision 128908:
Coverage for z.s.checker.TracebackSupplement.
Changed:
_U zope.security/trunk/
U zope.security/trunk/src/zope/security/checker.py
U zope.security/trunk/src/zope/security/tests/test_checker.py
-=-
Modified: zope.security/trunk/src/zope/security/checker.py
===================================================================
--- zope.security/trunk/src/zope/security/checker.py 2012-12-26 21:47:43 UTC (rev 128907)
+++ zope.security/trunk/src/zope/security/checker.py 2012-12-26 22:26:37 UTC (rev 128908)
@@ -247,19 +247,19 @@
cls = self.obj.__class__
if hasattr(cls, "__module__"):
s = "%s.%s" % (cls.__module__, cls.__name__)
- else:
+ else: #pragma NO COVER XXX
s = str(cls.__name__)
result.append(" - class: " + s)
- except:
+ except: #pragma NO COVER XXX
pass
try:
cls = type(self.obj)
if hasattr(cls, "__module__"):
s = "%s.%s" % (cls.__module__, cls.__name__)
- else:
+ else: #pragma NO COVER XXX
s = str(cls.__name__)
result.append(" - type: " + s)
- except:
+ except: #pragma NO COVER XXX
pass
return "\n".join(result)
Modified: zope.security/trunk/src/zope/security/tests/test_checker.py
===================================================================
--- zope.security/trunk/src/zope/security/tests/test_checker.py 2012-12-26 21:47:43 UTC (rev 128907)
+++ zope.security/trunk/src/zope/security/tests/test_checker.py 2012-12-26 22:26:37 UTC (rev 128908)
@@ -15,8 +15,16 @@
"""
import unittest
+def _skip_if_not_Py2(testfunc):
+ import sys
+ from functools import update_wrapper
+ if sys.version_info[0] >= 3:
+ def dummy(self):
+ pass
+ update_wrapper(dummy, testfunc)
+ return dummy
+ return testfunc
-
class Test_ProxyFactory(unittest.TestCase):
def _callFUT(self, object, checker=None):
@@ -388,18 +396,63 @@
finally:
_clear()
+
class CheckerPyTests(unittest.TestCase, CheckerTestsBase):
def _getTargetClass(self):
from zope.security.checker import CheckerPy
return CheckerPy
+
class CheckerTests(unittest.TestCase, CheckerTestsBase):
def _getTargetClass(self):
from zope.security.checker import Checker
return Checker
+
+class TracebackSupplementTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from zope.security.checker import TracebackSupplement
+ return TracebackSupplement
+
+ def _makeOne(self, obj):
+ return self._getTargetClass()(obj)
+
+ def test_getInfo_builtin_types(self):
+ for val, typ in [('', 'str'),
+ (0, 'int'),
+ (1.0, 'float'),
+ ((), 'tuple'),
+ ([], 'list'),
+ ({}, 'dict'),
+ ]:
+ tbs = self._makeOne(val)
+ self.assertEqual(tbs.getInfo().splitlines(),
+ [' - class: __builtin__.%s' % typ,
+ ' - type: __builtin__.%s' % typ,
+ ])
+
+ def test_getInfo_newstyle_instance(self):
+ class C(object):
+ pass
+ tbs = self._makeOne(C())
+ self.assertEqual(tbs.getInfo().splitlines(),
+ [' - class: %s.C' % self.__class__.__module__,
+ ' - type: %s.C' % self.__class__.__module__,
+ ])
+
+ @_skip_if_not_Py2
+ def test_getInfo_classic_instance(self):
+ exec("class C: pass", globals(), locals())
+ tbs = self._makeOne(locals()['C']())
+ self.assertEqual(tbs.getInfo().splitlines(),
+ [' - class: %s.C' % self.__class__.__module__,
+ ' - type: __builtin__.instance',
+ ])
+
+
class Test(unittest.TestCase):
def setUp(self):
@@ -1064,6 +1117,7 @@
unittest.makeSuite(Test_canAccess),
unittest.makeSuite(CheckerPyTests),
unittest.makeSuite(CheckerTests),
+ unittest.makeSuite(TracebackSupplementTests),
unittest.makeSuite(Test),
unittest.makeSuite(TestCheckerPublic),
unittest.makeSuite(TestCombinedChecker),
More information about the checkins
mailing list