Mercurial > genshi > genshi-test
changeset 393:a056613621ab
add support for Python 2.5 conditional expressions (fixes #74)
author | mgood |
---|---|
date | Mon, 18 Dec 2006 23:28:08 +0000 |
parents | 5c2156e0cd41 |
children | ebc7c1a3bc4d |
files | genshi/template/eval.py genshi/template/tests/eval.py |
diffstat | 2 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/genshi/template/eval.py +++ b/genshi/template/eval.py @@ -310,6 +310,12 @@ visitUnaryAdd = visitUnarySub = visitNot = visitInvert = _visitUnaryOp visitBackquote = _visitUnaryOp + def visitIfExp(self, node): + node.test = self.visit(node.test) + node.then = self.visit(node.then) + node.else_ = self.visit(node.else_) + return node + # Identifiers, Literals and Comprehensions def _visitDefault(self, node):
--- a/genshi/template/tests/eval.py +++ b/genshi/template/tests/eval.py @@ -278,6 +278,12 @@ expr = Expression("list(i['name'] for i in items if i['value'] > 1)") self.assertEqual(['b'], expr.evaluate({'items': items})) + if sys.version_info >= (2, 5): + def test_conditional_expression(self): + expr = Expression("'T' if foo else 'F'") + self.assertEqual('T', expr.evaluate({'foo': True})) + self.assertEqual('F', expr.evaluate({'foo': False})) + def test_slice(self): expr = Expression("numbers[0:2]") self.assertEqual([0, 1], expr.evaluate({'numbers': range(5)}))