1 from json.tests import PyTest, CTest 2 3 4 # from http://json.org/JSON_checker/test/pass1.json 5 JSON = r''' 6 [ 7 "JSON Test Pattern pass1", 8 {"object with 1 member":["array with 1 element"]}, 9 {}, 10 [], 11 -42, 12 true, 13 false, 14 null, 15 { 16 "integer": 1234567890, 17 "real": -9876.543210, 18 "e": 0.123456789e-12, 19 "E": 1.234567890E+34, 20 "": 23456789012E66, 21 "zero": 0, 22 "one": 1, 23 "space": " ", 24 "quote": "\"", 25 "backslash": "\\", 26 "controls": "\b\f\n\r\t", 27 "slash": "/ & \/", 28 "alpha": "abcdefghijklmnopqrstuvwyz", 29 "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ", 30 "digit": "0123456789", 31 "0123456789": "digit", 32 "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?", 33 "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A", 34 "true": true, 35 "false": false, 36 "null": null, 37 "array":[ ], 38 "object":{ }, 39 "address": "50 St. James Street", 40 "url": "http://www.JSON.org/", 41 "comment": "// /* <!-- --", 42 "# -- --> */": " ", 43 " s p a c e d " :[1,2 , 3 44 45 , 46 47 4 , 5 , 6 ,7 ],"compact":[1,2,3,4,5,6,7], 48 "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}", 49 "quotes": "" \u0022 %22 0x22 034 "", 50 "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?" 51 : "A key can be any string" 52 }, 53 0.5 ,98.6 54 , 55 99.44 56 , 57 58 1066, 59 1e1, 60 0.1e1, 61 1e-1, 62 1e00,2e+00,2e-00 63 ,"rosebud"] 64 ''' 65 66 class TestPass1(object): 67 def test_parse(self): 68 # test in/out equivalence and parsing 69 res = self.loads(JSON) 70 out = self.dumps(res) 71 self.assertEqual(res, self.loads(out)) 72 73 74 class TestPyPass1(TestPass1, PyTest): pass 75 class TestCPass1(TestPass1, CTest): pass 76