Mercurial > genshi > genshi-test
changeset 102:12efdfe8af47
Ported [118] to trunk
author | jonas |
---|---|
date | Mon, 24 Jul 2006 21:58:46 +0000 |
parents | ef6794139671 |
children | 70ec95c8d1ea |
files | markup/eval.py markup/tests/eval.py |
diffstat | 2 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/markup/eval.py +++ b/markup/eval.py @@ -209,7 +209,11 @@ def _visitDefault(self, node, *args, **kwargs): return node visitAssName = visitAssTuple = _visitDefault - visitConst = visitKeyword = visitName = _visitDefault + visitConst = visitName = _visitDefault + + def visitKeyword(self, node, *args, **kwargs): + node.expr = self.visit(node.expr, *args, **kwargs) + return node def visitDict(self, node, *args, **kwargs): node.items = map(lambda (k, v): (self.visit(k, *args, **kwargs),
--- a/markup/tests/eval.py +++ b/markup/tests/eval.py @@ -180,6 +180,10 @@ data = {'foo': {'bar': range(42)}} self.assertEqual(42, Expression("len(foo.bar)").evaluate(data)) + def test_call_keywords(self): + self.assertEqual(42, Expression("foo(x=bar)").evaluate({'foo': lambda x: x, + 'bar': 42})) + def test_call_function_without_params(self): self.assertEqual(42, Expression("foo").evaluate({'foo': lambda: 42})) data = {'foo': 'bar'}