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