a ze@sddlZddlZddlZddlZddlZddlZddlmZmZm Z dZ Gdddej Z Gdddej Zedkr|edS) N)findfileTESTFNunlink) ) python.pngpng)z python.gifZgif)z python.bmpZbmp)z python.ppmZppm)z python.pgmZpgm)z python.pbmZpbm)z python.jpgZjpeg)z python.rasZrast)z python.sgiZrgb)z python.tiffZtiff)z python.xbmZxbm)z python.webpZwebp)z python.exrZexrc@seZdZddZddZdS) UnseekableIOcCs tjdSNioUnsupportedOperationselfrD/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_imghdr.pytellszUnseekableIO.tellcOs tjdSrr )r argskwargsrrrseekszUnseekableIO.seekN)__name__ __module__ __qualname__rrrrrrrsrc@sxeZdZeddZddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZddZdS) TestImghdrcCsHtddd|_t|jd}||_Wdn1s:0YdS)Nr imghdrdataZsubdirrb)rtestfileopenreadtestdata)clsstreamrrr setUpClass!szTestImghdr.setUpClasscCs ttdSr)rrr rrrtearDown'szTestImghdr.tearDownc CstD]\}}t|dd}|t||t|d"}|t||Wdn1s\0Yt|d}|}Wdn1s0Y|td|||tdt||qdS)Nrrr) TEST_FILESr assertEqualimghdrwhatrr bytearray)r filenameexpectedr datarrr test_data*s   0 &zTestImghdr.test_datac CsbtD]X\}}|j|d4t|dd}|tt||Wdq1sR0YqdS)N)r(rr)r#ZsubTestrr$r%r&pathlibPath)r r(r)rrrtest_pathlike_filename5s  z!TestImghdr.test_pathlike_filenamecCs:dd}tj||tjj|tddddS)NcSs|drdSdS)Neggsham) startswith)hfilerrr test_jumbo<s z1TestImghdr.test_register_test..test_jumbor/r0)r%ZtestsappendZ addCleanuppopr$r&)r r4rrrtest_register_test;s zTestImghdr.test_register_testcCsttd.}|d|}||jWdn1s>0Yttd<}|||t|d|||Wdn1s0YdS)Nwbs ababagalamagarr) rrwriterrrr$r%r&)r r posrrr test_file_posCs  *  zTestImghdr.test_file_posc CsF|ttWdn1s(0Y|ttdWdn1s\0Y|tt|jdWdn1s0Y|t"tt|jWdn1s0Yt|jdJ}|tt| Wdn1s0YWdn1s80YdS)Nr) assertRaises TypeErrorr%r&AttributeErrorrosfsencoderfileno)r frrr test_bad_argsMs & ( , 0 zTestImghdr.test_bad_argscCs dD]}|td|qdS)N)sPN ssYscutecats 000000JFIsGIF80)Z assertIsNoner%r&)r headerrrrtest_invalid_headersZszTestImghdr.test_invalid_headersc CsttdttD]\}}t|dd}t|d}|d}Wdn1s\0Y| t  t t |Wdn1s0Y| t t d|Wdq1s0YqWdn1s0YdS)Nignorerrrlatin1)warningscatch_warnings simplefilter BytesWarningr#rrrdecoder=r>r%r&r StringIO)r r(_r r*rrrtest_string_datacs     , . zTestImghdr.test_string_datacCs8|ttdWdn1s*0YdS)Nmissing)r=FileNotFoundErrorr%r&r rrrtest_missing_fileos zTestImghdr.test_missing_filecCst|jd}||t}t|Wdn1s>0Yt|j }||t}t|Wdn1s0YdS)Nr) rrcloser= ValueErrorr%r&r BytesIOrr r cmrrrtest_closed_filess  (  zTestImghdr.test_closed_filec Csttd}||jWdn1s,0YttdF}|tjt |Wdn1sn0YWdn1s0YdS)Nr8r) rrr9rrr=r r r%r&)r r rrrtest_unseekable}s  * zTestImghdr.test_unseekablec CsxttdZ}||j|d|t}t|Wdn1sL0YWdn1sj0YdS)Nr8r) rrr9rrr=OSErrorr%r&rWrrrtest_output_streams     zTestImghdr.test_output_streamN)rrr classmethodr!r"r+r.r7r;rDrFrPrSrYrZr\rrrrr s       r__main__)r%r r@r,ZunittestrIZ test.supportrrrr#FileIOrZTestCaserrmainrrrrsk