a ze}@sddlZddlmZddlZddlZddlZddlZGdddZGdddZ GdddZ Gd d d e e ej Z Gd d d Z Gd dde e e ej ZGddde ej ZGddde ZGdddeZGdddeZedkredS)N)supportc@s eZdZddZddZeZdS)IntLikecCs ||_dSNZ_num)selfnumrF/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_memoryio.py__init__szIntLike.__init__cCs|jSrrrrrr __index__szIntLike.__index__N)__name__ __module__ __qualname__r r __int__rrrr rsrc@s4eZdZddZddZddZddZd d Zd S) MemorySeekTestMixincCs|d}||}dSN 1234567890)buftypeioclassrbufZbytesIorrr testInits zMemorySeekTestMixin.testInitcCsx|d}||}||dd|d||dd|d||dd|d||j|dS)Nrrr assertEqualreadEOFrrrr testReads   zMemorySeekTestMixin.testReadcCs:|d}||}|||||j|dSrrrrrr testReadNoArgs$s  z"MemorySeekTestMixin.testReadNoArgscCsn|d}||}|d|d||||d||dd||t|jddS)Nrrr)rrrseekr assertRaises TypeErrorrrrr testSeek+s     zMemorySeekTestMixin.testSeekcCs\|d}||}|d||d|d||d|d|dSNrrri')rrrtellr%rrrr testTell7s    zMemorySeekTestMixin.testTellN)r rrrr!r"r(r+rrrr rs   rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)S)*MemoryTestMixincCs|}||j|jdSr)rr&UnsupportedOperationdetachrrrrr test_detachDszMemoryTestMixin.test_detachcCs|||dd||dd|||dd||d||dd||d|||dd||dd|||dd ||d d ||d dS) Nzblah.rrzHello.z world hr )rwriter%r*truncate)rftrrr write_opsHszMemoryTestMixin.write_opscCs|d}||}|||j||||}|||j||||t|jd||t |j|ddS)Nz hello world ) rrr9rgetvaluer&r'r5close ValueErrorrrmemiorrr test_writeUs  zMemoryTestMixin.test_writecCs|d}|}|||gdd|||d|g|||d|}|t|j|gdg||||t|jd||t|jgdS)Nrdr) rrr writelinesr;r&r'r<r=r>rrr test_writelinesbs  zMemoryTestMixin.test_writelinescs*}fdd}t|j|dS)Nc3sdVtdS)Nspam)rKeyboardInterruptrr rr error_genss z8MemoryTestMixin.test_writelines_error..error_gen)rr&rErB)rr?rFrr r test_writelines_errorqs z%MemoryTestMixin.test_writelines_errorcCsn|d}||}|t|jd|t|jtd|d||tdd|||dd||d|||dd||dd|||dd|| d|dd| ||||dd|| }||d||| ||t |jd| |t|jd|t|jtddS) Nrr1rr0) rrr&r=r6rr%rr;r*r5r'r<)rrr?posrrr test_truncateys,     zMemoryTestMixin.test_truncatecCs|d}||}||||d}|||j||d|||d||||||t|jgdS)NrrJ)rrrr;r r r&r'r>rrr test_inits    zMemoryTestMixin.test_initcCsz|d}||}||d|j||d|dd||d|dd||d|dd|||j|d||td|j||td|dd||td|dd||td|dd|d||||||j||d|d||d||d||td||d|t|t||d |t|t||d||d|| t |jd |t |d||d|j|t |d||td|j|t |d|||j| | t |jdS) Nrrrrrr rHrAr:)rrrrr r%rr*typer&r'lenr<r=r>rrr test_readsF         zMemoryTestMixin.test_readcCs|d}||d}||d|j||td|j|||||||||j|d||d|dd||d|dd||d|dd|d||td|dd||td|dd||td|dd|d||d||d||td||d||d|j||td|j|t|dd|||j|d}||d dd}|||||||||dd|||j|d|t|t||||| t |jd | | t |jdS) N 1234567890 rJrrrOrHrr#r:) rrrreadliner rr%rQrPr&r'r<r=r>rrr test_readlinesH        zMemoryTestMixin.test_readlinecCsZ|d}||d}|||gd|d|||ddg|gd|d||d|gd|d||d|gd|d||d|gd|d|t|dt||d||d|gd|t|jd |t|dd ||g| |t |jdS) NrSrOrr2rrTrJrHr:r) rrr readlinesr%rPr&r'rQr<r=r>rrr test_readliness(  $     zMemoryTestMixin.test_readlinescCs|d}||d}|t|||t|d|t|dd}|D]}||||d7}qP||d|dd}|D]}||||d7}q||d|t|dd|t|g||d}| | t |j dS)NrSrO__iter____next__rrrJ) rrriterZ assertTruehasattrr%rQlistr<r&r=rZ)rrr?ilinerrr test_iterators*        zMemoryTestMixin.test_iteratorcCs|d}||}||||||||t|t|||d}||dd|d||}||t|jdS)NrZ890) rrrr;rrPr<r&r=r>rrr test_getvalues   zMemoryTestMixin.test_getvaluecCs\|d}||}|d|t|jd|t|jdd|t|jdd||dd||ddd|||||dd||ddd|||dd||t|t||||j|t|d|||j||ddt||||j| |t|jddS)NrrrHrr#rrJ) rrrr&r=r%rrQr r<r>rrr test_seek,s(   zMemoryTestMixin.test_seekcCs|d}||}||t|dd|||j||d|||| |j|||| |||||d|dS)Nrr ) rrrr%rQrr r*r;r5r>rrr test_overseekCs    zMemoryTestMixin.test_overseekcCsr|d}||}||d|d||d|d||d||t|jdSr))rrrr*r%r<r&r=r>rrr test_tellPs    zMemoryTestMixin.test_tellcCs(|d}||}||ddSr)rrrflushr>rrr test_flush\s  zMemoryTestMixin.test_flushcCs|}||d||d||d||d||jd||t |j|t |j|t |j|t |j||jddS)NTF) rrwritablereadableseekableisattyclosedr<r&r=rr?rrr test_flagsbszMemoryTestMixin.test_flagscsFdfdd}fdd}||dS)Nrcs"Gdddj}|}|S)Nc@s eZdZdS)z>MemoryTestMixin.test_subclassing..test1..MemION)r rrrrrr MemIOtsrrrr;rrmrrrr test1ssz/MemoryTestMixin.test_subclassing..test1cs(Gfdddj}|d}|S)NcseZdZfddZdS)z>MemoryTestMixin.test_subclassing..test2..MemIOcsj||dSr)rr )meabr rr r zszGMemoryTestMixin.test_subclassing..test2..MemIO.__init__Nr rrr rr rr rrysrrrsrtrvrr test2xs z/MemoryTestMixin.test_subclassing..test2)rr)rrwr|rrvr test_subclassingqs  z MemoryTestMixin.test_subclassingcCs tdD]}|}d|_qdS)NrAr)rangerfoo)r_r?rrr test_instance_dict_leaks z'MemoryTestMixin.test_instance_dict_leakc s d}|}d|_|dGfdddj}ddl}d|_|j|_||_||d}|dt dt j d D]}||fD]z}t t j ||d }|||j|j|j|j|||tt j ||qqz|`dS) Nr*rJcseZdZfddZdS)z6MemoryTestMixin.test_pickling..PickleTestMemIOcsj||||_dSr)rr r)rxZ initvaluerr rr r sz?MemoryTestMixin.test_pickling..PickleTestMemIO.__init__Nr{rr rr PickleTestMemIOsrr__main__Pr)protocol)rrrr%rrr rrr~pickleHIGHEST_PROTOCOLloadsdumpsrr; __class__r*r<r&r=) rrr?rrZsubmemioprotoobjobj2rr r test_picklings*       zMemoryTestMixin.test_picklingN)r rrr0r9r@rCrGrMrNrRrVrXr`rcrdrgrhrjrqr}rrrrrr r,Bs(   &)  r,c@s`eZdZejZeddZejZdZ ddZ ddZ dd Z d d Z d d ZddZddZdS) PyBytesIOTestcCs |dS)Nascii)encode)srrr rszPyBytesIOTest.buftypecCs|d}|}|t|d|d|}|t|d|t|jd|t|j|t|j | |j d|dd<|t|d|| d~t || |t|jdS)N 1234567890rsdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsabcr#r1s 123abc7890)r getbufferrbytesr%r& BufferErrorr5r6r< assertFalseror;r gc_collectr=)rr?rrrr test_getbuffers$    zPyBytesIOTest.test_getbuffercCs<|d}|||||||d|dS)NrrH)rrrread1r/rrr test_read1s zPyBytesIOTest.test_read1cCsj|d}||}td}|||d||d|||d||d|||d||dtd}|d|||d||d td }|d|||d||d |t|jd ddl}|d d}||}|||| d | |t |j||d }t}|d||||d dS)Nrshellors12345s67890rs hello worldrOs 1234567890drr:rzs123r) rr bytearrayrreadintor%r&r'arraytobytesr<r=)rrr?rzrryrrr test_readintos<               zPyBytesIOTest.test_readintocCs|d}||}||ddd||ddd||ddd||ddd||ddd ||ddd |d d|||d d|d|dd|||dddS) NrrHrrr#rJr2rOrerb)rrrr%rr>rrr test_relative_seeks     z PyBytesIOTest.test_relative_seekcCs>|}|t|jd|t|jd|t|jdgdSr)rr&r'r5rBrprrr test_unicodeszPyBytesIOTest.test_unicodecCs\d}ddl}|dt|}||}||||||d|||dS)NrrrzrO)rr]rrr;r5)rrrryr?rrr test_bytes_arrays zPyBytesIOTest.test_bytes_arraycCs.|d}|j|d|jt|j|dddS)Nr)Z initial_bytes)r)rrr&r'r/rrr test_issue5449s  zPyBytesIOTest.test_issue5449N)r rrpyior- staticmethodrBytesIOrr rrrrrrrrrrr rs ! rc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)TextIOTestMixincs|jddfdd}|jdd||jdd||jdd||jd dS) NnewlinecsddS)Nr)r%rrr?rr force_decode%s z.force_decodea  b )r c d) rr)rrnewlinesr5)rrrrr test_newlines_property s     z&TextIOTestMixin.test_newlines_propertycCsx|}|t|jdd|t|jdd|t|jdd|t|jdd|t|jdd|t|jdddS)NrHrr#rbrJ)rr&OSErrorr%rprrr r3sz"TextIOTestMixin.test_relative_seekcCs0|}||j||j||jdSr)rZ assertIsNoneencodingerrorsrline_bufferingrprrr test_textio_properties=s  z&TextIOTestMixin.test_textio_propertiescCsz|d}|t|gd||d|}||dd|d|t|gd||ddS)Na b c drrrrIrrrr]r;r5r%rprrr test_newline_defaultFs  z$TextIOTestMixin.test_newline_defaultcCs|jddd}|t|gd|d||dd||dd||dd ||dd ||d |jdd}|d|d |d |d|d |d|d||d ||d |jddd}||d ddS)Nrr)rzb zc drrryrJz b crza b c drr#rrza bza brrr]r%rr;r5rprrr test_newline_noneQs"   z!TextIOTestMixin.test_newline_nonecCs|jddd}|t|gd|d||dd||dd ||d d ||d|jdd}|d|d |d|d |d|d |d|d|d|t|gd||ddS)Nrr:r)rrc rrrza b rJrrrrb z drrprrr test_newline_emptygs   z"TextIOTestMixin.test_newline_emptycCs|jddd}|t|gd||d|jdd}||dd|d|t|gd||ddS)NrrrrrIrrrprrr test_newline_lfzs  zTextIOTestMixin.test_newline_lfcCs|jddd}||d|d|t|gd||d|jdd}||dd|d|t|gd|d||gd||ddS)Nrrrza b c dr)za rrrrrI)rrrr%r]r;r5rWrprrr test_newline_crs    zTextIOTestMixin.test_newline_crcCs|jddd}||d|d|t|gd|d||gd||d|jdd}||dd|d|t|gd||ddS)Nrrrz a b c dr)za zb rrI)rrrr%r]rWr;r5rprrr test_newline_crlfs    z!TextIOTestMixin.test_newline_crlfcCs4|jddd}||dd||ddS)Nza b rrza b )rrrr;rprrr test_issue5265szTextIOTestMixin.test_issue5265cCs>|jt|jdd|jt|jdddD]}|j|dq(dS)N rerror)Nr:rrr)r&r'rr=)rrrrr test_newline_argumentsz%TextIOTestMixin.test_newline_argumentN)r rrrrrrrrrrrrrrrrr rs    rc@s(eZdZeZejZejZdZ ddZ dS)PyStringIOTestr:cCs@|d}||d|}|d||ddS)Nu)rrrr5r;rprrr test_lone_surrogatess   z#PyStringIOTest.test_lone_surrogatesN) r rrstrrrStringIOrr-r rrrrr rs rc@s,eZdZeZejZdZGdddejZ dS)PyStringIOPickleTestr:c@seZdZddZddZdS)zPyStringIOPickleTest.ioclasscOstttj|i|Sr)rrrrrclsargskwargsrrr __new__sz$PyStringIOPickleTest.ioclass.__new__cOsdSrrrrrrrr r sz%PyStringIOPickleTest.ioclass.__init__Nr rrrr rrrr rsrN) r rrrrrr-r rrrrrr rsrc@s|eZdZejZejZddZddZe j Z e j ddZ ddZ e j d d Ze j d d Ze j d dZe j ddZdS) CBytesIOTestcCsr|}|}|t|dt|d||dt|ddurX||dt|| t |jdS)Nr#rrrJ) r __getstate__rrQrassertIsInstanceintdictr<r&r=rr?staterrr test_getstates  zCBytesIOTest.test_getstatecCs|}|d|tdddf|ddddif|t|jd|t|jd|t|jd|t|jd |t|jd |t|j|t|jd||t|jd dS) N)no errorrNrrrDr#)rrHN)unicoderN)rr$N)rrr)slen-testr)sclosedrN)r __setstate__rr&r=r'r<rprrr test_setstates zCBytesIOTest.test_setstatecCs^td}|j}|tt||t|d}|td||t d|dS)NZP2n2Pnraa) rZ calcobjsize check_sizeofrobject __sizeof__iorsys getsizeof)rZbasesizechecknrrr test_sizeofs  zCBytesIOTest.test_sizeofcCsLd}t|}||}|t||d|||t||dS)Ns r)r getrefcountrr)rmutationZimmold_rcr?rrr _test_cow_mutations   zCBytesIOTest._test_cow_mutationcCsdd}||dS)NcSs|ddS)Nr)r6rrrr r sz0CBytesIOTest.test_cow_truncate..mutationrrrrrr test_cow_truncateszCBytesIOTest.test_cow_truncatecCsdd}||dS)NcSs|d|ddS)Nrsfoo)r%r5rrrr rs z-CBytesIOTest.test_cow_write..mutationrrrrr test_cow_writeszCBytesIOTest.test_cow_writecs,|d}|fdd}||dS)Nsfoooooocs|dSr)rrrrr rsz0CBytesIOTest.test_cow_setstate..mutation)rrr)rr?rrrr test_cow_setstates  zCBytesIOTest.test_cow_setstatecCs2td}t|}||}|t||dS)Ni)rrrrr)rZbarr?rrr test_cow_mutable s  zCBytesIOTest.test_cow_mutableN)r rrrrrr-rrrrZ cpython_onlyrrrrrrrrrr rs       rc@s0eZdZejZejZddZddZddZ dS) CStringIOTestcCs|d}||}||||||t|||t|||||||t|||t|d||||dS)Nu𠌊𠍇rJ)rrrr;r5rQr*r>rrr test_widechar0s  zCStringIOTest.test_widecharcCs|}|}|t|d||dt||dt||dt|ddurl||dt|| t |jdS)NrrrrJr#) rrrrQrrrrr<r&r=rrrr r<s zCStringIOTest.test_getstatecCs|}|d|dddddif|t|jd|t|jd|t|jd |t|jd |t|jd |t|jd |t|jd |t|j|t|jd||t|jddS)N)no errorrrNrr:rrDr#)r:r7rN)r:r:rHN)rr:rN)r:rrN)r:r:r$N)r:r:rr)zlen-testr)ror:rN)rrr&r=r'r<rprrr rHs zCStringIOTest.test_setstateN) r rrrrrr-rrrrrrr r*s   rc@s$eZdZejZGdddejZdS)CStringIOPickleTestc@seZdZddZddZdS)zCStringIOPickleTest.ioclasscOstttj|i|Sr)rrrrrrrrr r^sz#CStringIOPickleTest.ioclass.__new__cOsdSrrrrrr r `sz$CStringIOPickleTest.ioclass.__init__Nrrrrr r]srN)r rrrr-rrrrrr rZsrr)ZunittesttestrrZ_pyiorrrrrr,ZTestCaserrrrrrrr mainrrrr s, -npW0