]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Fix number test failing for long in Python 2
authorThiefMaster <adrian@planetcoding.net>
Fri, 6 Feb 2015 00:09:13 +0000 (01:09 +0100)
committerThiefMaster <adrian@planetcoding.net>
Fri, 6 Feb 2015 00:09:13 +0000 (01:09 +0100)
CHANGES
jinja2/_compat.py
jinja2/tests.py
jinja2/testsuite/tests.py

diff --git a/CHANGES b/CHANGES
index 8d9802a1f4313addd0008592e24e0437cd740162..ffe0a925d781b546b359f605150d5db011aecc68 100644 (file)
--- 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
 -------------
index 1326cbc661968202610c23144c86f6d2b1734ce4..143962f384fa89add98f8a1ac181bd418afdad9f 100644 (file)
@@ -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()
index 96967f927f7a6e40ebe614efc49909e8b544ba7b..9420239dec7de48e32ee9a19f83ba822df89fbb5 100644 (file)
@@ -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):
index 7e38e69bb327a09be0176533c2b4df52d0ab802a..607a1c5153cb38ce343a4a33f50061086432be28 100644 (file)
@@ -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):