~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Lib/json/tests/test_pass1.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
ImportĀ upstreamĀ versionĀ 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from unittest import TestCase
 
2
 
 
3
import 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")