ó
šßÈ[c           @€  s  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l Z d  d l Z	 y d  d l
 m Z e Z Wn e k
 r e Z n Xd d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   with_statementN(   t   version_info(   t   Imagei   (   t   catch_warningsi   (   t   util(   t   ignore_sigint(   t   realign_dtypei   (   t   FitsTestCaset	   TestUtilsc           B€  s,   e  Z e j j d  ƒ d „  ƒ Z d „  Z RS(   s   sys.platform.startswith('win')c         C€  s#   t  d „  ƒ } t j t | ƒ d  S(   Nc          S€  s‚   t  t ƒ 9 }  t j ƒ  } t j | t j ƒ t j | t j ƒ Wd  QXt |  ƒ d k s_ t ‚ t	 |  d j
 ƒ d k s~ t ‚ d  S(   Ni   i    s1   KeyboardInterrupt ignored until test is complete!(   R   t   UserWarningt   ost   getpidt   killt   signalt   SIGINTt   lent   AssertionErrort   strt   message(   t   wt   pid(    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test   s    (   R   t   pytestt   raisest   KeyboardInterrupt(   t   selfR   (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test_ignore_sigint   s    c         C€  sc  t  j d t  j f d t  j f g ƒ } t | d d g ƒ } | j d k sQ t ‚ t | d d g ƒ } | j d k s{ t ‚ t | d d g ƒ } | j d k s¥ t ‚ t  j d t  j f d t  j f d t  j f g ƒ } t | d d d g ƒ } | j d k st ‚ t | d d d g ƒ } | j d k s2t ‚ t | d d d	 g ƒ } | j d
 k s_t ‚ d S(   s  
        Tests a few corner-cases for the realign_dtype hack.

        These are unlikely to come in practice given how this is currently
        used in astropy.io.fits, but nonetheless tests for bugs that were
        present in earlier versions of the function.
        t   at   bi    i   i   i   t   ci   i   i   N(	   t   npt   dtypet   int32t   int16R   t   itemsizeR   t   float64t   int8(   R   t   dtt   dt2(    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test_realign_dtype+   s    	'3(   t   __name__t
   __module__R   t   markt   skipifR   R'   (    (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyR      s   t   TestUtilModec           B€  sV   e  Z d  Z d „  Z e j j d ƒ d „  ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   s¥   
    The high-level tests are partially covered by
    test_core.TestConvenienceFunctions.test_fileobj_mode_guessing
    but added some low-level tests as well.
    c         C€  s   t  j d ƒ d  k s t ‚ d  S(   Ns	   tmp1.fits(   R   t   fileobj_modet   NoneR   (   R   (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test_mode_stringsP   s    s   not HAS_PILc         C€  s‰   t  j j d d d ƒ j t  j ƒ } t j | ƒ } | j |  j d ƒ ƒ t j	 |  j d ƒ ƒ " } t
 j | ƒ d k s t ‚ Wd  QXd  S(   Ni    iÿ   i   i   s   test_simple.jpgt   rb(   i   i   i   (   R   t   randomt   randintt   astypet   uint8R   t	   fromarrayt   savet   tempt   openR   R-   R   (   R   t   imgt   resultt   fileobj(    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test_mode_pil_imageU   s
    $c      	   C€  sÏ   t  j d k  s- t  j d k rH t  j d k  rH d d d d d d g } n d d d d d d d g } xe | D]] \ } } } |  j d j | ƒ ƒ } t j | | ƒ " } t j | ƒ | k sÁ t	 ‚ Wd  QXqj Wd  S(   Ni   i   i    R   t   abi   R   t   wbt   rR0   t   xt   xbs
   test{0}.gz(   i    R   R=   (   i    R=   R=   (   i   R   R>   (   i   R>   R>   (   i   R?   R0   (   i   R0   R0   (   i    R   R=   (   i    R=   R=   (   i    R   R>   (   i    R>   R>   (   i   R@   RA   (   i   R?   R0   (   i   R0   R0   (
   R   t   majort   minorR7   t   formatt   gzipt   GzipFileR   R-   R   (   R   t   num_mode_resmodet   numt   modet   rest   filenameR;   (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test_mode_gzip_   s    c         C€  sÀ   t  j d k  s- t  j d k r? t  j d k  r? d
 d d g } n d d d d g } xh | D]` \ } } } |  j d j | ƒ ƒ } t | | d	 d ƒ" } t j | ƒ | k s² t ‚ Wd  QXqX Wd  S(   Ni   i    R=   i   R>   R0   RA   s   test1{0}.datt	   buffering(   i    R=   R=   (   i   R>   R>   (   i   R0   R0   (   i    R=   R=   (   i    R>   R>   (   i   RA   RA   (   i   R0   R0   (	   R   RB   RC   R7   RD   R8   R   R-   R   (   R   RG   RH   RI   RJ   RK   R;   (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test_mode_normal_bufferingw   s    	c      	   C€  sÌ   t  j d k  s- t  j d k rH t  j d k  rH d d d d d d g } n d d d d d d d g } xb | D]Z \ } } } |  j d j | ƒ ƒ } t | | ƒ " } t j | ƒ | k s¾ t ‚ Wd  QXqj Wd  S(   Ni   i    R   R=   i   R   i   R>   R?   R0   R@   s   test2{0}.dat(   i    R   R   (   i    R=   R=   (   i   R   R   (   i   R>   R>   (   i   R?   R?   (   i   R0   R0   (   i    R   R   (   i    R=   R=   (   i    R   R   (   i    R>   R>   (   i   R@   R@   (   i   R?   R?   (   i   R0   R0   (	   R   RB   RC   R7   RD   R8   R   R-   R   (   R   RG   RH   RI   RJ   RK   R;   (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test_mode_normal_no_buffering‹   s    c         C€  sx   xq d d	 d
 d d g D]Z \ } } } |  j  d j | ƒ ƒ } t | | ƒ " } t j | ƒ | k sj t ‚ Wd  QXq Wd  S(   Ni    R   s   a+R=   s   a+bs   ab+s   test3{0}.dat(   i    R   R   (   i    s   a+s   a+(   i    R=   R=   (   i    s   a+bs   ab+(   i    s   ab+s   ab+(   R7   RD   R8   R   R-   R   (   R   RH   RI   RJ   RK   R;   (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   test_mode_normalizationŸ   s    (   R(   R)   t   __doc__R/   R   R*   R+   R<   RL   RN   RO   RP   (    (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyR,   I   s   	
			(   t
   __future__R    R
   R   RE   t   sysR   R   t   numpyR   t   PILR   t   Truet   HAS_PILt   ImportErrort   Falset   tests.helperR   t    R   R   t   _numpy_hacksR   R   R   R,   (    (    (    s>   lib/python2.7/site-packages/astropy/io/fits/tests/test_util.pyt   <module>   s$   

.