[z3-checkins] r14466 - z3/Five/trunk/browser/tests
philikon at codespeak.net
philikon at codespeak.net
Sun Jul 10 13:30:26 CEST 2005
Author: philikon
Date: Sun Jul 10 13:30:24 2005
New Revision: 14466
Modified:
z3/Five/trunk/browser/tests/pages.txt
z3/Five/trunk/browser/tests/test_security.py
Log:
move a low-level security test to pages doctest
Modified: z3/Five/trunk/browser/tests/pages.txt
==============================================================================
--- z3/Five/trunk/browser/tests/pages.txt (original)
+++ z3/Five/trunk/browser/tests/pages.txt Sun Jul 10 13:30:24 2005
@@ -172,6 +172,32 @@
</html>
+Security
+--------
+
+Test security on a low level (functional pages test has high-level
+security tests). Let's manually look up a protected view:
+
+ >>> from Products.Five.traversable import FakeRequest
+ >>> from zope.app import zapi
+ >>> request = FakeRequest()
+ >>> view = zapi.getView(self.folder.testoid, 'eagle.txt', request)
+
+It's protecting the object with the permission, and not the attribute,
+so we get ('',) instead of ('eagle',):
+
+ >>> getattr(view, '__ac_permissions__')
+ (('View management screens', ('',)),)
+
+Wrap into an acquisition so that imPermissionRole objects can be
+evaluated. __roles__ is a imPermissionRole object:
+
+ >>> view = view.__of__(self.folder.testoid)
+ >>> view_roles = getattr(view, '__roles__', None)
+ >>> view_roles
+ ('Manager',)
+
+
Other
-----
Modified: z3/Five/trunk/browser/tests/test_security.py
==============================================================================
--- z3/Five/trunk/browser/tests/test_security.py (original)
+++ z3/Five/trunk/browser/tests/test_security.py Sun Jul 10 13:30:24 2005
@@ -20,18 +20,14 @@
execfile(os.path.join(sys.path[0], 'framework.py'))
import unittest
-from Testing.ZopeTestCase import ZopeTestCase, FunctionalTestCase
-from Testing.ZopeTestCase import installProduct
+from Testing.ZopeTestCase import ZopeTestCase, installProduct
installProduct('Five')
installProduct('PythonScripts') # for RestrictedPythonTestCase
-from zope.app import zapi
import Products.Five.browser.tests
from Products.Five import zcml, BrowserView
-from Products.Five.traversable import FakeRequest
from Products.Five.testing import RestrictedPythonTestCase
from Products.Five.testing import manage_addFiveTraversableFolder
-from Products.Five.tests.test_security import Dummy1
from Products.Five.tests.simplecontent import manage_addSimpleContent
view_names = [
@@ -47,13 +43,6 @@
'public_template_page',
'public_template_class_page']
-class DummyView(BrowserView):
- """A dummy view"""
-
- def foo(self):
- """A foo"""
- return 'A foo view'
-
class SecurityTest(RestrictedPythonTestCase):
def afterSetUp(self):
@@ -86,47 +75,9 @@
self.check(
'context.restrictedTraverse("testoid/eagle.method").eagle()')
-class PageSecurityTest(ZopeTestCase):
-
- def test_page_security(self):
- decl = """
- <configure xmlns="http://namespaces.zope.org/zope"
- xmlns:browser="http://namespaces.zope.org/browser">
-
- <browser:page
- for="Products.Five.tests.test_security.IDummy"
- class="Products.Five.browser.tests.test_security.DummyView"
- attribute="foo"
- name="test_page_security"
- permission="zope2.ViewManagementScreens"
- />
-
- </configure>
- """
- zcml.load_string(decl)
- request = FakeRequest()
- # Wrap into an acquisition so that imPermissionRole objects
- # can be evaluated.
- view = zapi.getView(Dummy1(), 'test_page_security', request)
-
- ac = getattr(view, '__ac_permissions__')
- # It's protecting the object with the permission, and not the
- # attribute, so we get ('',) instead of ('foo',).
- ex_ac = (('View management screens', ('',)),)
- self.assertEquals(ac, ex_ac)
-
- # Wrap into an acquisition so that imPermissionRole objects
- # can be evaluated. __roles__ is a imPermissionRole object.
- view = view.__of__(self.folder)
- view_roles = getattr(view, '__roles__', None)
- self.failIf(view_roles is None)
- self.failIf(view_roles == ())
- self.assertEquals(view_roles, ('Manager',))
-
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(SecurityTest))
- suite.addTest(unittest.makeSuite(PageSecurityTest))
return suite
if __name__ == '__main__':
More information about the z3-checkins
mailing list