summaryrefslogtreecommitdiff
path: root/src/zope/security/tests/test_permission.py
diff options
context:
space:
mode:
authorJason Madden <jamadden@gmail.com>2017-11-30 11:47:28 -0600
committerJason Madden <jamadden@gmail.com>2017-11-30 11:47:28 -0600
commitab429edc94e3d6db26ff398672c716982a5d64c0 (patch)
treed0fb07f95cfed0f1b7437dbe35cec3435929831c /src/zope/security/tests/test_permission.py
parent4844db9ddcc539be3d5ff31a884621e0e258c075 (diff)
downloadzope-security-ab429edc94e3d6db26ff398672c716982a5d64c0.tar.gz
Fix default values for Permission's title and description in Py2issue48
And test this. This applies to both the class and the ZCML directive. Also adjust IPermission to use NativeStringLine for ``id``, since that's what ZCML has always been creating (it uses an Id, which subclasses NativeStringLine), and what's typically written in source code. Test that the permissions created from ZCML are valid with this change.
Diffstat (limited to 'src/zope/security/tests/test_permission.py')
-rw-r--r--src/zope/security/tests/test_permission.py34
1 files changed, 28 insertions, 6 deletions
diff --git a/src/zope/security/tests/test_permission.py b/src/zope/security/tests/test_permission.py
index 57e1d19..82ddea2 100644
--- a/src/zope/security/tests/test_permission.py
+++ b/src/zope/security/tests/test_permission.py
@@ -35,19 +35,23 @@ class PermissionTests(unittest.TestCase):
def test_instance_conforms_to_IPermission(self):
from zope.interface.verify import verifyObject
from zope.security.interfaces import IPermission
+ from zope.schema import getValidationErrors
verifyObject(IPermission, self._makeOne('testing'))
+ self.assertEqual([],
+ getValidationErrors(IPermission,
+ self._makeOne('testing')))
def test_ctor_only_id(self):
permission = self._makeOne('testing')
- self.assertEqual(permission.id, 'testing')
- self.assertEqual(permission.title, '')
- self.assertEqual(permission.description, '')
+ self.assertEqual(permission.id, u'testing')
+ self.assertEqual(permission.title, u'')
+ self.assertEqual(permission.description, u'')
def test_ctor_w_title_and_description(self):
- permission = self._makeOne('testing', 'TITLE', 'DESCRIPTION')
+ permission = self._makeOne('testing', u'TITLE', u'DESCRIPTION')
self.assertEqual(permission.id, 'testing')
- self.assertEqual(permission.title, 'TITLE')
- self.assertEqual(permission.description, 'DESCRIPTION')
+ self.assertEqual(permission.title, u'TITLE')
+ self.assertEqual(permission.description, u'DESCRIPTION')
class Test_checkPermission(PlacelessSetup, unittest.TestCase):
@@ -132,6 +136,24 @@ class Test_PermissionsVocabulary(PlacelessSetup, unittest.TestCase):
self.assertEqual(sorted([x.token for x in vocabulary]),
['testing', zope_Public])
+ def test_zcml_valid(self):
+ from zope.configuration import xmlconfig
+ import zope.security
+ from zope.interface.verify import verifyObject
+ from zope.security.interfaces import IPermission
+ from zope.schema import getValidationErrors
+
+
+ xmlconfig.file('configure.zcml', zope.security)
+ vocabulary = self._callFUT()
+ vocabulary = sorted(vocabulary, key=lambda term: term.token)
+ self.assertEqual(6, len(vocabulary))
+
+ for term in vocabulary:
+ p = term.value
+ __traceback_info__ = term.token, p
+ verifyObject(IPermission, p)
+ self.assertEqual([], getValidationErrors(IPermission, p))
class Test_PermissionIdsVocabulary(PlacelessSetup, unittest.TestCase):