Skip to content
Snippets Groups Projects
Commit 27610239 authored by Mike Bayer's avatar Mike Bayer
Browse files

added exceptions unit test, changed myghtyutils to beaker in docs

parent 8d67633e
No related branches found
No related tags found
No related merge requests found
......@@ -9,7 +9,7 @@ Any template or component can be cached using the `cache` argument to the `<%pag
The above template, after being executed the first time, will store its content within a cache that by default is scoped within memory. Subsequent calls to the template's `render()` method will return content directly from the cache. When the `Template` object itself falls out of scope, its corresponding cache is garbage collected along with the template.
Caching requires that the `myghtyutils` package be installed on the system.
Caching requires that the `beaker` package be installed on the system.
The caching flag and all its options can be used with the `<%def>` tag.
......
# -*- coding: utf-8 -*-
import sys
import unittest
from mako import exceptions
from mako.template import Template
class ExceptionsTest(unittest.TestCase):
def test_html_error_template(self):
"""test the html_error_template"""
code = """
% i = 0
"""
try:
template = Template(code)
template.render()
except exceptions.CompileException, ce:
html_error = exceptions.html_error_template().render()
assert ("CompileException: Fragment 'i = 0' is not a partial "
"control statement") in html_error
assert '<style>' in html_error
assert '</style>' in html_error
html_error_stripped = html_error.strip()
assert html_error_stripped.startswith('<html>')
assert html_error_stripped.endswith('</html>')
not_full = exceptions.html_error_template().render(full=False)
assert '<html>' not in not_full
assert '</html>' not in not_full
assert '<style>' in not_full
assert '</style>' in not_full
no_css = exceptions.html_error_template().render(css=False)
assert '<style>' not in no_css
assert '</style>' not in no_css
else:
assert False, ("This function should trigger a CompileException, "
"but didn't")
def test_utf8_html_error_template(self):
"""test the html_error_template with a Template containing utf8 chars"""
code = """# -*- coding: utf-8 -*-
% if 2 == 2: # an innocently-looking comment
${u'привет'}
% endif
"""
try:
template = Template(code)
template.render()
except exceptions.CompileException, ce:
html_error = exceptions.html_error_template().render()
assert ("CompileException: Fragment 'if 2 == 2: # an "
"innocently-looking comment' is not a partial control "
"statement at line: 2 char: 1") in html_error
assert u"3 ${u'привет'}".encode(sys.getdefaultencoding(),
'htmlentityreplace') in html_error
else:
assert False, ("This function should trigger a CompileException, "
"but didn't")
if __name__ == '__main__':
unittest.main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment