symbian-qemu-0.9.1-12/python-2.6.1/Lib/json/tests/test_fail.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 from unittest import TestCase
       
     2 
       
     3 import json
       
     4 
       
     5 # Fri Dec 30 18:57:26 2005
       
     6 JSONDOCS = [
       
     7     # http://json.org/JSON_checker/test/fail1.json
       
     8     '"A JSON payload should be an object or array, not a string."',
       
     9     # http://json.org/JSON_checker/test/fail2.json
       
    10     '["Unclosed array"',
       
    11     # http://json.org/JSON_checker/test/fail3.json
       
    12     '{unquoted_key: "keys must be quoted}',
       
    13     # http://json.org/JSON_checker/test/fail4.json
       
    14     '["extra comma",]',
       
    15     # http://json.org/JSON_checker/test/fail5.json
       
    16     '["double extra comma",,]',
       
    17     # http://json.org/JSON_checker/test/fail6.json
       
    18     '[   , "<-- missing value"]',
       
    19     # http://json.org/JSON_checker/test/fail7.json
       
    20     '["Comma after the close"],',
       
    21     # http://json.org/JSON_checker/test/fail8.json
       
    22     '["Extra close"]]',
       
    23     # http://json.org/JSON_checker/test/fail9.json
       
    24     '{"Extra comma": true,}',
       
    25     # http://json.org/JSON_checker/test/fail10.json
       
    26     '{"Extra value after close": true} "misplaced quoted value"',
       
    27     # http://json.org/JSON_checker/test/fail11.json
       
    28     '{"Illegal expression": 1 + 2}',
       
    29     # http://json.org/JSON_checker/test/fail12.json
       
    30     '{"Illegal invocation": alert()}',
       
    31     # http://json.org/JSON_checker/test/fail13.json
       
    32     '{"Numbers cannot have leading zeroes": 013}',
       
    33     # http://json.org/JSON_checker/test/fail14.json
       
    34     '{"Numbers cannot be hex": 0x14}',
       
    35     # http://json.org/JSON_checker/test/fail15.json
       
    36     '["Illegal backslash escape: \\x15"]',
       
    37     # http://json.org/JSON_checker/test/fail16.json
       
    38     '["Illegal backslash escape: \\\'"]',
       
    39     # http://json.org/JSON_checker/test/fail17.json
       
    40     '["Illegal backslash escape: \\017"]',
       
    41     # http://json.org/JSON_checker/test/fail18.json
       
    42     '[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]',
       
    43     # http://json.org/JSON_checker/test/fail19.json
       
    44     '{"Missing colon" null}',
       
    45     # http://json.org/JSON_checker/test/fail20.json
       
    46     '{"Double colon":: null}',
       
    47     # http://json.org/JSON_checker/test/fail21.json
       
    48     '{"Comma instead of colon", null}',
       
    49     # http://json.org/JSON_checker/test/fail22.json
       
    50     '["Colon instead of comma": false]',
       
    51     # http://json.org/JSON_checker/test/fail23.json
       
    52     '["Bad value", truth]',
       
    53     # http://json.org/JSON_checker/test/fail24.json
       
    54     "['single quote']",
       
    55     # http://code.google.com/p/simplejson/issues/detail?id=3
       
    56     u'["A\u001FZ control characters in string"]',
       
    57 ]
       
    58 
       
    59 SKIPS = {
       
    60     1: "why not have a string payload?",
       
    61     18: "spec doesn't specify any nesting limitations",
       
    62 }
       
    63 
       
    64 class TestFail(TestCase):
       
    65     def test_failures(self):
       
    66         for idx, doc in enumerate(JSONDOCS):
       
    67             idx = idx + 1
       
    68             if idx in SKIPS:
       
    69                 json.loads(doc)
       
    70                 continue
       
    71             try:
       
    72                 json.loads(doc)
       
    73             except ValueError:
       
    74                 pass
       
    75             else:
       
    76                 self.fail("Expected failure for fail%d.json: %r" % (idx, doc))