PHP 8.2.30
Preview: test_tool.py Size: 2.79 KB
//proc/self/root/opt/alt/python37/lib64/python3.7/site-packages/simplejson/tests/test_tool.py

from __future__ import with_statement
import os
import sys
import textwrap
import unittest
import subprocess
import tempfile
try:
    # Python 3.x
    from test.support import strip_python_stderr
except ImportError:
    # Python 2.6+
    try:
        from test.test_support import strip_python_stderr
    except ImportError:
        # Python 2.5
        import re
        def strip_python_stderr(stderr):
            return re.sub(
                r"\[\d+ refs\]\r?\n?$".encode(),
                "".encode(),
                stderr).strip()

class TestTool(unittest.TestCase):
    data = """

        [["blorpie"],[ "whoops" ] , [
                                 ],\t"d-shtaeou",\r"d-nthiouh",
        "i-vhbjkhnth", {"nifty":87}, {"morefield" :\tfalse,"field"
            :"yes"}  ]
           """

    expect = textwrap.dedent("""\
    [
        [
            "blorpie"
        ],
        [
            "whoops"
        ],
        [],
        "d-shtaeou",
        "d-nthiouh",
        "i-vhbjkhnth",
        {
            "nifty": 87
        },
        {
            "field": "yes",
            "morefield": false
        }
    ]
    """)

    def runTool(self, args=None, data=None):
        argv = [sys.executable, '-m', 'simplejson.tool']
        if args:
            argv.extend(args)
        proc = subprocess.Popen(argv,
                                stdin=subprocess.PIPE,
                                stderr=subprocess.PIPE,
                                stdout=subprocess.PIPE)
        out, err = proc.communicate(data)
        self.assertEqual(strip_python_stderr(err), ''.encode())
        self.assertEqual(proc.returncode, 0)
        return out

    def test_stdin_stdout(self):
        self.assertEqual(
            self.runTool(data=self.data.encode()),
            self.expect.encode())

    def test_infile_stdout(self):
        with tempfile.NamedTemporaryFile() as infile:
            infile.write(self.data.encode())
            infile.flush()
            self.assertEqual(
                self.runTool(args=[infile.name]),
                self.expect.encode())

    def test_infile_outfile(self):
        with tempfile.NamedTemporaryFile() as infile:
            infile.write(self.data.encode())
            infile.flush()
            # outfile will get overwritten by tool, so the delete
            # may not work on some platforms. Do it manually.
            outfile = tempfile.NamedTemporaryFile()
            try:
                self.assertEqual(
                    self.runTool(args=[infile.name, outfile.name]),
                    ''.encode())
                with open(outfile.name, 'rb') as f:
                    self.assertEqual(f.read(), self.expect.encode())
            finally:
                outfile.close()
                if os.path.exists(outfile.name):
                    os.unlink(outfile.name)

Directory Contents

Dirs: 1 × Files: 31

Name Size Perms Modified Actions
- drwxr-xr-x 2024-03-03 19:12:24
Edit Download
2.19 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
2.24 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
917 B lrw-r--r-- 2017-11-05 18:28:38
Edit Download
2.48 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
3.93 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
221 B lrw-r--r-- 2017-11-05 18:28:38
Edit Download
4.88 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
2.28 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1022 B lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.51 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
6.20 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.40 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
2.70 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
2.51 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.34 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.36 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
3.91 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.71 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
386 B lrw-r--r-- 2017-11-05 18:28:38
Edit Download
482 B lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.04 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.64 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
7.14 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
942 B lrw-r--r-- 2017-11-05 18:28:38
Edit Download
3.03 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
551 B lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.10 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
2.79 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.79 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
6.83 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download
1.93 KB lrw-r--r-- 2017-11-05 18:28:38
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).