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 @seZdZgdZdeZdZdZdZdZ e dZ e e je e jedD]TZeed *Ze eee e d 7Z Wd n1s0Ye dkrTqqTeje d d Zd dZddZd S)BaseTest)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__ TEXT_LINESjoinTEXTDATA EMPTY_DATABAD_DATAZ test_size bytearrayBIG_TEXTglobr"pathescapedirname__file__ZfnameopenZfhreadinto memoryviewrcompressBIG_DATAr&r(rrrrr$s & 8rc@seZdZd|ddZddZddZd d Zd d Zd dZddZ ddZ ddZ ddZ ddZ ddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Zd=d>Z d?d@Z!dAdBZ"dCdDZ#dEdFZ$dGdHZ%dIdJZ&dKdLZ'dMdNZ(dOdPZ)dQdRZ*dSdTZ+dUdVZ,dWdXZ-dYdZZ.d[d\Z/d]d^Z0d_d`Z1dadbZ2dcddZ3dedfZ4dgdhZ5didjZ6dkdlZ7dmdnZ8dodpZ9dqdrZ:dsdtZ;dudvZd{S)} BZ2FileTestrrcCsJt|jd*}||j|||Wdn1s<0YdS)Nwb)r9r!writer/)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 rDr r!rJrKreadfloat assertEqualr.r$bz2frrrtestReadks zBZ2FileTest.testReadcCsL|jd|jdt|j}|t|jWdn1s>0YdS)NrrArB)rDr1r r!rJOSErrorrPrSrrrtestReadBadFileqs zBZ2FileTest.testReadBadFilecCsb|jddt|j8}|t|jt|||jdWdn1sT0YdSNrArOrSrrrtestReadMultiStreamvs  zBZ2FileTest.testReadMultiStreamcCstj}t|jt_zh|jddt|j8}|t|j t | | |j dWdn1sh0YW|t_n|t_0dSrY) _compression BUFFER_SIZElenr/rDr r!rJrKrPrQrRr.)r$Z buffer_sizerTrrrtestReadMonkeyMultiStream|s   6z%BZ2FileTest.testReadMonkeyMultiStreamcCsN|j|jdt|j"}|||jWdn1s@0YdS)N)rBrDr1r r!rRrPr.rSrrrtestReadTrailingJunks z BZ2FileTest.testReadTrailingJunkcCsT|jd|jdt|j&}|||jdWdn1sF0YdS)NrZrVrarSrrrtestReadMultiStreamTrailingJunks z+BZ2FileTest.testReadMultiStreamTrailingJunkcCsZ|t|j4}|t|jt||ddWdn1sL0YdS)Nrr)rDr r!rJrKrPrQrRrSrrr testRead0s zBZ2FileTest.testRead0cCsb|t|j<}d}|d}|s(q2||7}q|||jWdn1sT0YdS)NrrGrDr r!rPrRr.r$rTtextstrrrrtestReadChunk10s   zBZ2FileTest.testReadChunk10cCsj|jddt|j@}d}|d}|s,q6||7}q|||jdWdn1s\0YdS)NrZr[rrGrerfrrrtestReadChunk10MultiStreams    z&BZ2FileTest.testReadChunk10MultiStreamcCsR|t|j,}||d|jddWdn1sD0YdS)Nd)rDr r!rRrPr.rSrrr testRead100s zBZ2FileTest.testRead100cCsr|t|jL}|}|t|d||j|| | |jWdn1sd0YdSNr) rDr r!peekassertNotEqualr_ assertTruer. startswithrRrP)r$rTpdatarrrtestPeeks  zBZ2FileTest.testPeekcCs|t|j}d}t|}|||||||jd|t|j|}tt|j}||||||d||j| dWdn1s0YdS)N)rDr r!r2rRr:r.r_)r$rTnbrrr testReadIntos zBZ2FileTest.testReadIntocCsb|t|j<}|t|jd|jD]}|||q*Wdn1sT0YdSrrDr r!rJrKreadliner,rRr$rTlinerrr testReadLines   zBZ2FileTest.testReadLinecCsj|jddt|j@}|t|jd|jdD]}|||q2Wdn1s\0YdSrYrxrzrrrtestReadLineMultiStreams   z#BZ2FileTest.testReadLineMultiStreamcCsX|t|j2}|t|jd|||jWdn1sJ0YdSrrDr r!rJrK readlinesrRr,rSrrr testReadLiness zBZ2FileTest.testReadLinescCs`|jddt|j6}|t|jd|||jdWdn1sR0YdSrYr~rSrrrtestReadLinesMultiStreams  z$BZ2FileTest.testReadLinesMultiStreamcCsL|t|j&}|tt||jWdn1s>0YdSrrDr r!rRlistiterr,rSrrr testIterators zBZ2FileTest.testIteratorcCsT|jddt|j*}|tt||jdWdn1sF0YdSrYrrSrrrtestIteratorMultiStreams  z#BZ2FileTest.testIteratorMultiStreamcCs:|t|j}||tt||t|jdSr)rDr r!r#rJrLnextrrSrrrtestClosedIteratorDeadlocks  z&BZ2FileTest.testClosedIteratorDeadlockcCst|jd*}|t|j||jWdn1s<0Yt|jd&}|t| |jWdn1s~0YdS)Nwr r r!rJrKr@r.r9rRrrPr$rTrCrrr testWrites *zBZ2FileTest.testWritecCst|jdH}d}|j|d|dd}|s2qF|||d7}qWdn1sZ0Yt|jd&}|t||jWdn1s0YdS)NrrrGrr)r r!r.r@r9rRrrP)r$rTrurhrCrrrtestWriteChunks10s (zBZ2FileTest.testWriteChunks10cCstj|jdd}t|jddd}||jWdn1sB0Yt|jd }|||Wdn1s~0YdS)NrZrrr) rr<r.r r!r@r9rRrP)r$ZexpectedrTrCrrr testWriteNonDefaultCompressLevels *z,BZ2FileTest.testWriteNonDefaultCompressLevelcCst|jd*}|t|j||jWdn1s<0Y|t|jdgt|jd&}|t | |j Wdn1s0YdS)Nrar) r r!rJrK writelinesr,rLr9rRrrPr.rrrrtestWriteLiness *zBZ2FileTest.testWriteLinescCst|jd}|dWdn1s,0Yt|jd2}|t|jd|t|jdgWdn1sz0YdS)NrsabcrHa)r r!r@rJrWrrSrrrtestWriteMethodsOnReadOnlyFiles (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) rDr r!rJrKseekrRrPr.rSrrrtestSeekForward+s   zBZ2FileTest.testSeekForwardcCsv|jddt|jL}|t|j|t|jd|| |jddWdn1sh0YdS)Nrr[r) rDr r!rJrKrr_r.rRrPrSrrrtestSeekForwardAcrossStreams2s   z(BZ2FileTest.testSeekForwardAcrossStreamscCsf|t|j@}|d|dd|||jddWdn1sX0YdSNijri^)rDr r!rPrrRr.rSrrrtestSeekBackwards9s    zBZ2FileTest.testSeekBackwardscCs|jddt|jf}t|jd}|dkrB|t||8}q&|dd|||jdd|jWdn1s0YdS)Nrr[rkrrri)rDr r!r_r.rPrrR)r$rTZreadtorrrtestSeekBackwardsAcrossStreams@s   z*BZ2FileTest.testSeekBackwardsAcrossStreamscCsf|t|j@}|dd|||jt|jddWdn1sX0YdS)Nrrr)rDr r!rrRrPr.r_rSrrrtestSeekBackwardsFromEndIs  z$BZ2FileTest.testSeekBackwardsFromEndcCsd|jddt|j:}|dd|||jdddWdn1sV0YdS)Nrr[i)rDr r!rrRrPr.rSrrr%testSeekBackwardsFromEndAcrossStreamsOs   z1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsf|t|j@}|d||t|j||dWdn1sX0YdSNIr rDr r!rrRtellr_r.rPrSrrrtestSeekPostEndUs   zBZ2FileTest.testSeekPostEndcCsn|jddt|jD}|d||t|jd||dWdn1s`0YdSNrZr[rrrrSrrrtestSeekPostEndMultiStream\s    z&BZ2FileTest.testSeekPostEndMultiStreamcCsp|t|jJ}|d|d||t|j||dWdn1sb0YdSrrrSrrrtestSeekPostEndTwicecs    z BZ2FileTest.testSeekPostEndTwicecCsx|jddt|jN}|d|d||t|jd||dWdn1sj0YdSrrrSrrrtestSeekPostEndTwiceMultiStreamks     z+BZ2FileTest.testSeekPostEndTwiceMultiStreamcCsb|t|j<}|d||d|||jWdn1sT0YdS)NrrrDr r!rrRrrPr.rSrrrtestSeekPreStartss   zBZ2FileTest.testSeekPreStartcCsj|jddt|j@}|d||d|||jdWdn1s\0YdS)Nrr[rrrrSrrrtestSeekPreStartMultiStreamzs    z'BZ2FileTest.testSeekPreStartMultiStreamc Csz|t|jdD}t|}z |||W|n |0Wdn1s^0Y|t|jdS)Nr) rDr9r!r rRfilenor#rJrL)r$ZrawfrTrrr 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 rr/rpseekablerPr#rJrL assertFalse)r$rTsrcrrr testSeekables&   zBZ2FileTest.testSeekablecCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jdSNr) r rr/rpreadablerPr#rJrLrrSrrr testReadables zBZ2FileTest.testReadablecCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jdSr) r rr/rwritablerPr#rJrLrprSrrr testWritables zBZ2FileTest.testWritablecCs&|tdD]}t|j}~qdS)Ni')rDranger r!)r$iorrr testOpenDels  zBZ2FileTest.testOpenDelcCs|ttddS)Nz /non/existent)rJrWr r'rrrtestOpenNonexistentszBZ2FileTest.testOpenNonexistentcCsd}t|jd}||Wdn1s00Yt|j}|}Wdn1sb0Y||dgt|j}t|}Wdn1s0Y||dgdS)Ns,BZh91AY&SYb] !h3M<]BCe%tr?sTest)r9r!r@r rrRr)r$rrCrTlinesZxlinesrrrtestReadlinesNoNewlines( & *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!r@r#rLZfailZeroDivisionErrorr$rCrrrtestContextProtocols"( "  * zBZ2FileTest.testContextProtocolc sddd}t|jd^fddfddt|D}t|Wdn1s^0YWdn1s|0YdS) N1irGr?cstdD]}qdSNrZ)rr@)r)rrCrrcomps z'BZ2FileTest.testThreading..compcsg|]}tjdqS))target) threadingThread).0r)rrr rz-BZ2FileTest.testThreading..)r r!rrZ start_threads)r$Znthreadsthreadsr)rrrCr testThreadings zBZ2FileTest.testThreadingcCs>|t|jd}|d}t|jR}|||t||jd|d|||j|dWdn1s0Yt|jD}| |t||jd|| |jdWdn1s0Yt|j6}| | t t||| gWdn1s00YdS)Nrrr) rDr_r,r r!rPrRrr.ryrrJ StopIteration)r$ZlinelenZhalflenrTrrrtestMixedIterationAndReadss  8 4 z&BZ2FileTest.testMixedIterationAndReadscCsd}d}t|jd}||Wdn1s40Yt|jd}||Wdn1sj0Yt|j$}||||Wdn1s0YdS)Ns foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrr)r r!r@rRrP)r$Zdata1Zdata2rTrrrtestMultiStreamOrderings(( 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 r@r/rRrP)r$Z str_filenameZbytes_filenamerCrrrtestOpenBytesFilenames  * 0 z!BZ2FileTest.testOpenBytesFilenamecCst|j}t|d}||jWdn1s80Yt|d"}|||jWdn1st0YdS)Nr?r)pathlibPathr!r r@r/rRrP)r$r!rCrrrtestOpenPathLikeFilename's   * z$BZ2FileTest.testOpenPathLikeFilenamecCshtjdtddd}|t|tjtt|}| | dddt }| |j j|ddS)Ng>A rrz)Excessive amount of data was decompressed)rr<intZ assertLessr_r]r^r rrRrPrassertLessEqual_bufferrawr)r$ZbombdecompZ max_decomprrrtestDecompressLimited.s z!BZ2FileTest.testDecompressLimitedc Cst|jh}t|4}|t|jt|||jWdn1sN0Y| |j Wdn1sx0YdSr) rr/r rJrKrPrQrRr.rclosedr$biorTrrrtestReadBytesIO<s   0zBZ2FileTest.testReadBytesIOc Cst|jt}t|L}|}|t|d||j|| | |jWdn1sf0YWdn1s0YdSrm) rr/r rnror_rpr.rqrRrP)r$rrTrrrrrtestPeekBytesIOCs   zBZ2FileTest.testPeekBytesIOc Cstv}t|d*}|t|j||jWdn1sB0Y|t||j| |j Wdn1s0YdSr) rr rJrKr@r.rRrgetvaluerrrrrrtestWriteBytesIOKs  *zBZ2FileTest.testWriteBytesIOc Cst|jj}t|B}|t|j|d|||jddWdn1s\0YWdn1sz0YdSr) rr/r rJrKrrRrPr.rrrrtestSeekForwardBytesIOSs    z"BZ2FileTest.testSeekForwardBytesIOc Cst|jh}t|@}|d|dd|||jddWdn1sZ0YWdn1sx0YdSr)rr/r rPrrRr.rrrrtestSeekBackwardsBytesIOZs     z$BZ2FileTest.testSeekBackwardsBytesIOc Cs|jdd}tt|}|t|jWdn1s>0Ytt|:}||t|j|j|t|jdWdn1s0Yt dD]H}tt|d| }|t|jdWdq1s0YqdS)Nr) r/r rrJEOFErrorrPrRr_r.r)r$Z truncatedrCrrrrtest_read_truncatedas,. zBZ2FileTest.test_read_truncatedcCsptdgd}t||j}ttd2}|||||||Wdn1sb0YdS)NQ)rrrIrZr)arrayr_itemsizer rrRr@r)r$qZLENGTHrCrrrtest_issue44439ns zBZ2FileTest.test_issue44439N)rr)?r)r*r+rDrNrUrXr\r`rbrcrdrirjrlrsrwr|r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr>Xsx                r>c@sJeZdZddZddZddZejee ddd d d Z d d Z dS)BZ2CompressorTestcCsBt}|t|j||j}||7}|t||jdSr)r rJrKr<r.flushrRrr$bz2crrrr testCompressxs   zBZ2CompressorTest.testCompresscCs.t}|d}||7}|||jdSNr)r r<rrRr0rrrrtestCompressEmptyStrings  z)BZ2CompressorTest.testCompressEmptyStringcCsht}d}d}|j|d|dd}|s.qF|||7}|d7}q||7}|t||jdS)NrrrGr)r r.r<rrRr)r$rrurrhrrrtestCompressChunks10s  z&BZ2CompressorTest.testCompressChunks10rkrsizeZmemusecCsxt}d|}z||}||7}Wd}nd}0t|}z.|t|||t|ddWd}nd}0dS)Nxr)r r<rrrrRr_strip)r$rrr compressedrrrtestCompress4Gs   z BZ2CompressorTest.testCompress4Gc CsPttjdD]<}|ttt|Wdq1s@0YqdSNr)rpickleHIGHEST_PROTOCOLrJrKdumpsr 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*)rJrKr r'rrrtest_Constructorsz$BZ2DecompressorTest.test_ConstructorcCs2t}|t|j||j}|||jdSr)r rJrKrr/rRr.r$bz2drgrrrtestDecompresss z"BZ2DecompressorTest.testDecompresscCsXt}d}d}|j|d|dd}|s.qF|||7}|d7}q|||jdS)NrrrGr)r r/rrRr.)r$r rgrurhrrrtestDecompressChunks10s z*BZ2DecompressorTest.testDecompressChunks10cCs:t}d}||j|}|||j||j|dS)Nsthis is unused data)r rr/rRr. unused_data)r$r rrgrrrtestDecompressUnusedDatas z,BZ2DecompressorTest.testDecompressUnusedDatacCs6t}||j}|t|jd|t|jddS)Nsanythingr)r rr/rJrr rrr testEOFErrors z BZ2DecompressorTest.testEOFErrorrkgffffff @rcCsjd}t|}zH|||d}t|}t}||}|||kWd}d}d}nd}d}d}0dS)Nir)random randbytesrr<r rrp)r$r blocksizeblockrrr Z decompressedrrrtestDecompress4Gs   z$BZ2DecompressorTest.testDecompress4Gc CsPttjdD]<}|ttt|Wdq1s@0YqdSr)rrrrJrKrr 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)Nrk@ max_lengthr) r r_r=appendrr needs_inputrRreofr-r3r)r$bzdroutZlen_rrrtestDecompressorChunksMaxsizes,   z1BZ2DecompressorTest.testDecompressorChunksMaxsizecCst}g}||j|jddddd||dd|||jddd|||jdd|d||jdS)Nrkrrrrir rRrr/rr-r.r$rrrrrtest_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&rZr'r)r rrr/rRr-r.r$rrrtest_decompressor_inputbuf_3-s z0BZ2DecompressorTest.test_decompressor_inputbuf_3cCs6t}|t|j|jd|t|j|jddS)N)r rJ Exceptionrr1)r$rrrr test_failure=sz BZ2DecompressorTest.test_failurecCsHttd}t}|}tdD] }|q |j||ddddS)NgettotalrefcountrkrrG)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 r rrrrrrrrrr r%r(r)r,Z refcount_testr0rrrrrs   rc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)CompressDecompressTestcCs"t|j}|t||jdSr)rr<r.rRr)r$rrrrrNs z#CompressDecompressTest.testCompresscCstd}|||jdSr)rr<rRr0r$rgrrrrRs z.CompressDecompressTest.testCompressEmptyStringcCst|j}|||jdSrrrr/rRr.r2rrrr Vs z%CompressDecompressTest.testDecompresscCstd}||ddSr)rrrRr2rrrtestDecompressEmptyZs z*CompressDecompressTest.testDecompressEmptycCst|j}||ddSr)rrr0rRr2rrrtestDecompressToEmptyString^s z2CompressDecompressTest.testDecompressToEmptyStringcCs|ttj|jdddS)Nr)rJrLrrr/r'rrrtestDecompressIncompletebsz/CompressDecompressTest.testDecompressIncompletecCs|ttj|jdSr)rJrWrrr1r'rrrtestDecompressBadDataesz,CompressDecompressTest.testDecompressBadDatacCs&t|jd}|||jddSrr3r2rrrtestDecompressMultiStreamhsz0CompressDecompressTest.testDecompressMultiStreamcCs$t|j|j}|||jdSrrrr/r1rRr.r2rrrtestDecompressTrailingJunklsz1CompressDecompressTest.testDecompressTrailingJunkcCs,t|jd|j}|||jddSrr9r2rrr%testDecompressMultiStreamTrailingJunkpsz||j|}Wdn1sp0YWdq1s0YqdS)N)rFr?rJ)rr!r9rJFileExistsError)r$rCrCrrr test_x_modes  zOpenTest.test_x_modecCs|t|jd"}|||jWdn1s:0Y|t|jd"}|||jWdn1s~0Y|jd}|t|jd }|||Wdn1s0YdS)NrHrrrK)r9rr/rRrPr.rL)r$rCrgrrr test_fileobjs00 zOpenTest.test_fileobjcCst|t|j|jd|t|j|jd|jt|j|jddd|jt|j|jddd|jt|j|jddd dS) NZwbtZxbtrzutf-8encodingignore)errorsrHnewline)rJrLr9r!r'rrrtest_bad_paramss     zOpenTest.test_bad_paramscCs|jd}|dtj}|j|jddd}||Wdn1sL0Yt|jd.}t| d}| ||Wdn1s0Y|j|jddd }| | |Wdn1s0YdS)NrrHrIz utf-16-lerTrrK) r.rLrMr"rNr9r!r@rrPrR)r$rgrOrCrDrrr test_encodings (*zOpenTest.test_encodingcCs||jd}|dWdn1s.0Y|j|jdddd }||dWdn1sr0YdS)Nr?sfoobarrKrrV)rUrWZfoobar)r9r!r@rRrPrrrrtest_encoding_error_handlers (z$OpenTest.test_encoding_error_handlercCs|jd}|j|jddd}||Wdn1s>0Y|j|jddd"}|||gWdn1s0YdS)NrrIrHrXrK )r.rLr9r!r@rRr)r$rgrCrrr test_newlines  (zOpenTest.test_newlineN) r)r*r+r9rErGrPrRrSrZr[r\r^rrrrr<us    r<cCs tdSr)r reap_childrenrrrrtearDownModulesr`__main__)'testrZ test.supportrrrZunittestiorrr"rr4rrrrrrrr]r. import_modulerr r r r rZTestCaserr>rrr1r<r`r)mainrrrrsD    4#3$(x