From 4af83ba476c82bf8dc77494628132ed651cebc6a Mon Sep 17 00:00:00 2001 From: Mike Bayer <mike_mp@zzzcomputing.com> Date: Thu, 26 Feb 2009 23:49:20 +0000 Subject: [PATCH] - Fixed lexing support for whitespace around '=' sign in defs. [ticket:102] --- CHANGES | 2 ++ lib/mako/lexer.py | 2 +- test/lexer.py | 12 +++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index ab3eeef..4798462 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,8 @@ - Added last_modified accessor to Template, returns the time.time() when the module was created. [ticket:97] +- Fixed lexing support for whitespace + around '=' sign in defs. [ticket:102] 0.2.4 - Fixed compatibility with Jython 2.5b1. diff --git a/lib/mako/lexer.py b/lib/mako/lexer.py index c5c39df..cbaf349 100644 --- a/lib/mako/lexer.py +++ b/lib/mako/lexer.py @@ -185,7 +185,7 @@ class Lexer(object): ([\w\.\:]+) # keyword - ((?:\s+\w+|=|".*?"|'.*?')*) # attrname, = sign, string expression + ((?:\s+\w+|\s*=\s*|".*?"|'.*?')*) # attrname, = sign, string expression \s* # more whitespace diff --git a/test/lexer.py b/test/lexer.py index f0062d0..39d5ac5 100644 --- a/test/lexer.py +++ b/test/lexer.py @@ -122,7 +122,17 @@ class LexerTest(unittest.TestCase): assert False except exceptions.CompileException, e: assert str(e) == "Missing parenthesis in %def at line: 2 char: 9" - + + def test_whitespace_equals(self): + template = """ + <%def name = "adef()" > + adef + </%def> + """ + + node = Lexer(template).parse() + assert repr(node) == r"""TemplateNode({}, [Text(u'\n ', (1, 1)), DefTag(u'def', {u'name': u'adef()'}, (2, 13), ["Text(u'\\n adef\\n ', (2, 36))"]), Text(u'\n ', (4, 20))])""" + def test_ns_tag_closed(self): template = """ -- GitLab