Fix localization.
[clinton/xbmc-groove.git] / resources / lib / simplejson / tests / test_fail.py
CommitLineData
8817bb2e 1from unittest import TestCase
2
3import simplejson as json
4
5# Fri Dec 30 18:57:26 2005
6JSONDOCS = [
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
59SKIPS = {
60 1: "why not have a string payload?",
61 18: "spec doesn't specify any nesting limitations",
62}
63
64class 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))