B
    ÿNŽ[¡  ã               @   sÜ   d Z ddlmZmZ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
ej ej e¡¡ZeZx4edƒD ](Zej e¡Zej ej ed¡¡rjP qjW ddd„Zdad	d
„ Zddd„Zdd„ Zddd„Zdd„ Zdd„ ZdS )zK Functionality used for testing. This code itself is not covered in tests.
é    )Úabsolute_importÚprint_functionÚdivisionNé	   z
.gitignoreFc             C   sŠ   t  ¡ jj}| dd¡dks dS t t¡ t|d ƒ}t	ƒ  t
ƒ  t dddd	d
dddd|g
¡ | r†ddl}tj tdd¡}| |¡ dS )z³ Run tests in a given file if it is run as a script
    
    Coverage is reported for running this single test. Set show_coverage to
    launch the report in the web browser.
    Ú__name__Ú Ú__main__NÚ__file__z-vz-xz--color=yesz--covÚimageioz--cov-configz.coveragercz--cov-reportZhtmlr   Zhtmlcovz
index.html)ÚinspectZcurrentframeÚf_backÚf_localsÚgetÚosÚchdirÚROOT_DIRÚstrÚ_clear_imageioÚ_enable_faulthandlerÚpytestÚmainÚ
webbrowserÚpathÚjoinZopen_new_tab)Zshow_coverageZ
local_varsÚfnamer   © r   ú.lib/python3.7/site-packages/imageio/testing.pyÚrun_tests_if_main   s,    
r   c              C   sZ   t d krVddlm}  tj | dƒd¡a tdƒ t t ¡ t tj t d¡¡ t 	t¡ t S )Nr   )Úappdata_dirr
   ZtestdirTZimages)
Ú_the_test_dirZimageio.corer   r   r   r   Úclean_test_dirÚmakedirsÚatexitÚregister)r   r   r   r   Úget_test_dirC   s    

r$   c             C   s:   t j t¡r6yt t¡ W n tk
r4   | r0‚ Y nX d S )N)r   r   Úisdirr   ÚshutilZrmtreeÚ	Exception)Ústrictr   r   r   r    S   s    r    c               C   s"   t  dd¡ ¡ dkrt d¡ d S )NZIMAGEIO_NO_INTERNETr   )Ú1ÚtrueZyeszNo internet)r   ÚgetenvÚlowerr   Úskipr   r   r   r   Úneed_internet\   s    r.   Útermc          
   C   s`   t  ¡ }t  t¡ z&tƒ  tƒ  t dddddd| dg¡S t  |¡ d	dl}t	d
t
|ƒƒ X dS )z, Run all unit tests. Returns exit code.
    z-vz--covr
   z--cov-configz.coveragercz--cov-reportZtestsNr   zTests were performed on)r   Úgetcwdr   r   r   r   r   r   r
   Úprintr   )Z
cov_reportZorig_dirr
   r   r   r   Ú	test_unitd   s"    

r2   c              C   s>   yddl } |  ¡  tdƒ W n tk
r8   tdƒ Y nX dS )zR Enable faulthandler (if we can), so that we get tracebacks
    on segfaults.
    r   NzFaulthandler enabledzCould not enable faulthandler)ÚfaulthandlerÚenabler1   r'   )r3   r   r   r   r   ‚   s    r   c              C   s.   x(t tj ¡ ƒD ]} |  d¡rtj| = qW d S )Nr
   )ÚlistÚsysÚmodulesÚkeysÚ
startswith)Úkeyr   r   r   r      s    
r   )F)F)r/   )Ú__doc__Z
__future__r   r   r   r   r6   r   r&   r"   r   r   ÚabspathÚdirnamer	   ZTHIS_DIRr   ÚrangeÚiÚisfiler   r   r   r$   r    r.   r2   r   r   r   r   r   r   Ú<module>   s*   
#
	
