ó
šßÈ[c           @` sV  d  d l  m Z 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
 m Z d 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 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ  d „  Z! d „  Z" d „  Z# d „  Z$ d S(   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsNi   (   t   catch_warnings(   t   six(   t   get_pkg_data_filenamei   (   t   configuration(   t   paths(   t   AstropyDeprecationWarningc           C` s4   d t  j ƒ  k s t ‚ d t  j ƒ  k s0 t ‚ d  S(   Nu   astropy(   R   t   get_config_dirt   AssertionErrort   get_cache_dir(    (    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt
   test_paths   s    c         ` sÅ   | j  t j d d  ƒ t j ƒ  ‰  t |  j d ƒ ƒ } t j j	 | d ƒ ‰ t j | ƒ ‡  ‡ f d †  ƒ } | ƒ  t j | d t
 ƒ t j ƒ  ˆ k s¢ t ‚ Wd  QXt j j | ƒ sÁ t ‚ d  S(   Nu
   _temp_pathu   configu   astropyc          ` sY   t  j ƒ  ˆ k s t ‚ t  j ƒ  / }  |  ˆ  k oD t  j ƒ  k n sO t ‚ Wd  QXd  S(   N(   R   R
   R   t   set_temp_config(   t   d(   t   orig_config_dirt   temp_astropy_config(    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt	   test_func$   s    t   delete(   t   setattrR   R   t   NoneR
   t   strt   mkdirt   ost   patht   joint   TrueR   t   exists(   t   tmpdirt   monkeypatcht   temp_config_dirR   (    (   R   R   s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_set_temp_config   s    !c         ` sÅ   | j  t j d d  ƒ t j ƒ  ‰  t |  j d ƒ ƒ } t j j	 | d ƒ ‰ t j | ƒ ‡  ‡ f d †  ƒ } | ƒ  t j | d t
 ƒ t j ƒ  ˆ k s¢ t ‚ Wd  QXt j j | ƒ sÁ t ‚ d  S(   Nu
   _temp_pathu   cacheu   astropyc          ` sY   t  j ƒ  ˆ k s t ‚ t  j ƒ  / }  |  ˆ  k oD t  j ƒ  k n sO t ‚ Wd  QXd  S(   N(   R   R   R   t   set_temp_cache(   R   (   t   orig_cache_dirt   temp_astropy_cache(    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyR   =   s    R   (   R   R   R!   R   R   R   R   R   R   R   R   R   R   (   R   R   t   temp_cache_dirR   (    (   R"   R#   s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_set_temp_cache5   s    !c          C` s™   d d l  m }  m } |  d ƒ } | j j d ƒ s: t ‚ |  d ƒ } | j d k s[ t ‚ | j d k sp t ‚ | j j j d ƒ s‹ t ‚ | d ƒ d  S(   Ni   (   t
   get_configt   reload_configu   astropyu   astropy.cfgu   astropy.configi   u   config(	   R   R&   R'   t   filenamet   endswithR   t   deptht   namet   parent(   R&   R'   t   apycfgt   cfgsec(    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_config_fileN   s    c          ` s#  d d l  m }  m } m } | d d ƒ ‰  d |  f ‡  f d †  ƒ  Y} | ƒ  } ˆ  j d k se t ‚ ˆ  ƒ  d k sz t ‚ ˆ  j d k s t ‚ | j d k s¤ t ‚ | ˆ  j ƒ } | d d k sÉ t ‚ d	 ˆ  _ ˆ  j d
 ƒ ˆ  ƒ  d
 k sô t ‚ d ˆ  _ ˆ  j d ƒ ˆ  ƒ  d k st ‚ d  S(   Ni   (   t   ConfigNamespacet
   ConfigItemR&   i"   u   this is a Descriptiont   Confc           ` s   e  Z ˆ  Z RS(    (   t   __name__t
   __module__t   tstnm(    (   t   ci(    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyR2   b   s   u!   astropy.config.tests.test_configsu   tstnmu   updated Descri    (	   R   R0   R1   R&   t   moduleR   t   descriptionR5   t   set(   R0   R1   R&   R2   t   conft   sec(    (   R6   s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_configitem\   s     			c          ` s  d d l  m }  m ‰  ˆ  d d d g ƒ } d |  f ‡  f d †  ƒ  Y} | ƒ  } t | j t ƒ sh t ‚ t | j t ƒ s€ t ‚ t | j	 t
 ƒ s˜ t ‚ t | j t j ƒ s³ t ‚ t j t ƒ  d | _ Wd  QXd	 | _ t j t ƒ  d
 | _	 Wd  QXt j t ƒ  d | _ Wd  QXd  S(   Ni   (   R0   R1   u   op1u   op2u   op3R2   c           ` s8   e  Z ˆ  d  ƒ Z ˆ  d ƒ Z ˆ  e ƒ Z ˆ  d ƒ Z RS(   i"   gfffff&A@u   astring(   R3   R4   t   tstnm1t   tstnm2R   t   tstnm3t   tstnm4(    (   R1   (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyR2      s   gfffff&A@i   u   fasdg)\Âõ@(   R   R0   R1   t
   isinstanceR=   t   intR   R>   t   floatR?   t   boolR@   R   t	   text_typet   pytestt   raisest	   TypeError(   R0   t   cioR2   R:   (    (   R1   s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_configitem_types{   s    		c      	   ` s¯  d d l  m } m } m } | d d d g ƒ ‰  d | f ‡  f d †  ƒ  Y} | ƒ  } | ˆ  j ƒ } t ˆ  ƒ  t j ƒ s€ t ‚ ˆ  ƒ  d k s• t ‚ | d d k s« t ‚ ˆ  j	 d ƒ t
 j t ƒ  ˆ  j	 d	 ƒ Wd  QX| d d k sñ t ‚ | } x | j | k	 r| j } qú W|  j d
 ƒ } t j | j d ƒ  }	 | j |	 ƒ Wd  QXt j | j d d d ƒ, }	 g  | j ƒ  D] }
 |
 j ƒ  ^ q{} Wd  QXd | k s«t ‚ d  S(   Ni   (   R0   R1   R&   u   op1u   op2u   op3R2   c           ` s   e  Z ˆ  Z RS(    (   R3   R4   t   tstnmo(    (   RI   (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyR2      s   u   tstnmou   op5u   astropy.cfgu   wbu   rt   encodingu   utf-8u   tstnmo = op2(   R   R0   R1   R&   R7   RA   R   RE   R   R9   RF   RG   RH   R,   R   t   iot   opent   strpatht   writet	   readlinest   strip(   R   R0   R1   R&   R2   R:   R;   R-   t   ft   fdt   xt   lns(    (   RI   s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_configitem_options—   s*    	+c         C` sî   |  j  t d ƒ d ƒ |  j t d ƒ ƒ |  j t j d d ƒ d „  } |  j t d | ƒ |  j t d i  ƒ t j	 t
 ƒ  t j ƒ  Wd QXt t j ƒ  } t ƒ  Wd QXt | ƒ d k sÅ t ‚ | d	 } d
 t | j ƒ k sê t ‚ d S(   u‡   
    Tests to make sure configuration items fall back to their defaults when
    there's a problem accessing the astropy directory
    u   XDG_CONFIG_HOMEu   foou
   _temp_pathc         S` s
   t  ‚ d  S(   N(   t   OSError(   t   dirnmt   linkto(    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   osraiserÇ   s    u   _find_or_create_astropy_diru   _cfgobjsNi   i    u#   Configuration defaults will be used(   t   setenvR   t   delenvR   R   R   R   R   RF   RG   RX   R
   R   t   ConfigurationMissingWarningR<   t   lenR   t   message(   R   R[   t   w(    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_config_noastropy_fallbackº   s    	
c          ` s/  d d l  m }  m ‰  d |  f ‡  f d †  ƒ  Y} | ƒ  } | j d k sP t ‚ | j d d ƒ  | j d k sx t ‚ Wd  QX| j d k s“ t ‚ d | _ | j d k s± t ‚ | j d d	 ƒ  | j d	 k sÙ t ‚ Wd  QXy# | j d d
 ƒ  t ‚ Wd  QXWn t k
 rn X| j d k s+t ‚ d  S(   Ni   (   R0   R1   R2   c           ` s   e  Z ˆ  d  d ƒ Z RS(   i*   u   this is another Description(   R3   R4   t   tstnm12(    (   R1   (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyR2   ß   s   i*   u   tstnm12i-   i+   i.   i/   (   R   R0   R1   Rc   R   t   set_tempt	   Exception(   R0   R2   R:   (    (   R1   s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_configitem_settersÛ   s"    		c          C` s–   d d l  m }  d „  } | d ƒ } |  | ƒ s7 t ‚ | d ƒ } |  | ƒ sV t ‚ | d ƒ } |  | ƒ st t ‚ | d ƒ } |  | ƒ s’ t ‚ d  S(   Ni   (   t   is_unedited_config_filec         S` s5   t  j t |  ƒ d d d ƒ } | j ƒ  SWd  QXd  S(   Nu   rtRL   u   latin-1(   RM   RN   R   t   read(   t   fnRT   (    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   get_contentü   s    !u   data/empty.cfgu   data/not_empty.cfgu   data/astropy.0.3.cfgu   data/astropy.0.3.windows.cfg(   R   Rg   R   (   Rg   Rj   t   content(    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_empty_config_fileù   s    	t   TestAliasReadc           B` s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C` s   t  d ƒ t _ d  S(   Nu   data/alias.cfg(   R   R   t   _override_config_file(   t   self(    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   setup_class  s    c         C` s   d d l  m } t ƒ  & } | j ƒ  | j d k s; t ‚ Wd  QXt | ƒ d k sY t ‚ t | d j ƒ j	 d ƒ s{ t ‚ d  S(   Ni    (   R:   i*   i   uM   Config parameter 'name_resolve_timeout' in section [coordinates.name_resolve](
   t   astropy.utils.dataR:   R   t   reloadt   remote_timeoutR   R_   R   R`   t
   startswith(   Ro   R:   Ra   (    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_alias_read  s    
c         C` s'   d d l  m } d  t _ | j ƒ  d  S(   Ni    (   R:   (   Rq   R:   R   R   Rn   Rr   (   Ro   R:   (    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   teardown_class  s    	(   R3   R4   Rp   Ru   Rv   (    (    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyRm     s   		c         ` s¦   d d l  m } m } m } | d ƒ ‰  d | f ‡  f d †  ƒ  Y} | ƒ  } | ˆ  j ƒ } t ˆ  ƒ  t j ƒ sw t ‚ ˆ  ƒ  d k sŒ t ‚ | d d k s¢ t ‚ d  S(   Ni   (   R0   R1   R&   u!   áƒáƒ¡áƒ¢áƒ áƒáƒœáƒáƒ›áƒ˜áƒ˜áƒ¡R2   c           ` s   e  Z ˆ  Z RS(    (   R3   R4   t
   tstunicode(    (   RI   (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyR2   +  s   u
   tstunicode(	   R   R0   R1   R&   R7   RA   R   RE   R   (   R   R0   R1   R&   R2   R:   R;   (    (   RI   s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_configitem_unicode%  s    	c          C` s|   d d l  m }  t d ƒ t _ zB t t ƒ  } |  j ƒ  |  j Wd  QXt	 | ƒ d k s` t
 ‚ Wd  d  t _ |  j ƒ  Xd  S(   Ni   (   R:   u   data/deprecated.cfgi   (   t    R:   R   R   Rn   R   R	   Rr   t	   max_linesR_   R   R   (   R:   Ra   (    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_warning_move_to_top_level7  s    
	c          C` sÿ   t  j j t ƒ }  t  j j t  j j |  d d d ƒ ƒ } t  j j ƒ  } | g } | j d ƒ ry | j	 | j d ƒ ƒ n  t
 t  j j | ƒ ƒ | t
 d ƒ <x* d d g D] } | | k r¨ | | =q¨ q¨ Wt j t j d d g d | ƒ} | d k sû t ‚ d  S(	   Nu   ..u
   PYTHONPATHu   HOMEu   XDG_CONFIG_HOMEu   -cu   import astropyt   envi    (   R   R   t   dirnamet   __file__t   abspathR   t   environt   copyt   gett   appendR   t   pathsept
   subprocesst
   check_callt   syst
   executableR   (   t	   test_patht   astropy_pathR|   R   t   valt   retcode(    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_no_homeH  s    		"	c          C` sV   t  j j t  j j t ƒ d d ƒ }  t j d |  ƒ t j d |  ƒ t k sR t ‚ d  S(   Nu   ..u   astropy(	   R   R   R   R}   R~   R   t   update_default_configt   FalseR   (   t
   config_dir(    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   test_unedited_templateb  s    $(%   t
   __future__R    R   R   R   RM   R   R‡   R…   RF   t   tests.helperR   t   externR   t
   utils.dataR   Ry   R   R   t   utils.exceptionsR	   R   R    R%   R/   R<   RJ   RW   Rb   Rf   Rl   t   objectRm   Rx   R{   R   R‘   (    (    (    s@   lib/python2.7/site-packages/astropy/config/tests/test_configs.pyt   <module>   s4   "							#	!					