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
1e86d01e
Commit
1e86d01e
authored
Nov 29, 2012
by
Ezio Melotti
Browse files
Options
Browse Files
Download
Plain Diff
#16549: merge with 3.2.
parents
57af3bf1
057bcb4c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
84 additions
and
9 deletions
+84
-9
Lib/json/tool.py
Lib/json/tool.py
+11
-9
Lib/test/json_tests/test_tool.py
Lib/test/json_tests/test_tool.py
+69
-0
Misc/ACKS
Misc/ACKS
+1
-0
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Lib/json/tool.py
View file @
1e86d01e
...
...
@@ -18,19 +18,21 @@ def main():
infile
=
sys
.
stdin
outfile
=
sys
.
stdout
elif
len
(
sys
.
argv
)
==
2
:
infile
=
open
(
sys
.
argv
[
1
],
'r
b
'
)
infile
=
open
(
sys
.
argv
[
1
],
'r'
)
outfile
=
sys
.
stdout
elif
len
(
sys
.
argv
)
==
3
:
infile
=
open
(
sys
.
argv
[
1
],
'r
b
'
)
outfile
=
open
(
sys
.
argv
[
2
],
'w
b
'
)
infile
=
open
(
sys
.
argv
[
1
],
'r'
)
outfile
=
open
(
sys
.
argv
[
2
],
'w'
)
else
:
raise
SystemExit
(
sys
.
argv
[
0
]
+
" [infile [outfile]]"
)
try
:
obj
=
json
.
load
(
infile
)
except
ValueError
as
e
:
raise
SystemExit
(
e
)
json
.
dump
(
obj
,
outfile
,
sort_keys
=
True
,
indent
=
4
)
outfile
.
write
(
'
\
n
'
)
with
infile
:
try
:
obj
=
json
.
load
(
infile
)
except
ValueError
as
e
:
raise
SystemExit
(
e
)
with
outfile
:
json
.
dump
(
obj
,
outfile
,
sort_keys
=
True
,
indent
=
4
)
outfile
.
write
(
'
\
n
'
)
if
__name__
==
'__main__'
:
...
...
Lib/test/json_tests/test_tool.py
0 → 100644
View file @
1e86d01e
import
os
import
sys
import
textwrap
import
unittest
import
subprocess
from
test
import
support
from
test.script_helper
import
assert_python_ok
class
TestTool
(
unittest
.
TestCase
):
data
=
"""
[["blorpie"],[ "whoops" ] , [
],
\
t
"d-shtaeou",
\
r
"d-nthiouh",
"i-vhbjkhnth", {"nifty":87}, {"morefield" :
\
t
false,"field"
:"yes"} ]
"""
expect
=
textwrap
.
dedent
(
"""
\
[
[
"blorpie"
],
[
"whoops"
],
[],
"d-shtaeou",
"d-nthiouh",
"i-vhbjkhnth",
{
"nifty": 87
},
{
"field": "yes",
"morefield": false
}
]
"""
)
def
test_stdin_stdout
(
self
):
with
subprocess
.
Popen
(
(
sys
.
executable
,
'-m'
,
'json.tool'
),
stdin
=
subprocess
.
PIPE
,
stdout
=
subprocess
.
PIPE
)
as
proc
:
out
,
err
=
proc
.
communicate
(
self
.
data
.
encode
())
self
.
assertEqual
(
out
,
self
.
expect
.
encode
())
self
.
assertEqual
(
err
,
None
)
def
_create_infile
(
self
):
infile
=
support
.
TESTFN
with
open
(
infile
,
"w"
)
as
fp
:
self
.
addCleanup
(
os
.
remove
,
infile
)
fp
.
write
(
self
.
data
)
return
infile
def
test_infile_stdout
(
self
):
infile
=
self
.
_create_infile
()
rc
,
out
,
err
=
assert_python_ok
(
'-m'
,
'json.tool'
,
infile
)
self
.
assertEqual
(
out
,
self
.
expect
.
encode
())
self
.
assertEqual
(
err
,
b''
)
def
test_infile_outfile
(
self
):
infile
=
self
.
_create_infile
()
outfile
=
support
.
TESTFN
+
'.out'
rc
,
out
,
err
=
assert_python_ok
(
'-m'
,
'json.tool'
,
infile
,
outfile
)
self
.
addCleanup
(
os
.
remove
,
outfile
)
with
open
(
outfile
,
"r"
)
as
fp
:
self
.
assertEqual
(
fp
.
read
(),
self
.
expect
)
self
.
assertEqual
(
out
,
b''
)
self
.
assertEqual
(
err
,
b''
)
Misc/ACKS
View file @
1e86d01e
...
...
@@ -889,6 +889,7 @@ Dan Parisien
William Park
Harri Pasanen
Gaël Pasgrimaud
Berker Peksag
Bo Peng
Joe Peterson
Randy Pausch
...
...
Misc/NEWS
View file @
1e86d01e
...
...
@@ -96,6 +96,9 @@ Core and Builtins
Library
-------
-
Issue
#
16549
:
Make
json
.
tool
work
again
on
Python
3
and
add
tests
.
Initial
patch
by
Berker
Peksag
and
Serhiy
Storchaka
.
-
Issue
#
12848
:
The
pure
Python
pickle
implementation
now
treats
object
lengths
as
unsigned
32
-
bit
integers
,
like
the
C
implementation
does
.
Patch
by
Serhiy
Storchaka
.
...
...
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