Home | History | Annotate | Download | only in tests
      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": "&#34; \u0022 %22 0x22 034 &#x22;",
     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