{G_Tc@svddlmZddlmZmZmZmZmZddlZddl m Z ddl Z ddl Z ddl Z yddlZWnek reZnXedZddlmZmZmZe jddd fkZd ejfd YZd efd YZdefdYZdefdYZdefdYZdZedkrrendS(i(t test_support(tTESTFNt_4Gt bigmemtestt import_moduletfindfileN(tStringIOtbz2(tBZ2Filet BZ2CompressortBZ2Decompressortwin32tos2emxtriscostBaseTestcBsAeZdZdZdZdZdZer6dZn dZRS(sBase for other testcases.sroot:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: lp:x:4:7:lp:/var/spool/lpd: sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail: news:x:9:13:news:/var/spool/news: uucp:x:10:14:uucp:/var/spool/uucp: operator:x:11:0:operator:/root: games:x:12:100:games:/usr/games: gopher:x:13:30:gopher:/usr/lib/gopher-data: ftp:x:14:50:FTP User:/var/ftp:/bin/bash nobody:x:65534:65534:Nobody:/home: postfix:x:100:101:postfix:/var/spool/postfix: niemeyer:x:500:500::/home/niemeyer:/bin/bash postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash www:x:103:104::/var/www:/bin/false sBZh91AY&SY.N>_@n?0F#&FЦMQ4hh$i44S9gd6 Պ.Kvxwߡ|/";ձ#Aoy\O煚f82"%>V,z⟣"E)I^rU26U0^DFݸankR3]f"6l$j@l1..klsE knQ%yvz̹zn7.G]B@!8`sBZh91AY&SYzNH߀@n?@`*=ML@I!Ȉjdi@@ h2De 虉h G(? ϵEps^ݢ&(u0%'ĉ!UIFU%C4!DIN8WAr%?3;I45AыTǍ\"yBglk"ԉ*  m6jj';.IJ舌U+t3 3r2 (rMD65؈Ӥ2\//k&+tar5"w]i[R IT;Zdk4 Ӂz:^`ܑN$+ӀsBZh9rE8Pc Cstjddtdtjdtjdtj}|jj||jj|jj }|jj|j dkrt j |}n|S(Ntbunzip2tshelltstdintstdouttstderri( t subprocesstPopentTruetPIPEtSTDOUTRtwritetcloseRtreadtwaitRt decompress(tselftdatatpoptret((s)/usr/local/lib/python2.7/test/test_bz2.pyRs     cCs tj|S(N(RR(RR((s)/usr/local/lib/python2.7/test/test_bz2.pyR+s( t__name__t __module__t__doc__tTEXTtDATAt DATA_CRLFt EMPTY_DATAthas_cmdline_bunzip2R(((s)/usr/local/lib/python2.7/test/test_bz2.pyRs t BZ2FileTestcBs^eZdZdZdZddZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZe j!e"dd Z#d!Z$e j%e&j'd"kd#d$Z(RS(%s(Test BZ2File type miscellaneous methods.cCs t|_dS(N(Rtfilename(R((s)/usr/local/lib/python2.7/test/test_bz2.pytsetUp2scCs,tjj|jr(tj|jndS(N(tostpathtisfileR+tunlink(R((s)/usr/local/lib/python2.7/test/test_bz2.pyttearDown5sicCsGt|jd/}|r'|j}n |j}|j|WdQXdS(Ntwb(topenR+R'R&R(RtcrlftfR((s)/usr/local/lib/python2.7/test/test_bz2.pytcreateTempFile9s   cCsU|jt|j6}|jt|jd|j|j|jWdQXdS(N( R6RR+t assertRaisest TypeErrorRtNonet assertEqualR%(Rtbz2f((s)/usr/local/lib/python2.7/test/test_bz2.pyttestReadAs cCsU|jt|j6}|jt|jd|j|jddWdQXdS(Nit(R6RR+R7R8RR9R:(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyt testRead0Hs cCsh|jt|jI}d}x&|jd}|s>Pn||7}q%|j||jWdQXdS(NR=i (R6RR+RR:R%(RR;ttexttstr((s)/usr/local/lib/python2.7/test/test_bz2.pyttestReadChunk10Os  cCsF|jt|j'}|j|jd|jd WdQXdS(Nid(R6RR+R:RR%(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyt testRead100[s cCsx|jt|jY}|jt|jdt|j}x*|j D]}|j |j|qNWWdQXdS(N( R6RR+R7R8treadlineR9RR%t readlinesR:(RR;tsiotline((s)/usr/local/lib/python2.7/test/test_bz2.pyt testReadLineas  cCsg|jt|jH}|jt|jdt|j}|j |j|jWdQXdS(N( R6RR+R7R8RDR9RR%R:(RR;RE((s)/usr/local/lib/python2.7/test/test_bz2.pyt testReadLinesjs  cCsW|jt|j8}t|j}|jtt||jWdQXdS(N( R6RR+RR%R:tlisttiterRD(RR;RE((s)/usr/local/lib/python2.7/test/test_bz2.pyt testIteratorrs cCsM|jt|j}|j|jt|j|jt|jdS(N(R6RR+RR7t ValueErrortnextRD(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestClosedIteratorDeadlockys   cCsX|jt|j}t|j}|jt|j|j|j dS(N( R6RR+RR%R:RIt xreadlinesRDR(RR;RE((s)/usr/local/lib/python2.7/test/test_bz2.pyttestXReadLiness  "cCsV|jt|jd}|j|j|j|j|jd|jdS(NtrUs (R6RR+R:RR%tnewlinesR(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestUniversalNewlinesLFs  cCs\|jddt|jd}|j|j|j|j|jd|jdS(NR4iRQs (R6RR+R:RR%RRR(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestUniversalNewlinesCRLFs cCst|jd*}|jt|j|j|jWdQXt|jd)}|j|j|j |jWdQXdS(Ntwtrb( RR+R7R8RR%R3R:RR(RR;R5((s)/usr/local/lib/python2.7/test/test_bz2.pyt testWrites cCst|jdP}d}x@|j|d|dd!}|sDPn|j||d7}qWdQXt|jd)}|j|j|j|jWdQXdS(NRUii iRV(RR+R%RR3R:RR(RR;tnR@R5((s)/usr/local/lib/python2.7/test/test_bz2.pyttestWriteChunks10s cCst|jd<}|jt|jt|j}|j|jWdQX|jt|jdgt |jd)}|j |j |j |jWdQXdS(NRUtaRV( RR+R7R8t writelinesRR%RDRLR3R:RR(RR;RER5((s)/usr/local/lib/python2.7/test/test_bz2.pyttestWriteLinessc Csvt|jd}|jdWdQXt|jd6}|jt|jd|jt|jdgWdQXdS(NRUtabctrRZ(RR+RR7tIOErrorR[(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestWriteMethodsOnReadOnlyFiles cCsc|jt|jD}|jt|j|jd|j|j|jdWdQXdS(Ni( R6RR+R7R8tseekR:RR%(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestSeekForwards   c Cs`|jt|jA}|jd|jdd|j|j|jdWdQXdS(Niijiii^(R6RR+RRaR:R%(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestSeekBackwardss   c Cs`|jt|jA}|jdd|j|j|jt|jdWdQXdS(Nijii(R6RR+RaR:RR%tlen(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestSeekBackwardsFromEnds cCsh|jt|jI}|jd|j|jt|j|j|jdWdQXdS(NiIR=( R6RR+RaR:ttellRdR%R(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestSeekPostEnds   cCsu|jt|jV}|jd|jd|j|jt|j|j|jdWdQXdS(NiIR=( R6RR+RaR:RfRdR%R(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestSeekPostEndTwices    cCsb|jt|jC}|jd|j|jd|j|j|jWdQXdS(Niji(R6RR+RaR:RfRR%(RR;((s)/usr/local/lib/python2.7/test/test_bz2.pyttestSeekPreStarts   cCs7|jx&tdD]}t|j}~qWdS(Ni'(R6txrangeRR+(Rtito((s)/usr/local/lib/python2.7/test/test_bz2.pyt testOpenDels cCs|jttddS(Ns /non/existent(R7R_R(R((s)/usr/local/lib/python2.7/test/test_bz2.pyttestOpenNonexistentscCsr|jt|jd}|jt|j}|jdd|j|jt|j |jdS(NtUii( R6RR+RtfileRaR:RfRdR&(RR;R5((s)/usr/local/lib/python2.7/test/test_bz2.pyt testModeUs  cCsd}t|jd}|j|WdQXt|j}|j}WdQX|j|dgt|j}t|j}WdQX|j|dgdS(Ns,BZh91AY&SYb] !h3M<]BCe%tR2tTest(R3R+RRRDR:RI(RRR5R;tlinestxlines((s)/usr/local/lib/python2.7/test/test_bz2.pyttestBug1191043 scCsd}t|jd}|jdWdQXt|jd}|jy|WdQXWntk rnnX|jdy't|jd}ddWdQXWntk rnX|jddS(NR2txxxRVs4__enter__ on a closed file didn't raise an exceptioniis 1 // 0 didn't raise an exception(R9RR+RRRLtfailtZeroDivisionError(RR5((s)/usr/local/lib/python2.7/test/test_bz2.pyttestContextProtocols"     s!Threading required for this test.c sddd}tj|jdzfd}gt|D]}tjd|^qG}x|D]}|jqlWx|D]}|jqWWdQXdS( Nt1iii R2cs(x!tdD]}jq WdS(Ni(trangeR(Rk(RR5(s)/usr/local/lib/python2.7/test/test_bz2.pytcomp1sttargeti(RRR+R{t threadingtThreadtstarttjoin(RtnthreadsR|Rktthreadstt((RR5s)/usr/local/lib/python2.7/test/test_bz2.pyt testThreading+s +  cCstj|jd}|j|jdWdQXtj|jdJ}t||jt|j|jt|j |jt|j WdQXdS(NR2idRV( RRR+RR%RMR7RLRRCRD(RR5((s)/usr/local/lib/python2.7/test/test_bz2.pyttestMixedIterationReads:s R sXtest depends on being able to delete a still-open file, which is not possible on WindowscCsj|jt|jd}|jt|jdWdQXtj|j}|jt|jd~dS(NR2snon-existent-file(R6RR+R7R_t__init__R(RR5((s)/usr/local/lib/python2.7/test/test_bz2.pyttestInitNonExistentFileGs  ()R"R#R$R,R1R6R<R>RARBRGRHRKRNRPRSRTRWRYR\R`RbRcReRgRhRiRmRnRqRuRytunittestt skipUnlessR~RRtskipIftsystplatformR(((s)/usr/local/lib/python2.7/test/test_bz2.pyR*/sD                      tBZ2CompressorTestcBs>eZdZdZdZeedddZRS(cCs^t}|jt|j|j|j}||j7}|j|j||jdS(N(R R7R8tcompressR%tflushR:R(Rtbz2cR((s)/usr/local/lib/python2.7/test/test_bz2.pyt testCompressWs  cCs?t}|jd}||j7}|j||jdS(NR=(R RRR:R((RRR((s)/usr/local/lib/python2.7/test/test_bz2.pyttestCompressEmptyString_s cCst}d}d}xF|j|d|dd!}|s>Pn||j|7}|d7}q||j7}|j|j||jdS(NiR=i i(R R%RRR:R(RRRXRR@((s)/usr/local/lib/python2.7/test/test_bz2.pyttestCompressChunks10fs  tmemuseg?cCstd|}tj}|j||j}~|j|}|jt|||j|jdddS(NRZR=(RR RRRR:Rdtstrip(RtsizeR?RR((s)/usr/local/lib/python2.7/test/test_bz2.pyt testBigmemts  (R"R#RRRRRR(((s)/usr/local/lib/python2.7/test/test_bz2.pyRVs   tBZ2DecompressorTestcBsPeZdZdZdZdZdZeedddZ RS(cCs|jttddS(Ni*(R7R8R (R((s)/usr/local/lib/python2.7/test/test_bz2.pyttest_ConstructorscCsEt}|jt|j|j|j}|j||jdS(N(R R7R8RR&R:R%(Rtbz2dR?((s)/usr/local/lib/python2.7/test/test_bz2.pyttestDecompresss cCsut}d}d}xF|j|d|dd!}|s>Pn||j|7}|d7}q|j||jdS(NR=ii i(R R&RR:R%(RRR?RXR@((s)/usr/local/lib/python2.7/test/test_bz2.pyttestDecompressChunks10s  cCsOt}d}|j|j|}|j||j|j|j|dS(Nsthis is unused data(R RR&R:R%t unused_data(RRRR?((s)/usr/local/lib/python2.7/test/test_bz2.pyttestDecompressUnusedDatas  cCsKt}|j|j}|jt|jd|jt|jddS(NtanythingR=(R RR&R7tEOFError(RRR?((s)/usr/local/lib/python2.7/test/test_bz2.pyt testEOFErrors Rg?cCsw|tkr|jdntjdt}tjj|}|jt|t|j|jdddS(Ns Test needs 5GB of memory to run.RZR=( RtskipTestRRR RR:RdR(RRt compressedR?((s)/usr/local/lib/python2.7/test/test_bz2.pyRs  ( R"R#RRRRRRRR(((s)/usr/local/lib/python2.7/test/test_bz2.pyRs     tFuncTestcBszeZdZdZdZdZdZdZdZe e ddd Z e e ddd Z RS( sTest module functionscCs2tj|j}|j|j||jdS(N(RRR%R:R(RR((s)/usr/local/lib/python2.7/test/test_bz2.pyRscCs&tjd}|j||jdS(NR=(RRR:R((RR?((s)/usr/local/lib/python2.7/test/test_bz2.pyRscCs)tj|j}|j||jdS(N(RRR&R:R%(RR?((s)/usr/local/lib/python2.7/test/test_bz2.pyRscCs#tjd}|j|ddS(NR=(RRR:(RR?((s)/usr/local/lib/python2.7/test/test_bz2.pyttestDecompressEmptyscCs&tj|j}|j|ddS(NR=(RRR(R:(RR?((s)/usr/local/lib/python2.7/test/test_bz2.pyttestDecompressToEmptyStringscCs!|jttj|jd dS(Ni(R7RLRRR&(R((s)/usr/local/lib/python2.7/test/test_bz2.pyttestDecompressIncompletesRg?cCs^d|}tj|}~|j|}|jt|||j|jdddS(NRZR=(RRRR:RdR(RRR?R((s)/usr/local/lib/python2.7/test/test_bz2.pyttestCompressBigmems  cCsq|tkr|jdntjdt}tj|}|jt|t|j|jdddS(Ns Test needs 5GB of memory to run.RZR=(RRRRRR:RdR(RRRR?((s)/usr/local/lib/python2.7/test/test_bz2.pyttestDecompressBigmems  ( R"R#R$RRRRRRRRRR(((s)/usr/local/lib/python2.7/test/test_bz2.pyRs       cCs$tjtttttjdS(N(Rt run_unittestR*RRRt reap_children(((s)/usr/local/lib/python2.7/test/test_bz2.pyt test_mains t__main__(ttestRttest.test_supportRRRRRRt cStringIORR-RRR~t ImportErrorR9RRR R RR)tTestCaseRR*RRRRR"(((s)/usr/local/lib/python2.7/test/test_bz2.pyts,(       ()23