a 5êdg,ã@säddlZddlZddlZddlmZddlmZddlZddlZddl m Z ddl m Z ddl mZGdd„dƒZGd d „d eejƒZGd d „d eejƒZGd d„dƒZGdd„deejƒZGdd„deejƒZedkràe ¡dS)éN)Úarray)Úproxy)ÚTESTFN)Úsupport)ÚUserListc@steZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„ZdS)Ú AutoFileTestscCs| td¡|_dS)NÚwb)ÚopenrÚf©Úself©r ú*/usr/local/lib/python3.9/test/test_file.pyÚsetUpszAutoFileTests.setUpcCs|jr|j ¡t t¡dS©N)r ÚcloserÚunlinkrr r r rÚtearDowns zAutoFileTests.tearDowncCsNt|jƒ}| d¡| |j ¡| ¡¡|j ¡d|_| tt|d¡dS)Ns teststringÚtell) rr ÚwriteÚ assertEqualrrÚ assertRaisesÚReferenceErrorÚgetattr)r Úpr r rÚ testWeakRefss    zAutoFileTests.testWeakRefscCs|j}|j|j|jdSr)r ÚnameÚmodeÚclosed©r r r r rÚtestAttributes"szAutoFileTests.testAttributescCsV|j d¡|j ¡tddƒ}| td¡|_|j |¡}| d| ¡d|…¡dS)Nó12Úbó xxxxxxxxxxÚrb) r rrrr rÚreadintorÚtobytes)r ÚaÚnr r rÚ testReadinto)s     zAutoFileTests.testReadintocCsDtddƒ}|j ¡| td¡|_t|jdƒr@| t|jj|¡dS)Nr"r#Úrr%) rr rr rÚhasattrrÚ TypeErrorr%)r r'r r rÚtestReadinto_text2s    zAutoFileTests.testReadinto_textcCsJtddgƒ}|j |¡|j ¡| td¡|_|j ¡}| |d¡dS)Nó1ó2r$r!)rr Ú writelinesrr rÚreadr)r ÚlÚbufr r rÚtestWritelinesUserList:s     z$AutoFileTests.testWritelinesUserListcCs| t|jjgd¢¡dS©N)ééé©rr,r r0r r r rÚtestWritelinesIntegersCsz$AutoFileTests.testWritelinesIntegerscCs"tgd¢ƒ}| t|jj|¡dSr5)rrr,r r0)r r2r r rÚtestWritelinesIntegersUserListGs z,AutoFileTests.testWritelinesIntegersUserListcCs,Gdd„dƒ}| t|jj|ƒ|ƒg¡dS)Nc@s eZdZdS)z8AutoFileTests.testWritelinesNonString..NonStringN)Ú__name__Ú __module__Ú __qualname__r r r rÚ NonStringNsr?r9)r r?r r rÚtestWritelinesNonStringLs  ÿz%AutoFileTests.testWritelinesNonStringcCsd|j}| |jt¡| | ¡¡| |j¡t|dƒrL| t t f|j d¡|  ¡|  |j¡dS)Nr%Ú)r rrrZ assertFalseÚisattyrr+rÚOSErrorr,r%rÚ assertTruerr r rÚ testErrorsTs  zAutoFileTests.testErrorsc CsÈddddddddd d dd gffd g }| d ¡|j ddd¡| |jj¡|D](\}}t|j|ƒ}|jt|g|¢RŽqP| |j ddd¡d¡z ddWn$| |jjt   ¡Žd¡Yn0dS)N)Úfilenor )Úflushr )rBr )Ú__next__r ©r1r )r)ó©Úreadliner ©Ú readlinesr )Úseek)r)rr r0)Ú__iter__r )Útruncater r6r) Úappendr Ú__exit__rDrrrÚ ValueErrorrÚsysÚexc_info)r ÚmethodsÚ methodnameÚargsÚmethodr r rÚ testMethods_s2ô    zAutoFileTests.testMethodscCs| t|jj¡dSr)rrCr r1r r r rÚtestReadWhenWritingsz!AutoFileTests.testReadWhenWritingN)r<r=r>rrrr r)r-r4r:r;r@rEr[r\r r r rrs    "rc@seZdZejZdS)ÚCAutoFileTestsN©r<r=r>Úior r r r rr]„sr]c@seZdZeejƒZdS)ÚPyAutoFileTestsN©r<r=r>Ú staticmethodÚpyior r r r rr`‡sr`c@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)ÚOtherFileTestscCst t¡dSr)rrrr r r rrszOtherFileTests.tearDownc CsX| td¡ ¡dD]>}z| t|¡}Wnty:Yq0| ¡| d|¡qdS)Nr)rAZaUzwU+zU+z+UzrU+z%r is an invalid file mode)r rrrTÚfail)r rr r r rÚtestModeStringss zOtherFileTests.testModeStringsc Csˆd}z| t|¡}WnXtyl}z@|jddkrXt|ƒ}t|vsJ||vrX| d|¡WYd}~n d}~00| ¡| d|¡dS)NZqwertyrz&bad error message for invalid mode: %szno error for invalid mode: %s)r rrTrYÚstrrer)r Zbad_moder ÚmsgÚsr r rÚtestBadModeArgumentœs$z"OtherFileTests.testBadModeArgumentc Cs²zf| td|¡}| t|ƒ d¡¡| ¡| ¡| td|¡}t| ¡ d¡ƒ}| ¡| ¡Wn:t y }z"|  d|t|ƒf¡WYd}~n d}~00|  ||¡dS)NrÚasciir$z error setting buffer size %d: %s) r rrrgÚencoderÚintr1ÚdecoderCrer)r rir Údrhr r rÚ_checkBufferSize¬s ,zOtherFileTests._checkBufferSizec Cs~dD]>}tj|dtd| |¡Wdƒq1s80Yq| td¡| d¡Wdƒn1sp0YdS)N)éÿÿÿÿrizline buffering)ÚmessageÚcategoryr6)rZcheck_no_warningsÚRuntimeWarningrpZassertWarnsRegex)r rir r rÚtestSetBufferSizeºsþ*z OtherFileTests.testSetBufferSizecCsÔ| td¡}z¸| d¡| ¡| td¡}| d¡}|dkrL| d|¡| ¡dkrj| d| ¡¡| ¡| ¡dkr| d| ¡¡| ¡tj   t¡}|dkrº| d |¡W| ¡n | ¡0dS) Nrs 12345678901zrb+és12345z(Read on file opened for update failed %rzFile pos after read wrong %dz!File pos after ftruncate wrong %dz"File size after ftruncate wrong %d) r rrrr1rerrQÚosÚpathÚgetsize)r r ÚdataÚsizer r rÚtestTruncateOnWindowsÈs$       z$OtherFileTests.testTruncateOnWindowscCs¦d}d}|t|ƒ}gd¢}ddddtdd ƒffg}| td ¡}| ||¡| |¡| ¡|D]>\}}| td ¡} | t| ƒ|¡t | |ƒ} | |Ž|  ¡qd| td ¡} t |ƒD] } t| ƒq¸|  d ¡} z |   ¡} Wnt yø| d ¡Yn0| | kr| d| | f¡|  d ¡} tddt| ƒƒ}z|  |¡Wnt y^| d¡Yn0| ¡} | | kr„| d| | f¡|  d ¡} z|  t| ƒ¡} Wnt y¾| d¡Yn0| | krÜ| d| | f¡z |  ¡}Wnt y| d¡Yn0||kr$| d| | f¡|  ¡| td ¡} z^| D]} q>z&|   ¡|  |¡|  ¡|  ¡Wnt yŠ| d¡Yn0W|  ¡n |  ¡0dS)Ni@sham )sspam, spam and eggs seggs, spam, ham and spam ssaussages, spam, spam and eggs sspam, ham, spam and eggs s(spam, spam, spam, spam, spam, ham, spam swonderful spaaaaaam. rKrIrMr%r"sd rr$rzLreadline() after next() with supposedly empty iteration-buffer failed anywayzEreadline() after next() with empty buffer failed. Got %r, expected %rózLreadinto() after next() with supposedly empty iteration-buffer failed anywayzEreadinto() after next() with empty buffer failed. Got %r, expected %rzHread() after next() with supposedly empty iteration-buffer failed anywayzAread() after next() with empty buffer failed. Got %r, expected %rzMreadlines() after next() with supposedly empty iteration-buffer failed anywayzFreadlines() after next() with empty buffer failed. Got %r, expected %rz'read* failed after next() consumed file)Úlenrr rrr0rrÚnextrÚrangeÚpoprLrTrer%r&r1rN)r Z dataoffsetZfillerZnchunksZ testlinesrWZbagrXrYr ÚmethÚiZtestlineÚliner3Úlinesr r rÚ testIterationäsŒ ÿ            ÿ  ÿ  ÿ  ÿ   zOtherFileTests.testIterationN) r<r=r>rrfrjrprur|r†r r r rrd‹s rdc@seZdZejZdS)ÚCOtherFileTestsNr^r r r rr‡Esr‡c@seZdZeejƒZdS)ÚPyOtherFileTestsNrar r r rrˆHsrˆÚ__main__)rUrwZunittestrÚweakrefrr_Z_pyiorcZ test.supportrÚtestrÚ collectionsrrZTestCaser]r`rdr‡rˆr<Úmainr r r rÚs$     v;