[Checkins] SVN: zope.browserzcml2/trunk/src/zope/browserzcml2/
Added test and ftest for ZPT accessing view class method
Philipp von Weitershausen
philikon at philikon.de
Fri Apr 21 16:06:27 EDT 2006
Log message for revision 67257:
Added test and ftest for ZPT accessing view class method
Changed:
U zope.browserzcml2/trunk/src/zope/browserzcml2/README.txt
U zope.browserzcml2/trunk/src/zope/browserzcml2/ftest.txt
U zope.browserzcml2/trunk/src/zope/browserzcml2/ftesting.zcml
U zope.browserzcml2/trunk/src/zope/browserzcml2/ftests.py
A zope.browserzcml2/trunk/src/zope/browserzcml2/test2.pt
U zope.browserzcml2/trunk/src/zope/browserzcml2/tests.py
-=-
Modified: zope.browserzcml2/trunk/src/zope/browserzcml2/README.txt
===================================================================
--- zope.browserzcml2/trunk/src/zope/browserzcml2/README.txt 2006-04-21 20:05:25 UTC (rev 67256)
+++ zope.browserzcml2/trunk/src/zope/browserzcml2/README.txt 2006-04-21 20:06:27 UTC (rev 67257)
@@ -150,7 +150,31 @@
>>> page()
u"Hi, the name's MacGyver.\n"
+Page Templates bound to pages this way can also make use of auxiliary
+view methods on the page class:
+ >>> class JackDaltonTemplatePage(zope.formlib.Page):
+ ... __call__ = ViewPageTemplateFile('test2.pt')
+ ... def getName(self):
+ ... return u'Jack Dalton'
+
+ >>> run_config("""
+ ... <browser2:page
+ ... for="*"
+ ... name="viewmethodpage.html"
+ ... factory="zope.browserzcml2.README.JackDaltonTemplatePage"
+ ... permission="zope.Public"
+ ... />
+ ... """)
+
+ >>> page = zope.component.getMultiAdapter((object(), request),
+ ... name=u'viewmethodpage.html')
+ >>> page #doctest: +ELLIPSIS
+ <zope.browserzcml2.README.JackDaltonTemplatePage object at ...>
+ >>> page()
+ u'My friend is Jack Dalton.\n'
+
+
Pages from Page Templates
-------------------------
Modified: zope.browserzcml2/trunk/src/zope/browserzcml2/ftest.txt
===================================================================
--- zope.browserzcml2/trunk/src/zope/browserzcml2/ftest.txt 2006-04-21 20:05:25 UTC (rev 67256)
+++ zope.browserzcml2/trunk/src/zope/browserzcml2/ftest.txt 2006-04-21 20:06:27 UTC (rev 67257)
@@ -76,7 +76,16 @@
>>> print browser.contents
Hi, the name's MacGyver.
+More than often, these Page Templates also want to access auxiliary
+methods of the page class, like this one:
+ >>> browser = Browser('http://localhost/bz2-viewmethodpage.html')
+ >>> print browser.headers['status']
+ 200 Ok
+ >>> print browser.contents
+ My friend is Jack Dalton.
+
+
Pages from templates
--------------------
Modified: zope.browserzcml2/trunk/src/zope/browserzcml2/ftesting.zcml
===================================================================
--- zope.browserzcml2/trunk/src/zope/browserzcml2/ftesting.zcml 2006-04-21 20:05:25 UTC (rev 67256)
+++ zope.browserzcml2/trunk/src/zope/browserzcml2/ftesting.zcml 2006-04-21 20:06:27 UTC (rev 67257)
@@ -38,6 +38,13 @@
permission="zope.Public"
/>
+ <browser2:page
+ for="*"
+ name="bz2-viewmethodpage.html"
+ factory="zope.browserzcml2.ftests.JackDaltonTemplatePage"
+ permission="zope.Public"
+ />
+
<browser2:pageTemplate
for="*"
name="bz2-pagetemplate.html"
Modified: zope.browserzcml2/trunk/src/zope/browserzcml2/ftests.py
===================================================================
--- zope.browserzcml2/trunk/src/zope/browserzcml2/ftests.py 2006-04-21 20:05:25 UTC (rev 67256)
+++ zope.browserzcml2/trunk/src/zope/browserzcml2/ftests.py 2006-04-21 20:06:27 UTC (rev 67257)
@@ -32,6 +32,11 @@
class MacGyverTemplatePage(zope.formlib.Page):
__call__ = ViewPageTemplateFile('test.pt')
+class JackDaltonTemplatePage(zope.formlib.Page):
+ __call__ = ViewPageTemplateFile('test2.pt')
+ def getName(self):
+ return u'Jack Dalton'
+
class PhoenixPages(object):
macgyver = ViewPageTemplateFile('test.pt')
def pete(self):
Added: zope.browserzcml2/trunk/src/zope/browserzcml2/test2.pt
===================================================================
--- zope.browserzcml2/trunk/src/zope/browserzcml2/test2.pt 2006-04-21 20:05:25 UTC (rev 67256)
+++ zope.browserzcml2/trunk/src/zope/browserzcml2/test2.pt 2006-04-21 20:06:27 UTC (rev 67257)
@@ -0,0 +1 @@
+My friend is <span tal:replace="view/getName" />.
\ No newline at end of file
Property changes on: zope.browserzcml2/trunk/src/zope/browserzcml2/test2.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: zope.browserzcml2/trunk/src/zope/browserzcml2/tests.py
===================================================================
--- zope.browserzcml2/trunk/src/zope/browserzcml2/tests.py 2006-04-21 20:05:25 UTC (rev 67256)
+++ zope.browserzcml2/trunk/src/zope/browserzcml2/tests.py 2006-04-21 20:06:27 UTC (rev 67257)
@@ -21,6 +21,7 @@
import zope.app.publisher.browser
from zope.testing import doctest, module
from zope.configuration import xmlconfig
+from zope.app.traversing.adapters import DefaultTraversable
__docformat__ = "reStructuredText"
@@ -38,13 +39,16 @@
_context = None
def setUp(test):
- global _context
- _context = xmlconfig.file('meta.zcml', zope.browserzcml2)
- xmlconfig.file('meta.zcml', zope.app.publisher.browser, _context)
test.globs['run_config'] = run_config
module.setUp(test, 'zope.browserzcml2.README')
zope.component.testing.setUp(test)
+ global _context
+ _context = xmlconfig.file('meta.zcml', zope.browserzcml2)
+ xmlconfig.file('meta.zcml', zope.app.publisher.browser, _context)
+
+ zope.component.provideAdapter(DefaultTraversable, (None,))
+
def tearDown(test):
global _context
_context = None
More information about the Checkins
mailing list