summaryrefslogtreecommitdiff
path: root/repoze/bfg/xslt.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-11-07 10:47:28 +0000
committerChris McDonough <chrism@agendaless.com>2008-11-07 10:47:28 +0000
commitdeb0dc316b64d5fb7bd0e15a1bafe269d3b33fbc (patch)
tree669d3eb3f6d00ce866b1d48fc977ca372aebc396 /repoze/bfg/xslt.py
parent569ba5128fb1fd028e0fe879e810f855a61c8a03 (diff)
downloadpyramid-deb0dc316b64d5fb7bd0e15a1bafe269d3b33fbc.tar.gz
pyramid-deb0dc316b64d5fb7bd0e15a1bafe269d3b33fbc.tar.bz2
pyramid-deb0dc316b64d5fb7bd0e15a1bafe269d3b33fbc.zip
Features
- Added a ``repoze.bfg.testing`` module to attempt to make it slightly easier to write unittest-based automated tests of BFG applications. Information about this class is in the documentation. - The default template renderer now supports testing better by looking for ``ITestingTemplateRenderer`` using a relative pathname. This is exposed indirectly through the API named ``registerTemplate`` in ``repoze.bfg.testing``. Deprecations - The names ``repoze.bfg.interfaces.ITemplate`` , ``repoze.bfg.interfaces.ITemplateFactory`` and ``repoze.bfg.interfaces.INodeTemplate`` have been deprecated. These should now be imported as ``repoze.bfg.interfaces.ITemplateRenderer`` and ``repoze.bfg.interfaces.ITemplateRendererFactory``, and ``INodeTemplateRenderer`` respectively. - The name ``repoze.bfg.chameleon_zpt.ZPTTemplateFactory`` is deprecated. Use ``repoze.bfg.chameleon_zpt.ZPTTemplateRenderer``. - The name ``repoze.bfg.chameleon_genshi.GenshiTemplateFactory`` is deprecated. Use ``repoze.bfg.chameleon_genshi.GenshiTemplateRenderer``. - The name ``repoze.bfg.xslt.XSLTemplateFactory`` is deprecated. Use ``repoze.bfg.xslt.XSLTemplateRenderer``.
Diffstat (limited to 'repoze/bfg/xslt.py')
-rw-r--r--repoze/bfg/xslt.py27
1 files changed, 17 insertions, 10 deletions
diff --git a/repoze/bfg/xslt.py b/repoze/bfg/xslt.py
index 949bde6da..660a18130 100644
--- a/repoze/bfg/xslt.py
+++ b/repoze/bfg/xslt.py
@@ -5,14 +5,15 @@ from webob import Response
from zope.component import queryUtility
from zope.component import getSiteManager
from zope.component.interfaces import ComponentLookupError
+from zope.deprecation import deprecated
from zope.interface import classProvides
from zope.interface import implements
from repoze.bfg.path import caller_path
-from repoze.bfg.interfaces import INodeTemplate
-from repoze.bfg.interfaces import ITemplateFactory
+from repoze.bfg.interfaces import INodeTemplateRenderer
+from repoze.bfg.interfaces import ITemplateRendererFactory
def get_transform(path, node):
""" Return a callable transform object. When called, the
@@ -23,18 +24,18 @@ def get_transform(path, node):
# Render using XSLT
path = caller_path(path)
- template = queryUtility(INodeTemplate, path)
- if template is None:
+ renderer = queryUtility(INodeTemplateRenderer, path)
+ if renderer is None:
if not os.path.exists(path):
raise ValueError('Missing template file: %s' % path)
- template = XSLTemplateFactory(path)
+ renderer = XSLTemplateRenderer(path)
try:
sm = getSiteManager()
except ComponentLookupError:
pass
else:
- sm.registerUtility(template, INodeTemplate, name=path)
- return template
+ sm.registerUtility(renderer, INodeTemplateRenderer, name=path)
+ return renderer
def render_transform(path, node, **kw):
""" Render a XSL template at the package-relative path (may also
@@ -52,9 +53,9 @@ def render_transform_to_response(path, node, **kw):
result = render_transform(path, node, **kw)
return Response(result)
-class XSLTemplateFactory(object):
- classProvides(ITemplateFactory)
- implements(INodeTemplate)
+class XSLTemplateRenderer(object):
+ classProvides(ITemplateRendererFactory)
+ implements(INodeTemplateRenderer)
def __init__(self, path, auto_reload=False):
self.path = path
@@ -65,6 +66,12 @@ class XSLTemplateFactory(object):
result = str(processor(node, **kw))
return result
+XSLTemplateFactory = XSLTemplateRenderer
+deprecated('ZPTTemplateFactory',
+ ('repoze.bfg.xslt.XSLTemplateFactory should now be '
+ 'imported as repoze.bfg.xslt.XSLTTemplateRenderer'))
+
+
# Manage XSLT processors on a per-thread basis
import threading
from lxml import etree