a
    äze(  ã                   @   sZ  d dl Z d dlZd dlZd dlZd dlZej d¡Zddddddœgd	d
ddœgddddddœgdddœgd	dddœddddœgdddœgddd	dd d!œgd"d	d#d$d%œgd&d'dœgd(d)dœgd*d+dœgd,d-d d.œgd&d/dœgd0œZ	e 
e	¡Ze ¡ D ]ZeD ]Ze d1¡ qüqôG d2d3„ d3ejƒZG d4d5„ d5ejƒZG d6d7„ d7ejƒZed8krVe ¡  dS )9é    Nzmailcap.txtzmoviemaker %sz""/usr/lib/Zmail/bitmaps/movie.xbm"z"Movie"zmovieplayer %sé   )Úcomposez
x11-bitmapÚdescriptionÚviewÚlinenoÚ z?echo "This is \"%t\" but        is 50 \% Greek to me" \; cat %sé   )Úcopiousoutputr   r   úaudiocompose %sú"An audio fragment"úshowaudio %sé   ©Úeditr   r   r   r   úmpeg_play %sé   ©r   r   zps-to-terminal %sé   )Úneedsterminalr   r   zidraw %sé   )r   r   r   zxdvi %sé   úextcompose %sú4"A reference to data stored in an external location"úQshowexternal %s %{access-type} %{name} %{site}     %{directory} %{mode} %{server}é
   ©Zcomposetypedr   r   r   r   z?test "`echo     %{charset} | tr '[A-Z]' '[a-z]'`"  = iso-8859-8z)shownonascii iso-8859-8 -e richtext -p %sé   )Útestr	   r   r   z
display %sé	   ú/usr/local/bin/showaudio %té   ú
animate %sé   z"cat %s | lp"zshowframe %s)Úprintr   r   é   )zapplication/x-moviezapplication/*úaudio/basicú
video/mpegzapplication/postscriptzapplication/x-dviúmessage/external-bodyztext/richtextzimage/x-xwindowdumpúaudio/*úvideo/*zapplication/framez	image/rgbr   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚHelperFunctionTestc                 C   sž   t  ¡ }|  |t¡ |D ]}|  |t¡ qtj ¡ J}d|v rP|d  t	j
¡}n ddg}t	j
 |¡|d< t  ¡ }W d   ƒ n1 s„0    Y  |  ||¡ d S )NÚMAILCAPSz/testdir1/.mailcapz/testdir2/mailcap)ÚmailcapÚlistmailcapfilesÚassertIsInstanceÚlistÚstrr   ÚsupportÚEnvironmentVarGuardÚsplitÚosÚpathsepÚjoinÚassertEqual)ÚselfZmcfilesÚmÚenvZenv_mailcaps© r;   ú'/usr/lib/python3.9/test/test_mailcap.pyÚtest_listmailcapfilesE   s    &z(HelperFunctionTest.test_listmailcapfilesc              	   C   sn   t tdƒD}|  t¡ t |¡}W d   ƒ n1 s60    Y  W d   ƒ n1 sT0    Y  |  |t¡ d S )NÚr)ÚopenÚMAILCAPFILEZassertWarnsÚDeprecationWarningr,   ZreadmailcapfileÚassertDictEqualÚMAILCAPDICT_DEPRECATED)r8   ÚmcfÚdr;   r;   r<   Útest_readmailcapfileX   s    Fz'HelperFunctionTest.test_readmailcapfilec                 C   sˆ   dddœdddœg}t  td¡}|  ||¡ d}ddd	d
ddœg}t  td|¡}|  ||¡ ddiddig}t  td¡}|  ||¡ d S )Nr!   r"   r   r   r   r&   r   r
   r   r   r   r   r%   r   )r,   ÚlookupÚMAILCAPDICTZassertListEqualrC   )r8   ZexpectedÚactualÚkeyr;   r;   r<   Útest_lookup_   s"    ÿüzHelperFunctionTest.test_lookupc                 C   sŒ   g d¢}g d¢dfg d¢dfg d¢dfg d¢d fg d	¢d
fg d¢dfddd|gdfddd|gdfg}|D ]}|   tj|d Ž |d ¡ qhd S )N)zid=1znumber=2ztotal=3)r   r(   úfoo.txtr   )úecho foor(   rL   rM   )zecho %sr(   rL   zecho foo.txt)úecho %tr(   rL   )rN   ú	audio/wavrL   zecho audio/wav)zecho \%tr(   rL   rN   r(   rL   zecho %{total}zecho 3r   r   )r7   r,   Úsubst)r8   ÚplistZ
test_casesZtcr;   r;   r<   Ú
test_substu   s    





ø
zHelperFunctionTest.test_substN)Ú__name__Ú
__module__Ú__qualname__r=   rF   rK   rR   r;   r;   r;   r<   r*   C   s   r*   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚGetcapsTestc                 C   sJ   t j ¡ ,}t|d< t ¡ }|  |t¡ W d   ƒ n1 s<0    Y  d S )Nr+   )r   r1   r2   r@   r,   ÚgetcapsrB   rH   )r8   r:   Úcapsr;   r;   r<   Útest_mock_getcapsˆ   s    zGetcapsTest.test_mock_getcapsc                 C   s€   t  ¡ }|  |t¡ t  ¡ }dd„ |D ƒ}|rp| ¡ D ]6\}}|  |t¡ |  |t¡ |D ]}|  |t¡ qZq6n|  i |¡ d S )Nc                 S   s   g | ]}t j |¡r|‘qS r;   )r4   ÚpathÚexists)Ú.0rD   r;   r;   r<   Ú
<listcomp>–   ó    z3GetcapsTest.test_system_mailcap.<locals>.<listcomp>)	r,   rW   r.   Údictr-   Úitemsr0   r/   r7   )r8   rX   ZmailcapfilesZexistingmcfilesÚkÚvÚer;   r;   r<   Útest_system_mailcap‘   s    zGetcapsTest.test_system_mailcapN)rS   rT   rU   rY   rd   r;   r;   r;   r<   rV   †   s   	rV   c                   @   s6   e Zd Zdd„ Ze ejdkd¡dd„ ƒZdd„ Z	d	S )
ÚFindmatchTestc           	      C   sB  t }d}g d¢}ddddddœ}dd	d
œ}ddd
œ}ddddddœ}i dgi df|dgi df|dgi d|ff|ddgi d|ff|ddgi d|ff|ddgi d|ff|ddgi df|dgd|id| |ff|ddgd|id| |ff|dgd|dœd|ff|d gd|idf|d!gd|id"|ff|d#gd$|id%|ffg}|  |¡ d S )&NrL   )zaccess-type=defaultz	name=johnzsite=python.orgzdirectory=/tmpzmode=fooz
server=barr
   r   r   r   r   r   r    r   r!   r"   r   r   r   r   r   r   r&   ©NNzfoo/barzanimate /dev/nullr%   r   zaudiocompose /dev/nullr   r   Zfoobarr)   Úfilename)rJ   rg   r(   rO   z"/usr/local/bin/showaudio audio/wavr'   rQ   z?showexternal /dev/null default john python.org     /tmp foo bar)rH   Ú
_run_cases)	r8   ÚcZfnamerQ   Zaudio_basic_entryZaudio_entryZvideo_entryZmessage_entryÚcasesr;   r;   r<   Útest_findmatch¥   s\    û

ü
þþþþþëzFindmatchTest.test_findmatchÚposixz!Requires 'test' command on systemc                 C   sL   ddigddigdœ}|ddgi dddiff|ddgi dfg}|   |¡ d S )Nr   ztest 1 -eq 1ztest 1 -eq 0)ú	test/passú	test/failrm   rn   rf   )rh   )r8   rX   rj   r;   r;   r<   Ú	test_testÛ   s    ÿüzFindmatchTest.test_testc                 C   s2   |D ](}|   tj|d i |d ¤Ž|d ¡ qd S )Nr   r   r   )r7   r,   Z	findmatch)r8   rj   ri   r;   r;   r<   rh   í   s    zFindmatchTest._run_casesN)
rS   rT   rU   rk   ÚunittestZ
skipUnlessr4   Únamero   rh   r;   r;   r;   r<   re   £   s   6
re   Ú__main__)r,   r4   ÚcopyZtest.supportr   rp   r1   Zfindfiler@   rH   ÚdeepcopyrC   ÚvaluesZ
entry_listÚentryÚpopZTestCaser*   rV   re   rS   Úmainr;   r;   r;   r<   Ú<module>   sh   üþü


ÿ
üý



Ô1
CO
