summaryrefslogtreecommitdiffstats
path: root/Lib/test/json_tests/test_pass1.py
diff options
context:
space:
mode:
authorAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-11-30 03:03:30 (GMT)
committerAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-11-30 03:03:30 (GMT)
commitff27ee0b400030419cfd3c9966f275bfbcb569f8 (patch)
treec2e45325768bd5256432667c387f304d549493e6 /Lib/test/json_tests/test_pass1.py
parent69b34bfe9c3e5da1d7336a607ab56f1c3a178dca (diff)
downloadcpython-ff27ee0b400030419cfd3c9966f275bfbcb569f8.zip
cpython-ff27ee0b400030419cfd3c9966f275bfbcb569f8.tar.gz
cpython-ff27ee0b400030419cfd3c9966f275bfbcb569f8.tar.bz2
Issue #10572: Moved json tests to Lib/test/json_tests.
Approved by Raymond Hettinger.
Diffstat (limited to 'Lib/test/json_tests/test_pass1.py')
-rw-r--r--Lib/test/json_tests/test_pass1.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/Lib/test/json_tests/test_pass1.py b/Lib/test/json_tests/test_pass1.py
new file mode 100644
index 0000000..719c113
--- /dev/null
+++ b/Lib/test/json_tests/test_pass1.py
@@ -0,0 +1,76 @@
+from unittest import TestCase
+
+import json
+
+# from http://json.org/JSON_checker/test/pass1.json
+JSON = r'''
+[
+ "JSON Test Pattern pass1",
+ {"object with 1 member":["array with 1 element"]},
+ {},
+ [],
+ -42,
+ true,
+ false,
+ null,
+ {
+ "integer": 1234567890,
+ "real": -9876.543210,
+ "e": 0.123456789e-12,
+ "E": 1.234567890E+34,
+ "": 23456789012E666,
+ "zero": 0,
+ "one": 1,
+ "space": " ",
+ "quote": "\"",
+ "backslash": "\\",
+ "controls": "\b\f\n\r\t",
+ "slash": "/ & \/",
+ "alpha": "abcdefghijklmnopqrstuvwyz",
+ "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
+ "digit": "0123456789",
+ "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
+ "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
+ "true": true,
+ "false": false,
+ "null": null,
+ "array":[ ],
+ "object":{ },
+ "address": "50 St. James Street",
+ "url": "http://www.JSON.org/",
+ "comment": "// /* <!-- --",
+ "# -- --> */": " ",
+ " s p a c e d " :[1,2 , 3
+
+,
+
+4 , 5 , 6 ,7 ],
+ "compact": [1,2,3,4,5,6,7],
+ "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
+ "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
+ "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
+: "A key can be any string"
+ },
+ 0.5 ,98.6
+,
+99.44
+,
+
+1066
+
+
+,"rosebud"]
+'''
+
+class TestPass1(TestCase):
+ def test_parse(self):
+ # test in/out equivalence and parsing
+ res = json.loads(JSON)
+ out = json.dumps(res)
+ self.assertEqual(res, json.loads(out))
+ try:
+ json.dumps(res, allow_nan=False)
+ except ValueError:
+ pass
+ else:
+ self.fail("23456789012E666 should be out of range")