diff options
author | Dan Korostelev <nadako@gmail.com> | 2009-03-12 03:09:05 +0000 |
---|---|---|
committer | Dan Korostelev <nadako@gmail.com> | 2009-03-12 03:09:05 +0000 |
commit | 6a608ce769ea99474b170c30bee30f515521dfb0 (patch) | |
tree | 368e85848c232cb659460e28c80147c006ec5f8b | |
parent | fce7adeef7814250609a73da4695290e2c1c009f (diff) | |
download | zope-security-6a608ce769ea99474b170c30bee30f515521dfb0.tar.gz |
Add zope.i18nmessage.Message to non-proxied basic types, as it's immutable and it was done by zope.app.security.
Add __name__ and __parent__ to list of available by default attributes. It was also done by zope.app.security before.
-rw-r--r-- | CHANGES.txt | 6 | ||||
-rw-r--r-- | src/zope/security/checker.py | 6 | ||||
-rw-r--r-- | src/zope/security/tests/test_checker.py | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 967a7d5..6867657 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -5,6 +5,12 @@ CHANGES 3.6.2 (unreleased) ------------------ +- Add zope.i18nmessageid.Message to non-proxied basic types. It's okay, because + messages are immutable. It was done by zope.app.security before. + +- Add "__name__" and "__parent__" attributes to list of available by default. + This was also done by zope.app.security package before. + - Added PermissionsVocabulary and PermissionIdsVocabulary vocabularies to the ``zope.security.permission`` module. They were moved from the ``zope.app.security`` package. diff --git a/src/zope/security/checker.py b/src/zope/security/checker.py index 1c3ddd2..603c37d 100644 --- a/src/zope/security/checker.py +++ b/src/zope/security/checker.py @@ -37,6 +37,7 @@ from zope.exceptions import DuplicationError import zope.interface.interface import zope.interface.interfaces import zope.interface.declarations +from zope.i18nmessageid import Message from zope.interface import directlyProvides, Interface, implements from zope.interface.interfaces import IInterface, IDeclaration @@ -564,6 +565,7 @@ _available_by_default[:] = ['__lt__', '__le__', '__eq__', '__hash__', '__nonzero__', '__class__', '__providedBy__', '__implements__', '__repr__', '__conform__', + '__name__', '__parent__', ] _callableChecker = NamesChecker(['__str__', '__name__', '__call__']) @@ -612,6 +614,7 @@ BasicTypes = BasicTypes({ types.NoneType: NoProxy, str: NoProxy, unicode: NoProxy, + Message: NoProxy, # Messages are immutable, so it's okay bool: NoProxy, datetime.timedelta: NoProxy, datetime.datetime: NoProxy, @@ -635,7 +638,8 @@ BasicTypes_examples = { datetime.timedelta: datetime.timedelta(3), datetime.datetime: datetime.datetime(2003, 1, 1), datetime.date: datetime.date(2003, 1, 1), - datetime.time: datetime.time(23, 58) + datetime.time: datetime.time(23, 58), + Message: Message('message', domain='hello') } diff --git a/src/zope/security/tests/test_checker.py b/src/zope/security/tests/test_checker.py index f739c71..d66f608 100644 --- a/src/zope/security/tests/test_checker.py +++ b/src/zope/security/tests/test_checker.py @@ -322,6 +322,8 @@ class Test(TestCase, CleanUp): self.assertEqual(checker.check(C, '__ge__'), None) self.assertEqual(checker.check(C, '__eq__'), None) self.assertEqual(checker.check(C, '__ne__'), None) + self.assertEqual(checker.check(C, '__name__'), None) + self.assertEqual(checker.check(C, '__parent__'), None) def test_setattr(self): checker = NamesChecker(['a', 'b', 'c', '__getitem__'], |