Mercurial > genshi > genshi-test
comparison markup/tests/eval.py @ 90:242610137d1f
When an expression evaluates to a callable, it is called implicitly.
author | cmlenz |
---|---|
date | Wed, 19 Jul 2006 17:50:17 +0000 |
parents | 9ecae580dd93 |
children | 12efdfe8af47 |
comparison
equal
deleted
inserted
replaced
89:d4c7617900e3 | 90:242610137d1f |
---|---|
178 data = {'foo': 'bar'} | 178 data = {'foo': 'bar'} |
179 self.assertEqual('BAR', Expression("foo.upper()").evaluate(data)) | 179 self.assertEqual('BAR', Expression("foo.upper()").evaluate(data)) |
180 data = {'foo': {'bar': range(42)}} | 180 data = {'foo': {'bar': range(42)}} |
181 self.assertEqual(42, Expression("len(foo.bar)").evaluate(data)) | 181 self.assertEqual(42, Expression("len(foo.bar)").evaluate(data)) |
182 | 182 |
183 def test_call_function_without_params(self): | |
184 self.assertEqual(42, Expression("foo").evaluate({'foo': lambda: 42})) | |
185 data = {'foo': 'bar'} | |
186 self.assertEqual('BAR', Expression("foo.upper").evaluate(data)) | |
187 data = {'foo': {'bar': range(42)}} | |
188 | |
183 def test_list_comprehension(self): | 189 def test_list_comprehension(self): |
184 expr = Expression("[n for n in numbers if n < 2]") | 190 expr = Expression("[n for n in numbers if n < 2]") |
185 self.assertEqual([0, 1], expr.evaluate({'numbers': range(5)})) | 191 self.assertEqual([0, 1], expr.evaluate({'numbers': range(5)})) |
186 | 192 |
187 expr = Expression("[(i, n + 1) for i, n in enumerate(numbers)]") | 193 expr = Expression("[(i, n + 1) for i, n in enumerate(numbers)]") |