[z3-checkins] r5253 - in z3/Five/trunk: . tests
tests/products/FiveTest
philikon at codespeak.net
philikon at codespeak.net
Wed Jun 23 13:28:12 MEST 2004
Author: philikon
Date: Wed Jun 23 13:28:11 2004
New Revision: 5253
Modified:
z3/Five/trunk/fiveconfigure.py
z3/Five/trunk/meta.zcml
z3/Five/trunk/tests/products/FiveTest/browser.py
z3/Five/trunk/tests/products/FiveTest/configure.zcml
z3/Five/trunk/tests/test_five.py
Log:
Implement the <browser:pages> complex directive.
I'm surprised how easy this was and how little time it took. Wow.
Modified: z3/Five/trunk/fiveconfigure.py
==============================================================================
--- z3/Five/trunk/fiveconfigure.py (original)
+++ z3/Five/trunk/fiveconfigure.py Wed Jun 23 13:28:11 2004
@@ -108,6 +108,31 @@
args = (new_class,)
)
+# verbatim from Zope3/src/zope/app/publisher/browser/viewmeta.py
+class pages:
+
+ def __init__(self, _context, for_, permission,
+ layer='default', class_=None,
+ allowed_interface=None, allowed_attributes=None,
+ ):
+ self.opts = dict(for_=for_, permission=permission,
+ layer=layer, class_=class_,
+ allowed_interface=allowed_interface,
+ allowed_attributes=allowed_attributes,
+ )
+
+ def page(self, _context, name, attribute='__call__', template=None,
+ menu=None, title=None):
+ return page(_context,
+ name=name,
+ attribute=attribute,
+ template=template,
+ menu=menu, title=title,
+ **(self.opts))
+
+ def __call__(self):
+ return ()
+
def _handle_for(_context, for_):
if for_ is not None:
_context.action(
Modified: z3/Five/trunk/meta.zcml
==============================================================================
--- z3/Five/trunk/meta.zcml (original)
+++ z3/Five/trunk/meta.zcml Wed Jun 23 13:28:11 2004
@@ -90,6 +90,19 @@
handler=".fiveconfigure.page"
/>
+ <meta:complexDirective
+ name="pages"
+ schema="zope.app.publisher.browser.metadirectives.IPagesDirective"
+ handler=".fiveconfigure.pages"
+ >
+
+ <meta:subdirective
+ name="page"
+ schema="zope.app.publisher.browser.metadirectives.IPagesPageSubdirective"
+ />
+
+ </meta:complexDirective>
+
</meta:directives>
<meta:directives namespace="http://namespaces.zope.org/five">
Modified: z3/Five/trunk/tests/products/FiveTest/browser.py
==============================================================================
--- z3/Five/trunk/tests/products/FiveTest/browser.py (original)
+++ z3/Five/trunk/tests/products/FiveTest/browser.py Wed Jun 23 13:28:11 2004
@@ -7,3 +7,6 @@
"""Docstring"""
return "The eagle has landed"
+ def mouse(self):
+ """Docstring"""
+ return "The mouse has been eaten by the eagle"""
Modified: z3/Five/trunk/tests/products/FiveTest/configure.zcml
==============================================================================
--- z3/Five/trunk/tests/products/FiveTest/configure.zcml (original)
+++ z3/Five/trunk/tests/products/FiveTest/configure.zcml Wed Jun 23 13:28:11 2004
@@ -16,6 +16,22 @@
permission="zope.ViewManagementScreens"
/>
+ <!-- attribute page -->
+ <browser:pages
+ for=".interfaces.ISimpleContent"
+ class=".browser.SimpleContentView"
+ permission="zope.ViewManagementScreens"
+ >
+ <browser:page
+ name="eagle-page.txt"
+ attribute="eagle"
+ />
+ <browser:page
+ name="mouse-page.txt"
+ attribute="mouse"
+ />
+ </browser:pages>
+
<!-- template/class page -->
<browser:page
for=".interfaces.ISimpleContent"
Modified: z3/Five/trunk/tests/test_five.py
==============================================================================
--- z3/Five/trunk/tests/test_five.py (original)
+++ z3/Five/trunk/tests/test_five.py Wed Jun 23 13:28:11 2004
@@ -42,6 +42,15 @@
self.assert_(isinstance(view, SimpleContentView))
self.assertEquals('The eagle has landed', view())
+ def test_pages_view(self):
+ view = self.folder.unrestrictedTraverse('testoid/eagle-page.txt')
+ self.assert_(isinstance(view, SimpleContentView))
+ self.assertEquals('The eagle has landed', view())
+
+ view = self.folder.unrestrictedTraverse('testoid/mouse-page.txt')
+ self.assert_(isinstance(view, SimpleContentView))
+ self.assertEquals('The mouse has been eaten by the eagle', view())
+
def test_template_view(self):
view = self.folder.unrestrictedTraverse('testoid/falcon.html')
self.assert_(isinstance(view, SimpleContentView))
More information about the z3-checkins
mailing list