fixed an error reporting bug for undefineds. 2.4.1
authorArmin Ronacher <armin.ronacher@active-4.com>
Tue, 20 Apr 2010 11:45:11 +0000 (13:45 +0200)
committerArmin Ronacher <armin.ronacher@active-4.com>
Tue, 20 Apr 2010 11:45:11 +0000 (13:45 +0200)
--HG--
branch : trunk

CHANGES
jinja2/testsuite/utils.py
jinja2/utils.py
setup.py

diff --git a/CHANGES b/CHANGES
index e4a5718fdcddcfb0cedc4d643fd6a1d4046730cb..4f25898f8d6a4ce0689378156fb40f1ef141a91c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,9 +1,11 @@
 Jinja2 Changelog
 ================
 
-Version 2.5
------------
-(codename to be selected, release date to be announced)
+Version 2.4.1
+-------------
+(bugfix release, released on April 20th 2010)
+
+- fixed an error reporting bug for undefineds.
 
 Version 2.4
 -----------
index 25dde8b7fd233eefe206a7a9b6e509e03d1ae44d..a402bbc8786b94a5ba118e86c4ed2b5270be0058 100644 (file)
@@ -18,7 +18,7 @@ from jinja2.testsuite import JinjaTestCase
 
 from jinja2 import Environment, Undefined, DebugUndefined, \
      StrictUndefined, UndefinedError, Template, meta
-from jinja2.utils import LRUCache, escape
+from jinja2.utils import LRUCache, escape, object_type_repr
 
 
 class LRUCacheTestCase(JinjaTestCase):
@@ -46,6 +46,19 @@ class LRUCacheTestCase(JinjaTestCase):
             assert copy._queue == cache._queue
 
 
+class HelpersTestCase(JinjaTestCase):
+
+    def test_object_type_repr(self):
+        class X(object):
+            pass
+        self.assert_equal(object_type_repr(42), 'int object')
+        self.assert_equal(object_type_repr([]), 'list object')
+        self.assert_equal(object_type_repr(X()),
+                         'jinja2.testsuite.utils.X object')
+        self.assert_equal(object_type_repr(None), 'None')
+        self.assert_equal(object_type_repr(Ellipsis), 'Ellipsis')
+
+
 class MarkupLeakTestCase(JinjaTestCase):
 
     def test_markup_leaks(self):
@@ -63,6 +76,7 @@ class MarkupLeakTestCase(JinjaTestCase):
 def suite():
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(LRUCacheTestCase))
+    suite.addTest(unittest.makeSuite(HelpersTestCase))
 
     # this test only tests the c extension
     if not hasattr(escape, 'func_code'):
index 0ba86e768909a99798ceee69fbba9fb0d6d599e1..8bf2c7f6883cd2439116bb2edc935cdb8e4361a0 100644 (file)
@@ -237,9 +237,9 @@ def object_type_repr(obj):
     elif obj is Ellipsis:
         return 'Ellipsis'
     if obj.__class__.__module__ == '__builtin__':
-        name = obj.__name__
+        name = obj.__class__.__name__
     else:
-        name = obj.__class__.module__ + '.' + obj.__name__
+        name = obj.__class__.__module__ + '.' + obj.__class__.__name__
     return '%s object' % name
 
 
index 4235152a07940f2ae2733e5621f2186a25e712e1..529d3856de0fcb6b76d9fef0d0937d81bd77214a 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -55,7 +55,7 @@ if sys.version_info >= (3, 0):
 
 setup(
     name='Jinja2',
-    version='2.4',
+    version='2.4.1',
     url='http://jinja.pocoo.org/',
     license='BSD',
     author='Armin Ronacher',