changeset 401:68772732c896 trunk

Make the `Markup` class available by default in template expressions. Closes #67.
author cmlenz
date Thu, 18 Jan 2007 15:41:47 +0000
parents e29a94b3ba0c
children c199e9b95884
files ChangeLog genshi/template/eval.py genshi/template/tests/eval.py
diffstat 3 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -34,6 +34,8 @@
  * Expressions can now contain dict literals (ticket #37).
  * It is now possible to have one or more escaped dollar signs in front of a 
    full expression (ticket #92).
+ * The `Markup` class is now available by default in template expressions
+   (ticket #67).
 
 
 Version 0.3.6
--- a/genshi/template/eval.py
+++ b/genshi/template/eval.py
@@ -22,6 +22,7 @@
 except NameError:
     from sets import Set as set
 
+from genshi.core import Markup
 from genshi.util import flatten
 
 __all__ = ['Expression', 'Undefined']
@@ -200,7 +201,7 @@
                     lineno, code.co_lnotab, (), ())
 
 BUILTINS = __builtin__.__dict__.copy()
-BUILTINS['Undefined'] = Undefined
+BUILTINS.update({'Markup': Markup, 'Undefined': Undefined})
 _UNDEF = Undefined(None)
 
 def _lookup_name(data, name):
--- a/genshi/template/tests/eval.py
+++ b/genshi/template/tests/eval.py
@@ -15,6 +15,7 @@
 import sys
 import unittest
 
+from genshi.core import Markup
 from genshi.template.eval import Expression, Undefined
 
 
@@ -36,6 +37,12 @@
         self.assertEqual('bar', Expression('id').evaluate({'id': 'bar'}))
         self.assertEqual(None, Expression('id').evaluate({'id': None}))
 
+    def test_builtins(self):
+        expr = Expression('Markup')
+        self.assertEqual(expr.evaluate({}), Markup)
+        expr = Expression('Undefined')
+        self.assertEqual(expr.evaluate({}), Undefined)
+
     def test_str_literal(self):
         self.assertEqual('foo', Expression('"foo"').evaluate({}))
         self.assertEqual('foo', Expression('"""foo"""').evaluate({}))
Copyright (C) 2012-2017 Edgewall Software