ó
;c]c           @` 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 j e j j e   Z e Z xK e d  D]= Z e j j e  Z e j j e j j e d   r Pq q We d  Z d a d   Z e d  Z d	   Z d
 d  Z d   Z d   Z d S(   sK    Functionality used for testing. This code itself is not covered in tests.
i    (   t   absolute_importt   print_functiont   divisionNi	   s
   .gitignorec         C` sÂ   t  j   j j } | j d d  d k s. d St j t  t | d  } t	   t
   t j d d d d	 d
 d d d d | g
  |  rū d d l } t j j t d d  } | j |  n  d S(   sģ    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.
    t   __name__t    t   __main__Nt   __file__s   -vs   -xs   --color=yess   --covt   imageios   --cov-configs   .coveragercs   --cov-reportt   htmli    t   htmlcovs
   index.html(   t   inspectt   currentframet   f_backt   f_localst   gett   ost   chdirt   ROOT_DIRt   strt   _clear_imageiot   _enable_faulthandlert   pytestt   maint
   webbrowsert   patht   joint   open_new_tab(   t   show_coveraget
   local_varst   fnameR   (    (    s.   lib/python2.7/site-packages/imageio/testing.pyt   run_tests_if_main   s,    
c          C` s~   t  d  k rz d d l m }  t j j |  d  d  a  t t  t j	 t   t j	 t j j t  d   t
 j t  n  t  S(   Ni    (   t   appdata_dirR   t   testdirt   images(   t   _the_test_dirt   Nonet   imageio.coreR   R   R   R   t   clean_test_dirt   Truet   makedirst   atexitt   register(   R   (    (    s.   lib/python2.7/site-packages/imageio/testing.pyt   get_test_dirC   s    
c         C` sJ   t  j j t  rF y t j t  WqF t k
 rB |  rC   qC qF Xn  d  S(   N(   R   R   t   isdirR"   t   shutilt   rmtreet	   Exception(   t   strict(    (    s.   lib/python2.7/site-packages/imageio/testing.pyR%   S   s    c           C` s2   t  j d d  j   d k r. t j d  n  d  S(   Nt   IMAGEIO_NO_INTERNETR   t   1t   truet   yess   No internet(   R1   R2   R3   (   R   t   getenvt   lowerR   t   skip(    (    (    s.   lib/python2.7/site-packages/imageio/testing.pyt   need_internet\   s    t   termc      	   C` s   t  j   } t  j t  z7 t   t   t j d d d d d d |  d g  SWd t  j |  d	 d l } t	 d
 t
 |   Xd S(   s,    Run all unit tests. Returns exit code.
    s   -vs   --covR   s   --cov-configs   .coveragercs   --cov-reportt   testsNi    s   Tests were performed on(   R   t   getcwdR   R   R   R   R   R   R   t   printR   (   t
   cov_reportt   orig_dirR   (    (    s.   lib/python2.7/site-packages/imageio/testing.pyt	   test_unitd   s"    c          C` sF   y$ d d l  }  |  j   t d  Wn t k
 rA t d  n Xd S(   sR    Enable faulthandler (if we can), so that we get tracebacks
    on segfaults.
    i    Ns   Faulthandler enableds   Could not enable faulthandler(   t   faulthandlert   enableR;   R.   (   R?   (    (    s.   lib/python2.7/site-packages/imageio/testing.pyR      s    
c          C` s@   x9 t  t j j    D]" }  |  j d  r t j |  =q q Wd  S(   NR   (   t   listt   syst   modulest   keyst
   startswith(   t   key(    (    s.   lib/python2.7/site-packages/imageio/testing.pyR      s    (   t   __doc__t
   __future__R    R   R   R   RB   R
   R,   R(   R   R   t   abspatht   dirnameR   t   THIS_DIRR   t   ranget   it   isfileR   t   FalseR   R#   R"   R*   R%   R7   R>   R   R   (    (    (    s.   lib/python2.7/site-packages/imageio/testing.pyt   <module>   s*   !#				