î
½1kd¥]  ã               @   s§  d  d l  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 m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z d  d l m Z m Z m Z d  d l m Z m Z y e Wn" e k
 rê d  d l m Z Yn Xd d d	 „ Z Gd
 d „  d e j ƒ Z e j
 j Z Gd d „  d e ƒ Z  Gd d „  d e ƒ Z! Gd d „  d e ƒ Z" Gd d „  d e ƒ Z# Gd d „  d e ƒ Z$ Gd d „  d e ƒ Z% d S)é    N)ÚTestCase)	Úparse_requirementsÚVersionConflictÚparse_versionÚDistributionÚ
EntryPointÚRequirementÚsafe_versionÚ	safe_nameÚ
WorkingSet)Úget_script_headerÚis_shÚnt_quote_arg)ÚStringIOÚ	iteritems)ÚImmutableSetFc             C   si   y t  |  ƒ } Wn! t k
 r3 t j |  ƒ } Yn X| sP t | ƒ t j k  rT | S| d t j … d S)z copied from Python2.7Nz [truncated]...)ÚreprÚ	ExceptionÚobjectÚ__repr__ÚlenÚpkg_resourcesZ_MAX_LENGTH)ÚobjÚshortÚresult© r   úU/var/www/pythonscrapper/code/venv/build/setuptools/setuptools/tests/test_resources.pyÚ	safe_repr   s    r   c               @   sF   e  Z d  Z d Z d d „  Z d d „  Z d d „  Z d d	 „  Z d
 S)ÚMetadatazAMock object to return metadata as if from an on-disk distributionc             G   s   t  | ƒ |  _ d  S)N)ÚdictÚmetadata)ÚselfÚpairsr   r   r   Ú__init__&   s    zMetadata.__init__c             C   s   | |  j  k S)N)r    )r!   Únamer   r   r   Úhas_metadata)   s    zMetadata.has_metadatac             C   s   |  j  | S)N)r    )r!   r$   r   r   r   Úget_metadata,   s    zMetadata.get_metadatac             C   s   t  j |  j | ƒ ƒ S)N)r   Úyield_linesr&   )r!   r$   r   r   r   Úget_metadata_lines/   s    zMetadata.get_metadata_linesN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   r%   r&   r(   r   r   r   r   r   #   s
   r   c               @   s‹   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z f  d d „ Z	 d d „  Z
 d d „  Z d d „  Z d S)ÚDistroTestsc             C   s^  t  j g  d d  d d  ƒ} |  j t | ƒ g  ƒ |  j | d g  ƒ | j t d ƒ ƒ | j t d ƒ ƒ | j t d ƒ ƒ |  j | d ƒ |  j t | ƒ d g ƒ |  j d d	 „  | d Dƒ d
 d d g ƒ | j | d d ƒ |  j d d	 „  | d Dƒ d
 d g ƒ | j t d ƒ ƒ |  j d d	 „  | d Dƒ d d
 d g ƒ t g  ƒ } t d ƒ } t d ƒ } t	 d ƒ \ } |  j | j
 | | ƒ j d ƒ | j | ƒ |  j | j
 | | ƒ j d
 ƒ t g  ƒ } | j | ƒ | j | ƒ |  j t | j
 | | ƒ t g  ƒ } | j | ƒ | j | ƒ | j | ƒ |  j | j
 | | ƒ j d
 ƒ d  S)NÚplatformÚpythonÚFooPkgzFooPkg-1.3_1.eggzFooPkg-1.4-py2.4-win32.eggzFooPkg-1.2-py2.4.eggÚfoopkgc             S   s   g  |  ] } | j  ‘ q Sr   )Úversion)Ú.0Údistr   r   r   ú
<listcomp>F   s   	 z.DistroTests.testCollection.<locals>.<listcomp>z1.4z1.3-1z1.2é   c             S   s   g  |  ] } | j  ‘ q Sr   )r2   )r3   r4   r   r   r   r5   K   s   	 zFooPkg-1.9.eggc             S   s   g  |  ] } | j  ‘ q Sr   )r2   )r3   r4   r   r   r   r5   P   s   	 z1.9zFooPkg>=1.3)r   ÚEnvironmentÚassertEqualÚlistÚaddÚdist_from_fnÚ
assertTrueÚremover   r   Ú
best_matchr2   ÚassertRaisesr   )r!   ÚadÚwsZfoo12Zfoo14Úreqr   r   r   ÚtestCollection6   s@    $!$zDistroTests.testCollectionc             C   s|   |  j  | j d ƒ |  j  | j d ƒ |  j  | j d ƒ |  j  | j d ƒ |  j  | j d ƒ |  j  | j t d ƒ ƒ d  S)Nr0   r1   z1.3-1z2.4Úwin32)r8   Úproject_nameÚkeyr2   Ú
py_versionr.   Úparsed_versionr   )r!   Údr   r   r   ÚcheckFooPkgk   s    zDistroTests.checkFooPkgc          
   C   st   t  d d d d d d d d d	 ƒ} |  j | ƒ t  d ƒ } |  j | j t j d  d
 … ƒ |  j | j d  ƒ d  S)Nz
/some/pathrE   r0   r2   z1.3-1rG   z2.4r.   rD   é   )r   rJ   r8   rG   Úsysr2   r.   )r!   rI   r   r   r   ÚtestDistroBasicss   s     zDistroTests.testDistroBasicsc             C   s6   t  d ƒ } |  j | ƒ t  d ƒ } |  j | ƒ d  S)NzFooPkg-1.3_1-py2.4-win32.eggz!FooPkg-1.3_1-py2.4-win32.egg-info)r;   rJ   )r!   rI   r   r   r   ÚtestDistroParse~   s    zDistroTests.testDistroParsec             C   s;   t  d d d d d d d d t d ƒ ƒ} |  j | ƒ d  S)Nz
/some/pathrE   r0   rG   z2.4r.   rD   r    úPKG-INFOú%Metadata-Version: 1.0
Version: 1.3-1
)rO   rP   )r   r   rJ   )r!   rI   r   r   r   ÚtestDistroMetadata„   s
    zDistroTests.testDistroMetadatac             C   s   t  d d t d | f ƒ ƒS)Nz/foor    zdepends.txt)r   r   )r!   Útxtr   r   r   ÚdistRequires�   s    zDistroTests.distRequiresc             C   s/   |  j  t | j | ƒ ƒ t t | ƒ ƒ ƒ d  S)N)r8   r9   Úrequiresr   )r!   r4   rR   Úextrasr   r   r   ÚcheckRequires�   s    zDistroTests.checkRequiresc             C   s.   x' d D] } |  j  |  j | ƒ | ƒ q Wd  S)NúTwisted>=1.5úTwisted>=1.5
ZConfig>=2.0)rW   rX   )rV   rS   )r!   Úvr   r   r   ÚtestDistroDependsSimple–   s    z#DistroTests.testDistroDependsSimplec             C   sÁ  t  j g  ƒ } t g  ƒ } |  j t | j g  | ƒ ƒ g  ƒ |  j t  j | j t d ƒ | ƒ t	 j
 d d t d ƒ ƒ} | j | ƒ | j t	 j
 d ƒ ƒ x[ t d ƒ D]M } t | j t d ƒ | ƒ ƒ } |  j | | g ƒ t t | j | ƒ ƒ qª W|  j t | j t d ƒ | ƒ t g  ƒ } |  j t  j | j t d	 ƒ | ƒ t	 j
 d
 d t d ƒ ƒ} | j | ƒ |  j t | j t d	 ƒ | ƒ ƒ | | g ƒ |  j t | j t d ƒ | ƒ d  S)NÚFooz/foo_dir/Foo-1.2.eggr    údepends.txtú[bar]
Baz>=2.0zFoo-0.9.eggrK   zFoo==0.9zFoo[bar]z/foo_dir/Baz-2.1.eggzFoo==1.2
Foo!=1.2)r\   r]   )r\   zFoo)r   r7   r   r8   r9   Úresolver?   ÚDistributionNotFoundr   r   Úfrom_filenamer   r:   ÚrangeÚmapr   )r!   r@   rA   r[   ÚiÚtargetsZBazr   r   r   ÚtestResolveš   s4    "(	zDistroTests.testResolvec             C   sµ   |  j  d ƒ } |  j | d ƒ |  j | d j ƒ  d g ƒ |  j | d j ƒ  d g ƒ |  j | d j ƒ  d d g ƒ |  j | d j ƒ  d d g ƒ |  j t j | j d	 g ƒ d  S)
Nz�
            Twisted>=1.5
            [docgen]
            ZConfig>=2.0
            docutils>=0.3
            [fastcgi]
            fcgiapp>=0.1zTwisted>=1.5z'Twisted>=1.5 ZConfig>=2.0 docutils>=0.3ZdocgenzTwisted>=1.5 fcgiapp>=0.1Zfastcgiz4Twisted>=1.5 ZConfig>=2.0 docutils>=0.3 fcgiapp>=0.1z4Twisted>=1.5 fcgiapp>=0.1 ZConfig>=2.0 docutils>=0.3Úfoo)rS   rV   Úsplitr?   r   ÚUnknownExtrarT   )r!   rI   r   r   r   ÚtestDistroDependsOptionsÄ   s    	z$DistroTests.testDistroDependsOptionsN)r)   r*   r+   rC   rJ   rM   rN   rQ   rS   rV   rZ   re   ri   r   r   r   r   r-   4   s   5	*r-   c               @   sÊ   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z e	 d e
 d d d g ƒ d e
 d d d g d d g ƒ d e
 d d d d g ƒƒ Z d Z d d „  Z d d „  Z d S)ÚEntryPointTestsc             C   s   |  j  | j d ƒ |  j  | j d ƒ |  j  | j d ƒ |  j  | j d ƒ |  j | j ƒ  t k ƒ |  j  t | ƒ d ƒ d  S)Nrf   zsetuptools.tests.test_resourcesrj   Úxz9foo = setuptools.tests.test_resources:EntryPointTests [x])zEntryPointTests)rk   )	r8   r$   Úmodule_nameÚattrsrU   r<   Úloadrj   Ústr)r!   Úepr   r   r   Úassertfieldsà   s    	zEntryPointTests.assertfieldsc             C   s"   t  j d d t d ƒ ƒ|  _ d  S)NzFooPkg-1.2-py2.4.eggr    úrequires.txtú[x])rr   rs   )r   r`   r   r4   )r!   r   r   r   ÚsetUpë   s    zEntryPointTests.setUpc             C   s2   t  d d d g d g |  j ƒ } |  j | ƒ d  S)Nrf   zsetuptools.tests.test_resourcesrj   rk   )r   r4   rq   )r!   rp   r   r   r   Ú
testBasicsï   s    zEntryPointTests.testBasicsc             C   sâ   d } t  j | |  j ƒ } |  j | ƒ t  j d ƒ } |  j | j d ƒ |  j | j d ƒ |  j | j f  ƒ |  j | j d
 ƒ t  j d ƒ } |  j | j d ƒ |  j | j d ƒ |  j | j d ƒ |  j | j f  ƒ d  S)Nz9foo = setuptools.tests.test_resources:EntryPointTests [x]zbar baz=  spammity[PING]zbar bazZspammityÚpingz fizzly =  wocka:fooZfizzlyZwockarf   )rv   )zfoo)	r   Úparser4   rq   r8   r$   rl   rm   rU   )r!   Úsrp   r   r   r   Ú	testParseö   s    zEntryPointTests.testParsec             C   s\   xU d d d d d d g D]; } y t  j | ƒ Wn t k
 rD Yq Xt d | ƒ ‚ q Wd  S)Nrf   zx=1=2zx=a:b:czq=x/nazfez=pish:tush-zzx=f[a]>2zShould've been bad)r   rw   Ú
ValueErrorÚAssertionError)r!   rp   r   r   r   ÚtestRejects  s      zEntryPointTests.testRejectsc             C   sh   |  j  t | ƒ t |  j ƒ ƒ xB t |  j ƒ D]1 \ } } |  j  t | j | ƒ ƒ t | ƒ ƒ q/ Wd  S)N)r8   r   Úsubmap_expectr   r   Úget)r!   ÚmrF   rp   r   r   r   ÚcheckSubMap  s    zEntryPointTests.checkSubMapZfeature1Z
somemoduleZsomefunctionZfeature2zanother.moduleZ	SomeClassZextra1Zextra2Zfeature3zthis.modulerU   Z	somethingzÏ
            # define features for blah blah
            feature1 = somemodule:somefunction
            feature2 = another.module:SomeClass [extra1,extra2]
            feature3 = this.module [something]
    c             C   sX   |  j  t j d |  j ƒ ƒ |  j t t j d d ƒ |  j t t j d d d g ƒ d  S)NÚxyzzx azfoo=barrk   zfoo=baz)r€   r   Úparse_groupÚ
submap_strr?   rz   )r!   r   r   r   ÚtestParseList   s    zEntryPointTests.testParseListc             C   sÈ   t  j i |  j d 6ƒ } |  j | d ƒ |  j t | j ƒ  ƒ d g ƒ t  j d |  j ƒ } |  j | d ƒ |  j t | j ƒ  ƒ d g ƒ |  j t t  j d d g ƒ |  j t t  j |  j ƒ d  S)Nr�   z[xyz]
z[xyz])	r   Ú	parse_maprƒ   r€   r8   r9   Úkeysr?   rz   )r!   r   r   r   r   ÚtestParseMap&  s    zEntryPointTests.testParseMapN)r)   r*   r+   rq   rt   ru   ry   r|   r€   r   r   r}   rƒ   r„   r‡   r   r   r   r   rj   Þ   s   rj   c               @   sd   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z d d „  Z	 d S)ÚRequirementsTestsc             C   só   t  j d ƒ } |  j t | ƒ d ƒ |  j t | ƒ d ƒ |  j | t  d d g f  ƒ ƒ |  j | t  d d g f  ƒ ƒ |  j | t  d d g f  ƒ ƒ |  j | t  d d g f  ƒ ƒ |  j | t  d d g f  ƒ ƒ |  j | t  j d
 ƒ ƒ d  S)NzTwisted>=1.2z!Requirement.parse('Twisted>=1.2')ÚTwistedú>=ú1.2ZtwisTedú2.0ZZopeú3.0zTwisted[extras]>=1.2)rŠ   r‹   )rŠ   r‹   )rŠ   rŒ   )rŠ   r‹   )rŠ   r�   )r   rw   r8   ro   r   ÚassertNotEqual)r!   Úrr   r   r   ru   2  s    zRequirementsTests.testBasicsc             C   sv   t  d d d g f  ƒ } t  d d	 d
 g f  ƒ } |  j | | ƒ |  j t | ƒ t | ƒ ƒ |  j t | ƒ d ƒ d  S)Nr‰   ú==ú1.2c1ú>=ú1.2zTwisted==1.2c1,>=1.2)r�   r‘   )r’   r“   )r’   r“   )r�   r‘   )r   r8   ro   )r!   Úr1Úr2r   r   r   ÚtestOrdering=  s
    zRequirementsTests.testOrderingc             C   s×   t  d d g f  ƒ } t j d ƒ } t j d ƒ } t j d ƒ } |  j t d ƒ | k ƒ |  j t d ƒ | k ƒ |  j d | k ƒ |  j d | k ƒ |  j | | k ƒ |  j | | k ƒ |  j | | k ƒ d  S)	Nr‰   ú>=ú1.2zFooPkg-1.3_1.eggzTwisted-1.1.eggzTwisted-1.2.eggz1.1)r—   r˜   )r   r   r`   r<   r   )r!   r�   Zfoo_distZtwist11Ztwist12r   r   r   ÚtestBasicContainsD  s    z#RequirementsTests.testBasicContainsc          	   C   sm   t  d ƒ \ } x* d D]" } |  j | | k | | f ƒ q Wx* d D]" } |  j | | k | | f ƒ qC Wd  S)Nz*Foo>=1.2,<=1.3,==1.9,>2.0,!=2.5,<3.0,==4.5ú1.2ú1.2.2ú1.3ú1.9ú2.0.1ú2.3ú2.6ú3.0c1ú4.5ú1.2c1ú1.3.1ú1.5ú1.9.1ú2.0ú2.5ú3.0ú4.0)	rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   )r£   r¤   r¥   r¦   r§   r¨   r©   rª   )r   r<   )r!   r�   rY   r   r   r   ÚtestAdvancedContainsQ  s
     z&RequirementsTests.testAdvancedContainsc             C   sÓ   t  j d ƒ } t  j d ƒ } t  j d ƒ } |  j | | ƒ |  j | | ƒ |  j | j d	 ƒ |  j | j d
 ƒ |  j t | ƒ t | ƒ ƒ |  j t | ƒ t d d t d ƒ f f t d d g ƒ f ƒ ƒ d  S)NzTwisted[foo,bar]>=1.2zTwisted[bar,FOO]>=1.2zTwisted[BAR,FOO]>=1.2.0rf   ÚbarZtwistedz>=z1.2)úfoor¬   )r¬   r­   )r   rw   r8   rU   Úhashr   Ú	frozenset)r!   r”   r•   Zr3r   r   r   ÚtestOptionsAndHashingX  s    !z'RequirementsTests.testOptionsAndHashingc             C   sÚ   t  j d ƒ } t  j d ƒ } t j } |  j | d ƒ | k ƒ |  j | d ƒ | k ƒ |  j | d ƒ | k ƒ |  j | d ƒ | k ƒ |  j | d ƒ | k ƒ |  j | d ƒ | k ƒ |  j | d ƒ | k ƒ d  S)Nz
foo==0.3a2z
foo!=0.3a4zfoo-0.3a4.eggzfoo-0.3a1.eggzfoo-0.3a2.eggzfoo-0.3a3.eggzfoo-0.3a5.egg)r   rw   r   r`   r<   )r!   r”   r•   rI   r   r   r   ÚtestVersionEqualityf  s    	z%RequirementsTests.testVersionEqualityc             C   st   |  j  t j d ƒ j d ƒ |  j  t j d ƒ j d ƒ |  j  t j d ƒ j d ƒ |  j  t j d ƒ j d ƒ d S)zQ
        The setuptools project should implement the setuptools package.
        Ú
setuptoolszsetuptools == 0.7zsetuptools == 0.7a1zsetuptools >= 0.7N)r8   r   rw   rE   )r!   r   r   r   ÚtestSetuptoolsProjectNamet  s    z+RequirementsTests.testSetuptoolsProjectNameN)
r)   r*   r+   ru   r–   r™   r«   r°   r±   r³   r   r   r   r   rˆ   0  s   rˆ   c               @   sp   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z d d „  Z	 d d „  Z
 d S)Ú
ParseTestsc             C   s    |  j  t t d ƒ ƒ g  ƒ d  S)NÚ )r8   r9   r   )r!   r   r   r   ÚtestEmptyParse†  s    zParseTests.testEmptyParsec             C   s   xx g  g  f d d g f g  g g  f d d d g f d d g d d g f g D]+ \ } } |  j  t t j | ƒ ƒ | ƒ qL Wd  S)Nrk   z x
 yÚyzx

)r8   r9   r   r'   )r!   ÚinpÚoutr   r   r   ÚtestYielding‰  s    0%zParseTests.testYieldingc             C   s�   d } |  j  t t j | ƒ ƒ d  d g f d d d g f d d g f d g  f d	 d
 g f g ƒ |  j t t t j d ƒ ƒ d  S)Na   
                    x
                    [Y]
                    z

                    a
                    [b ]
                    # foo
                    c
                    [ d]
                    [q]
                    v
                    rk   ÚYÚzÚaÚbÚcrI   ÚqrY   z[foo)r8   r9   r   Úsplit_sectionsr?   rz   )r!   Úsampler   r   r   ÚtestSplitting�  s    CzParseTests.testSplittingc             C   sr   |  j  t d ƒ d ƒ |  j  t d ƒ d ƒ |  j  t d ƒ d ƒ |  j  t d ƒ d ƒ |  j t d ƒ d ƒ d  S)	Nzadns-pythonz
WSGI Utilsz
WSGI-UtilszWSGI  UtilszMoney$$$MakerzMoney-Makerzpeak.webzpeak-web)r8   r
   rŽ   )r!   r   r   r   ÚtestSafeName£  s
    zParseTests.testSafeNamec             C   sr   |  j  t d ƒ d ƒ |  j  t d ƒ d ƒ |  j  t d ƒ d ƒ |  j  t d ƒ d ƒ |  j  t d ƒ d ƒ d  S)	Nz1.2-1z	1.2 alphaz	1.2.alphaz2.3.4 20050521z2.3.4.20050521zMoney$$$MakerzMoney-Makerzpeak.web)r8   r	   )r!   r   r   r   ÚtestSafeVersionª  s
    zParseTests.testSafeVersionc             C   sù   |  j  t t d ƒ ƒ t d d g f  ƒ g ƒ |  j  t t d ƒ ƒ t d d d g f  ƒ g ƒ |  j  t j d
 ƒ t d d g f  ƒ ƒ |  j t t j d ƒ |  j t t j d ƒ |  j t t j d ƒ |  j t t j d ƒ |  j t t j d ƒ d  S)NzTwis-Ted>=1.2-1zTwis-Tedú>=ú1.2-1zTwisted >=1.2, \ # more
<2.0r‰   ú1.2ú<ú2.0zFooBar==1.99a3ZFooBarú==ú1.99a3z>=2.3zx\zx==2 qz	X==1
Y==2ú#)rÆ   rÇ   )rÆ   rÈ   )rÉ   rÊ   )rË   rÌ   )r8   r9   r   r   rw   r?   rz   )r!   r   r   r   ÚtestSimpleRequirements±  s    z!ParseTests.testSimpleRequirementsc                s˜   ‡  f d d †  } | d d ƒ | d d ƒ | d d ƒ | d d	 ƒ | d
 d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ d  S)Nc                s<   t  |  ƒ t  | ƒ } } ˆ  j | | |  | | | f ƒ d  S)N)r   r8   )Ús1Ús2Úp1Úp2)r!   r   r   r¿   Å  s    z)ParseTests.testVersionEquality.<locals>.cz1.2-rc1z1.2rc1z0.4z0.4.0z0.4.0.0z0.4.0-0z0.4-0Ú0pl1z0.0pl1Z0pre1z0.0c1z0.0.0preview1Z0c1z0-rc1z1.2a1z1.2.a.1z1.2...az1.2ar   )r!   r¿   r   )r!   r   r±   Ä  s    zParseTests.testVersionEqualityc                sU  ‡  f d d †  } | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d	 d
 ƒ | d	 d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d ƒ d  j  ƒ  } xF t | ƒ D]8 \ } } x) | | d! d  … D] } | | | ƒ q6WqWd  S)"Nc                s?   t  |  ƒ t  | ƒ } } ˆ  j | | k  |  | | | f ƒ d  S)N)r   r<   )rÏ   rÐ   rÑ   rÒ   )r!   r   r   r¿   Õ  s    z)ParseTests.testVersionOrdering.<locals>.cz2.1z2.1.1Z2a1Z2b0z2.3a1z2.3z2.1-1z2.1-2z2.1pl4z2.1a0-20040501z1.1z02.1ZA56ZB27z3.2z3.2.pl0z3.2-1z3.2pl1z3.2pl1-1z0.4z4.0z0.0.4z0.4.0rÓ   z0.4pl1z	2.1.0-rc1z2.1.0z2.1devz2.1a0zœ
        0.80.1-3 0.80.1-2 0.80.1-1 0.79.9999+0.80.0pre4-1
        0.79.9999+0.80.0pre2-3 0.79.9999+0.80.0pre2-2
        0.77.2-1 0.77.1-1 0.77.0-1
        r6   )rg   Ú	enumerate)r!   r¿   ZtortureÚpÚv1Úv2r   )r!   r   ÚtestVersionOrderingÔ  s.    zParseTests.testVersionOrderingN)r)   r*   r+   r¶   rº   rÃ   rÄ   rÅ   rÎ   r±   rØ   r   r   r   r   r´   „  s   r´   c               @   s4   e  Z d  Z d Z d Z d d „  Z d d „  Z d S)ÚScriptHeaderTestsu   /Users/JosÃ©/bin/pythonz$C:\Program Files\Python33\python.exec             C   sæ   t  j j d ƒ s# t t  j ƒ râ d t t j j t  j ƒ ƒ } |  j	 t
 d ƒ | ƒ d t t j j t  j ƒ ƒ } |  j	 t
 d ƒ | ƒ |  j	 t
 d d |  j ƒd |  j ƒ t
 d d |  j ƒ} |  j	 | d	 |  j ƒ n  d  S)
NÚjavaz#!%s
z#!/usr/local/bin/pythonz	#!%s  -x
z#!/usr/bin/python -xz#!/usr/bin/pythonÚ
executablez#!%s -x
z#!"%s"
)rL   r.   Ú
startswithr   rÛ   r   ÚosÚpathÚnormpathr8   r   Únon_ascii_exeÚexe_with_spaces)r!   ÚexpectedÚ	candidater   r   r   Útest_get_script_headerû  s    #		z(ScriptHeaderTests.test_get_script_headerc             C   sŒ  t  j d k r+ t j j d ƒ d k r+ d  SGd d „  d ƒ } | t  j d <t  j } d t  _ t  j t  j } } zî t j	 j
 t j	 j t ƒ d d	 ƒ } |  j t d
 d | ƒd | ƒ t ƒ  t  _ t  _ |  j t d d | ƒd | ƒ |  j d t  j j ƒ  k ƒ t ƒ  t  _ t  _ |  j t d d |  j ƒd |  j ƒ |  j d t  j j ƒ  k ƒ Wd  t  j d =| t  _ | | t  _ t  _ Xd  S)NrK   ÚLC_CTYPEÚCÚPOSIXc               @   s#   e  Z d  Z Gd d „  d ƒ Z d S)zHScriptHeaderTests.test_get_script_header_jython_workaround.<locals>.javac               @   s#   e  Z d  Z Gd d „  d ƒ Z d S)zMScriptHeaderTests.test_get_script_header_jython_workaround.<locals>.java.langc               @   s"   e  Z d  Z e d d „  ƒ Z d S)zTScriptHeaderTests.test_get_script_header_jython_workaround.<locals>.java.lang.Systemc             S   s   d S)Nrµ   r   )Úpropertyr   r   r   ÚgetProperty  s    z`ScriptHeaderTests.test_get_script_header_jython_workaround.<locals>.java.lang.System.getPropertyN)r)   r*   r+   Ústaticmethodré   r   r   r   r   ÚSystem  s   rë   N)r)   r*   r+   rë   r   r   r   r   Úlang  s   rì   N)r)   r*   r+   rì   r   r   r   r   rÚ     s   rÚ   zjava1.5.0_13r   z.pyz#!/usr/local/bin/pythonrÛ   z#!/usr/bin/env %s
z#!/usr/bin/python -xz	#!%s  -x
zUnable to adapt shebang linez#!/usr/bin/pythonz#!%s -x
)rK   )Nræ   rç   )rL   Úversion_inforÝ   Úenvironr~   Úmodulesr.   ÚstdoutÚstderrrÞ   rß   ÚsplitextÚ__file__r8   r   r   r<   Úgetvaluerà   )r!   rÚ   r.   rð   rñ   Zexer   r   r   Ú(test_get_script_header_jython_workaround  s4    			&	 
	z:ScriptHeaderTests.test_get_script_header_jython_workaroundN)r)   r*   r+   rà   rá   rä   rõ   r   r   r   r   rÙ   ÷  s   rÙ   c               @   s@   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 S)
ÚNamespaceTestsc             C   s‚   t  j j ƒ  |  _ t j d d ƒ |  _ t j t j	 j
 |  j d ƒ ƒ t j	 d  d  … |  _ t j	 j t j	 j
 |  j d ƒ ƒ d  S)NÚprefixztests-setuptools-z	site-pkgs)r   Ú_namespace_packagesÚcopyÚ_ns_pkgsÚtempfileÚmkdtempÚ_tmpdirrÝ   ÚmakedirsrÞ   ÚjoinrL   Ú_prev_sys_pathÚappend)r!   r   r   r   rt   7  s
    zNamespaceTests.setUpc             C   s<   t  j |  j ƒ |  j j ƒ  t _ |  j d  d  … t _	 d  S)N)
ÚshutilÚrmtreerý   rú   rù   r   rø   r   rL   rÞ   )r!   r   r   r   ÚtearDown>  s    zNamespaceTests.tearDownc             C   sH   | | k rD d t  | ƒ t  | ƒ f } |  j |  j t | ƒ ƒ n  d S)z4 assertIn and assertTrue does not exist in Python2.3z%s not found in %sN)r   ÚfailZ_formatMessageÚmsg)r!   ÚmemberÚ	containerZstandardMsgr   r   r   Ú	_assertInC  s    zNamespaceTests._assertInc             C   sâ  t  j j t j j |  j d ƒ ƒ t j t j j |  j d d d ƒ ƒ t j t j j |  j d d d ƒ ƒ d } x“ d d g D]… } t t j j |  j | d d ƒ d ƒ } | j | ƒ | j	 ƒ  t t j j |  j | d d d ƒ d ƒ } | j | ƒ | j	 ƒ  q Wd d	 l
 } |  j d t j j ƒ  ƒ y d d	 l } Wn t k
 r^|  j d
 ƒ Yn X|  j d t j j ƒ  ƒ |  j t j d d g ƒ |  j | j j t j j |  j d d d ƒ t j j |  j d d d ƒ g ƒ d	 S)a  
        Test nested namespace packages
        Create namespace packages in the following tree :
            site-packages-1/pkg1/pkg2
            site-packages-2/pkg1/pkg2
        Check both are in the _namespace_packages dict and that their __path__
        is correct
        z
site-pkgs2z	site-pkgsÚpkg1Úpkg2z8__import__('pkg_resources').declare_namespace(__name__)
z__init__.pyÚwr   Nz7Setuptools tried to import the parent namespace packagez	pkg1.pkg2)rL   rÞ   r  rÝ   rÿ   rý   rþ   ÚopenÚwriteÚcloser
  r	  r   rø   r†   Z	pkg1.pkg2ÚImportErrorr  r8   r  Ú__path__)r!   Zns_strÚsiteZ	pkg1_initZ	pkg2_initr
  r   r   r   Útest_two_levels_deepJ  s0    	"%%
z#NamespaceTests.test_two_levels_deepN)r)   r*   r+   rt   r  r	  r  r   r   r   r   rö   5  s   rö   )&rÝ   rL   rû   r  Zunittestr   r   r   r   r   r   r   r   r	   r
   r   Zsetuptools.command.easy_installr   r   r   Zsetuptools.compatr   r   r¯   Ú	NameErrorZsetsr   r   ÚEmptyProviderr   r`   r;   r-   rj   rˆ   r´   rÙ   rö   r   r   r   r   Ú<module>   s*   @
ªRTs>