G_Tc@sddlZddlZddlZddlZddlmZddlZddlmZmZm Z m Z m Z m Z m Z mZmZddlmZmZmZddlmZmZmZddlmZedZd ejfd YZej jZd efd YZ d efdYZ!defdYZ"defdYZ#defdYZ$defdYZ%dS(iN(tTestCase( tparse_requirementstVersionConflictt parse_versiont Distributiont EntryPointt Requirementt safe_versiont safe_namet WorkingSet(tget_script_headertis_sht nt_quote_arg(tStringIOt iteritemstPY3i(tskipIfcCsbyt|}Wn tk r2tj|}nX| sOt|tjkrS|S|tj dS(s copied from Python2.7s [truncated]...(treprt Exceptiontobjectt__repr__tlent pkg_resourcest _MAX_LENGTH(tobjtshorttresult((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt safe_reprs tMetadatacBs2eZdZdZdZdZdZRS(sAMock object to return metadata as if from an on-disk distributioncGst||_dS(N(tdicttmetadata(tselftpairs((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt__init__"scCs ||jkS(N(R(Rtname((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt has_metadata%scCs |j|S(N(R(RR"((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt get_metadata(scCstj|j|S(N(Rt yield_linesR$(RR"((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pytget_metadata_lines+s(t__name__t __module__t__doc__R!R#R$R&(((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyRs    t DistroTestscBseeZdZdZdZdZdZdZd dZdZ dZ d Z RS( cCsytjgdddd}|jt|g|j|dg|jtd|jtd|jtd|j|d|jt|dg|jg|dD]}|j^qdd d g|j |dd |jg|dD]}|j^qdd g|jtd |jg|dD]}|j^qDd dd gt g}td}td}t d\}|j|j ||jd |j||j|j ||jdt g}|j||j||j t|j ||t g}|j||j||j||j|j ||jddS(NtplatformtpythontFooPkgsFooPkg-1.3_1.eggsFooPkg-1.4-py2.4-win32.eggsFooPkg-1.2-py2.4.eggtfoopkgs1.4s1.3-1s1.2isFooPkg-1.9.eggs1.9s FooPkg>=1.3(Rt EnvironmenttNonet assertEqualtlisttaddt dist_from_fnt assertTruetversiontremoveR Rt best_matcht assertRaisesR(Rtadtdisttwstfoo12tfoo14treq((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestCollection2s@-*-           cCs||j|jd|j|jd|j|jd|j|jd|j|jd|j|jtddS(NR-R.s1.3-1s2.4twin32(R1t project_nametkeyR6t py_versionR+tparsed_versionR(Rtd((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt checkFooPkggs c Csntddddddddd }|j|td}|j|jtjd |j|jddS( Ns /some/pathRBR-R6s1.3-1RDs2.4R+RAi(RRGR1RDtsysR6R+R0(RRF((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestDistroBasicsos  cCs6td}|j|td}|j|dS(NsFooPkg-1.3_1-py2.4-win32.eggs!FooPkg-1.3_1-py2.4-win32.egg-info(R4RG(RRF((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestDistroParsezs   c Cs;tddddddddtd }|j|dS( Ns /some/pathRBR-RDs2.4R+RARsPKG-INFOs%Metadata-Version: 1.0 Version: 1.3-1 (sPKG-INFOs%Metadata-Version: 1.0 Version: 1.3-1 (RRRG(RRF((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestDistroMetadatas  cCstddtd|fS(Ns/fooRs depends.txt(RR(Rttxt((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt distRequiresscCs/|jt|j|tt|dS(N(R1R2trequiresR(RR;RLtextras((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt checkRequiresscCs.x'dD]}|j|j||qWdS(Ns Twisted>=1.5sTwisted>=1.5 ZConfig>=2.0(s Twisted>=1.5sTwisted>=1.5 ZConfig>=2.0(RPRM(Rtv((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestDistroDependsSimples cCstjg}tg}|jt|jg|g|jtj|jtd|t j ddt d }|j ||j t j dx[t dD]M}t|jtd|}|j||gtt|j |qW|jt|jtd|tg}|jtj|jtd |t j d dt d }|j ||jt|jtd |||g|jt|jtd |dS(NtFoos/foo_dir/Foo-1.2.eggRs depends.txts[bar] Baz>=2.0s Foo-0.9.eggisFoo==0.9sFoo[bar]s/foo_dir/Baz-2.1.eggsFoo==1.2 Foo!=1.2(s depends.txts[bar] Baz>=2.0(s depends.txtsFoo(RR/R R1R2tresolveR9tDistributionNotFoundRRt from_filenameRR3trangetmapR(RR:R<RStittargetstBaz((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testResolves4 "   ( cCs|jd}|j|d|j|djdg|j|djdg|j|djddg|j|djddg|jtj|jd gdS( Ns Twisted>=1.5 [docgen] ZConfig>=2.0 docutils>=0.3 [fastcgi] fcgiapp>=0.1s Twisted>=1.5s'Twisted>=1.5 ZConfig>=2.0 docutils>=0.3tdocgensTwisted>=1.5 fcgiapp>=0.1tfastcgis4Twisted>=1.5 ZConfig>=2.0 docutils>=0.3 fcgiapp>=0.1s4Twisted>=1.5 fcgiapp>=0.1 ZConfig>=2.0 docutils>=0.3tfoo(RMRPtsplitR9Rt UnknownExtraRN(RRF((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestDistroDependsOptionss     (( R'R(R@RGRIRJRKRMRPRRR\Rb(((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyR*0s 5      *tEntryPointTestsc BseZdZdZdZdZdZdZede dddgd e d d d gd d gde ddddgZ dZ dZ dZ RS(cCs|j|jd|j|jd|j|jd|j|jd|j|jtk|jt|ddS(NR_ssetuptools.tests.test_resourcesRctxs9foo = setuptools.tests.test_resources:EntryPointTests [x](sEntryPointTests(Rd( R1R"t module_nametattrsROR5tloadRctstr(Rtep((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt assertfieldss cCs"tjddtd|_dS(NsFooPkg-1.2-py2.4.eggRs requires.txts[x](s requires.txts[x](RRVRR;(R((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pytsetUpscCs2tdddgdg|j}|j|dS(NR_ssetuptools.tests.test_resourcesRcRd(RR;Rj(RRi((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testBasicss cCsd}tj||j}|j|tjd}|j|jd|j|jd|j|jd |j|jd tjd}|j|jd|j|jd|j|jd |j|jd dS(Ns9foo = setuptools.tests.test_resources:EntryPointTests [x]sbar baz= spammity[PING]sbar baztspammitytpings fizzly = wocka:footfizzlytwockaR_((Rn(sfoo(( RtparseR;RjR1R"ReRfRO(RtsRi((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testParses cCs[xTddddddgD]:}ytj|Wntk rCqXtd|qWdS(NR_sx=1=2sx=a:b:csq=x/nasfez=pish:tush-zsx=f[a]>2sShould've been bad(RRqt ValueErrortAssertionError(RRi((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testRejectss cCsh|jt|t|jxBt|jD]1\}}|jt|j|t|q/WdS(N(R1Rt submap_expectRRtget(RtmRCRi((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt checkSubMap stfeature1t somemodulet somefunctiontfeature2sanother.modulet SomeClasstextra1textra2tfeature3s this.moduleROt somethings # define features for blah blah feature1 = somemodule:somefunction feature2 = another.module:SomeClass [extra1,extra2] feature3 = this.module [something] cCsX|jtjd|j|jttjdd|jttjdddgdS(Ntxyzsx asfoo=barRdsfoo=baz(RzRt parse_groupt submap_strR9Rt(R((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testParseListscCstji|jd6}|j|d|jt|jdgtjd|j}|j|d|jt|jdg|jttjddg|jttj|jdS(NRs[xyz] s[xyz]( Rt parse_mapRRzR1R2tkeysR9Rt(RRy((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testParseMap"s(R'R(RjRkRlRsRvRzRRRwRRR(((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyRcs      tRequirementsTestscBsGeZdZdZdZdZdZdZdZRS(cCstjd}|jt|d|jt|d|j|tdd gd |j|tdd gd|j|tddgd|j|tddgd|j|tddgd|j|tjd dS(Ns Twisted>=1.2s!Requirement.parse('Twisted>=1.2')tTwisteds>=s1.2ttwisTeds2.0tZopes3.0sTwisted[extras]>=1.2(s>=s1.2((s>=s1.2((s>=s2.0((s>=s1.2((s>=s3.0((RRqR1RhRtassertNotEqual(Rtr((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyRl.scCsvtdddgd }tdd d gd }|j|||jt|t||jt|ddS( NRs==s1.2c1s>=s1.2sTwisted==1.2c1,>=1.2(s==s1.2c1(s>=s1.2((s>=s1.2(s==s1.2c1((RR1Rh(Rtr1tr2((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testOrdering9s cCstddgd }tjd}tjd}tjd}|jtd|k|jtd|k|jd|k|jd|k|j||k|j||k|j||kdS( NRs>=s1.2sFooPkg-1.3_1.eggsTwisted-1.1.eggsTwisted-1.2.eggs1.1(s>=s1.2((RRRVR5R(RRtfoo_distttwist11ttwist12((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestBasicContains@sc Csmtd\}x*dD]"}|j||k||fqWx*dD]"}|j||k||fqCWdS(Ns*Foo>=1.2,<=1.3,==1.9,>2.0,!=2.5,<3.0,==4.5s1.2s1.2.2s1.3s1.9s2.0.1s2.3s2.6s3.0c1s4.5s1.2c1s1.3.1s1.5s1.9.1s2.0s2.5s3.0s4.0( s1.2s1.2.2s1.3s1.9s2.0.1s2.3s2.6s3.0c1s4.5(s1.2c1s1.3.1s1.5s1.9.1s2.0s2.5s3.0s4.0(RR5(RRRQ((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestAdvancedContainsMs    cCstjd}tjd}tjd}|j|||j|||j|jd |j|jd |jt|t||jt|tddtdfftddgfdS( NsTwisted[foo,bar]>=1.2sTwisted[bar,FOO]>=1.2sTwisted[BAR,FOO]>=1.2.0R_tbarttwisteds>=s1.2(sfooR(Rsfoo(RRqR1ROthashRt frozenset(RRRtr3((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestOptionsAndHashingTs!cCstjd}tjd}tj}|j|d|k|j|d|k|j|d|k|j|d|k|j|d|k|j|d|k|j|d|kdS(Ns foo==0.3a2s foo!=0.3a4s foo-0.3a4.eggs foo-0.3a1.eggs foo-0.3a2.eggs foo-0.3a3.eggs foo-0.3a5.egg(RRqRRVR5(RRRRF((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestVersionEqualitybs cCst|jtjdjd|jtjdjd|jtjdjd|jtjdjddS(sQ The setuptools project should implement the setuptools package. t setuptoolsssetuptools == 0.7ssetuptools == 0.7a1ssetuptools >= 0.7N(R1RRqRB(R((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestSetuptoolsProjectNameps( R'R(RlRRRRRR(((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyR,s    t ParseTestscBsPeZdZdZdZdZdZdZdZdZ RS(cCs |jttdgdS(Nt(R1R2R(R((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestEmptyParsescCsxxggfddgfgggfdddgfddgddgfgD]+\}}|jttj||qLWdS(NRds x ytysx (R1R2RR%(Rtinptout((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testYieldings0%cCsd}|jttj|ddgfdddgfddgfdgfd d gfg|jtttjd dS( Ns x [Y] z a [b ] # foo c [ d] [q] v RdtYtztatbtcRFtqRQs[foo(R1R2Rtsplit_sectionsR0R9Rt(Rtsample((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testSplittings CcCsr|jtdd|jtdd|jtdd|jtdd|jtdddS( Ns adns-pythons WSGI Utilss WSGI-Utilss WSGI Utilss Money$$$Makers Money-Makerspeak.webspeak-web(R1RR(R((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyt testSafeNames cCsr|jtdd|jtdd|jtdd|jtdd|jtdddS( Ns1.2-1s 1.2 alphas 1.2.alphas2.3.4 20050521s2.3.4.20050521s Money$$$Makers Money-Makerspeak.web(R1R(R((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestSafeVersions cCs|jttdtddgdg|jttdtdddgdg|jtjd td dgd|jttjd|jttjd|jttjd|jttjd|jttjddS(NsTwis-Ted>=1.2-1sTwis-Teds>=s1.2-1sTwisted >=1.2, \ # more <2.0Rs1.2t=2.3sx\sx==2 qs X==1 Y==2t#(s>=s1.2-1((s>=s1.2(Rs2.0((s==s1.99a3((R1R2RRRqR9Rt(R((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestSimpleRequirementss csfd}|dd|dd|dd|dd|d d |d d |d d|d d|dd|dddS(Ncs<t|t|}}j||||||fdS(N(RR1(ts1ts2tp1tp2(R(sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyRss1.2-rc1s1.2rc1s0.4s0.4.0s0.4.0.0s0.4.0-0s0.4-0t0pl1s0.0pl1t0pre1s0.0c1s 0.0.0preview1t0c1s0-rc1s1.2a1s1.2.a.1s1.2...as1.2a((RR((RsI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyRs         csLfd}|dd|dd|dd|dd|dd |dd|dd |d d|d d |dd|dd|dd|dd|dd|dd|dd|dd|dddj}x@t|D]2\}}x#||d D]}|||q-WqWdS(!Ncs?t|t|}}j||k||||fdS(N(RR5(RRRR(R(sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyRss2.1s2.1.1t2a1t2b0s2.3a1s2.3s2.1-1s2.1-2s2.1pl4s2.1a0-20040501s1.1s02.1tA56tB27s3.2s3.2.pl0s3.2-1s3.2pl1s3.2pl1-1s0.4s4.0s0.0.4s0.4.0Rs0.4pl1s 2.1.0-rc1s2.1.0s2.1devs2.1a0s 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 i(R`t enumerate(RRttorturetptv1tv2((RsI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttestVersionOrderings.                   ( R'R(RRRRRRRR(((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyRs       tScriptHeaderTestscBs&eZdZdZdZdZRS(s/Users/José/bin/pythons$C:\Program Files\Python33\python.execCstjjd s#ttj rdttjjtj}|j t d|dttjjtj}|j t d||j t dd|j d|j t dd|j }|j |d |j ndS( Ntjavas#!%s s#!/usr/local/bin/pythons #!%s -x s#!/usr/local/bin/python2.7 -xs#!/usr/local/bin/python2.7t executables#!%s -x s#!"%s" ( RHR+t startswithR RR tostpathtnormpathR1R t non_ascii_exetexe_with_spaces(Rtexpectedt candidate((sI/usr/local/lib/python2.7/site-packages/setuptools/tests/test_resources.pyttest_get_script_headers#   cCstr"tjjddkr"dSdddY}|tjds$     @  RTs=