Mercurial > genshi > mirror
changeset 370:077fe85dff13 stable-0.3.x
Ported [445] to 0.3.x.
author | cmlenz |
---|---|
date | Wed, 22 Nov 2006 21:03:31 +0000 |
parents | 0d749146842c |
children | 1a0c19b02025 |
files | genshi/template.py genshi/tests/template.py |
diffstat | 2 files changed, 37 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/genshi/template.py +++ b/genshi/template.py @@ -1205,7 +1205,9 @@ ('choose', ChooseDirective), ('with', WithDirective)] - _DIRECTIVE_RE = re.compile(r'^\s*(?<!\\)#((?:\w+|#).*)\n?', re.MULTILINE) + _DIRECTIVE_RE = re.compile(r'(?:^[ \t]*(?<!\\)#(end).*\n?)|' + r'(?:^[ \t]*(?<!\\)#((?:\w+|#).*)\n?)', + re.MULTILINE) def _parse(self, encoding): """Parse the template from text input."""
--- a/genshi/tests/template.py +++ b/genshi/tests/template.py @@ -371,7 +371,8 @@ #end ${echo('Hi', name='you')} """) - self.assertEqual(""" Hi, you! + self.assertEqual(""" + Hi, you! """, str(tmpl.generate())) @@ -1168,13 +1169,44 @@ #if foo bar #end 'if foo'""") - self.assertEqual('', str(tmpl.generate())) + self.assertEqual('\n', str(tmpl.generate())) def test_latin1_encoded(self): text = u'$foo\xf6$bar'.encode('iso-8859-1') tmpl = TextTemplate(text, encoding='iso-8859-1') self.assertEqual(u'x\xf6y', unicode(tmpl.generate(foo='x', bar='y'))) + def test_empty_lines1(self): + tmpl = TextTemplate("""Your items: + + #for item in items + * ${item} + #end""") + self.assertEqual("""Your items: + + * 0 + * 1 + * 2 +""", tmpl.generate(items=range(3)).render('text')) + + def test_empty_lines2(self): + tmpl = TextTemplate("""Your items: + + #for item in items + * ${item} + + #end""") + self.assertEqual("""Your items: + + * 0 + + * 1 + + * 2 + +""", tmpl.generate(items=range(3)).render('text')) + + class TemplateLoaderTestCase(unittest.TestCase): """Tests for the template loader."""