a 4êdgg0ã@spddlmZmZmZddlZddlZddlZGdd„dejƒZGdd„dƒZ Gdd„de ƒZ Gd d „d e ƒZ dS) é)ÚfindfileÚTESTFNÚunlinkNc@seZdZdd„Zdd„ZdS)Ú UnseekableIOcCs tj‚dS©N©ÚioÚUnsupportedOperation©Úself©r ú+/usr/local/lib/python3.9/test/audiotests.pyÚtellszUnseekableIO.tellcOs tj‚dSrr)r ÚargsÚkwargsr r r Úseek szUnseekableIO.seekN)Ú__name__Ú __module__Ú __qualname__rrr r r r rsrc@s(eZdZdZdd„Zdd„Zdd„ZdS) Ú AudioTestsFcCsd|_|_dSr)ÚfÚfoutr r r r ÚsetUpszAudioTests.setUpcCs4|jdur|j ¡|jdur(|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ÚpickleÚHIGHEST_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 r rsrc@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) ÚmoduleÚopenrÚ setnchannelsr"Ú setsampwidthr#Ú setframerater$Ú setcomptyper&r'©r Útestfilerr r r Ú create_file6s    zAudioWriteTests.create_filecCsŠ|j |d¡h}| | ¡|j¡| | ¡|j¡| | ¡|j¡| |  ¡|¡| |  |¡|¡Wdƒn1s|0YdS©NÚrb) r5r6rrr"rr#rr$r Ú readframes)r r<r%Úframesrr r r Ú check_file>s zAudioWriteTests.check_filec CsP| t¡}| |j¡| |j¡| ||j|j|j |j|j |j ¡|  ¡dSr) r=rÚ setnframesr%Ú writeframesrAr0r"r#r$r&r'r©r rr r r Útest_write_paramsFs    ÿz!AudioWriteTests.test_write_paramsc Csä| |jj¡>|j td¡Wdƒn1s40YWdƒn1sR0Y| |jj¡fttdƒ<}|j |¡Wdƒn1sš0YWdƒn1s¸0YWdƒn1sÖ0YdSr3)Ú assertRaisesr5ÚErrorr6r)r r<r r r Ú&test_write_context_manager_calls_closeNs< z6AudioWriteTests.test_write_context_manager_calls_closec Csfttdƒ€}|j |¡D}| |j¡| |j¡| |j¡|  |j |j ¡Wdƒn1sb0Y|  |j |j¡Wdƒn1s0Yttdƒ¬}|j |¡X}| | ¡j ¡| ¡}|  |j|j¡|  |j|j¡|  |j|j¡Wdƒn1s0Y|js2| | ¡¡|  |j |j¡Wdƒn1sX0YdS)Nr4r?)r6rr5r7r"r8r#r9r$r:r&r'rÚclosedr1Ú assertFalseÚgetfpr!Ú assertIsNone)r r<rr-r r r Ú#test_context_manager_with_open_fileYs"    .. 0z3AudioWriteTests.test_context_manager_with_open_filecCsî|j td¡D}| |j¡| |j¡| |j¡|  |j |j ¡Wdƒn1sX0Y|j t¡X}|  |  ¡j¡| ¡}| |j|j¡| |j|j¡| |j|j¡Wdƒn1sÌ0Y|jsê| |  ¡¡dSr3)r5r6rr7r"r8r#r9r$r:r&r'rKrLrJr!rr1rM)r rr-r r r Ú"test_context_manager_with_filenamels   ..z2AudioWriteTests.test_context_manager_with_filenamecCs@| t¡}| |j¡| |j¡| ¡| t|j|j¡dSr)r=rrCr%rDrArrBrEr r r Ú test_write}s    zAudioWriteTests.test_writecCsD| t¡}| |j¡| t|jƒ¡| ¡| t|j|j¡dSr) r=rrCr%rDÚ bytearrayrArrBrEr r r Útest_write_bytearray…s   z$AudioWriteTests.test_write_bytearraycCsH| t¡}| |j¡| t d|j¡¡| ¡| t|j|j¡dS)NÚh) r=rrCr%rDÚarrayrArrBrEr r r Útest_write_arrays   z AudioWriteTests.test_write_arraycCsD| t¡}| |j¡| t|jƒ¡| ¡| t|j|j¡dSr) r=rrCr%rDÚ memoryviewrArrBrEr r r Útest_write_memoryview•s   z%AudioWriteTests.test_write_memoryviewcCs´ttdƒH}| d¡| |¡}| |jd¡| |j¡| ¡Wdƒn1sX0Yttdƒ4}|  |  d¡d¡|  ||j|j¡Wdƒn1s¦0YdS©Nr4ó ababagalamagarr?é © r6rÚwriter=rCr%rDrArrÚreadrBr;r r r Útest_incompleted_writes    & z&AudioWriteTests.test_incompleted_writecCsÜttdƒp}| d¡| |¡}| |j¡|j|j}| |j d| …¡| |j | d…¡|  ¡Wdƒn1s€0Yttdƒ4}|  |  d¡d¡|  ||j|j ¡Wdƒn1sÎ0YdS©Nr4rYr?rZ)r6rr\r=rCr%r"r#rDrArrr]rB©r r<rÚ framesizer r r Útest_multiple_writes©s     & z$AudioWriteTests.test_multiple_writescCs´ttdƒH}| d¡| |¡}| |jd¡| |j¡| ¡Wdƒn1sX0Yttdƒ4}|  |  d¡d¡|  ||j|j¡Wdƒn1s¦0YdSrXr[r;r r r Útest_overflowed_write·s    & z%AudioWriteTests.test_overflowed_writecCs‚| t¡(}| |j¡| |j¡Wdƒn1s80Yttdƒ"}| ||j|j¡Wdƒn1st0YdSr>)r=rrCr%rDrArrB)r rr<r r r Útest_unseekable_readÃs   * z$AudioWriteTests.test_unseekable_readc Cs‚ttdƒR}| |¡(}| |j¡| |j¡Wdƒn1sD0YWdƒn1sb0Y| t|j|j¡dSr3)rrr=rCr%rDrArBr;r r r Útest_unseekable_writeËs    Hz%AudioWriteTests.test_unseekable_writec Csèttdƒx}| d¡| |¡}| |jd¡z| |j¡WntyRYn0z |  ¡WntyrYn0Wdƒn1sˆ0Yt tdƒ8}|  |  d¡d¡|  ||jd|j¡Wdƒn1sÚ0YdSrX)rrr\r=rCr%rDrAÚOSErrorrr6rr]rBr;r r r Ú!test_unseekable_incompleted_writeÓs      $ z1AudioWriteTests.test_unseekable_incompleted_writec Csþttdƒx}| d¡| |¡}| |jd¡z| |j¡WntyRYn0z |  ¡WntyrYn0Wdƒn1sˆ0Yt tdƒN}|  |  d¡d¡|j |j}| ||jd|jd| …¡Wdƒn1sð0YdSrX)rrr\r=rCr%rDrArfrr6rr]r"r#rBr`r r r Ú test_unseekable_overflowed_writeås       $  z0AudioWriteTests.test_unseekable_overflowed_writeN)rrrr=rBrFrIrNrOrPrRrUrWr^rbrcrdrergrhr r r r r24s"   r2c@s@eZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d S)ÚAudioTestsWithSourceFilecCst|jdd|_dS)NZ audiodata)Zsubdir)rZ sndfilenameÚ sndfilepath)Úclsr r r Ú setUpClassûsz#AudioTestsWithSourceFile.setUpClassc Cs:|j |j¡}|_| ||j|j|j|j|j |j ¡dSr) r5r6rjrr0r"r#r$Úsndfilenframesr&r'rEr r r Útest_read_paramsÿs ÿz)AudioTestsWithSourceFile.test_read_paramsc Csþt|jdƒF}|j |¡}|_| |j¡| ¡| |j|j¡Wdƒn1sX0Ytt dƒ~}|j |d¡}|_ | |j¡|  |jj ¡| ¡Wdƒn1sº0Y| |j|j¡| ¡Wdƒn1sð0YdS)Nr?r4) r6rjr5rrKrJrrr1rrrGrH)r r<rrr r r Ú test_closes .  &z#AudioTestsWithSourceFile.test_closecCsˆ|j|j}|jdd|…}|jd|d|…}|j |j¡}|_| | d¡d¡| |  ¡d¡| | d¡|¡|  ¡|  ¡}| |d¡| | d¡|¡|  ¡}| |d¡| | d¡|¡|  |¡| | d¡|¡|  |¡| | d¡|¡|  |jj ¡|  d¡Wdƒn1s80Y|  |jj ¡"|  | ¡d¡Wdƒn1sz0YdS)Nééróéÿÿÿÿr)r"r#rAr5r6rjrrr@rÚrewindZsetposrGrHr )r raZchunk1Zchunk2rZpos0Zpos2r r r Ú test_reads,     *z"AudioTestsWithSourceFile.test_readcCsÈ|j |j¡}|_|j td¡}|_| | ¡¡d}| ¡}|dkrl|d7}|  |  |¡¡||8}qB|  ¡|j td¡}|_|  ¡|  | ¡| ¡¡|  |  | ¡¡|  | ¡¡¡dS)Nr4rrr?)r5r6rjrrrZ setparamsr!r rDr@rrtr)r rrÚiÚnr r r Ú test_copy+s   ÿz"AudioTestsWithSourceFile.test_copyc Cs>ttdƒT}| d¡t|jdƒ}| | ¡¡Wdƒn1sF0YWdƒn1sd0Yttdƒ°}| | d¡d¡|j |d¡n}| | ¡|j¡| |  ¡|j ¡| |  ¡|j ¡| |  ¡|j¡| | |j¡|j¡Wdƒn1s0YWdƒn1s00YdSr_)r6rr\rjr]rr5rr"rr#rr$r rmr@r%rAr;r r r Útest_read_not_from_start<s  J z1AudioTestsWithSourceFile.test_read_not_from_startN) rrrÚ classmethodrlrnrorurxryr r r r riùs ri) Z test.supportrrrrTrr)ÚFileIOrrr2rir r r r Ús%F