a ze.@sddlZddlZddlZddlmZddlmZddlZddlZddl m Z m Z ddl m Z ddlmZGdddZGd d d eejZGd d d eejZGd ddZGdddeejZGdddeejZedkredS)N)array)proxy)TESTFN gc_collect)support)UserListc@steZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZdS) AutoFileTestscCs|td|_dS)Nwb)openrfselfrB/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_file.pysetUpszAutoFileTests.setUpcCs|jr|jttdSN)r closerunlinkrr rrrtearDowns zAutoFileTests.tearDowncCsTt|j}|d||j||jd|_t|tt |ddS)Ns teststringtell) rr write assertEqualrrr assertRaisesReferenceErrorgetattr)r prrr testWeakRefss   zAutoFileTests.testWeakRefscCs|j}|j|j|jdSr)r namemodeclosedr r rrrtestAttributes#szAutoFileTests.testAttributescCsV|jd|jtdd}|td|_|j|}|d|d|dS)N12b xxxxxxxxxxrb) r rrrr rreadintortobytes)r anrrr testReadinto*s     zAutoFileTests.testReadintocCsDtdd}|j|td|_t|jdr@|t|jj|dS)Nr#r$rr&) rr rr rhasattrr TypeErrorr&)r r(rrrtestReadinto_text3s    zAutoFileTests.testReadinto_textcCsJtddg}|j||j|td|_|j}||ddS)N12r%r")rr writelinesrr rreadr)r lbufrrrtestWritelinesUserList;s     z$AutoFileTests.testWritelinesUserListcCs|t|jjgddSN)rr-r r1r rrrtestWritelinesIntegersDsz$AutoFileTests.testWritelinesIntegerscCs"tgd}|t|jj|dSr6)rrr-r r1)r r3rrrtestWritelinesIntegersUserListHs z,AutoFileTests.testWritelinesIntegersUserListcCs,Gddd}|t|jj||gdS)Nc@s eZdZdS)z8AutoFileTests.testWritelinesNonString..NonStringN)__name__ __module__ __qualname__rrrr NonStringOsr@r:)r r@rrrtestWritelinesNonStringMs  z%AutoFileTests.testWritelinesNonStringcCsd|j}||jt||||jt|drL|t t f|j d| | |jdS)Nr&)r rrrZ assertFalseisattyrr,rOSErrorr-r&r assertTruer rrr testErrorsUs  zAutoFileTests.testErrorsc Csddddddddd d dd gffd g }|d |jddd||jj|D](\}}t|j|}|jt|g|RqP||jddddz ddWn$||jjt dYn0dS)N)filenor)flushr)rCr)__next__rr2r)r)readliner readlinesr)seek)r)rrr1)__iter__r)truncaterr7r) appendr __exit__rErrr ValueErrorrsysexc_info)r methods methodnameargsmethodrrr testMethods`s2    zAutoFileTests.testMethodscCs|t|jjdSr)rrDr r2r rrrtestReadWhenWritingsz!AutoFileTests.testReadWhenWritingN)r=r>r?rrrr!r*r.r5r;r<rArFr\r]rrrrrs    "rc@seZdZejZdS)CAutoFileTestsNr=r>r?ior rrrrr^sr^c@seZdZeejZdS)PyAutoFileTestsNr=r>r? staticmethodpyior rrrrrasrac@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)OtherFileTestscCsttdSr)rrrr rrrrszOtherFileTests.tearDownc CsX|tddD]>}z|t|}Wnty:Yq0||d|qdS)Nr )rBZaUzwU+zU+z+UzrU+z%r is an invalid file mode)r rrrUfail)r rr rrrtestModeStringss zOtherFileTests.testModeStringscCstjdkr|dtjs(|d|ttftjdWdn1sX0Y|ttftj Wdn1s0YdS)NZosf1V5zE sys.stdin.seek(-1) may crash the interpreter on OSF1. Test manually.z stdin must be a TTY in this test) rVplatformZskipTeststdinrCrIOErrorrUrPrRr rrr testStdins   *zOtherFileTests.testStdinc Csd}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 rrUrZstrrfr)r Zbad_moder msgsrrrtestBadModeArguments$z"OtherFileTests.testBadModeArgumentc Cszf|td|}|t|d|||td|}t|d}||Wn:t y}z"| d|t|fWYd}~n d}~00| ||dS)Nr asciir%z error setting buffer size %d: %s) r rrrmencoderintr2decoderDrfr)r ror drnrrr_checkBufferSizes ,zOtherFileTests._checkBufferSizec Cs~dD]>}tj|dtd||Wdq1s80Yq|td|dWdn1sp0YdS)N)rhrizline buffering)messagecategoryr7)rZcheck_no_warningsRuntimeWarningrvZassertWarnsRegex)r rorrrtestSetBufferSizes*z OtherFileTests.testSetBufferSizecCs|td}z|d||td}|d}|dkrL|d||dkrj|d|||dkr|d||tj t}|dkr|d |W|n |0dS) Nr s 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 rrrr2rfrrRospathgetsize)r r datasizerrrtestTruncateOnWindowss$       z$OtherFileTests.testTruncateOnWindowscCsd}d}|t|rJd|t|}gd}ddddtd d ffg}|td }|||||||D]>\}}|td } |t| |t | |} | || qx|td } t |D] } t| q| d } z | } Wnt y|dYn0| | kr,|d| | f| d } td dt| }z| |Wnt yt|dYn0|} | | kr|d| | f| d } z| t| } Wnt y|dYn0| | kr|d| | fz | }Wnt y|dYn0||kr:|d| | f| |td } z^| D]} qTz&| | || | Wnt y|dYn0W| n | 0dS)Ni@sham z*dataoffset must be multiple of len(filler))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. rLrJrNr&r#sd r r%rzLreadline() after next() with supposedly empty iteration-buffer failed anywayzEreadline() after next() with empty buffer failed. Got %r, expected %rzLreadinto() 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 rrr1rrnextrrangepoprMrUrfr&r'r2rO)r Z dataoffsetZfillerZnchunksZ testlinesrXZbagrYrZr methiZtestlineliner4linesrrr testIterations                     zOtherFileTests.testIterationN) r=r>r?rrgrlrprvrzrrrrrrres rec@seZdZejZdS)COtherFileTestsNr_rrrrrVsrc@seZdZeejZdS)PyOtherFileTestsNrbrrrrrYsr__main__)rVr|Zunittestrweakrefrr`Z_pyiordZ test.supportrrtestr collectionsrrZTestCaser^rarerrr=mainrrrrs$    wK