diff Lib/json/tests/test_float.py @ 80598:e092ff374721 2.7

#16559: Add more tests for the json module. Patch by Serhiy Storchaka.
author Ezio Melotti <ezio.melotti@gmail.com>
date Mon, 26 Nov 2012 19:22:58 +0200
parents 5b0fecd2eba0
children
line wrap: on
line diff
--- a/Lib/json/tests/test_float.py	Sun Nov 25 20:35:23 2012 -0800
+++ b/Lib/json/tests/test_float.py	Mon Nov 26 19:22:58 2012 +0200
@@ -17,6 +17,21 @@
             self.assertEqual(self.loads(self.dumps(num)), num)
             self.assertEqual(self.loads(unicode(self.dumps(num))), num)
 
+    def test_out_of_range(self):
+        self.assertEqual(self.loads('[23456789012E666]'), [float('inf')])
+        self.assertEqual(self.loads('[-23456789012E666]'), [float('-inf')])
+
+    def test_allow_nan(self):
+        for val in (float('inf'), float('-inf'), float('nan')):
+            out = self.dumps([val])
+            if val == val:  # inf
+                self.assertEqual(self.loads(out), [val])
+            else:  # nan
+                res = self.loads(out)
+                self.assertEqual(len(res), 1)
+                self.assertNotEqual(res[0], res[0])
+            self.assertRaises(ValueError, self.dumps, [val], allow_nan=False)
+
 
 class TestPyFloat(TestFloat, PyTest): pass
 class TestCFloat(TestFloat, CTest): pass