Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
c4830340
Commit
c4830340
authored
Nov 26, 2012
by
Ezio Melotti
Browse files
Options
Browse Files
Download
Plain Diff
#16559: merge with 3.2.
parents
3b39d35e
8c523704
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
15 deletions
+47
-15
Lib/test/json_tests/test_fail.py
Lib/test/json_tests/test_fail.py
+21
-3
Lib/test/json_tests/test_float.py
Lib/test/json_tests/test_float.py
+15
-0
Lib/test/json_tests/test_pass1.py
Lib/test/json_tests/test_pass1.py
+8
-12
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Lib/test/json_tests/test_fail.py
View file @
c4830340
from
test.json_tests
import
PyTest
,
CTest
#
Fri Dec 30 18:57:26 20
05
#
2007-10-
05
JSONDOCS
=
[
# http://json.org/JSON_checker/test/fail1.json
'"A JSON payload should be an object or array, not a string."'
,
# http://json.org/JSON_checker/test/fail2.json
'["Unclosed array"'
,
# http://json.org/JSON_checker/test/fail3.json
'{unquoted_key: "keys must be quoted}'
,
'{unquoted_key: "keys must be quoted
"
}'
,
# http://json.org/JSON_checker/test/fail4.json
'["extra comma",]'
,
# http://json.org/JSON_checker/test/fail5.json
...
...
@@ -33,7 +33,7 @@ JSONDOCS = [
# http://json.org/JSON_checker/test/fail15.json
'["Illegal backslash escape:
\
\
x15"]'
,
# http://json.org/JSON_checker/test/fail16.json
'[
"Illegal backslash escape:
\
\
\
'
"
]'
,
'[
\
\
naked
]'
,
# http://json.org/JSON_checker/test/fail17.json
'["Illegal backslash escape:
\
\
017"]'
,
# http://json.org/JSON_checker/test/fail18.json
...
...
@@ -50,6 +50,24 @@ JSONDOCS = [
'["Bad value", truth]'
,
# http://json.org/JSON_checker/test/fail24.json
"['single quote']"
,
# http://json.org/JSON_checker/test/fail25.json
'["
\
t
tab
\
t
character
\
t
in
\
t
string
\
t
"]'
,
# http://json.org/JSON_checker/test/fail26.json
'["tab
\
\
character
\
\
in
\
\
string
\
\
"]'
,
# http://json.org/JSON_checker/test/fail27.json
'["line
\
n
break"]'
,
# http://json.org/JSON_checker/test/fail28.json
'["line
\
\
\
n
break"]'
,
# http://json.org/JSON_checker/test/fail29.json
'[0e]'
,
# http://json.org/JSON_checker/test/fail30.json
'[0e+]'
,
# http://json.org/JSON_checker/test/fail31.json
'[0e+-1]'
,
# http://json.org/JSON_checker/test/fail32.json
'{"Comma instead if closing brace": true,'
,
# http://json.org/JSON_checker/test/fail33.json
'["mismatch"}'
,
# http://code.google.com/p/simplejson/issues/detail?id=3
'["A
\
u001F
Z control characters in string"]'
,
]
...
...
Lib/test/json_tests/test_float.py
View file @
c4830340
...
...
@@ -13,6 +13,21 @@ class TestFloat:
self
.
assertEqual
(
self
.
dumps
(
num
),
str
(
num
))
self
.
assertEqual
(
int
(
self
.
dumps
(
num
)),
num
)
def
test_out_of_range
(
self
):
self
.
assertEqual
(
self
.
loads
(
'[23456789012E666]'
),
[
float
(
'inf'
)])
self
.
assertEqual
(
self
.
loads
(
'[-23456789012E666]'
),
[
float
(
'-inf'
)])
def
test_allow_nan
(
self
):
for
val
in
(
float
(
'inf'
),
float
(
'-inf'
),
float
(
'nan'
)):
out
=
self
.
dumps
([
val
])
if
val
==
val
:
# inf
self
.
assertEqual
(
self
.
loads
(
out
),
[
val
])
else
:
# nan
res
=
self
.
loads
(
out
)
self
.
assertEqual
(
len
(
res
),
1
)
self
.
assertNotEqual
(
res
[
0
],
res
[
0
])
self
.
assertRaises
(
ValueError
,
self
.
dumps
,
[
val
],
allow_nan
=
False
)
class
TestPyFloat
(
TestFloat
,
PyTest
):
pass
class
TestCFloat
(
TestFloat
,
CTest
):
pass
Lib/test/json_tests/test_pass1.py
View file @
c4830340
...
...
@@ -17,7 +17,7 @@ JSON = r'''
"real": -9876.543210,
"e": 0.123456789e-12,
"E": 1.234567890E+34,
"": 23456789012E66
6
,
"": 23456789012E66,
"zero": 0,
"one": 1,
"space": " ",
...
...
@@ -28,6 +28,7 @@ JSON = r'''
"alpha": "abcdefghijklmnopqrstuvwyz",
"ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
"digit": "0123456789",
"0123456789": "digit",
"special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
"hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
"true": true,
...
...
@@ -43,8 +44,7 @@ JSON = r'''
,
4 , 5 , 6 ,7 ],
"compact": [1,2,3,4,5,6,7],
4 , 5 , 6 ,7 ],"compact":[1,2,3,4,5,6,7],
"jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
"quotes": "" \u0022 %22 0x22 034 "",
"\
/
\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
...
...
@@ -55,9 +55,11 @@ JSON = r'''
99.44
,
1066
1066,
1e1,
0.1e1,
1e-1,
1e00,2e+00,2e-00
,"rosebud"]
'''
...
...
@@ -67,12 +69,6 @@ class TestPass1:
res
=
self
.
loads
(
JSON
)
out
=
self
.
dumps
(
res
)
self
.
assertEqual
(
res
,
self
.
loads
(
out
))
try
:
self
.
dumps
(
res
,
allow_nan
=
False
)
except
ValueError
:
pass
else
:
self
.
fail
(
"23456789012E666 should be out of range"
)
class
TestPyPass1
(
TestPass1
,
PyTest
):
pass
...
...
Misc/NEWS
View file @
c4830340
...
...
@@ -250,6 +250,9 @@ Library
Tests
-----
-
Issue
#
16559
:
Add
more
tests
for
the
json
module
,
including
some
from
the
official
test
suite
at
json
.
org
.
Patch
by
Serhiy
Storchaka
.
-
Issue
#
16115
:
Add
some
tests
for
the
executable
argument
to
subprocess
.
Popen
().
Initial
patch
by
Kushal
Das
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment