From c8cf2256655ee4b34ec501325b9016608b5cce5f Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Thu, 15 Jan 2009 00:20:04 +0000 Subject: - Instead of invariably using ``webob.Request`` as the "request factory" (e.g. in the ``Router`` class) and ``webob.Response`` and the "response factory" (e.g. in ``render_template_to_response``), allow both to be overridden via a ZCML utility hook. See the "Using ZCML Hooks" chapter of the documentation for more information. --- repoze/bfg/tests/test_xslt.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'repoze/bfg/tests/test_xslt.py') diff --git a/repoze/bfg/tests/test_xslt.py b/repoze/bfg/tests/test_xslt.py index 3755ad8a5..38e693937 100644 --- a/repoze/bfg/tests/test_xslt.py +++ b/repoze/bfg/tests/test_xslt.py @@ -137,6 +137,28 @@ class RenderTransformToResponseTests(Base, unittest.TestCase): self.assertEqual(len(result.headerlist), 2) self.assertEqual(queryUtility(INodeTemplateRenderer, minimal), utility) + def test_alternate_iresponse_factory(self): + self._zcmlConfigure() + from repoze.bfg.interfaces import IResponseFactory + from zope.component import getGlobalSiteManager + gsm = getGlobalSiteManager() + from webob import Response + class Response2(Response): + pass + gsm.registerUtility(Response2, IResponseFactory) + from zope.component import getGlobalSiteManager + from repoze.bfg.xslt import XSLTemplateRenderer + from repoze.bfg.interfaces import INodeTemplateRenderer + minimal = self._getTemplatePath('minimal.xsl') + utility = XSLTemplateRenderer(minimal) + gsm = getGlobalSiteManager() + gsm.registerUtility(utility, INodeTemplateRenderer, name=minimal) + from lxml import etree + info = etree.Element("info") + result = self._callFUT(minimal, node=info) + self.failUnless(isinstance(result, Response2)) + + class RenderTransformTests(Base, unittest.TestCase): def _callFUT(self, path, node): from repoze.bfg.xslt import render_transform -- cgit v1.2.3