asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a bYh4@sddlZddlZddlZddlZddlZddlZddlmZddlm Z ddZ ddZ Gdd d ej Z eejd d Gd d d ej ZGdddej ZGdddej ZedkredS)N)support) win32_editioncCstjagt_dt_tdS)NF) mimetypes knownfilesZinitedZ_default_mime_typesrr//usr/local/lib/python3.9/test/test_mimetypes.py setUpModule srcCs tt_dSN)rrrrrrtearDownModulesr c@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) MimeTypesTestCasecCst|_dSr )r MimeTypesdbselfrrrsetUpszMimeTypesTestCase.setUpcCsb|j}||jd|jd||jd|jd||jdd||jdddS) Nz foobar.HTMLz foobar.htmlz foobar.TGZz foobar.tgzz foobar.tar.Zapplication/x-tarcompressz foobar.tar.zNN assertEqualr guess_typereqrrrtest_case_sensitivitys z'MimeTypesTestCase.test_case_sensitivitycCs|j}||jdd||jdd||jdd||jdd||jdd||jd d ||jd d dS) Nfoo.html text/htmlNzfoo.HTMLzfoo.tgzrgzipz foo.tar.gzz foo.tar.Zrz foo.tar.bz2)rbzip2z foo.tar.xz)rxzrrrrrtest_default_data&sz#MimeTypesTestCase.test_default_datacCsJ|j}|jj}||dd||dd||dd||dddS)Nzdata:invalidDataWithoutCommarzdata:,thisIsTextPlain text/plainNzdata:;base64,thisIsTextPlainzdata:text/x-foo,thisIsTextXFoo)z text/x-fooNr)rrrrrrtest_data_urls0s z MimeTypesTestCase.test_data_urlscCsD|j}td}|j|||jdd||jdddS)N x-application/x-unittest pyunit z foo.pyunit)x-application/x-unittestNr'.pyunit)rioStringIOr Zreadfprguess_extension)rrsiorrrtest_file_parsing8s   z#MimeTypesTestCase.test_file_parsingc Cs|j}|tdtB}d}t|d}||t|}||ddWdn1sf0Yt}d}t|d}|j|ddd dl }t |d dd d t|}Wdn1s0Y||ddWdn1s0YdS)Nz non-existentr&zsample.mimetyper(r'u#application/no-mans-land Françaiszutf-8)encodingrgetpreferredencodingTcSsdS)NASCIIr) do_setlocalerrrUz8MimeTypesTestCase.test_read_mime_types..u .Françaiszapplication/no-mans-land)T) rZ assertIsNonerZread_mime_typesrZtemp_dirpathlibPath write_text _bootlocaleZ swap_attr)rrZ directorydatafileZ mime_dictr7rrrtest_read_mime_types@s     ,  (z&MimeTypesTestCase.test_read_mime_typescCs|j}||jjdddd||jjdddd||jjdddd||jjdddd||jjd ddd||jjdddd ||jjd ddd dS) Nzfoo.xulTstrictr image/jpgF)ztext/xulNzfoo.XULz foo.invalid.jpgz image/JPG)rr rr+rrrrtest_non_standard_typesYsz)MimeTypesTestCase.test_non_standard_typescCs|j}d}||jd|||jd|||jd|||jd|||jd|||jd|||jd|||jd |dS) Nrz ;1.tar.gzz ?1.tar.gzz #1.tar.gzz #1#.tar.gzz ;1#.tar.gzz;&1=123;?.tar.gzz?k1=v1&k2=v2.tar.gzz \"\`;b&b&c |.tar.gzr)rrZ gzip_expectedrrr!test_filename_with_url_delimitersesz3MimeTypesTestCase.test_filename_with_url_delimiterscCs|jjddd}|t|hdk|tt|t||jjddd}||dg|jjddd}||g|jdd |jjdd dd|jjddd}||d d g|jd}||d g|d |jd}|d |dS) Nr$Tr;>z.cz.ksh.txtz.plz.batz.hr=Fr>z test-typez .strict-extz.non-strict-extz .no-such-ext) r guess_all_extensionsZ assertTruesetrlenadd_typeappendZ assertNotIn)rallrrrtest_guess_all_typests     z&MimeTypesTestCase.test_guess_all_typescCsXtj}|ttd|ddt_td}t|g}|jddd}| |dd gdS) Nr/cSsdS)Nasciirrrrrr2r3z1MimeTypesTestCase.test_encoding..z mime.typeszapplication/vnd.geocube+xmlTr;z.g3u.g³) localer/Z addCleanupsetattrrZfindfilerr rBr)rr/filenameZmimesZextsrrr test_encodings    zMimeTypesTestCase.test_encodingcCs<tdd|tddt|tdddS)Nzfoo/barz.foobar)rrErr+initrrrrtest_init_reinitializess z)MimeTypesTestCase.test_init_reinitializescs$fdd}|t|dS)Ncs$tddtddtddtddtd d td d td dtddtddtddtddtddtddtddtddtdd dS)!Nzapplication/octet-streamz.binzapplication/postscriptz.pszapplication/vnd.apple.mpegurlz.m3uzapplication/vnd.ms-excelz.xlszapplication/vnd.ms-powerpointz.pptzapplication/x-texinfoz.texizapplication/x-troffz.roffzapplication/xmlz.xslz audio/mpegz.mp3 image/jpegr>z image/tiffz.tiffzmessage/rfc822z.emlrz.htmlr$rAz video/mpegz.mpegzvideo/quicktimez.mov)rrr+rrrrcheck_extensionss zDMimeTypesTestCase.test_preferred_extension..check_extensions)rrN)rrQrrrtest_preferred_extensions z*MimeTypesTestCase.test_preferred_extensioncCsttj}tj}tj}tj}t||tj||tj||tj||tj||tj||tj||tj||tjdSr )rrN suffix_map encodings_map types_map common_typesZ assertIsNotr)rrSrTrUrVrrrtest_init_stabilitysz%MimeTypesTestCase.test_init_stabilitycCsd}t|}td|}td|}td}|j|}||j||||j||||j||||j|ddS)Nz LICENSE.txtz/dir/z../dir/z./r)r4r5r rr)rrLfilepathZfilepath_with_abs_dirZfilepath_relativeZpath_dirZexpectedrrrtest_path_like_obs    z#MimeTypesTestCase.test_path_like_obcCsL||jjdddd||jjdddg||jjdddddS) NrT)urlr<rr=)typer<Fr>)rr rrBr+rrrrtest_keywords_args_apis   z(MimeTypesTestCase.test_keywords_args_apiN)__name__ __module__ __qualname__rrr"r%r-r:r?r@rHrMrOrRrWrYr\rrrrr s    r winz Windows onlyc@s6eZdZddZddZeedvdddZd S) Win32MimeTypesTestCasecCs,tj|_tjtt|_dSr )rrUcopyoriginal_types_mapclearrNr r rrrrrs  zWin32MimeTypesTestCase.setUpcCstjtj|jdSr )rrUrdupdatercrrrrtearDowns zWin32MimeTypesTestCase.tearDown)Z NanoServerZWindowsCoreHeadlessZ IoTEdgeOSz$MIME types registry keys unavailablecCs@|j}||jdd||jdd||jdddS)Nzfoo.txtr#z image.jpg)rPNz image.png)z image/pngNrrrrrtest_registry_parsingsz,Win32MimeTypesTestCase.test_registry_parsingN) r]r^r_rrfunittestZskipIfrrgrrrrras  rac@seZdZddZdS) MiscTestCasecCst|tdSr )rZ check__all__rrrrr test__all__szMiscTestCase.test__all__N)r]r^r_rjrrrrrisric@s4eZdZddZddZddZddZd d Zd S) MimetypesCliTestCasecOsXt|tdtjg|t$}t|WdS1sJ0YdS)Nargv) rpatchsys executablecaptured_stdoutr_maingetvaluestrip)rargskwargsoutputrrr mimetypes_cmds z"MimetypesCliTestCase.mimetypes_cmdc Cst|tdtjdgtB}|t}tWdn1sH0YWdn1sf0Y| d| | |j j ddS)Nrlz-hUsage: mimetypes.pyrrrmrnrorpZ assertRaises SystemExitrrqZassertInrrr exceptioncoderrvcmrrrtest_help_option s   Dz%MimetypesCliTestCase.test_help_optionc Cst|tdtjdgtB}|t}tWdn1sH0YWdn1sf0Y| d| | |j j ddS)Nrlz --invalidrxryr}rrrtest_invalid_options   Dz(MimetypesCliTestCase.test_invalid_optioncCsN|j}|ddd}||d|dd}||d|dd}||ddS)N-lz-er=r>z*I don't know anything about type image/jpgrPrrw)rr extensionrrrtest_guess_extensions    z)MimetypesCliTestCase.test_guess_extensioncCs4|j}|dd}||d|d}||ddS)Nrzfoo.picztype: image/pict encoding: Nonez(I don't know anything about type foo.picr)rrZ type_inforrrtest_guess_type)s    z$MimetypesCliTestCase.test_guess_typeN)r]r^r_rwrrrrrrrrrks    rk__main__)r)rJrr4rnrhtestrplatformrrr ZTestCaser Z skipUnless startswithrarirkr]mainrrrrs"   J0