diff options
author | Marius Gedminas <marius@gedmin.as> | 2013-03-27 17:44:54 +0200 |
---|---|---|
committer | Marius Gedminas <marius@gedmin.as> | 2013-03-27 17:44:54 +0200 |
commit | bc75e97e8fc998ab5d682c4f57ee85a54559efef (patch) | |
tree | c6e96aa3c8b8c5bf1bf8a3909e260fc4d309aabb | |
parent | f045005598efc01be2cac431a29333d81e8d1a15 (diff) | |
download | zope-security-bc75e97e8fc998ab5d682c4f57ee85a54559efef.tar.gz |
Fix a long-standing bug with ZOPE_WATCH_CHECKERS=2
-rw-r--r-- | CHANGES.rst | 4 | ||||
-rw-r--r-- | src/zope/security/checker.py | 2 | ||||
-rw-r--r-- | src/zope/security/tests/test_checker.py | 10 |
3 files changed, 14 insertions, 2 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index 93d39b1..5a2d3a5 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,7 +5,9 @@ CHANGES 4.0.0b2 (unreleased) -------------------- -- TBD +- Bugfix: ZOPE_WATCH_CHECKERS=2 used to incorrectly suppress + unauthorized/forbidden warnings. + 4.0.0b1 (2013-03-11) -------------------- diff --git a/src/zope/security/checker.py b/src/zope/security/checker.py index 89ae214..f92a2ff 100644 --- a/src/zope/security/checker.py +++ b/src/zope/security/checker.py @@ -515,7 +515,7 @@ class CheckerLoggingMixin(object): _file = sys.stderr def _log(self, msg, verbosity=1): - if verbosity >= self.verbosity: + if self.verbosity >= verbosity: self._file.write('%s\n' % msg) def check(self, object, name): diff --git a/src/zope/security/tests/test_checker.py b/src/zope/security/tests/test_checker.py index f6ad51b..ffcfc79 100644 --- a/src/zope/security/tests/test_checker.py +++ b/src/zope/security/tests/test_checker.py @@ -1162,6 +1162,16 @@ class CheckerLoggingMixinTests(unittest.TestCase): self.assertEqual(checker._file[0], '[CHK] - Unauthorized: name on TESTING\n') + def test_check_unauthorized_raised_verbosity(self): + from zope.security.interfaces import Unauthorized + checker = self._makeOne(Unauthorized) + checker.verbosity = 2 + self.assertRaises(Unauthorized, + checker.check, self._makeObject(), 'name') + self.assertEqual(len(checker._file), 1) + self.assertEqual(checker._file[0], + '[CHK] - Unauthorized: name on TESTING\n') + def test_check_forbidden_attribute(self): from zope.security.interfaces import ForbiddenAttribute checker = self._makeOne(ForbiddenAttribute) |