summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2008-09-21 17:08:48 +0200
committerArmin Ronacher <armin.ronacher@active-4.com>2008-09-21 17:08:48 +0200
commit335b87a84695854f3af03ada3131c55fc59d4a31 (patch)
tree4adc3de2079b3c2701e9ea9c27c56a78c8770b65
parent5799605a1e6d0a944ad98d30f8a2dd46d8aaef9c (diff)
downloadjinja2-335b87a84695854f3af03ada3131c55fc59d4a31.tar.gz
Fixed a bug in constant folding of keyword arguments to filter calls. Thanks noskolo.
--HG-- branch : trunk
-rw-r--r--jinja2/nodes.py3
-rw-r--r--tests/test_old_bugs.py18
2 files changed, 21 insertions, 0 deletions
diff --git a/jinja2/nodes.py b/jinja2/nodes.py
index 034becf..ec2ed3e 100644
--- a/jinja2/nodes.py
+++ b/jinja2/nodes.py
@@ -464,6 +464,9 @@ class Keyword(Helper):
"""A key, value pair for keyword arguments where key is a string."""
fields = ('key', 'value')
+ def as_const(self):
+ return self.key, self.value.as_const()
+
class CondExpr(Expr):
"""A conditional expression (inline if expression). (``{{
diff --git a/tests/test_old_bugs.py b/tests/test_old_bugs.py
new file mode 100644
index 0000000..08db225
--- /dev/null
+++ b/tests/test_old_bugs.py
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+"""
+ Tests for old bugs
+ ~~~~~~~~~~~~~~~~~~
+
+ Unittest that test situations caused by various older bugs.
+
+ :copyright: Copyright 2008 by Armin Ronacher.
+ :license: BSD.
+"""
+from jinja2 import Environment
+
+def test_keyword_folding():
+ env = Environment()
+ env.filters['testing'] = lambda value, some: value + some
+ assert env.from_string("{{ 'test'|testing(some='stuff') }}") \
+ .render() == 'teststuff'
+