[Checkins] SVN: z3c.template/trunk/ Use z3c.pt.compat compatibility layer to allow use of z3c.pt.
Malthe Borch
mborch at gmail.com
Sat Sep 13 16:05:42 EDT 2008
Log message for revision 91128:
Use z3c.pt.compat compatibility layer to allow use of z3c.pt.
Changed:
U z3c.template/trunk/CHANGES.txt
U z3c.template/trunk/buildout.cfg
U z3c.template/trunk/setup.py
U z3c.template/trunk/src/z3c/template/README.txt
D z3c.template/trunk/src/z3c/template/macro.py
U z3c.template/trunk/src/z3c/template/template.py
U z3c.template/trunk/src/z3c/template/tests.py
U z3c.template/trunk/src/z3c/template/zcml.txt
-=-
Modified: z3c.template/trunk/CHANGES.txt
===================================================================
--- z3c.template/trunk/CHANGES.txt 2008-09-13 19:56:22 UTC (rev 91127)
+++ z3c.template/trunk/CHANGES.txt 2008-09-13 20:05:41 UTC (rev 91128)
@@ -5,6 +5,8 @@
after 1.1.0
-----------
+* Allow use of ``z3c.pt`` using ``z3c.pt.compat`` compatibility later.
+
* forward the template kwargs to the options of the macro
1.1.0 (2007-10-08)
Modified: z3c.template/trunk/buildout.cfg
===================================================================
--- z3c.template/trunk/buildout.cfg 2008-09-13 19:56:22 UTC (rev 91127)
+++ z3c.template/trunk/buildout.cfg 2008-09-13 20:05:41 UTC (rev 91128)
@@ -5,3 +5,8 @@
[test]
recipe = zc.recipe.testrunner
eggs = z3c.template [test]
+environment = test-environment
+
+[test-environment]
+Z3C_PT_DEBUG = False
+Z3C_PT_CACHE = False
Modified: z3c.template/trunk/setup.py
===================================================================
--- z3c.template/trunk/setup.py 2008-09-13 19:56:22 UTC (rev 91127)
+++ z3c.template/trunk/setup.py 2008-09-13 20:05:41 UTC (rev 91128)
@@ -54,18 +54,20 @@
package_dir = {'':'src'},
namespace_packages = ['z3c'],
extras_require = dict(
- test = ['zope.app.testing', 'zope.testing'],
+ test = ['zope.app.testing',
+ 'zope.testing',
+ 'lxml>=2.1.1',
+ 'z3c.pt'],
),
install_requires = [
'setuptools',
- 'zope.app.pagetemplate',
'zope.component',
'zope.configuration',
'zope.interface',
'zope.pagetemplate',
'zope.publisher',
'zope.schema',
- 'zope.tal',
+ 'z3c.pt.compat [zpt]',
],
include_package_data = True,
zip_safe = False,
Modified: z3c.template/trunk/src/z3c/template/README.txt
===================================================================
--- z3c.template/trunk/src/z3c/template/README.txt 2008-09-13 19:56:22 UTC (rev 91127)
+++ z3c.template/trunk/src/z3c/template/README.txt 2008-09-13 20:05:41 UTC (rev 91128)
@@ -88,8 +88,8 @@
>>> template = component.getMultiAdapter((view, request),
... interfaces.IPageTemplate)
>>> template
- <zope.app.pagetemplate.viewpagetemplatefile.ViewPageTemplateFile object at ...>
-
+ <z3c.pt.compat.ViewPageTemplateFile object at ...>
+
Now that we have a registered layout template for the default layer we can
call our view again.
@@ -116,7 +116,7 @@
and a view:
- >>> from zope.app.pagetemplate import ViewPageTemplateFile
+ >>> from z3c.pt.compat import ViewPageTemplateFile
>>> class MyViewWithTemplate(BrowserPage):
... zope.interface.implements(IMyView)
... template = ViewPageTemplateFile(viewContent)
@@ -169,7 +169,7 @@
>>> layout = component.getMultiAdapter(
... (view2, request), interfaces.ILayoutTemplate)
>>> layout
- <zope.app.pagetemplate.viewpagetemplatefile.ViewPageTemplateFile ...>
+ <z3c.pt.compat.ViewPageTemplateFile ...>
Now that we have a registered layout template for the default layer we can
call our view again.
Deleted: z3c.template/trunk/src/z3c/template/macro.py
===================================================================
--- z3c.template/trunk/src/z3c/template/macro.py 2008-09-13 19:56:22 UTC (rev 91127)
+++ z3c.template/trunk/src/z3c/template/macro.py 2008-09-13 20:05:41 UTC (rev 91128)
@@ -1,47 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2005 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-$Id$
-"""
-__docformat__ = "reStructuredText"
-
-from StringIO import StringIO
-
-from zope.tal.talinterpreter import TALInterpreter
-
-
-class Macro(object):
- """Provides a single macro from a template for rendering."""
-
- def __init__(self, template, macroName, view, request, contentType):
- self.template = template
- self.macroName = macroName
- self.view = view
- self.request = request
- self.contentType = contentType
-
- def __call__(self, *args, **kwargs):
- program = self.template.macros[self.macroName]
- output = StringIO(u'')
- namespace = self.template.pt_getContext(
- self.view, self.request, options=kwargs)
- context = self.template.pt_getEngineContext(namespace)
- TALInterpreter(program, None,
- context, output, tal=True, showtal=False,
- strictinsert=0, sourceAnnotations=False)()
- if not self.request.response.getHeader("Content-Type"):
- self.request.response.setHeader("Content-Type",
- self.contentType)
- return output.getvalue()
-
Modified: z3c.template/trunk/src/z3c/template/template.py
===================================================================
--- z3c.template/trunk/src/z3c/template/template.py 2008-09-13 19:56:22 UTC (rev 91127)
+++ z3c.template/trunk/src/z3c/template/template.py 2008-09-13 20:05:41 UTC (rev 91128)
@@ -15,14 +15,25 @@
$Id$
"""
-import zope.component
+from zope import component
from zope.pagetemplate.interfaces import IPageTemplate
-from zope.app.pagetemplate import ViewPageTemplateFile
+from z3c.pt import compat
from z3c.template import interfaces
-from z3c.template.macro import Macro
+class Macro(object):
+ def __init__(self, template, macroName, view, request, contentType):
+ self.template = template
+ self.macroName = macroName
+ self.view = view
+ self.request = request
+ self.contentType = contentType
+ def __call__(self, **kwargs):
+ render = compat.bind_macro(
+ self.template, self.view, self.request, self.macroName)
+ return render(content_type=self.contentType, **kwargs)
+
class TemplateFactory(object):
"""Template factory."""
@@ -31,16 +42,15 @@
def __init__(self, filename, contentType, macro=None):
self.macro = macro
self.contentType = contentType
- self.template = ViewPageTemplateFile(filename,
+ self.template = compat.ViewPageTemplateFile(filename,
content_type=contentType)
def __call__(self, view, request):
if self.macro is None:
return self.template
- return Macro(self.template, self.macro, view, request,
- self.contentType)
+ return Macro(
+ self.template, self.macro, view, request, self.contentType)
-
class BoundViewTemplate(object):
def __init__(self, pt, ob):
object.__setattr__(self, 'im_func', pt)
@@ -59,7 +69,6 @@
def __repr__(self):
return "<BoundViewTemplate of %r>" % self.im_self
-
class ViewTemplate(object):
def __init__(self, provides=IPageTemplate, name=u''):
@@ -67,7 +76,7 @@
self.name = name
def __call__(self, instance, *args, **keywords):
- template = zope.component.getMultiAdapter(
+ template = component.getMultiAdapter(
(instance, instance.request), self.provides, name=self.name)
return template(instance, *args, **keywords)
Modified: z3c.template/trunk/src/z3c/template/tests.py
===================================================================
--- z3c.template/trunk/src/z3c/template/tests.py 2008-09-13 19:56:22 UTC (rev 91127)
+++ z3c.template/trunk/src/z3c/template/tests.py 2008-09-13 20:05:41 UTC (rev 91128)
@@ -17,31 +17,42 @@
__docformat__ = "reStructuredText"
import unittest
+import itertools
from zope.testing import doctest
from zope.testing.doctestunit import DocFileSuite
from zope.app.testing import setup
+from zope.configuration import xmlconfig
+import z3c.pt.compat
def setUp(test):
root = setup.placefulSetUp(site=True)
test.globs['root'] = root
-
def tearDown(test):
setup.placefulTearDown()
+def setUpZPT(suite):
+ z3c.pt.compat.config.disable()
+ setUp(suite)
+
+def setUpZ3CPT(suite):
+ z3c.pt.compat.config.enable()
+ setUp(suite)
+ xmlconfig.XMLConfig('configure.zcml', z3c.pt)()
def test_suite():
- return unittest.TestSuite((
+ tests = ((
DocFileSuite('README.txt',
setUp=setUp, tearDown=tearDown,
optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
),
DocFileSuite('zcml.txt', setUp=setUp, tearDown=tearDown,
- optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,),
- ))
+ optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,)
+ ) for setUp in (setUpZPT, setUpZ3CPT,))
+ return unittest.TestSuite(itertools.chain(*tests))
if __name__ == '__main__':
unittest.main(defaultTest='test_suite')
Modified: z3c.template/trunk/src/z3c/template/zcml.txt
===================================================================
--- z3c.template/trunk/src/z3c/template/zcml.txt 2008-09-13 19:56:22 UTC (rev 91127)
+++ z3c.template/trunk/src/z3c/template/zcml.txt 2008-09-13 20:05:41 UTC (rev 91128)
@@ -18,7 +18,7 @@
>>> import os, tempfile
>>> temp_dir = tempfile.mkdtemp()
- >>> file = os.path.join(temp_dir, 'file.pt')
+ >>> file = os.path.join(temp_dir, 'content.pt')
>>> open(file, 'w').write('''<div>content</div>''')
and a interface
@@ -67,7 +67,7 @@
and check them:
>>> template
- <zope.app.pagetemplate.viewpagetemplatefile.ViewPageTemplateFile object ...>
+ <z3c.pt.compat.ViewPageTemplateFile object ...>
>>> print template(view)
<div>content</div>
@@ -78,7 +78,7 @@
Define a layout template
- >>> file = os.path.join(temp_dir, 'file.pt')
+ >>> file = os.path.join(temp_dir, 'layout.pt')
>>> open(file, 'w').write('''<div>layout</div>''')
and register them as a layout template within the ``z3c:layout`` directive:
@@ -102,7 +102,7 @@
and check them:
>>> layout
- <zope.app.pagetemplate.viewpagetemplatefile.ViewPageTemplateFile object ...>
+ <z3c.pt.compat.ViewPageTemplateFile object ...>
>>> print layout(view)
<div>layout</div>
More information about the Checkins
mailing list