~ubuntu-branches/ubuntu/quantal/enigmail/quantal-security

« back to all changes in this revision

Viewing changes to mozilla/python/simplejson-2.1.1/simplejson/tests/test_fail.py

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2013-09-13 16:02:15 UTC
  • mfrom: (0.12.16)
  • Revision ID: package-import@ubuntu.com-20130913160215-u3g8nmwa0pdwagwc
Tags: 2:1.5.2-0ubuntu0.12.10.1
* New upstream release v1.5.2 for Thunderbird 24

* Build enigmail using a stripped down Thunderbird 17 build system, as it's
  now quite difficult to build the way we were doing previously, with the
  latest Firefox build system
* Add debian/patches/no_libxpcom.patch - Don't link against libxpcom, as it
  doesn't exist anymore (but exists in the build system)
* Add debian/patches/use_sdk.patch - Use the SDK version of xpt.py and
  friends
* Drop debian/patches/ipc-pipe_rename.diff (not needed anymore)
* Drop debian/patches/makefile_depth.diff (not needed anymore)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from unittest import TestCase
 
2
 
 
3
import simplejson as 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 json.JSONDecodeError:
 
74
                pass
 
75
            else:
 
76
                #self.fail("Expected failure for fail{0}.json: {1!r}".format(idx, doc))
 
77
                self.fail("Expected failure for fail%d.json: %r" % (idx, doc))
 
78
 
 
79
    def test_array_decoder_issue46(self):
 
80
        # http://code.google.com/p/simplejson/issues/detail?id=46
 
81
        for doc in [u'[,]', '[,]']:
 
82
            try:
 
83
                json.loads(doc)
 
84
            except json.JSONDecodeError, e:
 
85
                self.assertEquals(e.pos, 1)
 
86
                self.assertEquals(e.lineno, 1)
 
87
                self.assertEquals(e.colno, 1)
 
88
            except Exception, e:
 
89
                self.fail("Unexpected exception raised %r %s" % (e, e))
 
90
            else:
 
91
                self.fail("Unexpected success parsing '[,]'")
 
 
b'\\ No newline at end of file'