aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--lib/mako/lexer.py2
-rw-r--r--test/lexer.py12
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 = """