[Zope-Checkins] SVN: Zope/trunk/lib/python/Products/PageTemplates/
Launchpad #198274: "empty" ZopePageTemplates could not be unpickled.
Tres Seaver
tseaver at palladion.com
Tue Mar 4 13:12:59 EST 2008
Log message for revision 84464:
Launchpad #198274: "empty" ZopePageTemplates could not be unpickled.
Changed:
U Zope/trunk/lib/python/Products/PageTemplates/ZopePageTemplate.py
U Zope/trunk/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py
-=-
Modified: Zope/trunk/lib/python/Products/PageTemplates/ZopePageTemplate.py
===================================================================
--- Zope/trunk/lib/python/Products/PageTemplates/ZopePageTemplate.py 2008-03-04 18:10:17 UTC (rev 84463)
+++ Zope/trunk/lib/python/Products/PageTemplates/ZopePageTemplate.py 2008-03-04 18:12:59 UTC (rev 84464)
@@ -413,7 +413,8 @@
# Perform on-the-fly migration to unicode.
# Perhaps it might be better to work with the 'generation' module
# here?
- if not isinstance(state['_text'], unicode):
+ _text = state.get('_text')
+ if _text is not None and not isinstance(state['_text'], unicode):
text, encoding = convertToUnicode(state['_text'],
state.get('content_type', 'text/html'),
preferred_encodings)
Modified: Zope/trunk/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py
===================================================================
--- Zope/trunk/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py 2008-03-04 18:10:17 UTC (rev 84463)
+++ Zope/trunk/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py 2008-03-04 18:12:59 UTC (rev 84464)
@@ -191,6 +191,17 @@
self.failUnless(result.startswith(unicode('<div>üöä</div>',
'iso-8859-15')))
+ def test_bug_198274(self):
+ # See https://bugs.launchpad.net/bugs/198274
+ # ZPT w/ '_text' not assigned can't be unpickled.
+ import cPickle
+ empty = ZopePageTemplate(id='empty', text=' ',
+ content_type='text/html',
+ output_encoding='ascii',
+ )
+ state = cPickle.dumps(empty, protocol=1)
+ clone = cPickle.loads(state)
+
class ZopePageTemplateFileTests(ZopeTestCase):
def testPT_RenderWithAscii(self):
More information about the Zope-Checkins
mailing list