diff 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
line wrap: on
line diff
--- a/markup/tests/eval.py
+++ b/markup/tests/eval.py
@@ -180,6 +180,12 @@
         data = {'foo': {'bar': range(42)}}
         self.assertEqual(42, Expression("len(foo.bar)").evaluate(data))
 
+    def test_call_function_without_params(self):
+        self.assertEqual(42, Expression("foo").evaluate({'foo': lambda: 42}))
+        data = {'foo': 'bar'}
+        self.assertEqual('BAR', Expression("foo.upper").evaluate(data))
+        data = {'foo': {'bar': range(42)}}
+
     def test_list_comprehension(self):
         expr = Expression("[n for n in numbers if n < 2]")
         self.assertEqual([0, 1], expr.evaluate({'numbers': range(5)}))
Copyright (C) 2012-2017 Edgewall Software