a zeʓ@sJddlmZddlmZmZddlZddlZddlmZm Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlmZddlZddlZedZddlmZmZmZdadd ZGd d d ejZGd d d eZGdddeZ GdddeZ!GdddeZ"GdddeZ#ddZ$e%dkrFe&dS))support) bigmemtest_4GN)BytesIODEFAULT_BUFFER_SIZE)unlinkbz2)BZ2File BZ2CompressorBZ2DecompressorcCs8tdurttdatr*tjdg|dSt|SdS)NZbunzip2)input)has_cmdline_bunzip2boolshutilwhich subprocess check_outputr decompress)datarA/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_bz2.pyext_decompresss rc @seZdZdZgdZdeZdZdZdZ dZ e dZ e eje ejed D]TZeed *Ze eee e d 7Z Wd n1s0Ye dkrXqqXeje d d ZddZddZd S)BaseTestzBase for other testcases.)s root:x:0:0:root:/root:/bin/bash sbin:x:1:1:bin:/bin: sdaemon:x:2:2:daemon:/sbin: sadm:x:3:4:adm:/var/adm: slp:x:4:7:lp:/var/spool/lpd: s sync:x:5:0:sync:/sbin:/bin/sync s-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown s!halt:x:7:0:halt:/sbin:/sbin/halt s"mail:x:8:12:mail:/var/spool/mail: s"news:x:9:13:news:/var/spool/news: s#uucp:x:10:14:uucp:/var/spool/uucp: s operator:x:11:0:operator:/root: s!games:x:12:100:games:/usr/games: s,gopher:x:13:30:gopher:/usr/lib/gopher-data: s(ftp:x:14:50:FTP User:/var/ftp:/bin/bash s#nobody:x:65534:65534:Nobody:/home: s.postfix:x:100:101:postfix:/var/spool/postfix: s-niemeyer:x:500:500::/home/niemeyer:/bin/bash s>postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash s6mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash s#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`sBZh9rE8Psthis is not a valid bzip2 fileriz*.pyrbN compresslevelcCst\}|_t|dSN)tempfilemkstempfilenameosclose)selffdrrrsetUpPszBaseTest.setUpcCst|jdSr)rr!r$rrrtearDownTszBaseTest.tearDown)__name__ __module__ __qualname____doc__ TEXT_LINESjoinTEXTDATA EMPTY_DATABAD_DATAZ test_size bytearrayBIG_TEXTglobr"pathescapedirname__file__ZfnameopenZfhreadinto memoryviewrcompressBIG_DATAr&r(rrrrr$s  & 8rc@seZdZdZd}ddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,dVdWZ-dXdYZ.dZd[Z/d\d]Z0d^d_Z1d`daZ2dbdcZ3dddeZ4dfdgZ5dhdiZ6djdkZ7dldmZ8dndoZ9dpdqZ:drdsZ;dtduZdzd{Z?d|S)~ BZ2FileTestzTest the BZ2File class.rrcCsJt|jd*}||j|||Wdn1s<0YdS)Nwb)r:r!writer0)r$streamssuffixfrrrcreateTempFile[szBZ2FileTest.createTempFilecCs|ttd|tttjd|tttjd|tttjd|jtttjdd|jtttjdd|tttjdd dS) Ngw/^@zrxZrbtrr r) assertRaises TypeErrorr ValueErrorr"devnullr'rrr testBadArgs`szBZ2FileTest.testBadArgscCsZ|t|j4}|t|jt|||jWdn1sL0YdSr rEr r!rKrLreadfloat assertEqualr/r$bz2frrrtestReadks zBZ2FileTest.testReadcCsL|jd|jdt|j}|t|jWdn1s>0YdS)NrrBrC)rEr2r r!rKOSErrorrQrTrrrtestReadBadFileqs zBZ2FileTest.testReadBadFilecCsb|jddt|j8}|t|jt|||jdWdn1sT0YdSNrBrPrTrrrtestReadMultiStreamvs  zBZ2FileTest.testReadMultiStreamcCstj}t|jt_zh|jddt|j8}|t|j t | | |j dWdn1sh0YW|t_n|t_0dSrZ) _compression BUFFER_SIZElenr0rEr r!rKrLrQrRrSr/)r$Z buffer_sizerUrrrtestReadMonkeyMultiStream|s   6z%BZ2FileTest.testReadMonkeyMultiStreamcCsN|j|jdt|j"}|||jWdn1s@0YdS)N)rCrEr2r r!rSrQr/rTrrrtestReadTrailingJunks z BZ2FileTest.testReadTrailingJunkcCsT|jd|jdt|j&}|||jdWdn1sF0YdS)Nr[rWrbrTrrrtestReadMultiStreamTrailingJunks z+BZ2FileTest.testReadMultiStreamTrailingJunkcCsZ|t|j4}|t|jt||ddWdn1sL0YdS)Nrr)rEr r!rKrLrQrRrSrTrrr testRead0s zBZ2FileTest.testRead0cCsb|t|j<}d}|d}|s(q2||7}q|||jWdn1sT0YdS)NrrHrEr r!rQrSr/r$rUtextstrrrrtestReadChunk10s   zBZ2FileTest.testReadChunk10cCsj|jddt|j@}d}|d}|s,q6||7}q|||jdWdn1s\0YdS)Nr[r\rrHrfrgrrrtestReadChunk10MultiStreams    z&BZ2FileTest.testReadChunk10MultiStreamcCsR|t|j,}||d|jddWdn1sD0YdS)Nd)rEr r!rSrQr/rTrrr testRead100s zBZ2FileTest.testRead100cCsr|t|jL}|}|t|d||j|| | |jWdn1sd0YdSNr) rEr r!peekassertNotEqualr` assertTruer/ startswithrSrQ)r$rUpdatarrrtestPeeks  zBZ2FileTest.testPeekcCs|t|j}d}t|}|||||||jd|t|j|}tt|j}||||||d||j| dWdn1s0YdS)N)rEr r!r3rSr;r/r`)r$rUnbrrr testReadIntos zBZ2FileTest.testReadIntocCsb|t|j<}|t|jd|jD]}|||q*Wdn1sT0YdSrrEr r!rKrLreadliner-rSr$rUlinerrr testReadLines   zBZ2FileTest.testReadLinecCsj|jddt|j@}|t|jd|jdD]}|||q2Wdn1s\0YdSrZryr{rrrtestReadLineMultiStreams   z#BZ2FileTest.testReadLineMultiStreamcCsX|t|j2}|t|jd|||jWdn1sJ0YdSrrEr r!rKrL readlinesrSr-rTrrr testReadLiness zBZ2FileTest.testReadLinescCs`|jddt|j6}|t|jd|||jdWdn1sR0YdSrZrrTrrrtestReadLinesMultiStreams  z$BZ2FileTest.testReadLinesMultiStreamcCsL|t|j&}|tt||jWdn1s>0YdSrrEr r!rSlistiterr-rTrrr testIterators zBZ2FileTest.testIteratorcCsT|jddt|j*}|tt||jdWdn1sF0YdSrZrrTrrrtestIteratorMultiStreams  z#BZ2FileTest.testIteratorMultiStreamcCs:|t|j}||tt||t|jdSr)rEr r!r#rKrMnextrrTrrrtestClosedIteratorDeadlocks  z&BZ2FileTest.testClosedIteratorDeadlockcCst|jd*}|t|j||jWdn1s<0Yt|jd&}|t| |jWdn1s~0YdS)Nwr r r!rKrLrAr/r:rSrrQr$rUrDrrr testWrites *zBZ2FileTest.testWritecCst|jdH}d}|j|d|dd}|s2qF|||d7}qWdn1sZ0Yt|jd&}|t||jWdn1s0YdS)NrrrHrr)r r!r/rAr:rSrrQ)r$rUrvrirDrrrtestWriteChunks10s (zBZ2FileTest.testWriteChunks10cCstj|jdd}t|jddd}||jWdn1sB0Yt|jd }|||Wdn1s~0YdS)Nr[rrr) rr=r/r r!rAr:rSrQ)r$ZexpectedrUrDrrr testWriteNonDefaultCompressLevels *z,BZ2FileTest.testWriteNonDefaultCompressLevelcCst|jd*}|t|j||jWdn1s<0Y|t|jdgt|jd&}|t | |j Wdn1s0YdS)Nrar) r r!rKrL writelinesr-rMr:rSrrQr/rrrrtestWriteLiness *zBZ2FileTest.testWriteLinescCst|jd}|dWdn1s,0Yt|jd2}|t|jd|t|jdgWdn1sz0YdS)NrsabcrIa)r r!rArKrXrrTrrrtestWriteMethodsOnReadOnlyFiles (z*BZ2FileTest.testWriteMethodsOnReadOnlyFilecCst|jd*}|t|j||jWdn1s<0Yt|jd*}|t|j||jWdn1s0Yt|jd*}|t| |jdWdn1s0YdS)Nrrrrrrrr testAppend!s**zBZ2FileTest.testAppendcCsh|t|jB}|t|j|d|||jddWdn1sZ0YdSN) rEr r!rKrLseekrSrQr/rTrrrtestSeekForward+s   zBZ2FileTest.testSeekForwardcCsv|jddt|jL}|t|j|t|jd|| |jddWdn1sh0YdS)Nrr\r) rEr r!rKrLrr`r/rSrQrTrrrtestSeekForwardAcrossStreams2s   z(BZ2FileTest.testSeekForwardAcrossStreamscCsf|t|j@}|d|dd|||jddWdn1sX0YdSNijri^)rEr r!rQrrSr/rTrrrtestSeekBackwards9s    zBZ2FileTest.testSeekBackwardscCs|jddt|jf}t|jd}|dkrB|t||8}q&|dd|||jdd|jWdn1s0YdS)Nrr\rlrrri)rEr r!r`r/rQrrS)r$rUZreadtorrrtestSeekBackwardsAcrossStreams@s   z*BZ2FileTest.testSeekBackwardsAcrossStreamscCsf|t|j@}|dd|||jt|jddWdn1sX0YdS)Nrrr)rEr r!rrSrQr/r`rTrrrtestSeekBackwardsFromEndIs  z$BZ2FileTest.testSeekBackwardsFromEndcCsd|jddt|j:}|dd|||jdddWdn1sV0YdS)Nrr\i)rEr r!rrSrQr/rTrrr%testSeekBackwardsFromEndAcrossStreamsOs   z1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsf|t|j@}|d||t|j||dWdn1sX0YdSNIr rEr r!rrStellr`r/rQrTrrrtestSeekPostEndUs   zBZ2FileTest.testSeekPostEndcCsn|jddt|jD}|d||t|jd||dWdn1s`0YdSNr[r\rrrrTrrrtestSeekPostEndMultiStream\s    z&BZ2FileTest.testSeekPostEndMultiStreamcCsp|t|jJ}|d|d||t|j||dWdn1sb0YdSrrrTrrrtestSeekPostEndTwicecs    z BZ2FileTest.testSeekPostEndTwicecCsx|jddt|jN}|d|d||t|jd||dWdn1sj0YdSrrrTrrrtestSeekPostEndTwiceMultiStreamks     z+BZ2FileTest.testSeekPostEndTwiceMultiStreamcCsb|t|j<}|d||d|||jWdn1sT0YdS)NrrrEr r!rrSrrQr/rTrrrtestSeekPreStartss   zBZ2FileTest.testSeekPreStartcCsj|jddt|j@}|d||d|||jdWdn1s\0YdS)Nrr\rrrrTrrrtestSeekPreStartMultiStreamzs    z'BZ2FileTest.testSeekPreStartMultiStreamc Csz|t|jdD}t|}z |||W|n |0Wdn1s^0Y|t|jdS)Nr) rEr:r!r rSfilenor#rKrM)r$ZrawfrUrrr testFilenos2zBZ2FileTest.testFilenocCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jt|j}dd|_t|}z| |W|n |0|t|jdS)NrcSsdS)NFrrrrrrz*BZ2FileTest.testSeekable..) r rr0rqseekablerQr#rKrM assertFalse)r$rUsrcrrr testSeekables&   zBZ2FileTest.testSeekablecCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jdSNr) r rr0rqreadablerQr#rKrMrrTrrr testReadables zBZ2FileTest.testReadablecCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jdSr) r rr0rwritablerQr#rKrMrqrTrrr testWritables zBZ2FileTest.testWritablecCs&|tdD]}t|j}~qdS)Ni')rEranger r!)r$iorrr testOpenDels  zBZ2FileTest.testOpenDelcCs|ttddS)Nz /non/existent)rKrXr r'rrrtestOpenNonexistentszBZ2FileTest.testOpenNonexistentcCsd}t|jd}||Wdn1s00Yt|j}|}Wdn1sb0Y||dgt|j}t|}Wdn1s0Y||dgdS)Ns,BZh91AY&SYb] !h3M<]BCe%tr@sTest)r:r!rAr rrSr)r$rrDrUlinesZxlinesrrrtestReadlinesNoNewlines( & *z"BZ2FileTest.testReadlinesNoNewlinecCsd}t|jd}|dWdn1s00Yt|jd}|z(|Wdn1sj0YWntyYn 0|dz8t|jd}ddWdn1s0YWntyYn 0|ddS)Nr@sxxxrz4__enter__ on a closed file didn't raise an exceptionrrz1/0 didn't raise an exception)r r!rAr#rMZfailZeroDivisionErrorr$rDrrrtestContextProtocols"( "  * zBZ2FileTest.testContextProtocolc sddd}t|jd^fddfddt|D}t|Wdn1s^0YWdn1s|0YdS) N1irHr@cstdD]}qdSNr[)rrA)r)rrDrrcomps z'BZ2FileTest.testThreading..compcsg|]}tjdqS))target) threadingThread).0r)rrr rz-BZ2FileTest.testThreading..)r r!rrZ start_threads)r$Znthreadsthreadsr)rrrDr testThreadings zBZ2FileTest.testThreadingcCs>|t|jd}|d}t|jR}|||t||jd|d|||j|dWdn1s0Yt|jD}| |t||jd|| |jdWdn1s0Yt|j6}| | t t||| gWdn1s00YdS)Nrrr) rEr`r-r r!rQrSrr/rzrrK StopIteration)r$ZlinelenZhalflenrUrrrtestMixedIterationAndReadss  8 4 z&BZ2FileTest.testMixedIterationAndReadscCsd}d}t|jd}||Wdn1s40Yt|jd}||Wdn1sj0Yt|j$}||||Wdn1s0YdS)Ns foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrr)r r!rArSrQ)r$Zdata1Zdata2rUrrrtestMultiStreamOrderings(( z#BZ2FileTest.testMultiStreamOrderingcCs|j}z|d}Wnty0|dYn0t|d}||jWdn1s^0Yt|d"}|||jWdn1s0Yt|d"}|||jWdn1s0YdS)Nasciiz%Temporary file name needs to be ASCIIr@r) r!encodeUnicodeEncodeErrorZskipTestr rAr0rSrQ)r$Z str_filenameZbytes_filenamerDrrrtestOpenBytesFilenames  * 0 z!BZ2FileTest.testOpenBytesFilenamecCst|j}t|d}||jWdn1s80Yt|d"}|||jWdn1st0YdS)Nr@r)pathlibPathr!r rAr0rSrQ)r$r!rDrrrtestOpenPathLikeFilename's   * z$BZ2FileTest.testOpenPathLikeFilenamecCshtjdtddd}|t|tjtt|}| | dddt }| |j j|ddS)z-Decompressed data buffering should be limitedg>A rrz)Excessive amount of data was decompressedN)rr=intZ assertLessr`r^r_r rrSrQrassertLessEqual_bufferrawr)r$ZbombdecompZ max_decomprrrtestDecompressLimited.s z!BZ2FileTest.testDecompressLimitedc Cst|jh}t|4}|t|jt|||jWdn1sN0Y| |j Wdn1sx0YdSr) rr0r rKrLrQrRrSr/rclosedr$biorUrrrtestReadBytesIO<s   0zBZ2FileTest.testReadBytesIOc Cst|jt}t|L}|}|t|d||j|| | |jWdn1sf0YWdn1s0YdSrn) rr0r rorpr`rqr/rrrSrQ)r$rrUrsrrrtestPeekBytesIOCs   zBZ2FileTest.testPeekBytesIOc Cstv}t|d*}|t|j||jWdn1sB0Y|t||j| |j Wdn1s0YdSr) rr rKrLrAr/rSrgetvaluerrrrrrtestWriteBytesIOKs  *zBZ2FileTest.testWriteBytesIOc Cst|jj}t|B}|t|j|d|||jddWdn1s\0YWdn1sz0YdSr) rr0r rKrLrrSrQr/rrrrtestSeekForwardBytesIOSs    z"BZ2FileTest.testSeekForwardBytesIOc Cst|jh}t|@}|d|dd|||jddWdn1sZ0YWdn1sx0YdSr)rr0r rQrrSr/rrrrtestSeekBackwardsBytesIOZs     z$BZ2FileTest.testSeekBackwardsBytesIOc Cs|jdd}tt|}|t|jWdn1s>0Ytt|:}||t|j|j|t|jdWdn1s0Yt dD]H}tt|d| }|t|jdWdq1s0YqdS)Nr) r0r rrKEOFErrorrQrSr`r/r)r$Z truncatedrDrrrrtest_read_truncatedas,. zBZ2FileTest.test_read_truncatedcCsptdgd}t||j}ttd2}|||||||Wdn1sb0YdS)NQ)rrrJr[r)arrayr`itemsizer rrSrAr)r$qZLENGTHrDrrrtest_issue44439ns zBZ2FileTest.test_issue44439N)rr)@r)r*r+r,rErOrVrYr]rarcrdrerjrkrmrtrxr}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr?Xsz                r?c@sJeZdZddZddZddZejee ddd d d Z d d Z dS)BZ2CompressorTestcCsBt}|t|j||j}||7}|t||jdSr)r rKrLr=r/flushrSrr$bz2crrrr testCompressxs   zBZ2CompressorTest.testCompresscCs.t}|d}||7}|||jdSNr)r r=rrSr1rrrrtestCompressEmptyStrings  z)BZ2CompressorTest.testCompressEmptyStringcCsht}d}d}|j|d|dd}|s.qF|||7}|d7}q||7}|t||jdS)NrrrHr)r r/r=rrSr)r$rrvrrirrrtestCompressChunks10s  z&BZ2CompressorTest.testCompressChunks10rlrsizeZmemusecCsxt}d|}z||}||7}Wd}nd}0t|}z.|t|||t|ddWd}nd}0dS)Nxr)r r=rrrrSr`strip)r$rrr compressedrrrtestCompress4Gs   z BZ2CompressorTest.testCompress4Gc CsPttjdD]<}|ttt|Wdq1s@0YqdSNr)rpickleHIGHEST_PROTOCOLrKrLdumpsr r$protorrr testPickles zBZ2CompressorTest.testPickleN) r)r*r+rrrrskip_if_pgo_taskrrrrrrrrrws  rc@seZdZddZddZddZddZd d Zej e e d d d ddZ ddZ ddZddZddZddZddZejddZdS)BZ2DecompressorTestcCs|ttddS)N*)rKrLr r'rrrtest_Constructorsz$BZ2DecompressorTest.test_ConstructorcCs2t}|t|j||j}|||jdSr)r rKrLrr0rSr/r$bz2drhrrrtestDecompresss z"BZ2DecompressorTest.testDecompresscCsXt}d}d}|j|d|dd}|s.qF|||7}|d7}q|||jdS)NrrrHr)r r0rrSr/)r$r rhrvrirrrtestDecompressChunks10s z*BZ2DecompressorTest.testDecompressChunks10cCs:t}d}||j|}|||j||j|dS)Nsthis is unused data)r rr0rSr/ unused_data)r$r rrhrrrtestDecompressUnusedDatas z,BZ2DecompressorTest.testDecompressUnusedDatacCs6t}||j}|t|jd|t|jddS)Nsanythingr)r rr0rKrr rrr testEOFErrors z BZ2DecompressorTest.testEOFErrorrlgffffff @rcCsjd}t|}zH|||d}t|}t}||}|||kWd}d}d}nd}d}d}0dS)Nir)random randbytesrr=r rrq)r$r blocksizeblockrrr Z decompressedrrrtestDecompress4Gs   z$BZ2DecompressorTest.testDecompress4Gc CsPttjdD]<}|ttt|Wdq1s@0YqdSr)rrrrKrLrr rrrrrs zBZ2DecompressorTest.testPicklecCst}d}g}t|jd}||j|jd||d||j|t|d|||jd|d||j|t|d|||j|j|d|d|t|d||j s||jd|d|t|d|qd |}|||j ||j ddS)Nrl@ max_lengthr) r r`r>appendrr needs_inputrSreofr.r4r)r$bzdroutZlen_rrrtestDecompressorChunksMaxsizes,   z1BZ2DecompressorTest.testDecompressorChunksMaxsizecCst}g}||j|jddddd||dd|||jddd|||jdd|d||jdS)Nrlrrrrir rSrr0rr.r/r$rr rrrtest_decompressor_inputbuf_1sz0BZ2DecompressorTest.test_decompressor_inputbuf_1cCst}g}||j|jddddd||d|||jddd|||jddd|||jdd|d||jdS)Nrrrir,r$r%rrrtest_decompressor_inputbuf_2sz0BZ2DecompressorTest.test_decompressor_inputbuf_2cCstt}g}|||jddd|||jddd|||jdd|d||jdS)Nr'r[r(r)r rrr0rSr.r/r%rrrtest_decompressor_inputbuf_3-s z0BZ2DecompressorTest.test_decompressor_inputbuf_3cCs6t}|t|j|jd|t|j|jddS)N)r rK Exceptionrr2)r$rrrr test_failure=sz BZ2DecompressorTest.test_failurecCsHttd}t}|}tdD] }|q |j||ddddS)NgettotalrefcountrlrrH)Zdelta)rZ get_attributesysr r__init__ZassertAlmostEqual)r$r.rZ refs_beforerrrrtest_refleaks_in___init__Cs    z-BZ2DecompressorTest.test_refleaks_in___init__N)r)r*r+r rrrrrrrrrrr!r&r)r*r-Z refcount_testr1rrrrr s   r c@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)CompressDecompressTestcCs"t|j}|t||jdSr)rr=r/rSr)r$rrrrrNs z#CompressDecompressTest.testCompresscCstd}|||jdSr)rr=rSr1r$rhrrrrRs z.CompressDecompressTest.testCompressEmptyStringcCst|j}|||jdSrrrr0rSr/r3rrrrVs z%CompressDecompressTest.testDecompresscCstd}||ddSr)rrrSr3rrrtestDecompressEmptyZs z*CompressDecompressTest.testDecompressEmptycCst|j}||ddSr)rrr1rSr3rrrtestDecompressToEmptyString^s z2CompressDecompressTest.testDecompressToEmptyStringcCs|ttj|jdddS)Nr)rKrMrrr0r'rrrtestDecompressIncompletebsz/CompressDecompressTest.testDecompressIncompletecCs|ttj|jdSr)rKrXrrr2r'rrrtestDecompressBadDataesz,CompressDecompressTest.testDecompressBadDatacCs&t|jd}|||jddSrr4r3rrrtestDecompressMultiStreamhsz0CompressDecompressTest.testDecompressMultiStreamcCs$t|j|j}|||jdSrrrr0r2rSr/r3rrrtestDecompressTrailingJunklsz1CompressDecompressTest.testDecompressTrailingJunkcCs,t|jd|j}|||jddSrr:r3rrr%testDecompressMultiStreamTrailingJunkpsz||j|}Wdn1sp0YWdq1s0YqdS)N)rGr@rK)rr!r:rKFileExistsError)r$rDrDrrr test_x_modes  zOpenTest.test_x_modecCs|t|jd"}|||jWdn1s:0Y|t|jd"}|||jWdn1s~0Y|jd}|t|jd }|||Wdn1s0YdS)NrIrrrL)r:rr0rSrQr/rM)r$rDrhrrr test_fileobjs00 zOpenTest.test_fileobjcCst|t|j|jd|t|j|jd|jt|j|jddd|jt|j|jddd|jt|j|jddd dS) NZwbtZxbtrzutf-8encodingignore)errorsrInewline)rKrMr:r!r'rrrtest_bad_paramss     zOpenTest.test_bad_paramscCs|jd}|dtj}|j|jddd}||Wdn1sL0Yt|jd.}t| d}| ||Wdn1s0Y|j|jddd }| | |Wdn1s0YdS)NrrIrJz utf-16-lerUrrL) r/rMrNr"rOr:r!rArrQrS)r$rhrPrDrErrr test_encodings (*zOpenTest.test_encodingcCs||jd}|dWdn1s.0Y|j|jdddd }||dWdn1sr0YdS)Nr@sfoobarrLrrW)rVrXZfoobar)r:r!rArSrQrrrrtest_encoding_error_handlers (z$OpenTest.test_encoding_error_handlercCs|jd}|j|jddd}||Wdn1s>0Y|j|jddd"}|||gWdn1s0YdS)NrrJrIrYrL )r/rMr:r!rArSr)r$rhrDrrr test_newlines  (zOpenTest.test_newlineN)r)r*r+r,r:rFrHrQrSrTr[r\r]r_rrrrr=us    r=cCs tdSr)r reap_childrenrrrrtearDownModulesra__main__)'testrZ test.supportrrrZunittestiorrr"rr5rrrrrrrr^r/ import_modulerr r r r rZTestCaserr?rr r2r=rar)mainrrrrsD    4#3$(x