ó
q®¸Qc           @   s3  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 f d „  ƒ  YZ d „  Z e d k r/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(    (    s2   /sys/lib/python2.7/distutils/tests/test_install.pyt   _make_ext_name   s    !t   InstallTestCasec           B   sG   e  Z d  „  Z 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(    s2   /sys/lib/python2.7/distutils/tests/test_install.pyt
   check_path6   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!   s2   /sys/lib/python2.7/distutils/tests/test_install.pyt   test_home_installation_scheme    s*    		
	c   
         s  t  j d k  r d  St 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] \ } } } | ^ q0}	 ˆ  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(   Ns   2.6t   Bt   Sc            s   ˆ  j  S(   N(   t   tmpdir(   R   (   R!   (    s2   /sys/lib/python2.7/distutils/tests/test_install.pyt   _expanduserT   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!   (    s2   /sys/lib/python2.7/distutils/tests/test_install.pyt   cleanupY   s
    t   nt_usert	   unix_usert   os2_homet   xxR   t   useri   t   userbaset   usersite(   s   nt_userRI   s   os2_home(   R   t   versionR@   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!   s2   /sys/lib/python2.7/distutils/tests/test_install.pyt   test_user_siteD   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   (    (    s2   /sys/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   Rg   R-   Re   R   t   finalize_optionsRd   R+   RL   (   R!   R7   R8   (    (    s2   /sys/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    (    (    s2   /sys/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   Ro   s   UNKNOWN-0.0.0-py%s.%s.egg-infoi   (   R&   Rp   R   R   Rq   R	   t   copy_xxmodule_cR   t   fixup_build_extR,   R   R*   Rs   R   R'   Rt   Ru   Rv   Rw   Rx   Ry   Rz   R   R   R{   R   (   R!   R|   R}   R7   t   buildextcmdR8   R~   R   R€   R   R    (    (    s2   /sys/lib/python2.7/distutils/tests/test_install.pyt   test_record_extensionsÉ   s.    	
	

+	c         C   sc   t  |  j ƒ } t t _ z t ƒ   |  j ƒ  Wd  QXWd  t t _ X|  j t  |  j ƒ | k ƒ d  S(   N(	   t   lent   logst   TrueRD   t   DEBUGR    R‚   t   FalseRW   (   R!   t   old_logs_len(    (    s2   /sys/lib/python2.7/distutils/tests/test_install.pyt   test_debug_modeç   s    	

(	   t   __name__t
   __module__R:   R]   Rf   Rj   R‚   R‡   RŽ   (    (    (    s2   /sys/lib/python2.7/distutils/tests/test_install.pyR      s   	$	:				c           C   s   t  j t ƒ S(   N(   t   unittestt	   makeSuiteR   (    (    (    s2   /sys/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   LoggingSilencert   TestCaseR   R“   R   (    (    (    s2   /sys/lib/python2.7/distutils/tests/test_install.pyt   <module>   s*   		Õ	