From 800ac7f623a21e7549c7afd6aa7c340c0713eb3f Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Tue, 20 Apr 2010 13:45:11 +0200 Subject: [PATCH] fixed an error reporting bug for undefineds. --HG-- branch : trunk --- CHANGES | 8 +++++--- jinja2/testsuite/utils.py | 16 +++++++++++++++- jinja2/utils.py | 4 ++-- setup.py | 2 +- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index e4a5718fd..4f25898f8 100644 --- 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 ----------- diff --git a/jinja2/testsuite/utils.py b/jinja2/testsuite/utils.py index 25dde8b7f..a402bbc87 100644 --- a/jinja2/testsuite/utils.py +++ b/jinja2/testsuite/utils.py @@ -18,7 +18,7 @@ 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 @@ def test_pickleable(self): 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 @@ def test_markup_leaks(self): 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'): diff --git a/jinja2/utils.py b/jinja2/utils.py index 0ba86e768..8bf2c7f68 100644 --- a/jinja2/utils.py +++ b/jinja2/utils.py @@ -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 diff --git a/setup.py b/setup.py index 4235152a0..529d3856d 100644 --- a/setup.py +++ b/setup.py @@ -55,7 +55,7 @@ setup( name='Jinja2', - version='2.4', + version='2.4.1', url='http://jinja.pocoo.org/', license='BSD', author='Armin Ronacher',