ó ükWc@s†yddlZWnek r)eZnXddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z ddl mZm Z ddl mZddlmZmZmZmZmZmZmZmZyejeƒWneefk r.eZnXedZedZd Zd d fd d fddfddfgZde j fd„ƒYZ!de j fd„ƒYZ"de j fd„ƒYZ#de j fd„ƒYZ$de j fd„ƒYZ%de j fd„ƒYZ&eedƒde j fd „ƒYƒZ'd!e j fd"„ƒYZ(d#e j fd$„ƒYZ)d%„Z*e+d&kr‚e*ƒndS('iÿÿÿÿN(tStringIO(t TemporaryFile(trandinttrandom(t skipUnless(tTESTFNtTESTFN_UNICODEtTESTFN_ENCODINGt run_unittesttfindfiletunlinktrmtreetcheck_warningst2tdièt _ziptest1t 1q2w3e4r5tsziptest2dir/_ziptest2t qawsedrftgs!ziptest2dir/ziptest3dir/_ziptest3t azsxdcfvgbs-ziptest2dir/ziptest3dir/ziptest4dir/_ziptest3t 6y7u8i9o0ptTestsWithSourceFilecBs<eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zeedƒd„ƒZeedƒd„ƒZeedƒd„ƒZeedƒd„ƒZeedƒd„ƒZeedƒd„ƒZeedƒd„ƒZeedƒd„ƒZd„Zd„Zd„Z d„Z!d„Z"d „Z#eedƒd!„ƒZ$d"„Z%d#„Z&d$„Z'd%„Z(ee)d&ƒd'„ƒZ*d(„Z+d)„Z,d*„Z-d+„Z.d,„Z/d-„Z0d.„Z1d/„Z2RS(0cCstgttƒD]}d|tƒf^q |_dj|jƒd|_ttdƒ}|j|jƒWdQXdS(Ns&Zipfile test line %d. random float: %fs twb( txrangetFIXEDTEST_SIZERtline_gentjointdatatopenRtwrite(tselftitfp((s'/usr/lib/python2.7/test/test_zipfile.pytsetUp(s ,cCsUtj|d|ƒ:}|jtdƒ|jttƒ|jd|jƒWdQXdS(Ntws another.nametstrfile(tzipfiletZipFileRRtwritestrR(Rtft compressiontzipfp((s'/usr/lib/python2.7/test/test_zipfile.pytmake_test_archive1sc Csò|j||ƒtj|d|ƒÇ}|j|jtƒ|jƒ|j|jdƒ|jƒ|j|jdƒ|jƒtƒ}tj }z|t_ |j ƒWd|t_ X|j ƒ}|j ƒ}|jt |ƒdƒ|jd|dƒ|jd|dƒ|jd|dƒ|d jƒ\}} } } |j|dƒ|jtj| d ƒƒ|jtj| d ƒƒ|j| tt |jƒƒƒ|jƒ} |jt | ƒd ƒ|jt| ƒ|jd| ƒ|jd| ƒ|jƒ} g| D]}|j^qþ} |jt | ƒd ƒ|jt| ƒ|jd| ƒ|jd| ƒx*| D]"}|j|jt |jƒƒq`WxUtddfD]D}|j|ƒ}|j|j|ƒ|j|jt |jƒƒq–W|jƒWdQXdS( Ntrs another.nameR"is File NameitModifiedtSizeis%Y-%m-%ds%H:%M:%Si(R)R#R$t assertEqualtreadRRRtsyststdouttprintdirtgetvaluet splitlinestlentassertIntsplitt assertTruettimetstrptimetstrtnamelisttinfolisttfilenamet file_sizetgetinfottestzip(RR&R'R(RR0t directorytlinestfntdatettime_tsizetnamestinfosRtnmtinfo((s'/usr/lib/python2.7/test/test_zipfile.pytzip_test8sP           cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(tTESTFN2RRRKR#t ZIP_STORED(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyt test_storedrsc Cs |j||ƒtj|d|ƒá}g}|jtƒ:}x0trr|jdƒ}|sbPn|j|ƒqCWWdQXg}|jdƒ:}x0trÃ|jdƒ}|s³Pn|j|ƒq”WWdQX|jdj |ƒ|j ƒ|jdj |ƒ|j ƒWdQXdS(NR*is another.namet( R)R#R$RRtTrueR.tappendR-RR( RR&R'R(tzipdata1tzipopen1t read_datatzipdata2tzipopen2((s'/usr/lib/python2.7/test/test_zipfile.pyt zip_open_testvs$  cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRWR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_open_storedŽsc CsItjtdtjƒ]}|jddƒtdtfƒ|jddƒWdQX|j|jƒdgdƒWdQXtjtdƒº}|j ƒ}d}x6|D].}|j |ƒ}||j ƒ7}WdQXq¥W|j |dkpò|d kƒd}x!|D]}||j |ƒ7}qW|j |dkp;|d kƒWdQXdS( NR!tnametfooROtbariR*tfoobartbarfoo( R#R$RLRMR%R t UserWarningR-R;R<RR.R7(RR(RHRRJR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_open_via_zip_info’s #   c Cs¨|j||ƒtj|d|ƒ}}g}|jtƒC}x9tr{|jtddƒƒ}|skPn|j|ƒqCWWdQX|j dj |ƒ|j ƒWdQXdS(NR*iiRO( R)R#R$RRRPR.RRQR-RR(RR&R'R(RRRSRT((s'/usr/lib/python2.7/test/test_zipfile.pytzip_random_open_test¦s cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRR`R#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_random_open_storedµsc Cs¿tƒ}ddd}tj|dtjƒ}|jt|ƒWdQXd}tj|dƒ=}|jtdƒ"}x|D]}||7}qWWdQXWdQX|j||jdd ƒƒdS( Nsa iiR!ROR*trUs s ( RR#R$RMR%RRR-treplace(RR&RR(tdata2tzipopentline((s'/usr/lib/python2.7/test/test_zipfile.pyttest_univeral_readaheads¹s  c Cs°|j||ƒtj|dƒu}|jtƒ]}d}xMtrŒ|jƒ}|s\Pn||7}|jdƒ}|sPn||7}q@WWdQXWdQX|j||j ƒdS(NR*ROid( R)R#R$RRRPtreadlineR.R-R(RR&R'R(ReRR.((s'/usr/lib/python2.7/test/test_zipfile.pytzip_readline_read_testÈs   c Cs{|j||ƒtj|dƒS}|jtƒ;}x1|jD]&}|jƒ}|j||dƒqAWWdQXWdQXdS(NR*s (R)R#R$RRRRhR-(RR&R'R(ReRftlinedata((s'/usr/lib/python2.7/test/test_zipfile.pytzip_readline_testÜs  c CsŠ|j||ƒtj|dƒb}|jtƒJ}|jƒ}x4t|j|ƒD] \}}|j||dƒqVWWdQXWdQXdS(NR*s ( R)R#R$RRt readlinestzipRR-(RR&R'R(tzotziplinesRftzipline((s'/usr/lib/python2.7/test/test_zipfile.pytzip_readlines_testæs  c Cso|j||ƒtj|dƒG}x=t|j|jtƒƒD] \}}|j||dƒqAWWdQXdS(NR*s (R)R#R$RmRRRR-(RR&R'R(RfRp((s'/usr/lib/python2.7/test/test_zipfile.pytzip_iterlines_testðs(cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRiR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_readline_read_storedøscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRkR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_readline_storedýscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRqR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_readlines_storedscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRrR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_iterlines_storedss requires zlibcCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRKR#t ZIP_DEFLATED(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyt test_deflated scCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRWR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_open_deflatedscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRR`R#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_random_open_deflatedscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRiR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_readline_read_deflatedscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRkR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_readline_deflatedscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRqR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_readlines_deflated#scCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRrR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_iterlines_deflated(sc Cs tjtdtjƒ}|jddƒWdQXtjtdtjƒQ}|jdƒ9}|j|jdƒdƒ|j|jdƒdƒWdQXWdQXdS( s>Check for cases where compressed data is larger than original.R!R"t12NR*it1R (R#R$RLRwR%RR-R.(RR(topenobj((s'/usr/lib/python2.7/test/test_zipfile.pyttest_low_compression-s cCsotjtdtjƒ}|jtdƒWdQXtjtdtjƒ }|j|jƒdgƒWdQXdS(NR!s /absoluteR*tabsolute(R#R$RLRMRRR-R;(RR(((s'/usr/lib/python2.7/test/test_zipfile.pyttest_absolute_arcnames:sc Cs…tjtdtjƒ}|jttƒWdQXtjtdtjƒ6}|jd|jƒ|j|j ƒtdgƒWdQXdS(s&Test appending to an existing zipfile.R!NtaR"( R#R$RLRMRRR%RR-R;(RR(((s'/usr/lib/python2.7/test/test_zipfile.pyttest_append_to_zip_fileAs c CsÃdd}ttdƒ}|j|ƒWdQXtjtdtjƒ}|jttƒWdQXttdƒN}|jt|ƒƒtj|dƒ }|j |j ƒtgƒWdQXWdQXdS(s9Test appending to an existing file that is not a zipfile.sI am not a ZipFile!i RNR…trbR*( RRLRR#R$RMRtseekR4R-R;(RRR&R(((s'/usr/lib/python2.7/test/test_zipfile.pyttest_append_to_non_zip_fileJs c Csˆtjtdtjƒ}|jttƒWdQXttdƒ}|jdƒWdQXtjtdƒ}|j|tjƒWdQXdS(NR!R…s R*(R#R$RLRMRRRtassertIsInstance(RR(R&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_ignores_newline_at_endZs c Cs¤tjtdtjƒ }d|_|jttƒWdQXttdƒ}|jdƒWdQXtjtdƒ-}|j|tjƒ|j |jdƒWdQXdS(NR!sthis is a commentR…sabcdef R*( R#R$RLRMtcommentRRRRŠR-(RR(R&((s'/usr/lib/python2.7/test/test_zipfile.pyt)test_ignores_stuff_appended_past_commentsbs c CsctjtdƒK}|jtƒttdƒ&}|j|jtƒ|jƒƒWdQXWdQXdS(s`Check that calling ZipFile.write without arcname specified produces the expected result.R!R*N(R#R$RLRRRR-R.(RR(tfid((s'/usr/lib/python2.7/test/test_zipfile.pyttest_write_default_namels cCs•tjtdƒ}}|jtdtjƒ|jtdtjƒ|jdƒ}|jdƒ}|j|j tjƒ|j|j tjƒWdQXdS(sUCheck that files within a Zip archive can have different compression options.R!tstoremet deflatemeN( R#R$RLRRRMRwR?R-t compress_type(RR(tsinfotdinfo((s'/usr/lib/python2.7/test/test_zipfile.pyttest_per_file_compressiontsc Csftjtddƒ}|jddƒWdQXtjtddƒ}|jt|jtƒWdQXdS(s]Check that trying to call write() on a readonly ZipFile object raises a RuntimeError.tmodeR!s somefile.txttbogusNR*(R#R$RLR%t assertRaisest RuntimeErrorRR(RR(((s'/usr/lib/python2.7/test/test_zipfile.pyttest_write_to_readonly€sc Cs$tjtdtjƒ.}x$tD]\}}|j||ƒq"WWdQXtjtdƒ¥}x›tD]“\}}|j|ƒ}tjj tj ƒ|ƒ}tjj |ƒ}|j ||ƒt |dƒ}|j ||jƒƒWdQXtj|ƒqdWWdQXttjj tj ƒdƒƒdS(NR!R*R‡t ziptest2dir(R#R$RLRMtSMALL_TEST_DATAR%textracttostpathRtgetcwdtnormpathR-RR.tremoveR (RR(tfpathtfdatat writtenfilet correctfileRŽ((s'/usr/lib/python2.7/test/test_zipfile.pyt test_extract‰sc Csýtjtdtjƒ.}x$tD]\}}|j||ƒq"WWdQXtjtdƒ~}|jƒxjtD]b\}}tjj tj ƒ|ƒ}t |dƒ}|j ||j ƒƒWdQXtj|ƒqnWWdQXttjj tj ƒdƒƒdS(NR!R*R‡R›(R#R$RLRMRœR%t extractallRžRŸRR RR-R.R¢R (RR(R£R¤toutfileRŽ((s'/usr/lib/python2.7/test/test_zipfile.pyttest_extract_all s cCsK|jtjj|ƒƒt|dƒ}|j|jƒ|ƒWdQXdS(NR‡(R7RžRŸtisfileRR-R.(RR=tcontentR&((s'/usr/lib/python2.7/test/test_zipfile.pyt check_file±ss1No Unicode filesystem semantics on this platform.c Csùdtjjtƒg}d}tjtdtjƒ(}x|D]}|j||ƒq@WWdQXtjtdƒ}xw|D]o}|j |ƒ}tjj tj ƒ|ƒ}tjj |ƒ}|j ||ƒ|j||ƒtj|ƒq|WWdQXdS(Nufoo.txtsTest for unicode filenameR!R*(RžRŸtbasenameRR#R$RLRMR%RRR R¡R-R­R¢(RtfnamesR¬R(tfnameR¥R¦((s'/usr/lib/python2.7/test/test_zipfile.pyttest_extract_unicode_filenames¶s  c Csßd1d2d3d4d5d6d7d8g}tjjd kry|jd9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKgƒn|jdLdMdNgƒxI|D]A\}}d%|jƒ}tjtd&tjƒ5}tj ƒ}||_ dO|_ |j ||ƒWdQX|j tjd)ƒ}tjjd*d+d,ƒ}tjj||jd)ƒŒ}tjtd-ƒ3}|j||ƒ} |j| |d.d/|ƒWdQX|j||ƒtd*ƒtjtd-ƒ}|j|ƒWdQX|j||ƒtd*ƒtjjtjƒ|jd)ƒŒ}tjtd-ƒ0}|j|ƒ} |j| |d.d/|ƒWdQX|j||ƒt|jd)ƒd0ƒtjtd-ƒ}|jƒWdQX|j||ƒt|jd)ƒd0ƒtjtƒq–WdS(PNs ../foo/barsfoo/bars foo/../bars foo/../../bars foo/bar/..s ./../foo/bars/foo/bars /foo/../bars/foo/../../bars\s ..\foo\bars ..\/foo\/bars foo/\..\/bars foo\/../\bars C:foo/bars C:/foo/bars C://foo/bars C:\foo\bars//conky/mountpoint/foo/bars\\conky\mountpoint\foo\bars///conky/mountpoint/foo/barsconky/mountpoint/foo/bars\\\conky\mountpoint\foo\bars//conky//mountpoint/foo/bars\\conky\\mountpoint\foo\bars//?/C:/foo/bars\\?\C:\foo\barsC:/../C:/foo/bars C_/foo/barsa:b\ce|f"g?h*isb/c_d_e_f_g_h_is../../foo../../ba..rs foo/ba..rs //foo/bars foo../ba..rs foo/..\barR\R!i€it/ttargettsubdirtsubsubR*tmsgs extract %ri(s ../foo/barsfoo/bar(s foo/../barsfoo/bar(s foo/../../barsfoo/bar(s foo/bar/..sfoo/bar(s ./../foo/barsfoo/bar(s/foo/barsfoo/bar(s /foo/../barsfoo/bar(s/foo/../../barsfoo/bar(s ..\foo\barsfoo/bar(s ..\/foo\/barsfoo/bar(s foo/\..\/barsfoo/bar(s foo\/../\barsfoo/bar(s C:foo/barsfoo/bar(s C:/foo/barsfoo/bar(s C://foo/barsfoo/bar(s C:\foo\barsfoo/bar(s//conky/mountpoint/foo/barsfoo/bar(s\\conky\mountpoint\foo\barsfoo/bar(s///conky/mountpoint/foo/barsconky/mountpoint/foo/bar(s\\\conky\mountpoint\foo\barsconky/mountpoint/foo/bar(s//conky//mountpoint/foo/barsconky/mountpoint/foo/bar(s\\conky\\mountpoint\foo\barsconky/mountpoint/foo/bar(s//?/C:/foo/barsfoo/bar(s\\?\C:\foo\barsfoo/bar(sC:/../C:/foo/bars C_/foo/bar(sa:b\ce|f"g?h*isb/c_d_e_f_g_h_i(s../../foo../../ba..rs foo/ba..r(s //foo/barsfoo/bar(s../../foo../../ba..rs foo../ba..r(s foo/..\bars foo/..\bari€(RžRŸtseptextendtencodeR#R$RLRMtZipInfoR=t external_attrR%RcRR6RR-R­R R¨R R¢( Rt hacknamestarcnamet fixednameR¬R(tzinfot targetpathR¦R¥((s'/usr/lib/python2.7/test/test_zipfile.pyttest_extract_hackers_arcnamesÊs‚        $cCs¤tjtdƒ}|jdddtjƒtrM|jdddtjƒn|jdƒ}|j|j tjƒtr |jdƒ}|j|j tjƒndS(NR!sa.txts hello worldR’sb.txt( R#R$RLR%RMtzlibRwR?R-R’(RR(RJ((s'/usr/lib/python2.7/test/test_zipfile.pyttest_writestr_compressionscCsQ|j||ƒtj|dƒ)}|jdƒ}|j|jdƒWdQXdS(NR*R"i€ii€(R)R#R$R?R-R»(RR&R'R(R¿((s'/usr/lib/python2.7/test/test_zipfile.pytzip_test_writestr_permissions)scCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRÄR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_writestr_permissions2scCsÅtjtdƒG}x=tD]5\}}|j||ƒ|j|jdk dƒqWWdQX|j|jdkdƒtjtdƒ }|j|jdk dƒWdQX|j|jdkdƒdS(s8Check that the zipfile is closed after the 'with' block.R!szipfp is not openNszipfp is not closedR*(R#R$RLRœR%R7RtNone(RR(R£R¤((s'/usr/lib/python2.7/test/test_zipfile.pyt test_close6s#cCs¡tjtdƒ.}x$tD]\}}|j||ƒqWWdQXy+tjtdƒ}tjƒ‚WdQXWn-tjk rœ|j|jdkdƒnXdS(sWCheck that the zipfile is closed if an exception is raised in the 'with' block.R!NR*szipfp is not closed( R#R$RLRœR%t BadZipfileR7RRÆ(RR(R£R¤tzipfp2((s'/usr/lib/python2.7/test/test_zipfile.pyttest_close_on_exceptionBscCsEtjtdƒtjtdƒ}|jt|jtƒWdQXdS(NiR!(ii( RžtutimeRR#R$RLR˜t ValueErrorR(RR(((s'/usr/lib/python2.7/test/test_zipfile.pyttest_add_file_before_1980OscCsttƒttƒdS(N(R RRL(R((s'/usr/lib/python2.7/test/test_zipfile.pyttearDownUs (3t__name__t __module__R R)RKRNRWRXR_R`RaRgRiRkRqRrRsRtRuRvRRÂRxRyRzR{R|R}R~R‚R„R†R‰R‹RRR•RšR§RªR­RR±RÁRÃRÄRÅRÇRÊRÍRÎ(((s'/usr/lib/python2.7/test/test_zipfile.pyR's\  :                     Q   tTestZip64InSmallFilescBszeZd„Zd„Zd„Zd„Zd„Zd„Zee dƒd„ƒZ d„Z d „Z d „Z d „ZRS( cCstj|_tj|_dt_dt_d„tdtƒDƒ}dj|ƒ|_t t dƒ}|j |jƒWdQXdS(Nièi css|]}d|VqdS(sTest of zipfile line %d.N((t.0R((s'/usr/lib/python2.7/test/test_zipfile.pys dsis R( R#t ZIP64_LIMITt_limittZIP_FILECOUNT_LIMITt_filecount_limittrangeRRRRRR(RRR((s'/usr/lib/python2.7/test/test_zipfile.pyR ^s    c Cs>tj|d|ƒ#}|jtj|jtdƒWdQXdS(NR!s another.name(R#R$R˜t LargeZipFileRR(RR&R'R(((s'/usr/lib/python2.7/test/test_zipfile.pytlarge_file_exception_testls c CsAtj|d|ƒ&}|jtj|jd|jƒWdQXdS(NR!s another.name(R#R$R˜RØR%R(RR&R'R(((s'/usr/lib/python2.7/test/test_zipfile.pytlarge_file_exception_test2qs cCsJxCttƒtƒfD],}|j|tjƒ|j|tjƒqWdS(N(RLRRRÙR#RMRÚ(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_large_file_exceptionvsc Cs9tj|d|dtƒ:}|jtdƒ|jttƒ|jd|jƒWdQXtj|d|ƒÇ}|j|jtƒ|jƒ|j|jdƒ|jƒ|j|jdƒ|jƒt ƒ}t j }z|t _ |j ƒWd|t _ X|j ƒ}|jƒ}|jt|ƒdƒ|jd|dƒ|jd |dƒ|jd |dƒ|d jƒ\}} } } |j|dƒ|jtj| d ƒƒ|jtj| d ƒƒ|j| tt|jƒƒƒ|jƒ} |jt| ƒdƒ|jt| ƒ|jd| ƒ|jd| ƒ|jƒ} g| D]}|j^qE} |jt| ƒdƒ|jt| ƒ|jd| ƒ|jd| ƒx*| D]"}|j|jt|jƒƒq§WxUtddfD]D}|j|ƒ}|j|j|ƒ|j|jt|jƒƒqÝW|jƒWdQXdS(NR!t allowZip64s another.nameR"R*is File NameiR+R,is%Y-%m-%ds%H:%M:%Si(R#R$RPRRR%RR-R.RR/R0R1R2R3R4R5R6R7R8R9R:R;R<R=R>R?R@(RR&R'R(RR0RARBRCRDRERFRGRHRRIRJ((s'/usr/lib/python2.7/test/test_zipfile.pyRK{sV           cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRKR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRN¹ss requires zlibcCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRKR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRx½scCsutjtdtjdtƒ}|jtdƒWdQXtjtdtjƒ }|j|jƒdgƒWdQXdS(NR!RÜs /absoluteR*Rƒ( R#R$RLRMRPRRR-R;(RR(((s'/usr/lib/python2.7/test/test_zipfile.pyR„Âs  cCs tjtdddtƒ}d|_d}x4t|ƒD]&}|jd|d|dd ƒq7W|jt|j ƒƒ|ƒ|j ƒtjtdd ƒ}|jt|j ƒƒ|ƒxCt|ƒD]5}|j d|ƒ}|j|d|dd ƒqÅW|j ƒdS( NR–R!RÜidisfoo%08ds%dii9R*( R#R$RRPtdebugR×R%R-R4R;tcloseR.(RtzipftnumfilesRtzipf2R¬((s'/usr/lib/python2.7/test/test_zipfile.pyttest_too_many_filesÊs $  cCsŽtjtdddtƒ}d|_d}x4t|ƒD]&}|jd|d|dd ƒq7W|jt|j ƒƒ|ƒ|j tj ƒ|jd|d ƒWdQX|jt|j ƒƒ|ƒ|j ƒtjtdd dtƒ}d|_|jt|j ƒƒ|ƒ|j tj ƒ|jd|d ƒWdQX|jt|j ƒƒ|ƒ|j ƒtjtdd dt ƒ}d|_|jt|j ƒƒ|ƒd }x7t||ƒD]&}|jd|d|dd ƒq¹W|jt|j ƒƒ|ƒ|j ƒtjtdd ƒ}|jt|j ƒƒ|ƒxCt|ƒD]5}|jd|ƒ}|j|d|dd ƒqGW|j ƒdS(NR–R!RÜidi sfoo%08ds%dii9ROR…iR*(R#R$RtFalseRÝR×R%R-R4R;R˜RØRÞRPR.(RRßRàRt numfiles2RáR¬((s'/usr/lib/python2.7/test/test_zipfile.pyttest_too_many_files_appendÜs> $    $  cCs0|jt_|jt_ttƒttƒdS(N(RÔR#RÓRÖRÕR RRL(R((s'/usr/lib/python2.7/test/test_zipfile.pyRÎs   (RÏRÐR RÙRÚRÛRKRNRRÂRxR„RâRåRÎ(((s'/usr/lib/python2.7/test/test_zipfile.pyRÑZs     >    $tPyZipFileTestscBs,eZd„Zd„Zd„Zd„ZRS(c Csptjtƒdƒ }t}|jdƒs<|jdƒrI|d }n|j|ƒtjj|ƒ}|j ||j ƒƒ|j |d|j ƒkp­|d|j ƒkƒWdQXtjtƒdƒž}t}|jd ƒrñ|d }n|j|dƒddtjj|ƒf}|j ||j ƒƒ|j |d|j ƒkpb|d|j ƒkƒWdQXdS( NR!s.pycs.pyoiÿÿÿÿtotct testpackages%s/%s(s.pycs.pyo( R#t PyZipFileRt__file__tendswithtwritepyRžRŸR®t assertNotInR;R7(RR(RCtbn((s'/usr/lib/python2.7/test/test_zipfile.pyttest_write_pyfiles$   cCsšddl}tjj|jƒ}tjtƒdƒ^}|j|ƒ|j ƒ}|j d|kpmd|kƒ|j d|kpŒd|kƒWdQXdS(NiÿÿÿÿR!semail/__init__.pyosemail/__init__.pycsemail/mime/text.pyosemail/mime/text.pyc( temailRžRŸtdirnameRëR#RêRRíR;R7(RRñt packagedirR(RG((s'/usr/lib/python2.7/test/test_zipfile.pyttest_write_python_package!s    cCs;tjtƒzttjjtdƒdƒ}|jdƒWdQXttjjtdƒdƒ}|jdƒWdQXttjjtdƒdƒ}|jdƒWdQXtjt ƒdƒ}|j tƒ|j ƒ}|j d|kpõd |kƒ|j d |kpd |kƒ|j d|ƒWdttƒXdS( Nsmod1.pyR!s print(42) smod2.pysprint(42 * 42) smod2.txts bla bla bla smod1.pycsmod1.pyosmod2.pycsmod2.pyo(RžtmkdirRLRRŸRRR#RêRRíR;R7RîR (RRR(RG((s'/usr/lib/python2.7/test/test_zipfile.pyttest_write_python_directory0s !!!  c CsjtjtƒdƒO}ttdƒ}|jdƒWdQX|jt|jtƒt j tƒWdQXdS(NR!s!most definitely not a python file( R#RêRRRRR˜R™RíRžR¢(RR(RŽ((s'/usr/lib/python2.7/test/test_zipfile.pyttest_write_non_pyfileGs (RÏRÐRðRôRöR÷(((s'/usr/lib/python2.7/test/test_zipfile.pyRæs   t OtherTestscBseZidej6dej6Zd„Zd„Zd„Zd„Z d„Z d„Z d„Z d „Z d „Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zeedƒd„ƒZd„Zd„Z eedƒd„ƒZ!d„Z"d„Z#eedƒd„ƒZ$d „Z%d!„Z&d"„Z'd#„Z(d$„Z)RS(%sxPK ‹Š;:r«ÿ afilehello,AworldPK ‹Š;:r«ÿ €afilePK3/s|PKn} =FAKEnafileËHÍÉÉW(Ï/ÊIÉ =PKn} =FAKEn€afilePK33cCs«tjtdƒD}|jddƒ|jddƒ|j|jƒdjtƒWdQXtjtdƒ;}|j|j djdƒ|j|j djdƒWdQXdS( NR!ufoo.txtsTest for unicode filenameuö.txtiR*sfoo.txti( R#R$RR%RŠR<R=tunicodeR-tfilelist(Rtzf((s'/usr/lib/python2.7/test/test_zipfile.pyttest_unicode_filenameses#cCsÏtjjtƒr"tjtƒnd}d}y/tjtdƒ}|j||ƒWdQXWntk r}|j dƒnX|j tjjtƒƒtjtdƒ }|j |j |ƒ|ƒWdQXdS(Ns testfile.txts#hello, world. this is some content.R…s1Could not append data to a non-existent zip file.R*( RžRŸtexistsRR R#R$R%tIOErrortfailR7R-R.(RR=R¬Rû((s'/usr/lib/python2.7/test/test_zipfile.pyt(test_create_non_existent_file_for_appendos cCsSttdƒ}|jdƒWdQXytjtƒ}Wntjk rNnXdS(NR!sthis is not a legal zip file (RRRR#R$RÈ(RRRû((s'/usr/lib/python2.7/test/test_zipfile.pyttest_close_erroneous_files cCsÚttdƒ}|jdƒWdQXtjtƒ}|j|ƒttdƒ$}tj|ƒ}|j| ƒWdQXtƒ}|jdƒtj|ƒ}|j| ƒ|jddƒtj|ƒ}|j| ƒdS(s;Check that is_zipfile() correctly identifies non-zip files.R!sthis is not a legal zip file NR‡i( RRRR#t is_zipfilet assertFalseR7RRˆ(RRtchk((s'/usr/lib/python2.7/test/test_zipfile.pyttest_is_zip_erroneous_files   cCs“tjƒ}tj|ddƒ}|jddƒWdQX|jƒ}xFtt|ƒƒD]2}tj|| ƒ}|jtj tj|ƒqYWdS(sCCheck that zipfiles with missing bytes at the end raise BadZipFile.R–R!sfoo.txtsO, for a Muse of Fire!N( tiotBytesIOR#R$R%R2R×R4R˜RÈ(RRRßt zipfiledatatN((s'/usr/lib/python2.7/test/test_zipfile.pyttest_damaged_zipfile¤s  cCsütjtddƒ}|jddƒWdQXtjtƒ}|j|ƒttdƒ?}tj|ƒ}|j|ƒ|jddƒ|jƒ}WdQXt ƒ}|j |ƒtj|ƒ}|j|ƒ|jddƒtj|ƒ}|j|ƒdS(s7Check that is_zipfile() correctly identifies zip files.R–R!sfoo.txtsO, for a Muse of Fire!NR‡i( R#R$RR%RR7RRˆR.RR(RRßRRt zip_contents((s'/usr/lib/python2.7/test/test_zipfile.pyttest_is_zip_valid_file²s      cCs|jttjtƒdS(N(R˜RþR#R$R(R((s'/usr/lib/python2.7/test/test_zipfile.pyt%test_non_existent_file_raises_IOErrorÈs cCssttdƒ}WdQX|jtjtjtƒttdƒ}|jdƒWdQX|jtjtjtƒdS(NR!s short file(RRR˜R#RÈR$R(RR&R((s'/usr/lib/python2.7/test/test_zipfile.pyt!test_empty_file_raises_BadZipFileÖs c CsÎtƒ}tj|ddƒ}|jddƒWdQX|jt|jdƒ|jt|jdƒ|jt|jƒ|jt|jddƒtt dƒ*}|j dƒ|jt|j t ƒWdQXdS( s?Verify that testzip() doesn't swallow inappropriate exceptions.R–R!sfoo.txtsO, for a Muse of Fire!Ns bogus.txtR—szipfile test data( RR#R$R%R˜R™R.RR@RR(RRRßRŽ((s'/usr/lib/python2.7/test/test_zipfile.pyt#test_closed_zip_raises_RuntimeErrorßs  cCs|jttjtdƒdS(s>Check that bad modes passed to ZipFile constructor are caught.tqN(R˜R™R#R$R(R((s'/usr/lib/python2.7/test/test_zipfile.pyttest_bad_constructor_modeñsc Csvtjtddƒ}|jddƒWdQXtjtddƒ-}|jdƒ|jt|jddƒWdQXdS(s7Check that bad modes passed to ZipFile.open are caught.R–R!sfoo.txtsO, for a Muse of Fire!NR*R(R#R$RR%R.R˜R™R(RRß((s'/usr/lib/python2.7/test/test_zipfile.pyttest_bad_open_modeõs  c Cstjtddƒu}|jddƒ|jdƒM}x-ttƒD]}|j|jdƒdƒqGW|j|jƒdƒWdQXWdQXdS(ssCheck that calling read(0) on a ZipExtFile object returns an empty string and doesn't advance file pointer.R–R!sfoo.txtsO, for a Muse of Fire!iRON( R#R$RR%RRRR-R.(RRßR&R((s'/usr/lib/python2.7/test/test_zipfile.pyt test_read0ÿs c Cs;tjtddƒ }|jt|jddƒWdQXdS(sqCheck that attempting to call open() for an item that doesn't exist in the archive raises a RuntimeError.R–R!sfoo.txtR*N(R#R$RR˜tKeyErrorR(RRß((s'/usr/lib/python2.7/test/test_zipfile.pyttest_open_non_existent_item scCs |jttjtddƒdS(sMCheck that bad compression methods passed to ZipFile.open are caught.R!iÿÿÿÿN(R˜R™R#R$R(R((s'/usr/lib/python2.7/test/test_zipfile.pyttest_bad_compression_modescCsDd}tjtj|ƒdƒ}|jt|jdƒWdQXdS(NsfPK.äC¡@xPK..äC¡@€xPK/!R*tx(R#R$RRR˜tNotImplementedErrorR(RRRß((s'/usr/lib/python2.7/test/test_zipfile.pyttest_unsupported_compressionscCsKtjtddƒ0}|jddƒ|j|jƒdgƒWdQXdS(sLCheck that a filename containing a null byte is properly terminated.R–R!s foo.txtqqqsO, for a Muse of Fire!sfoo.txtN(R#R$RR%R-R;(RRß((s'/usr/lib/python2.7/test/test_zipfile.pyttest_null_byte_in_filename!scCsP|jtjdƒ|jtjdƒ|jtjdƒ|jtjdƒdS(sACheck that ZIP internal structure sizes are calculated correctly.ii.i8iN(R-R#tsizeEndCentDirtsizeCentralDirtsizeEndCentDir64tsizeEndCentDir64Locator(R((s'/usr/lib/python2.7/test/test_zipfile.pyttest_struct_sizes(scCstjtddƒ*}|j|jdƒ|jddƒWdQXtjtddƒ}|j|jdƒWdQXd}tjtddƒ }||_|jddƒWdQXtjtddƒ}|j|j|ƒWdQXdjgtdƒD]}d |d d ^qóƒ}tjtddƒ }||_|jddƒWdQXtjtddƒ}|j|j|ƒWdQXtjtddƒ=}tdt fƒ|d|_WdQX|jddƒWdQXtjtddƒ}|j|j|ƒWdQXdS(s8Check that comments on the archive are handled properly.R–R!ROsfoo.txtsO, for a Muse of Fire!NR*s9Bravely taking to his feet, he beat a very brave retreat.iis%dii toopsiiÿÿ( R#R$RR-RŒR%RRR R^(RRßRŒRtcomment2((s'/usr/lib/python2.7/test/test_zipfile.pyt test_comments/s. 4 cCsltjtdtjƒ }|j|jƒd|_WdQXtjtdƒ}|j|jdƒWdQXdS(NR…sthis is a commentR*(R#R$RRMRRúRŒR-(RRß((s'/usr/lib/python2.7/test/test_zipfile.pyt$test_change_comment_in_empty_archiveSs c Cstjtdtjƒ}|jddƒWdQXtjtdtjƒ }|j|jƒd|_WdQXtjtdƒ}|j|jdƒWdQXdS(NR!sfoo.txtsO, for a Muse of Fire!R…sthis is a commentR*( R#R$RRMR%R7RúRŒR-(RRß((s'/usr/lib/python2.7/test/test_zipfile.pyt'test_change_comment_in_nonempty_archiveZscCsN|j|}tjtj|ƒddƒ}|jd|jƒƒWdQXdS(s>Tests that files with bad CRCs return their name from testzip.R–R*tafileN(tzips_with_bad_crcR#R$RRR-R@(RR'tzipdataRß((s'/usr/lib/python2.7/test/test_zipfile.pytcheck_testzip_with_bad_crccs !cCs|jtjƒdS(N(R(R#RM(R((s'/usr/lib/python2.7/test/test_zipfile.pyt test_testzip_with_bad_crc_storedkss requires zlibcCs|jtjƒdS(N(R(R#Rw(R((s'/usr/lib/python2.7/test/test_zipfile.pyt"test_testzip_with_bad_crc_deflatednscCs#|j|}tjtj|ƒddƒ }|jtj|jdƒWdQXtjtj|ƒddƒ8}|jddƒ}|jtj|jƒWdQXWdQXtjtj|ƒddƒZ}|jddƒ?}d|_ |jtjƒx|jdƒr qúWWdQXWdQXWdQXdS(sFTests that files with bad CRCs raise a BadZipfile exception when read.R–R*R%Ni( R&R#R$RRR˜RÈR.Rt MIN_READ_SIZE(RR'R'Rßt corrupt_file((s'/usr/lib/python2.7/test/test_zipfile.pytcheck_read_with_bad_crcrs !!"! cCs|jtjƒdS(N(R-R#RM(R((s'/usr/lib/python2.7/test/test_zipfile.pyttest_read_with_bad_crc_stored‡scCs|jtjƒdS(N(R-R#Rw(R((s'/usr/lib/python2.7/test/test_zipfile.pyttest_read_with_bad_crc_deflatedŠsc Cs²x«d D]£}|d}djd„t|ƒDƒƒ}tjtjƒd|ƒW}|jd |ƒ|jd d ƒ,}|j|ƒ}|j t |ƒ|ƒWdQXWdQXqWdS( Niiÿiii@ROcss*|] }tjdtddƒƒVqdS(tBiiÿN(tstructtpackR(RÒR((s'/usr/lib/python2.7/test/test_zipfile.pys “sR!RZR*(iiÿiii@( RR×R#R$RRR%RR.R-R4(RR't test_sizeR>tjunkRßRtbuf((s'/usr/lib/python2.7/test/test_zipfile.pytcheck_read_return_sizeŽs   cCs|jtjƒdS(N(R6R#RM(R((s'/usr/lib/python2.7/test/test_zipfile.pyttest_read_return_size_stored›scCs|jtjƒdS(N(R6R#Rw(R((s'/usr/lib/python2.7/test/test_zipfile.pyttest_read_return_size_deflatedžscCsÁtjtddƒ}WdQXy#tjtddƒ}|jƒWn!tjk rd|jdƒnXtjtddƒ}WdQXy#tjtddƒ}|jƒWn|jdƒnXdS(NR–R!R*s+Unable to create empty ZIP file in 'w' modeR…s+Unable to create empty ZIP file in 'a' mode(R#R$RRÞRÈRÿ(RRß((s'/usr/lib/python2.7/test/test_zipfile.pyttest_empty_zipfile¢scCs8ttdƒ}WdQX|jtjtjtdƒdS(NR!R*(RRR˜R#RÈR$(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_open_empty_fileµsc Cs|jttjddƒdS(Nt seventiesi»ii(i»iiiii(R˜RÌR#Rº(R((s'/usr/lib/python2.7/test/test_zipfile.pyttest_create_zipinfo_before_1980½s cCsAd}tjtj|ƒdƒ}|j|jƒƒWdQXdS(s>If an extra field in the header is less than 4 bytes, skip it.snPK“›­@‹žÙÓabcAPK“›­@‹žÙÓ¤abcPK3%R*N(R#R$RRt assertIsNoneR@(RR'Rß((s'/usr/lib/python2.7/test/test_zipfile.pyt#test_zipfile_with_short_extra_fieldÁscCsttƒttƒdS(N(R RRL(R((s'/usr/lib/python2.7/test/test_zipfile.pyRÎÐs (*RÏRÐR#RMRwR&RüRRRR R R RRRRRRRRRRR"R#R$R(R)RRÂR*R-R.R/R6R7R8R9R:R<R>RÎ(((s'/usr/lib/python2.7/test/test_zipfile.pyRøOsJ             $          tDecryptionTestscBsfeZdZdZdZdZddZd„Zd„Zd„Z d „Z e e d ƒd „ƒZ RS( sCheck that ZIP decryption works. Since the library does not support encryption at the moment, we use a pre-generated encrypted ZIP file.s˜PKn’i.#yï?&test.txtú gly|ú-ÅÀ=ùyà¨r³Z}Lg¼®ù|›䋺»)Œ°ÛlPKn’i.#yï?& ¶test.txtPK6Ls°PK Ï}38xuª²zeroUT Ö‹’GÚ‹’GUxèèÇsR(RRRRRRR(Rt datacountR((s'/usr/lib/python2.7/test/test_zipfile.pyR s   cCsttƒttƒdS(N(R RRL(R((s'/usr/lib/python2.7/test/test_zipfile.pyRÎs cCsBtj|d|ƒ'}|jtdƒ|jttƒWdQXdS(NR!s another.name(R#R$RR(RR&R'R(((s'/usr/lib/python2.7/test/test_zipfile.pyR)scCs|j||ƒtj|d|ƒd}|jtƒ}|jt|ƒt|jƒƒ|j||jƒ|j|jdƒ|jƒWdQXdS(NR*s another.name(R)R#R$R.RR-R4R(RR&R'R(ttestdata((s'/usr/lib/python2.7/test/test_zipfile.pyRK%s cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRKR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRN/ss requires zlibcCs:x3ttƒtjƒfD]}|j|tjƒqWdS(N(RLRRRRKR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRx3sc CsV|j||ƒtj|d|ƒ+}g}|jtƒ:}x0trr|jdƒ}|sbPn|j|ƒqCWWdQXg}|jdƒ:}x0trÃ|jdƒ}|s³Pn|j|ƒq”WWdQXdj|ƒ} |j t | ƒt |j ƒƒ|j | |j ƒdj|ƒ} |j t | ƒt |j ƒƒ|j | |j ƒWdQXdS(NR*is another.nameRO( R)R#R$RRRPR.RQRR-R4R( RR&R'R(RRRSRTRURVt testdata1t testdata2((s'/usr/lib/python2.7/test/test_zipfile.pyRW8s,  cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRWR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRXUscCs:x3ttƒtjƒfD]}|j|tjƒqWdS(N(RLRRRRWR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRyYsc CsÍ|j||ƒtj|d|ƒ¢}g}|jtƒC}x9tr{|jtddƒƒ}|skPn|j|ƒqCWWdQXdj |ƒ}|j t |ƒt |j ƒƒ|j ||j ƒWdQXdS(NR*iiRO( R)R#R$RRRPR.RRQRR-R4R(RR&R'R(RRRSRTRO((s'/usr/lib/python2.7/test/test_zipfile.pyR`^s cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRR`R#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRaoscCs:x3ttƒtjƒfD]}|j|tjƒqWdS(N(RLRRRR`R#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRzss(RÏRÐR RÎR)RKRNRRÂRxRWRXRyR`RaRz(((s'/usr/lib/python2.7/test/test_zipfile.pyRMs       s requires zlibtTestsWithMultipleOpenscBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsMtjtdtjƒ/}|jddtƒ|jddtƒWdQXdS(NR!tonesR€ttwosR (R#R$RLRwR%R(RR(((s'/usr/lib/python2.7/test/test_zipfile.pyR {scCs¦tjtddƒ‹}|jdƒc}|jdƒK}|jdƒ}|jdƒ}||jdƒ7}||jdƒ7}WdQXWdQX|j||ƒWdQXdS(NR–R*RSiô(R#R$RLRR.R-(RRßtzopen1tzopen2tdata1Rd((s'/usr/lib/python2.7/test/test_zipfile.pyttest_same_filescCs¾tjtddƒ£}|jdƒc}|jdƒK}|jdƒ}|jdƒ}||jdƒ7}||jdƒ7}WdQXWdQX|j|dtƒ|j|dtƒWdQXdS(NR–R*RSRTiôR€R (R#R$RLRR.R-R(RRßRURVRWRd((s'/usr/lib/python2.7/test/test_zipfile.pyttest_different_fileŒscCs¾tjtddƒ£}|jdƒc}|jdƒK}|jdƒ}|jdƒ}||jdƒ7}||jdƒ7}WdQXWdQX|j|dtƒ|j|dtƒWdQXdS(NR–R*RSRTiôR€R (R#R$RLRR.R-R(RRßRURVRWRd((s'/usr/lib/python2.7/test/test_zipfile.pyttest_interleaved˜sc CsŒtjtddƒC}x9tdƒD]+}|jdƒ|jdƒ}WdQXq%WWdQXttjƒ}|j|j ƒdƒWdQXdS(NR–R*idRS( R#R$RLR×R.RRžtdevnullt assertLesstfileno(RRßRRUR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_many_opens¤s cCsttƒdS(N(R RL(R((s'/usr/lib/python2.7/test/test_zipfile.pyRίs(RÏRÐR RXRYRZR^RÎ(((s'/usr/lib/python2.7/test/test_zipfile.pyRRys   tTestWithDirectorycBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCstjtƒdS(N(RžRõRL(R((s'/usr/lib/python2.7/test/test_zipfile.pyR ´scCs°tjtdƒƒ}|jtƒWdQX|jtjjtjj tdƒƒƒ|jtjjtjj tddƒƒƒ|jtjj tjj tdddƒƒƒdS(Ns zipdir.zipR…tbRè( R#R$R R¨RLR7RžRŸtisdirRRý(RRß((s'/usr/lib/python2.7/test/test_zipfile.pyttest_extract_dir·s (+cCs*tjtjjtdƒƒ|jƒdS(NR…(RžRõRŸRRLRb(R((s'/usr/lib/python2.7/test/test_zipfile.pyt test_bug_6050¾sc Csýtjjtdƒ}tj|ƒtj|ƒjd@}tjt dƒ }|j |ƒ|j d}|j |j jdƒƒ|j|j|d>dBƒ|j |dƒ|j d}|j |j d ƒ|j|j|d>dBƒWdQXtjt d ƒù}|j d}|j |j jdƒƒ|j|j|d>dBƒ|j d}|j |j d ƒ|j|j|d>dBƒtjjtd ƒ}tj|ƒ|j|ƒ|j tjjtjj|dƒƒƒ|jttj|ƒƒd ƒWdQXdS( NRiÿÿR!is/x/ityisy/R*R³i(RžRŸRRLRõtstattst_modeR#R$RRRúR7R=RìR-R»R¨RaR4tlistdir(RtdirpathR–RßR¿R³((s'/usr/lib/python2.7/test/test_zipfile.pyttest_write_dirÃs0    !    (c CsEtjtjjtdƒƒtjtdƒJ}|jddƒ|j d}|j |j dƒ|j |j d ƒWdQXtjtdƒ³}|j d}|j |j jdƒƒ|j |j d ƒtjjtd ƒ}tj|ƒ|j|ƒ|j tjjtjj|dƒƒƒ|j tj|ƒdgƒWdQXdS(NRR!sx/ROiiýAiR*R³iýAiýAiýAiýA(RžRõRŸRRLR#R$RR%RúR-R=R»R7RìR¨RaRg(RRßR¿R³((s'/usr/lib/python2.7/test/test_zipfile.pyttest_writestr_dirÝs    (cCs-ttƒtjjtƒr)ttƒndS(N(R RLRžRŸRýRR (R((s'/usr/lib/python2.7/test/test_zipfile.pyRÎîs (RÏRÐR RbRcRiRjRÎ(((s'/usr/lib/python2.7/test/test_zipfile.pyR_³s      tUniversalNewlineTestscBsõeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z eed ƒd „ƒZeed ƒd„ƒZeed ƒd„ƒZeed ƒd„ƒZeed ƒd„ƒZd„ZRS(cCsÍgttƒD]}d|^q |_d|_ii|_|_x„t|jƒD]s\}}|j|jƒ||j|}x4t|j|ƒD] \}}|j||dƒqiWWdQXq5WWdQXdS(NR*Rbs ( R)R#R$RnRsRRmRR-( RR&R'R(R·RCRŽRfRp((s'/usr/lib/python2.7/test/test_zipfile.pytiterlines_test=s cCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRtR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_read_storedGscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRuR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRsKscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRvR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRtPscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRwR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRuTscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRxR#RM(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyRvXss requires zlibcCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRtR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyttest_read_deflated\scCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRuR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyR{ascCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRvR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyR|gscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRwR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyR}lscCs7x0ttƒtƒfD]}|j|tjƒqWdS(N(RLRRRxR#Rw(RR&((s'/usr/lib/python2.7/test/test_zipfile.pyR~qscCsEx*|jjƒD]\}}tj|ƒqWttƒttƒdS(N(RnRsRžR¢R RRL(RR·RC((s'/usr/lib/python2.7/test/test_zipfile.pyRÎvs (RÏRÐR R)RtRuRvRwRxRyRsRtRuRvRRÂRzR{R|R}R~RÎ(((s'/usr/lib/python2.7/test/test_zipfile.pyRkôs$       c Cs&tttttttttt ƒ dS(N( RRRÑRøRæR?RRR_RkRM(((s'/usr/lib/python2.7/test/test_zipfile.pyt test_main}s  t__main__(,RÂt ImportErrorRÆRžRR/R8R1R#tunittestRttempfileRRRRttest.test_supportRRRRR R R R R¹t UnicodeErrort TypeErrorRLt TESTFNDIRRRœtTestCaseRRÑRæRøR?RMRRR_RkR{RÏ(((s'/usr/lib/python2.7/test/test_zipfile.pytsT         :      ÿÿ5­Hÿ‡<h9A‰