[Zope-Checkins] SVN: Zope/branches/2.11/ Forward port fix for Launchpad #229549 from the 2.10 branch.

Tres Seaver tseaver at palladion.com
Fri Jun 6 16:25:32 EDT 2008


Log message for revision 87217:
  Forward port fix for Launchpad #229549 from the 2.10 branch.
  

Changed:
  U   Zope/branches/2.11/doc/CHANGES.txt
  U   Zope/branches/2.11/lib/python/Products/PageTemplates/PageTemplate.py
  U   Zope/branches/2.11/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py

-=-
Modified: Zope/branches/2.11/doc/CHANGES.txt
===================================================================
--- Zope/branches/2.11/doc/CHANGES.txt	2008-06-06 20:13:25 UTC (rev 87216)
+++ Zope/branches/2.11/doc/CHANGES.txt	2008-06-06 20:25:32 UTC (rev 87217)
@@ -14,6 +14,9 @@
 
     Bugs Fixed
 
+      - Launchpad #229549:  Don't ignore 'debug' flag when rendering
+        page templates (thanks to Eric Steele for the patch).
+
       - Fixed against-the-rules zope.conf option 'fast_listen' to read
         'fast-listen' (dash, not underscore).
 

Modified: Zope/branches/2.11/lib/python/Products/PageTemplates/PageTemplate.py
===================================================================
--- Zope/branches/2.11/lib/python/Products/PageTemplates/PageTemplate.py	2008-06-06 20:13:25 UTC (rev 87216)
+++ Zope/branches/2.11/lib/python/Products/PageTemplates/PageTemplate.py	2008-06-06 20:25:32 UTC (rev 87217)
@@ -86,8 +86,16 @@
     def pt_render(self, source=False, extra_context={}):
         c = self.pt_getContext()
         c.update(extra_context)
-        return super(PageTemplate, self).pt_render(c, source=source)
+        debug = getattr(c['request'], 'debug', None)
+        if debug is not None:
+            showtal = getattr(debug, 'showTAL', False)
+            sourceAnnotations = getattr(debug, 'sourceAnnotations', False)
+        else:
+            showtal = sourceAnnotations = False
+        return super(PageTemplate, self).pt_render(c, source=source, sourceAnnotations=sourceAnnotations,
+                   showtal=showtal)
 
+
     def pt_errors(self, namespace={}):
         self._cook_check()
         err = self._v_errors

Modified: Zope/branches/2.11/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py
===================================================================
--- Zope/branches/2.11/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py	2008-06-06 20:13:25 UTC (rev 87216)
+++ Zope/branches/2.11/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py	2008-06-06 20:25:32 UTC (rev 87217)
@@ -152,6 +152,20 @@
         state = cPickle.dumps(empty, protocol=1)
         clone = cPickle.loads(state)
 
+    def testDebugFlags(self):
+        # Test for bug 229549
+        manage_addPageTemplate(self.app, 'test', 
+                               text='<div tal:content="string:foo">bar</div>', 
+                               encoding='ascii')
+        zpt = self.app['test']
+        from zope.publisher.base import DebugFlags
+        self.app.REQUEST.debug = DebugFlags()
+        self.assertEqual(zpt.pt_render(), unicode('<div>foo</div>\n'))
+        self.app.REQUEST.debug.showTAL = True
+        self.assertEqual(zpt.pt_render(), unicode('<div tal:content="string:foo">foo</div>\n'))
+        self.app.REQUEST.debug.sourceAnnotations = True
+        self.assertEqual(zpt.pt_render().startswith(unicode('<!--')), True)
+
 class ZopePageTemplateFileTests(ZopeTestCase):
 
     def testPT_RenderWithAscii(self):



More information about the Zope-Checkins mailing list