c3d6302d68dc58652f8dc178e4e8092a08e46093
[sliver-openvswitch.git] / ovsdb / simplejson / tests / test_pass1.py
1 from unittest import TestCase
2
3 import simplejson as json
4
5 # from http://json.org/JSON_checker/test/pass1.json
6 JSON = r'''
7 [
8     "JSON Test Pattern pass1",
9     {"object with 1 member":["array with 1 element"]},
10     {},
11     [],
12     -42,
13     true,
14     false,
15     null,
16     {
17         "integer": 1234567890,
18         "real": -9876.543210,
19         "e": 0.123456789e-12,
20         "E": 1.234567890E+34,
21         "":  23456789012E666,
22         "zero": 0,
23         "one": 1,
24         "space": " ",
25         "quote": "\"",
26         "backslash": "\\",
27         "controls": "\b\f\n\r\t",
28         "slash": "/ & \/",
29         "alpha": "abcdefghijklmnopqrstuvwyz",
30         "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
31         "digit": "0123456789",
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        ],
48         "compact": [1,2,3,4,5,6,7],
49         "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
50         "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
51         "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
52 : "A key can be any string"
53     },
54     0.5 ,98.6
55 ,
56 99.44
57 ,
58
59 1066
60
61
62 ,"rosebud"]
63 '''
64
65 class TestPass1(TestCase):
66     def test_parse(self):
67         # test in/out equivalence and parsing
68         res = json.loads(JSON)
69         out = json.dumps(res)
70         self.assertEquals(res, json.loads(out))
71         try:
72             json.dumps(res, allow_nan=False)
73         except ValueError:
74             pass
75         else:
76             self.fail("23456789012E666 should be out of range")