mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 02:15:10 +00:00 
			
		
		
		
	 90540004d3
			
		
	
	
		90540004d3
		
	
	
	
	
		
			
			svn+ssh://pythondev@svn.python.org/python/trunk ........ r62734 | brett.cannon | 2008-05-05 22:21:38 +0200 (Mon, 05 May 2008) | 5 lines Add the 'json' package. Code taken from simplejson 1.9 and contributed by Bob Ippolito. Closes issue #2750. ........ r62736 | georg.brandl | 2008-05-05 22:53:39 +0200 (Mon, 05 May 2008) | 2 lines Fix JSON module docs. ........ r62748 | benjamin.peterson | 2008-05-06 04:51:10 +0200 (Tue, 06 May 2008) | 2 lines PEP 8 nits in json package ........ r62769 | christian.heimes | 2008-05-06 18:18:41 +0200 (Tue, 06 May 2008) | 2 lines Intern static string Use float constructors instead of magic code for float constants ........
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from unittest import TestCase
 | |
| 
 | |
| import json
 | |
| 
 | |
| # from http://json.org/JSON_checker/test/pass1.json
 | |
| JSON = r'''
 | |
| [
 | |
|     "JSON Test Pattern pass1",
 | |
|     {"object with 1 member":["array with 1 element"]},
 | |
|     {},
 | |
|     [],
 | |
|     -42,
 | |
|     true,
 | |
|     false,
 | |
|     null,
 | |
|     {
 | |
|         "integer": 1234567890,
 | |
|         "real": -9876.543210,
 | |
|         "e": 0.123456789e-12,
 | |
|         "E": 1.234567890E+34,
 | |
|         "":  23456789012E666,
 | |
|         "zero": 0,
 | |
|         "one": 1,
 | |
|         "space": " ",
 | |
|         "quote": "\"",
 | |
|         "backslash": "\\",
 | |
|         "controls": "\b\f\n\r\t",
 | |
|         "slash": "/ & \/",
 | |
|         "alpha": "abcdefghijklmnopqrstuvwyz",
 | |
|         "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
 | |
|         "digit": "0123456789",
 | |
|         "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
 | |
|         "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
 | |
|         "true": true,
 | |
|         "false": false,
 | |
|         "null": null,
 | |
|         "array":[  ],
 | |
|         "object":{  },
 | |
|         "address": "50 St. James Street",
 | |
|         "url": "http://www.JSON.org/",
 | |
|         "comment": "// /* <!-- --",
 | |
|         "# -- --> */": " ",
 | |
|         " s p a c e d " :[1,2 , 3
 | |
| 
 | |
| ,
 | |
| 
 | |
| 4 , 5        ,          6           ,7        ],
 | |
|         "compact": [1,2,3,4,5,6,7],
 | |
|         "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
 | |
|         "quotes": "" \u0022 %22 0x22 034 "",
 | |
|         "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
 | |
| : "A key can be any string"
 | |
|     },
 | |
|     0.5 ,98.6
 | |
| ,
 | |
| 99.44
 | |
| ,
 | |
| 
 | |
| 1066
 | |
| 
 | |
| 
 | |
| ,"rosebud"]
 | |
| '''
 | |
| 
 | |
| class TestPass1(TestCase):
 | |
|     def test_parse(self):
 | |
|         # test in/out equivalence and parsing
 | |
|         res = json.loads(JSON)
 | |
|         out = json.dumps(res)
 | |
|         self.assertEquals(res, json.loads(out))
 | |
|         try:
 | |
|             json.dumps(res, allow_nan=False)
 | |
|         except ValueError:
 | |
|             pass
 | |
|         else:
 | |
|             self.fail("23456789012E666 should be out of range")
 |