From: ThiefMaster Date: Fri, 6 Feb 2015 00:09:13 +0000 (+0100) Subject: Fix number test failing for long in Python 2 X-Git-Tag: 2.8~52^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bf5fcbb3b3c7c917a3e5b612231cc7767f3f042;p=thirdparty%2Fjinja.git Fix number test failing for long in Python 2 --- diff --git a/CHANGES b/CHANGES index 8d9802a1..ffe0a925 100644 --- a/CHANGES +++ b/CHANGES @@ -20,6 +20,7 @@ Version 2.8 reloaded now. - Implemented a block ``set`` tag. - Default cache size was incrased to 400 from a low 50. +- Fixed ``is number`` test to accept long integers in all Python versions. Version 2.7.3 ------------- diff --git a/jinja2/_compat.py b/jinja2/_compat.py index 1326cbc6..143962f3 100644 --- a/jinja2/_compat.py +++ b/jinja2/_compat.py @@ -22,6 +22,7 @@ if not PY2: range_type = range text_type = str string_types = (str,) + integer_types = (int,) iterkeys = lambda d: iter(d.keys()) itervalues = lambda d: iter(d.values()) @@ -51,6 +52,7 @@ else: text_type = unicode range_type = xrange string_types = (str, unicode) + integer_types = (int, long) iterkeys = lambda d: d.iterkeys() itervalues = lambda d: d.itervalues() diff --git a/jinja2/tests.py b/jinja2/tests.py index 96967f92..9420239d 100644 --- a/jinja2/tests.py +++ b/jinja2/tests.py @@ -11,7 +11,7 @@ import re from collections import Mapping from jinja2.runtime import Undefined -from jinja2._compat import text_type, string_types +from jinja2._compat import text_type, string_types, integer_types number_re = re.compile(r'^-?\d+(\.\d+)?$') @@ -88,7 +88,7 @@ def test_mapping(value): def test_number(value): """Return true if the variable is a number.""" - return isinstance(value, (int, float, complex)) + return isinstance(value, integer_types + (float, complex)) def test_sequence(value): diff --git a/jinja2/testsuite/tests.py b/jinja2/testsuite/tests.py index 7e38e69b..607a1c51 100644 --- a/jinja2/testsuite/tests.py +++ b/jinja2/testsuite/tests.py @@ -51,13 +51,15 @@ class TestsTestCase(JinjaTestCase): {{ {} is mapping }} {{ mydict is mapping }} {{ [] is mapping }} + {{ 10 is number }} + {{ (10 ** 100) is number }} ''') class MyDict(dict): pass assert tmpl.render(mydict=MyDict()).split() == [ 'False', 'True', 'False', 'True', 'True', 'False', 'True', 'True', 'True', 'True', 'False', 'True', - 'True', 'True', 'False' + 'True', 'True', 'False', 'True', 'True' ] def test_sequence(self):