Mercurial > genshi > genshi-test
changeset 896:248d6671a7e1
Fix for infinite recursion when parsing argument names from tuples. Closes #383.
author | cmlenz |
---|---|
date | Wed, 21 Apr 2010 22:02:28 +0000 |
parents | f30c9fb10272 |
children | 85e4678337cf |
files | genshi/template/eval.py genshi/template/tests/eval.py |
diffstat | 2 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/genshi/template/eval.py +++ b/genshi/template/eval.py @@ -499,7 +499,7 @@ names.add(node.asname or node.name) elif isinstance(node, _ast.Tuple): for elt in node.elts: - _process(node) + _process(elt) if hasattr(node, 'args'): for arg in node.args: _process(arg)
--- a/genshi/template/tests/eval.py +++ b/genshi/template/tests/eval.py @@ -248,6 +248,11 @@ expr = Expression("filter(lambda x: x > 2, items)") self.assertEqual([3, 4], expr.evaluate(data)) + def test_lambda_tuple_arg(self): + data = {'items': [(1, 2), (2, 1)]} + expr = Expression("filter(lambda (x, y): x > y, items)") + self.assertEqual([(2, 1)], expr.evaluate(data)) + def test_list_comprehension(self): expr = Expression("[n for n in numbers if n < 2]") self.assertEqual([0, 1], expr.evaluate({'numbers': range(5)}))