encode Django templates render (#20396)
This commit is contained in:
parent
b77196695d
commit
47ca25760f
|
@ -1,7 +1,22 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import pytest
|
||||
|
||||
from quixote import cleanup
|
||||
from qommon.template import Template, TemplateError
|
||||
|
||||
from utilities import create_temporary_pub, clean_temporary_pub
|
||||
|
||||
|
||||
def setup_module(module):
|
||||
cleanup()
|
||||
global pub
|
||||
pub = create_temporary_pub()
|
||||
|
||||
|
||||
def teardown_module(module):
|
||||
clean_temporary_pub()
|
||||
|
||||
|
||||
def test_template():
|
||||
tmpl = Template('')
|
||||
|
@ -42,3 +57,17 @@ def test_template():
|
|||
tmpl = Template('[if-any foo][foo][endif]', raises=True)
|
||||
tmpl = Template('[if-any foo][foo][endif]')
|
||||
assert tmpl.render({'foo': 'bar'}) == '[if-any foo][foo][endif]'
|
||||
|
||||
|
||||
def test_template_encoding():
|
||||
# django
|
||||
tmpl = Template('{{ foo }} à vélo')
|
||||
assert tmpl.render() == ' à vélo'
|
||||
assert tmpl.render({'foo': 'fou'}) == 'fou à vélo'
|
||||
assert tmpl.render({'foo': 'félé'}) == 'félé à vélo'
|
||||
|
||||
# ezt
|
||||
tmpl = Template('[foo] à vélo')
|
||||
assert tmpl.render() == '[foo] à vélo'
|
||||
assert tmpl.render({'foo': 'fou'}) == 'fou à vélo'
|
||||
assert tmpl.render({'foo': 'félé'}) == 'félé à vélo'
|
||||
|
|
|
@ -484,13 +484,14 @@ class Template(object):
|
|||
def django_render(self, context={}):
|
||||
context = DjangoContext(context)
|
||||
try:
|
||||
return self.template.render(context)
|
||||
rendered = self.template.render(context)
|
||||
except (DjangoTemplateSyntaxError, DjangoVariableDoesNotExist) as e:
|
||||
if self.raises:
|
||||
from qommon import _
|
||||
raise TemplateError(_('failure to render Django template: %s'), e)
|
||||
else:
|
||||
return self.value
|
||||
return rendered.encode(get_publisher().site_charset)
|
||||
|
||||
def ezt_render(self, context={}):
|
||||
fd = StringIO()
|
||||
|
|
Loading…
Reference in New Issue