U
    puf                     @   s  d Z ddlZddlZddlmZ edddddd	d
ZdddZddddiZdddddddZ	ddiddiddiddiddiddidZ
dZdZejde dd  Zd!d" Zejde d#d$ Zejde d%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 ZdS )1zTests for IPython.utils.capture    N)capture	image/png
image/jpegimage/svg+xml	text/htmlapplication/jsonapplication/javascript)
_repr_png_Z_repr_jpeg_
_repr_svg__repr_html_Z_repr_json__repr_javascript_s
   binarydataz<b>bold</b>)r   r   
      )widthheightz<svg>zalert();z{})r   r   r   r   r   r   ZpngexistsZjpegsvghtmlZjsjsonzhello, stdoutzhello, stderrmethod_mimec                 C   s(   t  }| \}}t|| dks$tdS )zRichOutput with no argsN)r   
RichOutputgetattrAssertionError)r   richmethodmime r   D/tmp/pip-unpacked-wheel-bxwx4lqe/IPython/utils/tests/test_capture.pytest_rich_output_emptyE   s    r   c                  C   sz   t } t}tj| |d}| | d ks*t| | d |d fksFt| dksVt| dksft|	 dksvtdS )ztest RichOutput basicsdatametadatar   r   N)

basic_databasic_metadatar   r   r   r   r	   Z_repr_latex_r   r
   )r    r!   r   r   r   r   test_rich_outputL   s    r$   c                 C   s4   t }tj|d}| \}}t|| || ks0tdS )z test RichOutput with no metadatar    N)	full_datar   r   r   r   )r   r    r   r   r   r   r   r   test_rich_output_no_metadataX   s    r'   c                 C   sB   t }t}tj||d}| \}}t|| || || fks>tdS )ztest RichOutput with metadatar   N)r&   full_metadatar   r   r   r   )r   r    r!   r   r   r   r   r   r   test_rich_output_metadataa   s
    r)   c               	   C   sl   t } tj| d}t }|  W 5 Q R X t|jdks>t|jd }|j|jksXt|j	|j	kshtdS )ztest RichOutput.display

    This is a bit circular, because we are actually using the capture code we are testing
    to test itself.
    r%      r   N)
r&   r   r   capture_outputdisplaylenoutputsr   r    r!   )r    r   capZrich2r   r   r   test_rich_output_displayj   s    

r0   c               	   C   sd   t jtd} t  *}ttdd ttdtjd | 	  W 5 Q R X t|j
ksRtt|jks`tdS )zcapture_output worksr%    endr3   fileN)r   r   r&   r+   printhello_stdouthello_stderrsysstderrr,   stdoutr   r   r/   r   r   r   test_capture_outputy   s    
r=   c               	   C   sz   t jtd} t jdd*}ttdd ttdtjd | 	  W 5 Q R X d|j
ksVtt|jksdtt|jdksvtdS )	z!test capture_output(stdout=False)r%   F)r;   r1   r2   r4   r*   Nr   r   r&   r+   r6   r7   r8   r9   r:   r,   r;   r   r-   r.   r<   r   r   r   test_capture_output_no_stdout   s    r?   c               
   C   s   t jtd} t  B t jdd*}ttdd ttdtjd | 	  W 5 Q R X W 5 Q R X t|j
ksjtd|jksxtt|jdkstdS )	z!test capture_output(stderr=False)r%   F)r:   r1   r2   r4   r*   Nr>   r<   r   r   r   test_capture_output_no_stderr   s    r@   c               	   C   sv   t jtd} t jdd*}ttdd ttdtjd | 	  W 5 Q R X t|j
ksVtt|jksdt|jg ksrtdS )z"test capture_output(display=False)r%   F)r,   r1   r2   r4   N)r   r   r&   r+   r6   r7   r8   r9   r:   r,   r;   r   r.   r<   r   r   r   test_capture_output_no_display   s    rA   )__doc__r9   ZpytestZIPython.utilsr   dictZ	_mime_mapr"   r#   r&   r(   r7   r8   markZparametrizeitemsr   r$   r'   r)   r0   r=   r?   r@   rA   r   r   r   r   <module>   s^   
		


