o
    �O5[è  ã                   @   s²   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZzd dlm	Z	 W n# e
yI   zd dlm	Z	 W n e
yF   d dlZdd„ Z	Y nw Y nw dd„ ZG dd	„ d	ejƒZdS )
é    )Úwith_statementN)Ústrip_python_stderrc                 C   s   t  d ¡ d ¡ | ¡ ¡ S )Nz\[\d+ refs\]\r?\n?$Ú )ÚreÚsubÚencodeÚstrip)Ústderr© r
   úL/var/www/html/env/lib/python3.10/site-packages/simplejson/tests/test_tool.pyr      s   ýýr   c                  C   sD   t jdkrtjdd�} | j}| |fS t ¡ \}}t |d¡} | |fS )N)é   é   F)Údeletezw+b)ÚsysÚversion_infoÚtempfileÚNamedTemporaryFileÚnameÚmkstempÚosÚfdopen)ÚfileÚfilenameÚfdr
   r
   r   Úopen_temp_file   s   
þr   c                   @   s<   e Zd ZdZe d¡Zddd„Zdd„ Zdd	„ Z	d
d„ Z
dS )ÚTestToolzÊ

        [["blorpie"],[ "whoops" ] , [
                                 ],	"d-shtaeou","d-nthiouh",
        "i-vhbjkhnth", {"nifty":87}, {"morefield" :	false,"field"
            :"yes"}  ]
           a.      [
        [
            "blorpie"
        ],
        [
            "whoops"
        ],
        [],
        "d-shtaeou",
        "d-nthiouh",
        "i-vhbjkhnth",
        {
            "nifty": 87
        },
        {
            "field": "yes",
            "morefield": false
        }
    ]
    Nc                 C   sp   t jddg}|r| |¡ tj|tjtjtjd�}| |¡\}}|  t|ƒd 	¡ ¡ |  |j
d¡ | d¡ ¡ S )Nz-mzsimplejson.tool)Ústdinr	   Ústdoutr   r   Úutf8)r   Ú
executableÚextendÚ
subprocessÚPopenÚPIPEÚcommunicateÚassertEqualr   r   Ú
returncodeÚdecodeÚ
splitlines)ÚselfÚargsÚdataÚargvÚprocÚoutÚerrr
   r
   r   ÚrunTool@   s   
ýzTestTool.runToolc                 C   s$   |   | j| j ¡ d�| j ¡ ¡ d S )N)r+   )r%   r0   r+   r   Úexpectr(   )r)   r
   r
   r   Útest_stdin_stdoutM   s   þzTestTool.test_stdin_stdoutc              	   C   s\   t ƒ \}}z"| | j ¡ ¡ | ¡  |  | j|gd�| j ¡ ¡ W t	 
|¡ d S t	 
|¡ w )N©r*   )r   Úwriter+   r   Úcloser%   r0   r1   r(   r   Úunlink)r)   ÚinfileÚinfile_namer
   r
   r   Útest_infile_stdoutR   s   
þzTestTool.test_infile_stdoutc              	   C   sÐ   t ƒ \}}z\| | j ¡ ¡ | ¡  t ƒ \}}z<| ¡  |  | j||gd�g ¡ t|dƒ�}|  | ¡  	d¡ 
¡ | j 
¡ ¡ W d   ƒ n1 sHw   Y  W t |¡ nt |¡ w W t |¡ d S t |¡ w )Nr3   Úrbr   )r   r4   r+   r   r5   r%   r0   ÚopenÚreadr'   r(   r1   r   r6   )r)   r7   r8   ÚoutfileÚoutfile_nameÚfr
   r
   r   Útest_infile_outfile]   s(   

þþÿ€zTestTool.test_infile_outfile)NN)Ú__name__Ú
__module__Ú__qualname__r+   ÚtextwrapÚdedentr1   r0   r2   r9   r@   r
   r
   r
   r   r   !   s    

r   )Ú
__future__r   r   r   rD   Úunittestr!   r   Útest.supportr   ÚImportErrorÚtest.test_supportr   r   ÚTestCaser   r
   r
   r
   r   Ú<module>   s(    ý€ü	