U
    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 nJ e
k
r   zd dlm	Z	 W n$ e
k
r   d dlZdd Z	Y nX Y nX 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
   </usr/lib/python3/dist-packages/simplejson/tests/test_tool.pyr      s
    r   c                  C   s>   t jdkrtjdd} | j}nt \}}t|d} | |fS )N)      F)deletezw+b)sysversion_infotempfileZNamedTemporaryFilenameZ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PIPEZ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"   r-   r(   r   expectr%   )r&   r
   r
   r   test_stdin_stdoutM   s    zTestTool.test_stdin_stdoutc              	   C   sT   t  \}}z8|| j  |  | | j|gd| j	
  W 5 t| X d S )Nr'   )r   r   unlinkwriter(   r   closer"   r-   r.   r%   )r&   infileinfile_namer
   r
   r   test_infile_stdoutR   s    
zTestTool.test_infile_stdoutc              	   C   s   t  \}}z|| j  |  t  \}}zZ|  | | j||gdg  t	|d&}| |
 d | j  W 5 Q R X W 5 t| X W 5 t| X d S )Nr0   rbr   )r   r   r1   r2   r(   r   r3   r"   r-   openreadr$   r%   r.   )r&   r4   r5   ZoutfileZoutfile_namefr
   r
   r   test_infile_outfile]   s$    

zTestTool.test_infile_outfile)NN)__name__
__module____qualname__r(   textwrapdedentr.   r-   r/   r6   r;   r
   r
   r
   r   r   !   s   

r   )Z
__future__r   r   r   r?   Zunittestr   r   Ztest.supportr   ImportErrorZtest.test_supportr   r   ZTestCaser   r
   r
   r
   r   <module>   s    	