ó
q®¸Qc           @   sQ  d  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 d d l m Z m	 Z	 d d l
 m Z d d l Z d d l m Z m Z m Z d d l m Z d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e j e j e j e j f d „  ƒ  YZ d e j e j e j f d „  ƒ  YZ d „  Z e d k rMe e ƒ  ƒ n  d S(   s   Tests for distutils.dist.iÿÿÿÿN(   t   Distributiont   fix_help_options(   t   Command(   t   TESTFNt   captured_stdoutt   run_unittest(   t   supportt	   test_distc           B   s    e  Z d  Z d g Z d „  Z RS(   s#   Sample distutils extension command.s   sample-option=t   Ss	   help textc         C   s   d  |  _ d  S(   N(   t   Nonet   sample_option(   t   self(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   initialize_options   s    (   s   sample-option=R   s	   help text(   t   __name__t
   __module__t   __doc__t   user_optionsR   (    (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR      s   	t   TestDistributionc           B   s   e  Z d  Z d „  Z RS(   s²   Distribution subclasses that avoids the default search for
    configuration files.

    The ._config_files attribute must be set before
    .parse_config_files() is called.
    c         C   s   |  j  S(   N(   t   _config_files(   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   find_config_files%   s    (   R   R   R   R   (    (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR      s   t   DistributionTestCasec           B   s€   e  Z d  „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z RS(   c         C   s7   t  t |  ƒ j ƒ  t j t j f |  _ t j d 3d  S(   Ni   (   t   superR   t   setUpt   syst   argv(   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR   .   s    c         C   s8   |  j  d t _  |  j  d t j  (t t |  ƒ j ƒ  d  S(   Ni    i   (   R   R   R   R   t   tearDown(   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR   3   s    c         C   s*   t  ƒ  } | | _ | j ƒ  | j ƒ  | S(   N(   R   R   t   parse_config_filest   parse_command_line(   R   t   configfilest   d(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   create_distribution8   s
    		

c         C   só   t  t d ƒ ! } | j d ƒ | j d ƒ Wd  QXt g } t j j d ƒ t ƒ   } |  j | ƒ Wd  QX| j d ƒ |  j	 | j
 ƒ  d ƒ t t j _ zF t ƒ   } |  j | ƒ Wd  QX| j d ƒ |  j	 | j
 ƒ  d ƒ Wd  t t j _ Xd  S(   Nt   ws	   [global]
s!   command_packages = foo.bar, splatt   buildi    t    (   t   openR   t   writeR   R   t   appendR   R   t   seekt   assertEqualt   readt   Truet	   distutilst   distt   DEBUGt   False(   R   t   ft   filest   stdout(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_debug_mode?   s     	c         C   s9   t  j j d ƒ |  j ƒ  } |  j | j ƒ  d g ƒ d  S(   NR    s   distutils.command(   R   R   R$   R   R&   t   get_command_packages(   R   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt!   test_command_packages_unspecifiedT   s    c         C   s   d d l  m } t j j d d d d g ƒ |  j ƒ  } |  j | j ƒ  d d d	 g ƒ | j d ƒ } |  j	 | | ƒ |  j | j
 d
 ƒ d  S(   Niÿÿÿÿ(   R   s   --command-packagess   foo.bar,distutils.testsR   s
   -Ssometexts   distutils.commands   foo.bars   distutils.testst   sometext(   t   distutils.tests.test_distR   R   R   t   extendR   R&   R1   t   get_command_objt   assertIsInstanceR
   (   R   R   R   t   cmd(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_command_packages_cmdlineY   s    
c         C   s  t  j j d ƒ |  j t j t ƒ t t d ƒ } z | d IJ| d IJWd  | j ƒ  X|  j	 t g ƒ } |  j
 | j ƒ  d d d g ƒ d d	 d g t  j d
 )|  j	 t g ƒ } |  j
 | j ƒ  d d	 g ƒ d d d g t  j d
 )|  j	 t g ƒ } |  j
 | j ƒ  d g ƒ d  S(   NR    R   s   [global]s!   command_packages = foo.bar, splats   distutils.commands   foo.bart   splats   --command-packagest   sporki   R!   (   R   R   R$   t
   addCleanupt   ost   unlinkR   R"   t   closeR   R&   R1   (   R   R-   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt    test_command_packages_configfileh   s"    
c         C   sÖ   |  j  ƒ  } t j j | d ƒ } t } | d i d d 6d d 6d d 6d	 d
 6d d 6ƒ } | j j t | d ƒ ƒ | d i d d 6d d 6d d 6d d
 6d d 6ƒ } t j j | d ƒ } | j j t | d ƒ ƒ d  S(   NR-   t   attrsu   Mister CafÃ©t   authors
   my.packaget   nameu   CafÃ© Juniort
   maintaineru   CafÃ© torrÃ©fiÃ©t   descriptionu	   HÃ©hÃ©hÃ©t   long_descriptionR   s   Mister Cafes   Cafe Juniors   Cafe torrefiet   Hehehet   f2(   t   mkdtempR=   t   patht   joinR    t   metadatat   write_pkg_fileR"   (   R   t   tmp_dirt   my_filet   klassR*   t   my_file2(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_write_pkg_file‚   s     c            s™   g  ‰  ‡  f d †  } |  j  t t d t j ƒ | t _ t d i d d 6d d 6d d 6d d	 6i  d
 6ƒ } |  j t ˆ  ƒ d ƒ |  j d
 t | ƒ ƒ d  S(   Nc            s   ˆ  j  |  ƒ d  S(   N(   R$   (   t   msg(   t   warns(    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   _warn¤   s    t   warnRA   t   xxxRB   RC   t   versiont   xxxxt   urlt   optionsi    (	   R<   t   setattrt   warningsRV   R    R&   t   lent   assertNotInt   dir(   R   RU   R*   (    (   RT   s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_empty_options   s    	c         C   si   i d d 6d d 6} t  d | ƒ } | j ƒ  |  j | j j d d g ƒ |  j | j j d d g ƒ d  S(   Ns   one,twot   keywordst	   platformsRA   t   onet   two(   R    t   finalize_optionsR&   RL   Rc   Rb   (   R   RA   R*   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_finalize_options°   s    


c         C   sƒ   t  ƒ  } |  j | j d  ƒ | j ƒ  } |  j | d g ƒ |  j | j d g ƒ d | _ | j ƒ  } |  j | d d d g ƒ d  S(   Ns   distutils.commands   one,twoRd   Re   (   R    R&   t   command_packagesR	   R1   (   R   R*   t   cmds(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_get_command_packages»   s    	
	c         C   s9   t  ƒ  } d } i d d 6} |  j t | j | | ƒ d  S(   Nt   okt   ok2t   level(   s   ok(   R    t   assertRaisest
   ValueErrort   announce(   R   R*   t   argst   kwargs(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_announceÇ   s    	c            s  |  j  ƒ  ‰  t j d k r3 t j j ˆ  d ƒ } n t j j ˆ  d ƒ } t | d ƒ  } | j d ƒ Wd  QX‡  f d †  } t j j } | t j _ zJ t j	 j
 ƒ  } | j ƒ  } t j	 j
 d i d g d	 6ƒ } | j ƒ  } Wd  | t j _ X|  j t | ƒ d
 t | ƒ ƒ d  S(   Nt   posixs   .pydistutils.cfgs   pydistutils.cfgR   s   [distutils]
c            s   ˆ  S(   N(    (   RJ   (   t	   temp_home(    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt	   _expanderÙ   s    RA   s   --no-user-cfgt   script_argsi   (   RI   R=   RC   RJ   RK   R"   R#   t
   expanduserR)   R*   R    R   R&   R^   (   R   t   user_filenameR-   Rv   t   old_expanderR   t	   all_filesR.   (    (   Ru   s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_find_config_files_disableÎ   s"    (    (   R   R   R   R   R   R0   R2   R9   R@   RR   Ra   Rg   Rj   Rs   R|   (    (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR   )   s   											t   MetadataTestCasec           B   s¡   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s-   t  t |  ƒ j ƒ  t j t j f |  _ d  S(   N(   R   R}   R   R   R   (   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR   ï   s    c         C   s8   |  j  d t _  |  j  d t j  (t t |  ƒ j ƒ  d  S(   Ni    i   (   R   R   R   R}   R   (   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR   ó   s    c         C   sM   i d d 6d d 6d g d 6} t  | ƒ } |  j | ƒ } |  j d | ƒ d  S(   Nt   BoaRC   s   3.0RX   s#   Programming Language :: Python :: 3t   classifierss   Metadata-Version: 1.1(   R    t   format_metadatat   assertIn(   R   RA   R*   t   meta(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_classifierø   s
    c         C   sJ   i d d 6d d 6d d 6} t  | ƒ } |  j | ƒ } |  j d | ƒ d  S(   NR~   RC   s   3.0RX   s   http://example.org/boat   download_urls   Metadata-Version: 1.1(   R    R€   R   (   R   RA   R*   R‚   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_download_urlÿ   s
    
c         C   so   t  j d ƒ } i d d 6d d 6| d 6} t | ƒ } |  j | ƒ } | j d d
 d ƒ } |  j | | ƒ d  S(   Nsc           example::
              We start here
            and continue here
          and end here.t   packageRC   s   1.0RX   RF   s   
i   t    s           (   t   textwrapt   dedentR    R€   t   replaceR   (   R   t	   long_descRA   R*   R‚   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_long_description  s    	

c         C   s…   i d d 6d d 6} t  | ƒ } |  j | ƒ } |  j d | ƒ |  j d | j ƒ  ƒ |  j d | j ƒ  ƒ |  j d | j ƒ  ƒ d  S(	   NR†   RC   s   1.0RX   s   Metadata-Version: 1.0s	   provides:s	   requires:s
   obsoletes:(   R    R€   R   R_   t   lower(   R   RA   R*   R‚   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_simple_metadata  s    

c         C   s·   i d d 6d d 6d d g d 6} t  | ƒ } |  j | j j ƒ  d d g ƒ |  j | j ƒ  d d g ƒ |  j | ƒ } |  j d | ƒ |  j d | j ƒ  ƒ |  j d	 | j ƒ  ƒ d  S(
   NR†   RC   s   1.0RX   s   package.subt   providess   Metadata-Version: 1.1s	   requires:s
   obsoletes:(   R    R&   RL   t   get_providesR€   R   R_   R   (   R   RA   R*   R‚   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_provides  s    
c         C   s/   |  j  t t i d d 6d d 6d g d 6ƒ d  S(   NR†   RC   s   1.0RX   s   my.pkg (splat)R   (   Rn   Ro   R    (   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_provides_illegal-  s    
c         C   s×   i d d 6d d 6d d g d 6} t  | ƒ } |  j | j j ƒ  d d g ƒ |  j | j ƒ  d d g ƒ |  j | ƒ } |  j d | ƒ |  j d	 | j ƒ  ƒ |  j d
 | ƒ |  j d | ƒ |  j d | j ƒ  ƒ d  S(   NR†   RC   s   1.0RX   t   others   another (==1.0)t   requiress   Metadata-Version: 1.1s	   provides:s   Requires: others   Requires: another (==1.0)s
   obsoletes:(   R    R&   RL   t   get_requiresR€   R   R_   R   (   R   RA   R*   R‚   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_requires3  s    
c         C   s/   |  j  t t i d d 6d d 6d g d 6ƒ d  S(   NR†   RC   s   1.0RX   s   my.pkg (splat)R”   (   Rn   Ro   R    (   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_requires_illegalC  s    
c         C   s×   i d d 6d d 6d d g d 6} t  | ƒ } |  j | j j ƒ  d d g ƒ |  j | j ƒ  d d g ƒ |  j | ƒ } |  j d | ƒ |  j d	 | j ƒ  ƒ |  j d
 | j ƒ  ƒ |  j d | ƒ |  j d | ƒ d  S(   NR†   RC   s   1.0RX   R“   s   another (<1.0)t	   obsoletess   Metadata-Version: 1.1s	   provides:s	   requires:s   Obsoletes: others   Obsoletes: another (<1.0)(   R    R&   RL   t   get_obsoletesR€   R   R_   R   (   R   RA   R*   R‚   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_obsoletesI  s    
c         C   s/   |  j  t t i d d 6d d 6d g d 6ƒ d  S(   NR†   RC   s   1.0RX   s   my.pkg (splat)R˜   (   Rn   Ro   R    (   R   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_obsoletes_illegalY  s    
c         C   s&   t  j  ƒ  } | j j | ƒ | j ƒ  S(   N(   t   StringIORL   RM   t   getvalue(   R   R*   t   sio(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR€   _  s    c         C   s  t  j d k r d } n d } |  j ƒ  } t  j j | | ƒ } t | d ƒ } z | j d ƒ Wd  | j ƒ  Xz t ƒ  } t	 j
 d k r´ | t  j d <| j ƒ  } |  j | | ƒ n  t	 j
 d	 k rü | t  j d <| j ƒ  } |  j | | d
 | | f ƒ n  Wd  t  j | ƒ Xd  S(   NRt   s   .pydistutils.cfgs   pydistutils.cfgR   t   .t   linuxt   darwint   HOMEt   win32s   %r not found in %r(   s   linuxs   darwin(   R=   RC   RI   RJ   RK   R"   R#   R?   R    R   t   platformt   environR   R   t   remove(   R   Ry   t   temp_dirR-   R*   R.   (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_custom_pydistutilsd  s*    		c         C   sD   d
 d g } t  | ƒ } |  j | d	 d ƒ |  j | d d ƒ d  S(   Nt   at   bt   cR   i   i   i   i   i    (   R©   Rª   R«   R   (   i   i   i   i   (   R©   Rª   R«   (   i   i   i   (   R   R&   (   R   t   help_tuplest   fancy_options(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_fix_help_options‡  s    c         C   s‹   t  ƒ  } g  t _ d | _ d | _ t ƒ   } | j ƒ  Wd  QXg  | j ƒ  j d ƒ D] } | j	 ƒ  d k rV | ^ qV } |  j
 | ƒ d  S(   Ni   s   setup.pys   
R!   (   R    R   R   t   helpt   script_nameR   R   R   t   splitt   stript
   assertTrue(   R   R*   t   st   linet   output(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_show_help  s    				c         C   s0  i d d 6d d 6d d 6d d 6d	 d
 6d d g d 6d g d 6} t  | ƒ } | j } t j ƒ  } | j | ƒ | j d ƒ | j | ƒ |  j | j d ƒ |  j | j d ƒ |  j | j	 d ƒ |  j | j
 d	 ƒ |  j | j d d g ƒ |  j | j d g ƒ |  j | j d  ƒ |  j | j d g ƒ d  S(   NR†   RC   s   1.0RX   t   descRF   RW   RE   s   http://example.comR„   Rd   Re   Rb   t   fooR”   i    t   UNKNOWN(   R    RL   Rœ   RM   R%   t   read_pkg_fileR&   RC   RX   RE   R„   Rb   Rc   R˜   R	   R”   (   R   RA   R*   RL   t   PKG_INFO(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   test_read_metadataš  s*    
	(   R   R   R   R   Rƒ   R…   RŒ   RŽ   R‘   R’   R–   R—   Rš   R›   R€   R¨   R®   R·   R½   (    (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyR}   ì   s"   						
								#		c          C   s<   t  j ƒ  }  |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   R}   (   t   suite(    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt
   test_suite¶  s    t   __main__(   R   R=   Rœ   R   R¾   R]   Rˆ   t   distutils.distR    R   t   distutils.cmdR   R)   t   test.test_supportR   R   R   t   distutils.testsR   R   R   t   TempdirManagert   LoggingSilencert   EnvironGuardt   TestCaseR   R}   RÃ   R   (    (    (    s/   /sys/lib/python2.7/distutils/tests/test_dist.pyt   <module>   s,   	ÀÉ	