Commit 8db7251f authored by Tres Seaver's avatar Tres Seaver

Launchpad #198274: "empty" ZopePageTemplates could not be unpickled.

parent 9ee89323
......@@ -413,7 +413,8 @@ class ZopePageTemplate(Script, PageTemplate, Historical, Cacheable,
# 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)
......
......@@ -191,6 +191,17 @@ class ZPTUnicodeEncodingConflictResolution(ZopeTestCase):
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):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment