a 5êdgyã@s ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z ddl mZmZddlmZmZe  d¡ZdZdZej e j¡d ZGd d „d ejƒZGd d „d ejƒZGdd„deƒZGdd„deƒZ dd„Z!Gdd„dejƒZ"ddd„Z#e$dkre#dddS)éN)ÚPIPEÚPopen)Úsupport)Ú_4GÚ bigmemtest)Úassert_python_okÚassert_python_failureÚgzipsy int length=DEFAULTALLOC, err = Z_OK; PyObject *RetVal; int flushmode = Z_FINISH; unsigned long start_total_out; sŽ/* zlibmodule.c -- gzip-compatible data compression */ /* See http://www.gzip.org/zlib/ /* See http://www.winimage.com/zLibDll for Windows */ z-gzdirc@s$eZdZdd„Zdd„Zdd„ZdS)Ú UnseekableIOcCsdS)NF©©Úselfr r ú*/usr/local/lib/python3.9/test/test_gzip.pyÚseekable$szUnseekableIO.seekablecCs tj‚dS©N©ÚioÚUnsupportedOperationr r r rÚtell'szUnseekableIO.tellcGs tj‚dSrr)r Úargsr r rÚseek*szUnseekableIO.seekN)Ú__name__Ú __module__Ú __qualname__rrrr r r rr #sr c@s"eZdZejZdd„Zdd„ZdS)ÚBaseTestcCst |j¡dSr©rÚunlinkÚfilenamer r r rÚsetUp1szBaseTest.setUpcCst |j¡dSrrr r r rÚtearDown4szBaseTest.tearDownN)rrrrÚTESTFNrrrr r r rr.src@szeZdZd]dd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z e e dddd„ƒZdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Z dd?„Z"d@dA„Z#dBdC„Z$dDdE„Z%dFdG„Z&dHdI„Z'dJdK„Z(dLdM„Z)dNdO„Z*dPdQ„Z+dRdS„Z,dTdU„Z-dVdW„Z.dXdY„Z/dZd[„Z0d\S)^ÚTestGzipÚbcCsšt|ƒ}t |jd|¡}| |¡}Wdƒn1s:0Y| |t|ƒ¡t |jd|¡ }| | ¡|¡Wdƒn1sŒ0YdS)NÚwÚr)Úbytesr ÚGzipFilerÚwriteÚ assertEqualÚlenÚread)r ÚdataÚmodeZb_dataÚfÚlr r rÚwrite_and_read_back9s (zTestGzip.write_and_read_backcCsxt |jd¡N}| td¡| ¡| ¡ttdƒrFt  | ¡¡|  ¡Wdƒn1sb0Y|  ¡dS)NÚwbé2Úfsync) r r&rr'Údata1ÚflushÚfilenoÚhasattrÚosr2Úclose©r r-r r rÚ test_writeAs &zTestGzip.test_writecCsÞt |j¡}t |d¡}| td¡Wdƒn1s<0Y| |jt ¡t |d¡}| t¡Wdƒn1s€0Yt |¡}|  ¡}Wdƒn1s²0Y|  |td¡| |jt ¡dS)Nr#r1Úaé3) ÚpathlibÚPathrr r&r'r3ZassertIsInstanceÚnameÚstrr*r()r rr-Údr r rÚ"test_write_read_with_pathlike_fileOs ,( &z+TestGzip.test_write_read_with_pathlike_filecCsB| ttdƒ¡tttdƒƒƒ}|jdgd¢d}| |¡dS)Nr1éÚB)érEé)Úshape)r/Ú memoryviewr3r%ÚrangeÚcast)r Úmr+r r rÚtest_write_memoryview^szTestGzip.test_write_memoryviewcCs| ttdƒ¡dS)Nr1)r/Ú bytearrayr3r r r rÚtest_write_bytearraydszTestGzip.test_write_bytearraycCs| t dtd¡¡dS)NÚIé()r/Úarrayr3r r r rÚtest_write_arraygszTestGzip.test_write_arrayc Csât |jd¡‚}| t¡| d¡Wdƒn1s:0Y| t¡| g¡Wdƒn1sn0Y| t¡Wdƒn1s–0Yt |jd¡ }| | ¡t¡Wdƒn1sÔ0YdS)Nr0ÚÚrb) r r&rÚ assertRaisesÚ TypeErrorr'r3r(r*r9r r rÚtest_write_incompatible_typejs ( ((z%TestGzip.test_write_incompatible_typecCsR| ¡t |jd¡}| ¡}Wdƒn1s40Y| |td¡dS)Nr$r1)r:r r&rr*r(r3©r r-rAr r rÚ test_readws&zTestGzip.test_readcCsŽ| ¡g}d}t |jd¡F}| ¡}|s.qV| |¡|t|ƒ7}| | ¡|¡q Wdƒn1sj0Y| d  |¡t d¡dS)Nrr$ór1) r:r r&rÚread1Úappendr)r(rÚjoinr3)r ZblocksÚnreadr-rAr r rÚ test_read1~s  0zTestGzip.test_read1é)ÚsizeZmemusecCs8tjtdd}tjt |¡dd}| | |¡t¡dS)Nr`©Ú compresslevelrT©Úfileobjr,)r Úcompressr3r&rÚBytesIOr(r*)r raÚ compressedr-r r rÚtest_read_largeszTestGzip.test_read_largecCsx| ¡t |jd¡}|j}| |j¡| ¡| |j¡|  t ¡|  d¡Wdƒn1sf0Y|  t ¡|  d¡Wdƒn1sš0Y|  t ¡|  ¡Wdƒn1sÌ0Yt |jd¡}|j}| |j¡| ¡| |j¡|  t ¡| d¡Wdƒn1s60Y|  t ¡| ¡Wdƒn1sj0YdS)Nr$r`rr#rZ)r:r r&rreÚ assertFalseÚclosedr8Ú assertTruerUÚ ValueErrorr*rrr'r4)r r-rer r rÚtest_io_on_closed_object•s*   ( ( &   * z!TestGzip.test_io_on_closed_objectcCs–| ¡t |jd¡}| td¡Wdƒn1s:0Yt |jd¡}| ¡}Wdƒn1sp0Y| |tdtd¡dS)NÚabérTr1) r:r r&rr'Údata2r*r(r3rXr r rÚ test_append±s ,&zTestGzip.test_appendc Csàt |jdd¡}| d¡Wdƒn1s00YtddƒD]>}t |jdd¡}| d¡WdƒqD1sx0YqDt |jd¡.}d}| d ¡}||7}|s˜q²q˜Wdƒn1sÆ0Y| |d ¡dS) Nr0é óaréÈrorTrZi sÉaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r r&rr'rIr*r()r r-ÚiZzgfileÚcontentsZztxtr r rÚtest_many_append»s(* &zTestGzip.test_many_appendcCsºt |jd¡}| td¡Wdƒn1s20Yt |jd¡$}| | ¡td¡Wdƒn1st0Y| t¡t |jd¡Wdƒn1s¬0YdS)NÚxbr1rT) r r&rr'r3r(r*rUÚFileExistsErrorr9r r rÚtest_exclusive_writeÎs ,2 zTestGzip.test_exclusive_writec CsŠ| ¡t |jd¡H}t |¡}dd„|Dƒ}Wdƒn1sF0YWdƒn1sd0Y| |dtjdd¡dS)NrTcSsg|]}|‘qSr r )Ú.0Úliner r rÚ ÝrZz1TestGzip.test_buffered_reader..r1T©Úkeepends) r:r r&rrÚBufferedReaderr(r3Ú splitlines)r r-r$Úlinesr r rÚtest_buffered_readerÖs  JzTestGzip.test_buffered_readercCsv| ¡t |jd¡L}d}| |¡}|s4|dkr4qT| t|ƒ|k¡|dd}qWdƒn1sh0YdS)NrTrr`r1)r:r r&rÚreadlinerlr))r r-Z line_lengthÚLr r rÚ test_readlineás zTestGzip.test_readlinecCs†| ¡t |jd¡}| ¡}Wdƒn1s40Yt |jd¡&}| d¡}|gkrNqdqNWdƒn1sx0YdS)NrTé–)r:r r&rÚ readlines)r r-r†r r rÚtest_readlinesís & zTestGzip.test_readlinescCs¤| ¡t |j¡|}| ¡}| ¡}|s,q‚| ¡}| |¡t|ƒdkrPd}nt|ƒ}| |¡}|  |d|…|¡| |¡qWdƒn1s–0YdS)Né ) r:r r&rrr…rr)r*r()r r-ZoldposZline1ZnewposÚamountZline2r r rÚtest_seek_readùs   zTestGzip.test_seek_readcCsn| ¡t |j¡2}| d¡|jddd| d¡}Wdƒn1sL0Y| |tdd…¡dS)Nr‹r`)Úwhenceéé)r:r r&rr*rr(r3)r r-Úyr r rÚtest_seek_whence s  (zTestGzip.test_seek_whencecCsXt |jd¡6}tdddƒD]}| |¡| d¡qWdƒn1sJ0YdS)Nr#rrCésGZ )r r&rrIrr')r r-Úposr r rÚtest_seek_writes zTestGzip.test_seek_writecCs”| ¡t |jd¡ }| |jjd¡Wdƒn1s<0Yt |j¡t |jd¡ }| |jjd¡Wdƒn1s†0YdS)Nr$rTÚxry) r:r r&rr(Z myfileobjr,rrr9r r rÚ test_modes . zTestGzip.test_modec Cs\dD]R}t |j|¡0}| t|dƒ¡| |j|j¡Wdƒq1sL0YqdS)N)r0rTr?)r r&rrlr6r(r?)r r,r-r r rÚ test_1647484%szTestGzip.test_1647484cCs^| ¡t |jd¡4}| t|jdƒ¡| |jj|j¡Wdƒn1sP0YdS)NrTr?) r:r r&rrlr6rer(r?r9r r rÚtest_paddedfile_getattr+sz TestGzip.test_paddedfile_getattrcCs®d}tj|jd|d}| t¡Wdƒn1s60Yt |j¡N}| t|dƒ¡| |j¡|  ¡}|  |t¡|  |j|¡Wdƒn1s 0YdS)NéÍ[r#©Úmtimerœ) r r&rr'r3rlr6Z assertIsNonerœr*r()r rœÚfWriteÚfReadZdataReadr r rÚ test_mtime1s(  zTestGzip.test_mtimec Csžd}tj|jd|d}| t¡Wdƒn1s60Yt|jdƒ:}| d¡}| |d¡| d¡}| |d¡z|j d ¡d }d}Wnt y®d }d }Yn0| d¡}| ||¡| d ¡} | | t   d |¡¡| d¡} | | d¡| d¡} | | d¡| t |ƒ¡} | | |¡|  t |j¡jd¡| d ¡} | | d¡| d ¡}| |t   d t tƒ¡¡Wdƒn1s0YdS)Nršr#r›rTéó‹r`ózLatin-1órZrFz.sizesrTé!rrZéd) r3r r&rr'Zmax_read_chunkÚpeekr(r*r))r rÀr-rÅr^rÄÚsr r rÚ test_peek»s(  zTestGzip.test_peekc CsŽtd d¡jdd}| ¡t |jd¡N}tj|dd }|  |  ¡|¡Wdƒn1sb0YWdƒn1s€0YdS)Nr1ÚasciiTrr$©Úencoding) r3Údecoder‚r:r r&rrÚ TextIOWrapperr(r‰)r rƒr-Útr r rÚtest_textio_readlinesÑs zTestGzip.test_textio_readlinesc Cstt |jtjtjB¡}t |d¡>}tj|dd}Wdƒn1sH0YWdƒn1sf0YdS)Nr0r#rd)r7r¦rÚO_WRONLYÚO_CREATÚfdopenr r&)r Úfdr-Úgr r rÚtest_fileobj_from_fdopenÙsz!TestGzip.test_fileobj_from_fdopenc Cs°t |jd¡ ¡t|jdƒD}tj|dd }| |jtj¡Wdƒn1sV0Ytj|dd }| |jtj¡Wdƒn1s”0Ytj|dd }| |jtj¡Wdƒn1sÒ0Ytj|dd }| |jtj¡Wdƒn1s0Y|  t ¡tj|ddWdƒn1sL0YWdƒn1sl0Yd D]r}t|j|ƒN}tj|d  }| |jtj¡Wdƒn1sÀ0YWdƒn1sà0Yqzd D]¸}d|vr t   |j¡t|j|ƒ~}|  t¡tj|d }Wdƒn1sH0Y| | |jtj¡Wdƒn1s~0YWdƒn1sž0YqòdS) Nr0úr+br$rdr#r;r–Úz)rTrØ©re)r0rory)r r&rr8r¦r(r,ZREADZWRITErUrmrrZ assertWarnsÚ FutureWarning)r r-rÖr,r r rÚtest_fileobj_modeás0...0 NT   ,zTestGzip.test_fileobj_modecCsð|j}z| d¡}Wnty0| d¡Yn0t |d¡}| td¡Wdƒn1sb0Yt |d¡$}| |  ¡td¡Wdƒn1s¢0Yt |d¡$}| |  ¡td¡Wdƒn1sâ0YdS)NrËz%Temporary file name needs to be ASCIIr0r1rT) rr§r¨ZskipTestr r&r'r3r(r*)r Z str_filenameZbytes_filenamer-r r rÚtest_bytes_filenameûs ,2zTestGzip.test_bytes_filenamecCsttjdtdƒdd}| t|ƒtj¡t |¡}tj|d}|  |  d¡d¡dtj}|  |j j  ¡|d¡dS)Nr£g€„>ArsrbrÚr`z)Excessive amount of data was decompressed)r rfÚintZ assertLessr)rÚDEFAULT_BUFFER_SIZErgr&r(r*ZassertLessEqualÚ_bufferÚrawr)r ZbombÚdecompZ max_decompr r rÚtest_decompress_limited s   ÿz TestGzip.test_decompress_limitedc Cs‚ttfD]t}dD]j}tj|g|¢RŽ}| t|ƒt¡tjt  |¡dd }| |  ¡|¡Wdƒq1sp0YqqdS)N©r )r`)r²)rsrTrd) r3rqr rfr(Útyper%r&rrgr*)r r+rÚdatacr-r r rÚ test_compresss  zTestGzip.test_compressc CsÂd}ttfD]°}dD]¦}|j||d„tj|g|¢Rd|iŽ}| t|ƒt¡tjt   |¡dd(}|  d¡| |j |¡Wdƒn1s’0YWdƒq1s°0Yqq dS)Nršrä)r+rrœrTrdr`) r3rqr³r rfr(rår%r&rrgr*rœ)r rœr+rrær-r r rÚtest_compress_mtimes  zTestGzip.test_compress_mtimec Cs„ttfD]v}t ¡}tj|dd}| |¡Wdƒn1sB0Y| t |  ¡¡|¡t  |¡}| t |¡|¡qdS)Nr0rd) r3rqrrgr r&r'r(Ú decompressr¿rf)r r+rÁr-rær r rÚtest_decompress*s ( zTestGzip.test_decompressc Cstd}t |¡dd…}tjt |¡d}| t|j¡Wdƒn1sP0Ytjt |¡d6}|  | t |ƒ¡|¡| t|jd¡Wdƒn1s¨0Yt ddƒD]P}tjt |d|…¡d }| t|jd¡Wdƒq¼1s0Yq¼dS)Nr1iøÿÿÿrÚr`r r‹) r3r rfr&rrgrUÚEOFErrorr*r(r)rI)r r+Z truncatedr-rvr r rÚtest_read_truncated4s,.zTestGzip.test_read_truncatedcCsJd}tjt |¡d }| | ¡d¡Wdƒn1s<0YdS)Ns‹²cQÿExtra I-.2ÑMxrÚsTest)r r&rrgr(r*)r Zgzdatar-r r rÚtest_read_with_extraBszTestGzip.test_read_with_extracCsxt |jd¡}| t¡Wdƒn1s.0Yt |jd¡}|jjj ¡Wdƒn1sj0YdS)Nr0rT) r r¦rr'r3ràráÚ_fpZprependr9r r rÚtest_prepend_errorJs(zTestGzip.test_prepend_errorN)r")1rrrr/r:rBrLrNrRrWrYr_rrrirnrrrxr{r„r‡rŠrr’r•r—r˜r™rŸr®r¯rµr·r¸r¼r¾rÂrÊrÑr×rÜrÝrãrçrèrêrìrírïr r r rr!8sZ          3    r!c@sTeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS)ÚTestOpencCstd}t |jd¡}| |¡Wdƒn1s60Yt|jdƒ*}t | ¡¡}| ||¡Wdƒn1s|0Yt |jd¡ }| | ¡|¡Wdƒn1sº0Yt |jd¡}| |¡Wdƒn1sò0Yt|jdƒ.}t | ¡¡}| ||d¡Wdƒn1s>0Y| t ¡t |jd¡Wdƒn1sx0Yt   |j¡t |jd¡}| |¡Wdƒn1s¾0Yt|jdƒ*}t | ¡¡}| ||¡Wdƒn1s0YdS)Nr1r0rTror ry© r3r r¦rr'rér*r(rUrzrr©r rÀr-Ú file_datar r rÚtest_binary_modesRs*(*.(0 . *zTestOpen.test_binary_modescCs¾t |j¡}t |d¡}| td¡Wdƒn1s<0Yt |d¡}| t¡Wdƒn1sr0Yt |¡$}| | ¡td¡Wdƒn1s°0YdS)Nr0r1ror<) r=r>rr r¦r'r3r(r*)r rr-r r rÚtest_pathlike_filems ,( zTestOpen.test_pathlike_filecCstd}t |jd¡}| |¡Wdƒn1s60Yt|jdƒ*}t | ¡¡}| ||¡Wdƒn1s|0Yt |jd¡ }| | ¡|¡Wdƒn1sº0Yt |jd¡}| |¡Wdƒn1sò0Yt|jdƒ.}t | ¡¡}| ||d¡Wdƒn1s>0Y| t ¡t |jd¡Wdƒn1sx0Yt   |j¡t |jd¡}| |¡Wdƒn1s¾0Yt|jdƒ*}t | ¡¡}| ||¡Wdƒn1s0YdS)Nr1r#rTr$r;r r–rñròr r rÚtest_implicit_binary_modesvs*(*.(0 . *z#TestOpen.test_implicit_binary_modescCsnt d¡d}| dtj¡}t |jd¡}| |¡Wdƒn1sJ0Yt|jdƒ0}t  |  ¡¡ d¡}|  ||¡Wdƒn1s–0Yt |jd¡ }|  |  ¡|¡Wdƒn1sÔ0Yt |jd¡}| |¡Wdƒn1s0Yt|jdƒ4}t  |  ¡¡ d¡}|  ||d¡Wdƒn1s`0YdS) NrËr1Ú ÚwtrTÚrtZatr © r3rÎÚreplacer7Úlinesepr r¦rr'rér*r(©r rÀZuncompressed_rawr-rór r rÚtest_text_modes’s(*.*zTestOpen.test_text_modescCsætd}| d¡}t |¡}t t |¡d¡ }| | ¡|¡Wdƒn1sT0Yt t |¡d¡ }| | ¡|¡Wdƒn1s–0Yt t |¡d¡ }| | ¡|¡Wdƒn1sØ0YdS)Nr1rËr$rTrù) r3rÎr rfr¦rrgr(r*)r Zuncompressed_bytesZuncompressed_strrhr-r r rÚ test_fileobj¢s  ..zTestOpen.test_fileobjcCs`| t¡t d¡Wdƒn1s*0Y| t¡t |jd¡Wdƒn1sb0Y| t¡t |jd¡Wdƒn1sš0Y| t¡"tj|jdddWdƒn1sÖ0Y| t¡"tj|jdddWdƒn1s0Y| t¡"tj|jdd d Wdƒn1sR0YdS) Ngw¾Ÿ/Ý^@ZwbtZxbtrTzutf-8rÌÚignore)Úerrorsr÷©Únewline)rUrVr r¦rmrr r r rÚtest_bad_params­s ( , , 0 2 zTestOpen.test_bad_paramscCsêt d¡d}| dtj¡}tj|jddd}| |¡Wdƒn1sN0Yt|jdƒ0}t  |  ¡¡ d¡}|  ||¡Wdƒn1sš0Ytj|jddd }|  |  ¡|¡Wdƒn1sÜ0YdS) NrËr1r÷røzutf-16rÌrTrùrúrýr r rÚ test_encoding¼s(*zTestOpen.test_encodingcCs€t |jd¡}| d¡Wdƒn1s.0Ytj|jdddd }| | ¡d¡Wdƒn1sr0YdS)Nr0sfooÿbarrùrËr)rÍrZfoobar)r r¦rr'r(r*r9r r rÚtest_encoding_error_handlerÈs (z$TestOpen.test_encoding_error_handlercCs’t d¡d}tj|jddd}| |¡Wdƒn1s@0Ytj|jddd"}| | ¡|g¡Wdƒn1s„0YdS)NrËr1rør÷rrùú )r3rÎr r¦rr'r(r‰)r rÀr-r r rÚ test_newlineÐs (zTestOpen.test_newlineN) rrrrôrõrörþrÿrrrrr r r rrðQs   rðcs‡fdd„}|S)Ncst ˆ¡‡‡fdd„ƒ}|S)Nc s6t ˆ¡zˆ|i|¤ŽWt ˆ¡St ˆ¡0dSr)r7ÚmakedirsrÚrmtree)rÚkwargs)Ú directoryÚfunctionr rÚwrapperÛs   þz?create_and_remove_directory..decorator..wrapper)Ú functoolsÚwraps)r r©r )r rÚ decoratorÚsz.create_and_remove_directory..decoratorr )r rr rrÚcreate_and_remove_directoryÙs rc@speZdZdZdd„Zeeƒdd„ƒZdd„Zeeƒdd „ƒZ eeƒd d „ƒZ eeƒd d „ƒZ dd„Z dd„Z dS)ÚTestCommandLinesThis is a simple test with gzipc CsÐt ¡š}tj|dd}| |j¡Wdƒn1s:0Ytjdddf}t|t t t d"}|  |  ¡¡\}}Wdƒn1sŠ0YWdƒn1s¨0Y|  |d¡|  ||j¡dS)Nr0rdú-mr ú-d©ÚstdinÚstdoutÚstderrrZ) rrgr r&r'r+ÚsysÚ executablerrÚ communicater¿r()r Zbytes_ioZ gzip_filerÚprocÚoutÚerrr r rÚtest_decompress_stdin_stdoutés *N z,TestCommandLine.test_decompress_stdin_stdoutcCsîtj td¡}| tj |¡¡tj|dd}| |j ¡Wdƒn1sP0Yt ddd|ƒ\}}}ttj td¡dƒ"}|  |  ¡|j ¡Wdƒn1sª0Y|  tj |¡¡|  |d ¡|  |d ¡|  |d ¡dS) Nz testgzip.gzr0)r,rr rÚtestgziprTrrZ)r7Úpathr]ÚTEMPDIRrjÚexistsr r¦r'r+rr(r*rl)r ÚgzipnameÚfpÚrcrr Zgunzipedr r rÚtest_decompress_infile_outfileõs*0  z.TestCommandLine.test_decompress_infile_outfilecCs@tddddƒ\}}}| d| ¡¡| |d¡| |d¡dS)Nrr rzthisisatest.outs.filename doesn't end in .gz: 'thisisatest.out'r`rZ)rr(Ústrip©r r(rr r r rÚ$test_decompress_infile_outfile_errors z4TestCommandLine.test_decompress_infile_outfile_errorcCsptjddf}t|tttd }| |j¡\}}Wdƒn1sB0Y| |d¡| |dd…d¡dS)Nrr rrZr r¡)rrrrrr+r()r rrrr r r rÚtest_compress_stdin_outfile s  . z+TestCommandLine.test_compress_stdin_outfilecCsžtj td¡}|d}| tj |¡¡t|dƒ}| |j¡Wdƒn1sT0Yt dd|ƒ\}}}|  tj |¡¡|  |d¡|  |d¡dS)Nr"ú.gzr0rr rZ) r7r#r]r$rjr%r¦r'r+rrlr()r Úlocal_testgzipr&r'r(rr r r rÚ$test_compress_infile_outfile_defaults * z4TestCommandLine.test_compress_infile_outfile_defaultc CsòdD]è}|j|dÈtj td¡}|d}| tj |¡¡t|dƒ}| |j ¡Wdƒn1sj0Yt dd||ƒ\}}}|  tj |¡¡|  |d¡|  |d¡t  |¡| tj |¡¡Wdƒq1sâ0YqdS) N)ú--fastú--best)Úcompress_levelr"r.r0rr rZ)r³r7r#r]r$rjr%r¦r'r+rrlr(Úremove)r r3r/r&r'r(rr r r rÚtest_compress_infile_outfile$s *   z,TestCommandLine.test_compress_infile_outfilecCs0tddddƒ\}}}| d|¡| |d¡dS)Nrr r1r2s8error: argument --best: not allowed with argument --fastrZ©rZassertInr(r+r r rÚ%test_compress_fast_best_are_exclusive7s z5TestCommandLine.test_compress_fast_best_are_exclusivecCs0tddddƒ\}}}| d|¡| |d¡dS)Nrr r1rsAerror: argument -d/--decompress: not allowed with argument --fastrZr6r+r r rÚ-test_decompress_cannot_have_flags_compression<s z=TestCommandLine.test_decompress_cannot_have_flags_compressionN)rrrr+r!rr$r)r,r-r0r5r7r8r r r rræs     rcCst ttt¡dSr)rZ run_unittestr!rðr©Úverboser r rÚ test_mainBsr;Ú__main__Tr9)N)%rQrrr7r=r©rZunittestÚ subprocessrrÚtestrZ test.supportrrZtest.support.script_helperrrÚ import_moduler r3rqr#Úabspathr r$rgr ZTestCaserr!rðrrr;rr r r rÚs:      \