ó
Š]c           @   s9  d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z 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 d l m Z d d	 l m Z d d
 l m Z d d l m Z d „  Z d e j e j e j e j f d „  ƒ  YZ d „  Z e  d k r5e e ƒ  ƒ n  d S(   s$   Tests for distutils.command.install.iÿÿÿÿN(   t   captured_stdoutt   run_unittest(   t	   sysconfig(   t   install(   t	   build_ext(   t   INSTALL_SCHEMES(   t   Distribution(   t   DistutilsOptionError(   t	   Extension(   t   supportc         C   s?   t  j d k r. t j j d ƒ r. |  d 7}  n  |  t j d ƒ S(   Nt   nts   _d.exet   _dt   SO(   t   ost   namet   syst
   executablet   endswithR   t   get_config_var(   t   modname(    (    s-   lib/python2.7/distutils/tests/test_install.pyt   _make_ext_name   s    !t   InstallTestCasec           B   sb   e  Z d  „  Z e j e j d k  d ƒ d „  ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(	   c            sn  ˆ  j  ƒ  } t j j | d ƒ } t i d d 6ƒ } t j j | d ƒ | _ t j d | d t j j | d ƒ ƒ | j d <t	 | ƒ } | | _
 | j ƒ  ˆ  j | j | ƒ ˆ  j | j | ƒ ‡  f d	 †  } t j j | d d
 ƒ } | | j | ƒ | | j | ƒ | | j | ƒ | | j t j j | d d
 d ƒ ƒ | | j t j j | d ƒ ƒ | | j | ƒ d  S(   Nt   installationt   foopkgR   s   setup.pyt
   build_baset	   build_libt   libt   buildc            s8   t  j j |  ƒ }  t  j j | ƒ } ˆ  j |  | ƒ d  S(   N(   R   t   patht   normpatht   assertEqual(   t   gott   expected(   t   self(    s-   lib/python2.7/distutils/tests/test_install.pyt
   check_path7   s    t   pythont   includet   bin(   t   mkdtempR   R   t   joinR   t   script_nameR	   t   DummyCommandt   command_objR   t   homet   ensure_finalizedR   t   install_baset   install_platbaset   install_libt   install_platlibt   install_purelibt   install_headerst   install_scriptst   install_data(   R!   t   builddirt   destinationt   distt   cmdR"   t   libdir(    (   R!   s-   lib/python2.7/distutils/tests/test_install.pyt   test_home_installation_scheme!   s*    		
	s   2.6s$   site.USER_SITE was introduced in 2.6c   
         sõ  t  j ˆ  _ t  j ˆ  _ ˆ  j ƒ  ˆ  _ t j j	 ˆ  j d ƒ ˆ  _
 t j j	 ˆ  j d ƒ ˆ  _ ˆ  j
 t  _ ˆ  j t  _ ˆ  j
 t _ ˆ  j t _ ‡  f d †  } t j j ˆ  _ | t j _ ‡  f d †  } ˆ  j | ƒ x d D] } ˆ  j | t ƒ qÚ Wt i d d	 6ƒ } t | ƒ } g  | j D] \ } } } | ^ q}	 ˆ  j d
 |	 ƒ d | _ ˆ  j t j j ˆ  j
 ƒ ƒ ˆ  j t j j ˆ  j ƒ ƒ | j ƒ  ˆ  j t j j ˆ  j
 ƒ ƒ ˆ  j t j j ˆ  j ƒ ƒ ˆ  j d | j ƒ ˆ  j d | j ƒ d  S(   Nt   Bt   Sc            s   ˆ  j  S(   N(   t   tmpdir(   R   (   R!   (    s-   lib/python2.7/distutils/tests/test_install.pyt   _expanduserS   s    c              sC   ˆ  j  t _ ˆ  j t _ ˆ  j  t _ ˆ  j t _ ˆ  j t j _	 d  S(   N(
   t   old_user_baset   sitet	   USER_BASEt   old_user_sitet	   USER_SITEt   install_modulet
   old_expandR   R   t
   expanduser(    (   R!   (    s-   lib/python2.7/distutils/tests/test_install.pyt   cleanupX   s
    t   nt_usert	   unix_usert   os2_homet   xxR   t   useri   t   userbaset   usersite(   RH   RI   RJ   (   R@   RA   R?   RC   RB   R&   R=   R   R   R'   t	   user_baset	   user_siteRD   RF   RE   t
   addCleanupt   assertInR   R   R   t   user_optionsRL   t   assertFalset   existsR,   t
   assertTruet   config_vars(
   R!   R>   RG   t   keyR7   R8   R   t   shortt   lablet   options(    (   R!   s-   lib/python2.7/distutils/tests/test_install.pyt   test_user_siteE   s:    "	
c         C   s4  t  i d d 6d d 6ƒ } t | ƒ } | j ƒ  |  j | j d d g ƒ |  j | j d ƒ |  j | j d ƒ d g | _ | j ƒ  |  j | j d g ƒ |  j | j d ƒ |  j | j d ƒ d  | _ | _ | j ƒ  |  j | j d  ƒ |  j | j d ƒ |  j | j d  ƒ d | _ |  j t	 | j ƒ d  S(	   NRK   R   s	   path,dirst
   extra_pathR   t   dirst    s   path,dirs,again(
   R   R   t   handle_extra_pathR   R]   t
   extra_dirst	   path_filet   Nonet   assertRaisesR   (   R!   R7   R8   (    (    s-   lib/python2.7/distutils/tests/test_install.pyt   test_handle_extra_path}   s$    


	c         C   s’   t  i d d 6ƒ } t | ƒ } d | _ d | _ |  j t | j ƒ d  | _ d | _ |  j t | j ƒ d  | _ d | _	 |  j t | j ƒ d  S(   NRK   R   t   prefixt   baseR+   RL   (
   R   R   Rf   R-   Rd   R   t   finalize_optionsRc   R+   RL   (   R!   R7   R8   (    (    s-   lib/python2.7/distutils/tests/test_install.pyt   test_finalize_options™   s    						c   
      C   s4  |  j  ƒ  } |  j d d g d d g ƒ \ } } t j | ƒ |  j d d ƒ |  j d d ƒ t | ƒ } | | j d <| | _ t j j	 | d	 ƒ | _
 | j ƒ  | j ƒ  t | j
 ƒ } z | j ƒ  } Wd  | j ƒ  Xg  | j ƒ  D] } t j j | ƒ ^ qå } d d
 d d t j d  g }	 |  j | |	 ƒ d  S(   Nt
   py_modulest   hellot   scriptst   sayhis   hello.pys   def main(): print 'o hai's   from hello import main; main()R   t   filelists	   hello.pycs   UNKNOWN-0.0.0-py%s.%s.egg-infoi   (   R&   t   create_distR   t   chdirt
   write_fileR   R*   t   rootR   R'   t   recordR,   t   runt   opent   readt   closet
   splitlinest   basenameR   t   version_infoR   (
   R!   t   install_dirt   project_dirR7   R8   t   ft   contentt   linet   foundR    (    (    s-   lib/python2.7/distutils/tests/test_install.pyt   test_record®   s(    	

+	c         C   sT  |  j  ƒ  } |  j d t d d g ƒ g ƒ \ } } t j | ƒ t j | ƒ t | ƒ } t j | ƒ | j	 ƒ  t
 | ƒ } | | j d <| | j d <| | _ t j j | d ƒ | _ | j	 ƒ  | j ƒ  t | j ƒ } z | j ƒ  } Wd  | j ƒ  Xg  | j ƒ  D] } t j j | ƒ ^ q}	 t d ƒ d t j d  g }
 |  j |	 |
 ƒ d  S(	   Nt   ext_modulesRK   s
   xxmodule.cR   R   Rn   s   UNKNOWN-0.0.0-py%s.%s.egg-infoi   (   R&   Ro   R   R   Rp   R	   t   copy_xxmodule_cR   t   fixup_build_extR,   R   R*   Rr   R   R'   Rs   Rt   Ru   Rv   Rw   Rx   Ry   R   R   Rz   R   (   R!   R{   R|   R7   t   buildextcmdR8   R}   R~   R   R€   R    (    (    s-   lib/python2.7/distutils/tests/test_install.pyt   test_record_extensionsÈ   s.    	
	

+	c         C   s`   t  |  j ƒ } t t _ z t ƒ   |  j ƒ  Wd  QXWd  t t _ X|  j t  |  j ƒ | ƒ d  S(   N(	   t   lent   logst   TrueRD   t   DEBUGR    R   t   Falset   assertGreater(   R!   t   old_logs_len(    (    s-   lib/python2.7/distutils/tests/test_install.pyt   test_debug_modeæ   s    	

(   t   __name__t
   __module__R:   t   unittestt   skipIfR   t   versionR\   Re   Ri   R   R†   RŽ   (    (    (    s-   lib/python2.7/distutils/tests/test_install.pyR      s   	$7				c           C   s   t  j t ƒ S(   N(   R‘   t	   makeSuiteR   (    (    (    s-   lib/python2.7/distutils/tests/test_install.pyt
   test_suiteò   s    t   __main__(!   t   __doc__R   R   R‘   R@   t   test.test_supportR    R   t	   distutilsR   t   distutils.command.installR   t   distutils.commandRD   t   distutils.command.build_extR   R   t   distutils.coreR   t   distutils.errorsR   t   distutils.extensionR   t   distutils.testsR	   R   t   TempdirManagert   EnvironGuardt   LoggingSilencert   TestCaseR   R•   R   (    (    (    s-   lib/python2.7/distutils/tests/test_install.pyt   <module>   s,   		Ó	