Skip to content

Commit

Permalink
Coverage for z.s.permission.PermissionsVocabulary.
Browse files Browse the repository at this point in the history
  • Loading branch information
tseaver committed Feb 12, 2013
1 parent bc7065f commit e1a8c39
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions src/zope/security/tests/test_permission.py
Expand Up @@ -120,9 +120,52 @@ def test_skips_zope_Public(self):
self.assertEqual(list(self._callFUT()), ['testing'])


class Test_PermissionsVocabulary(unittest.TestCase):

def setUp(self):
from zope.component.testing import setUp
setUp()

def tearDown(self):
from zope.component.testing import tearDown
tearDown()

def _callFUT(self):
from zope.security.permission import PermissionsVocabulary
return PermissionsVocabulary()

def test_empty(self):
from zope.schema.vocabulary import SimpleVocabulary
vocabulary = self._callFUT()
self.assertTrue(isinstance(vocabulary, SimpleVocabulary))
self.assertEqual(list(vocabulary), [])

def test_w_registration(self):
self.assertEqual(list(self._callFUT()), [])
from zope.component import provideUtility
from zope.security.interfaces import IPermission
permission = object()
provideUtility(permission, IPermission, 'testing')
vocabulary = self._callFUT()
self.assertEqual([x.token for x in vocabulary], ['testing'])

def test_includes_zope_Public(self):
self.assertEqual(list(self._callFUT()), [])
from zope.component import provideUtility
from zope.security.checker import CheckerPublic
from zope.security.interfaces import IPermission
permission = object()
provideUtility(permission, IPermission, 'testing')
provideUtility(CheckerPublic, IPermission, 'zope.Public')
vocabulary = self._callFUT()
self.assertEqual(sorted([x.token for x in vocabulary]),
['testing', 'zope.Public'])


def test_suite():
return unittest.TestSuite([
unittest.makeSuite(PermissionTests),
unittest.makeSuite(Test_checkPermission),
unittest.makeSuite(Test_allPermissions),
unittest.makeSuite(Test_PermissionsVocabulary),
])

0 comments on commit e1a8c39

Please sign in to comment.