U .‘cÙ1ã@sŒddlmZmZmZddlZddlZddlmZddlZGdd„dej ƒZ Gdd„dƒZ Gdd „d e ƒZ Gd d „d e ƒZ Gd d „d e ƒZdS)é)ÚfindfileÚTESTFNÚunlinkN)Úmockc@seZdZdd„Zdd„ZdS)Ú UnseekableIOcCs tj‚dS©N©ÚioÚUnsupportedOperation©Úself©r ú4/opt/alt/python38/lib64/python3.8/test/audiotests.pyÚtell szUnseekableIO.tellcOs tj‚dSrr)r ÚargsÚkwargsr r rÚseek szUnseekableIO.seekN)Ú__name__Ú __module__Ú __qualname__rrr r r rrsrc@s(eZdZdZdd„Zdd„Zdd„ZdS) Ú AudioTestsFcCsd|_|_dSr)ÚfÚfoutr r r rÚsetUpszAudioTests.setUpcCs4|jdk r|j ¡|jdk r(|j ¡ttƒdSr)rÚcloserrrr r r rÚtearDowns     zAudioTests.tearDownc Cs | | ¡|¡| | ¡|¡| | ¡|¡| | ¡|¡| | ¡|¡| | ¡|¡| ¡}| |||||||f¡| |j|¡| |j |¡| |j |¡| |j |¡| |j |¡| |j |¡ttjdƒD]"} t || ¡} | t | ¡|¡qâdS)Né)Ú assertEqualÚ getnchannelsÚ getsampwidthÚ getframerateÚ getnframesZ getcomptypeZ getcompnameÚ getparamsÚ nchannelsÚ sampwidthÚ framerateÚnframesÚcomptypeÚcompnameÚrangeÚpickleZHIGHEST_PROTOCOLÚdumpsÚloads) r rr#r$r%r&r'r(ÚparamsÚprotoÚdumpr r rÚ check_paramss&ÿ zAudioTests.check_paramsN)rrrÚclose_fdrrr0r r r rrsrc@seZdZdd„ZdS)ÚAudioMiscTestsc Cs`d}d}t |jj›d¡:}| t¡$|jj||d|j||dW5QRXW5QRXdS)NÚargÚmodez.open)r4)rZpatchÚmodulerZ assertWarnsÚDeprecationWarningZopenfpZassert_called_with)r r3r4Z mock_openr r rÚtest_openfp_deprecated7sÿz%AudioMiscTests.test_openfp_deprecatedN)rrrr7r r r rr25sr2c@s”eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#S)$ÚAudioWriteTestscCsL|j |d¡}|_| |j¡| |j¡| |j¡|  |j |j ¡|S©NÚwb) r5ÚopenrÚ setnchannelsr#Ú setsampwidthr$Ú setframerater%Ú setcomptyper'r(©r Útestfilerr r rÚ create_fileBs    zAudioWriteTests.create_filec Csv|j |d¡^}| | ¡|j¡| | ¡|j¡| | ¡|j¡| |  ¡|¡| |  |¡|¡W5QRXdS©NÚrb) r5r;rrr#rr$r r%r!Ú readframes)r rAr&Úframesrr r rÚ check_fileJs zAudioWriteTests.check_filec CsP| t¡}| |j¡| |j¡| ||j|j|j |j|j |j ¡|  ¡dSr) rBrÚ setnframesr&Ú writeframesrFr0r#r$r%r'r(r©r rr r rÚtest_write_paramsRs   ÿz!AudioWriteTests.test_write_paramsc Cs€| |jj¡ |j td¡W5QRXW5QRX| |jj¡4ttdƒ}|j |¡W5QRXW5QRXW5QRXdSr9)Ú assertRaisesr5ÚErrorr;r)r rAr r rÚ&test_write_context_manager_calls_closeZs z6AudioWriteTests.test_write_context_manager_calls_closec Csttdƒb}|j |¡:}| |j¡| |j¡| |j¡|  |j |j ¡W5QRX|  |j |j¡W5QRXttdƒŠ}|j |¡N}| | ¡j ¡| ¡}|  |j|j¡|  |j|j¡|  |j|j¡W5QRX|jsò| | ¡¡|  |j |j¡W5QRXdS)Nr:rD)r;rr5r<r#r=r$r>r%r?r'r(rÚclosedr1Ú assertFalseÚgetfpr"Ú assertIsNone)r rArr-r r rÚ#test_context_manager_with_open_filees"     z3AudioWriteTests.test_context_manager_with_open_filec CsÆ|j td¡:}| |j¡| |j¡| |j¡|  |j |j ¡W5QRX|j t¡N}|  |  ¡j¡| ¡}| |j|j¡| |j|j¡| |j|j¡W5QRX|jsÂ| |  ¡¡dSr9)r5r;rr<r#r=r$r>r%r?r'r(rPrQrOr"rr1rR)r rr-r r rÚ"test_context_manager_with_filenamexs   z2AudioWriteTests.test_context_manager_with_filenamecCs@| t¡}| |j¡| |j¡| ¡| t|j|j¡dSr)rBrrHr&rIrFrrGrJr r rÚ test_write‰s    zAudioWriteTests.test_writecCsD| t¡}| |j¡| t|jƒ¡| ¡| t|j|j¡dSr) rBrrHr&rIÚ bytearrayrFrrGrJr r rÚtest_write_bytearray‘s   z$AudioWriteTests.test_write_bytearraycCsH| t¡}| |j¡| t d|j¡¡| ¡| t|j|j¡dS)NÚh) rBrrHr&rIÚarrayrFrrGrJr r rÚtest_write_array™s   z AudioWriteTests.test_write_arraycCsD| t¡}| |j¡| t|jƒ¡| ¡| t|j|j¡dSr) rBrrHr&rIÚ memoryviewrFrrGrJr r rÚtest_write_memoryview¡s   z%AudioWriteTests.test_write_memoryviewc CsŒttdƒ>}| d¡| |¡}| |jd¡| |j¡| ¡W5QRXttdƒ*}|  |  d¡d¡|  ||j|j¡W5QRXdS©Nr:ó ababagalamagarrDé © r;rÚwriterBrHr&rIrFrrÚreadrGr@r r rÚtest_incompleted_write©s     z&AudioWriteTests.test_incompleted_writec Cs´ttdƒf}| d¡| |¡}| |j¡|j|j}| |j d| …¡| |j | d…¡|  ¡W5QRXttdƒ*}|  |  d¡d¡|  ||j|j ¡W5QRXdS©Nr:r^rDr_)r;rrarBrHr&r#r$rIrFrrrbrG©r rArÚ framesizer r rÚtest_multiple_writesµs      z$AudioWriteTests.test_multiple_writesc CsŒttdƒ>}| d¡| |¡}| |jd¡| |j¡| ¡W5QRXttdƒ*}|  |  d¡d¡|  ||j|j¡W5QRXdSr]r`r@r r rÚtest_overflowed_writeÃs     z%AudioWriteTests.test_overflowed_writec CsZ| t¡}| |j¡| |j¡W5QRXttdƒ}| ||j|j¡W5QRXdSrC)rBrrHr&rIrFrrG)r rrAr r rÚtest_unseekable_readÏs    z$AudioWriteTests.test_unseekable_readc CsZttdƒ4}| |¡}| |j¡| |j¡W5QRXW5QRX| t|j|j¡dSr9)rrrBrHr&rIrFrGr@r r rÚtest_unseekable_write×s     z%AudioWriteTests.test_unseekable_writec CsÄttdƒr}| d¡| |¡}| |jd¡z| |j¡Wntk rTYnXz |  ¡Wntk rvYnXW5QRXt tdƒ.}|  |  d¡d¡|  ||jd|j¡W5QRXdSr])rrrarBrHr&rIrFÚOSErrorrr;rrbrGr@r r rÚ!test_unseekable_incompleted_writeßs     z1AudioWriteTests.test_unseekable_incompleted_writec CsÚttdƒr}| d¡| |¡}| |jd¡z| |j¡Wntk rTYnXz |  ¡Wntk rvYnXW5QRXt tdƒD}|  |  d¡d¡|j |j}| ||jd|jd| …¡W5QRXdSr])rrrarBrHr&rIrFrkrr;rrbr#r$rGrer r rÚ test_unseekable_overflowed_writeñs       z0AudioWriteTests.test_unseekable_overflowed_writeN)rrrrBrGrKrNrSrTrUrWrZr\rcrgrhrirjrlrmr r r rr8@s"   r8c@s@eZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d S)ÚAudioTestsWithSourceFilecCst|jdd|_dS)NZ audiodata)Zsubdir)rZ sndfilenameÚ sndfilepath)Úclsr r rÚ setUpClasssz#AudioTestsWithSourceFile.setUpClassc Cs:|j |j¡}|_| ||j|j|j|j|j |j ¡dSr) r5r;rorr0r#r$r%Úsndfilenframesr'r(rJr r rÚtest_read_params s ÿz)AudioTestsWithSourceFile.test_read_paramsc CsÂt|jdƒ<}|j |¡}|_| |j¡| ¡| |j|j¡W5QRXtt dƒ`}|j |d¡}|_ | |j¡|  |jj ¡| ¡W5QRX| |j|j¡| ¡W5QRXdS)NrDr:) r;ror5rrPrOrrr1rrrLrM)r rArrr r rÚ test_closes   z#AudioTestsWithSourceFile.test_closec Cs\|j|j}|jdd|…}|jd|d|…}|j |j¡}|_| | d¡d¡| |  ¡d¡| | d¡|¡|  ¡|  ¡}| |d¡| | d¡|¡|  ¡}| |d¡| | d¡|¡|  |¡| | d¡|¡|  |¡| | d¡|¡|  |jj ¡|  d¡W5QRX|  |jj ¡|  | ¡d¡W5QRXdS)Nééróéÿÿÿÿr)r#r$rFr5r;rorrrErÚrewindZsetposrLrMr!)r rfZchunk1Zchunk2rZpos0Zpos2r r rÚ test_reads,     z"AudioTestsWithSourceFile.test_readcCsÈ|j |j¡}|_|j td¡}|_| | ¡¡d}| ¡}|dkrl|d7}|  |  |¡¡||8}qB|  ¡|j td¡}|_|  ¡|  | ¡| ¡¡|  |  | ¡¡|  | ¡¡¡dS)Nr:rrrD)r5r;rorrrZ setparamsr"r!rIrErryr)r rrÚiÚnr r rÚ test_copy7s   ÿz"AudioTestsWithSourceFile.test_copyc Csêttdƒ6}| d¡t|jdƒ}| | ¡¡W5QRXW5QRXttdƒ}| | d¡d¡|j |d¡d}| | ¡|j¡| |  ¡|j ¡| |  ¡|j ¡| |  ¡|j¡| | |j¡|j¡W5QRXW5QRXdSrd)r;rrarorbrr5rr#rr$r r%r!rrrEr&rFr@r r rÚtest_read_not_from_startHs  " z1AudioTestsWithSourceFile.test_read_not_from_startN) rrrÚ classmethodrqrsrtrzr}r~r r r rrns rn)Z test.supportrrrrYr Zunittestrr*ÚFileIOrrr2r8rnr r r rÚs % F