]> git.proxmox.com Git - mirror_edk2.git/blob - AppPkg/Applications/Python/Python-2.7.10/Lib/json/tests/test_tool.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.10 / Lib / json / tests / test_tool.py
1 import os
2 import sys
3 import textwrap
4 import unittest
5 import subprocess
6 from test import test_support
7 from test.script_helper import assert_python_ok
8
9 class TestTool(unittest.TestCase):
10 data = """
11
12 [["blorpie"],[ "whoops" ] , [
13 ],\t"d-shtaeou",\r"d-nthiouh",
14 "i-vhbjkhnth", {"nifty":87}, {"morefield" :\tfalse,"field"
15 :"yes"} ]
16 """
17
18 expect = textwrap.dedent("""\
19 [
20 [
21 "blorpie"
22 ],
23 [
24 "whoops"
25 ],
26 [],
27 "d-shtaeou",
28 "d-nthiouh",
29 "i-vhbjkhnth",
30 {
31 "nifty": 87
32 },
33 {
34 "field": "yes",
35 "morefield": false
36 }
37 ]
38 """)
39
40 def test_stdin_stdout(self):
41 proc = subprocess.Popen(
42 (sys.executable, '-m', 'json.tool'),
43 stdin=subprocess.PIPE, stdout=subprocess.PIPE)
44 out, err = proc.communicate(self.data.encode())
45 self.assertEqual(out.splitlines(), self.expect.encode().splitlines())
46 self.assertEqual(err, None)
47
48 def _create_infile(self):
49 infile = test_support.TESTFN
50 with open(infile, "w") as fp:
51 self.addCleanup(os.remove, infile)
52 fp.write(self.data)
53 return infile
54
55 def test_infile_stdout(self):
56 infile = self._create_infile()
57 rc, out, err = assert_python_ok('-m', 'json.tool', infile)
58 self.assertEqual(out.splitlines(), self.expect.encode().splitlines())
59 self.assertEqual(err, b'')
60
61 def test_infile_outfile(self):
62 infile = self._create_infile()
63 outfile = test_support.TESTFN + '.out'
64 rc, out, err = assert_python_ok('-m', 'json.tool', infile, outfile)
65 self.addCleanup(os.remove, outfile)
66 with open(outfile, "r") as fp:
67 self.assertEqual(fp.read(), self.expect)
68 self.assertEqual(out, b'')
69 self.assertEqual(err, b'')