diff options
author | Jason Madden <jamadden@gmail.com> | 2017-11-30 11:47:28 -0600 |
---|---|---|
committer | Jason Madden <jamadden@gmail.com> | 2017-11-30 11:47:28 -0600 |
commit | ab429edc94e3d6db26ff398672c716982a5d64c0 (patch) | |
tree | d0fb07f95cfed0f1b7437dbe35cec3435929831c /src/zope/security/tests/test_permission.py | |
parent | 4844db9ddcc539be3d5ff31a884621e0e258c075 (diff) | |
download | zope-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.py | 34 |
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): |