B
    2*™\Ï  ã               @   s~   d Z ddlZddlZddlZddlmZmZmZmZ G dd„ dejƒZ	G dd„ dejƒZ
G dd	„ d	ejƒZed
krze ¡  dS )z"Test cases for the fnmatch module.é    N)ÚfnmatchÚfnmatchcaseÚ	translateÚfilterc               @   sR   e Zd Zdefdd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚFnmatchTestCaseTc             C   s>   |r |   |||ƒd||f ¡ n|  |||ƒd||f ¡ d S )Nzexpected %r to match pattern %rz#expected %r not to match pattern %r)Z
assertTrueZassertFalse)ÚselfÚfilenameÚpatternZshould_matchÚfn© r   ú<C:\ALexclude\prg\programme\Python37\Lib\test\test_fnmatch.pyÚcheck_match   s    zFnmatchTestCase.check_matchc             C   sÈ   | j }|ddƒ |ddƒ |ddƒ |ddƒ |ddƒ |ddƒ |ddƒ |ddƒ |dd	d
ƒ |ddd
ƒ |ddd
ƒ |ddƒ |ddƒ |ddd
ƒ |ddƒ |ddƒ |ddd
ƒ |ddƒ d S )NÚabcz?*?z???*z*???z???Ú*zab[cd]zab[!de]zab[de]FÚaz??Úbú\z[\]z[!\]zfoo
barzfoo*zfoo
bar
z
fooÚ
)r   )r   Úcheckr   r   r   Útest_fnmatch   s&    











zFnmatchTestCase.test_fnmatchc             C   sD   |   ttdd¡ |   ttdd¡ |   ttdd¡ |   ttdd¡ d S )NÚtestó   *s   testr   )ÚassertRaisesÚ	TypeErrorr   r   )r   r   r   r   Útest_mix_bytes_str0   s    z"FnmatchTestCase.test_mix_bytes_strc             C   sz   | j }|dddtƒ |dddtƒ |dddtƒ |dddtƒ |dddtƒ |dddtƒ |dddtƒ |dddtƒ d S )Nr   TÚAbCFzusr/binzusr\bin)r   r   )r   r   r   r   r   Útest_fnmatchcase6   s    z FnmatchTestCase.test_fnmatchcasec             C   s(   |   dd¡ |   dd¡ |   dd¡ d S )Ns   tests   te*s   testÿs   te*ÿs   foo
bars   foo*)r   )r   r   r   r   Ú
test_bytesB   s    zFnmatchTestCase.test_bytesc             C   sN   t j d¡t j d¡k}| j}|ddƒ |dd|ƒ |dd|ƒ |ddƒ d S )NÚABCr   r   )ÚosÚpathÚnormcaser   )r   Ú
ignorecaser   r   r   r   Ú	test_caseG   s    
zFnmatchTestCase.test_casec             C   sN   t j d¡t j d¡k}| j}|ddƒ |dd|ƒ |dd|ƒ |ddƒ d S )Nr   ú/zusr/binzusr\bin)r   r    r!   r   )r   Únormsepr   r   r   r   Útest_sepO   s    
zFnmatchTestCase.test_sepc          	   C   sf   t  ¡ T t  dt¡ | j}|ddƒ |ddƒ |ddƒ |dd	ƒ |d
dƒ |ddƒ W d Q R X d S )NÚerrorú[z[[]ú&z[a&&b]ú|z[a||b]ú~z[a~~b]ú,z[a-z+--A-Z]Ú.z[a-z--/A-Z])ÚwarningsÚcatch_warningsÚsimplefilterÚWarningr   )r   r   r   r   r   Útest_warningsW   s    





zFnmatchTestCase.test_warningsN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r#   r&   r2   r   r   r   r   r   	   s   
r   c               @   s   e Zd Zdd„ ZdS )ÚTranslateTestCasec             C   s„   |   tdƒd¡ |   tdƒd¡ |   tdƒd¡ |   tdƒd¡ |   td	ƒd
¡ |   tdƒd¡ |   tdƒd¡ |   tdƒd¡ d S )Nr   z	(?s:.*)\Zú?z(?s:.)\Zza?b*z(?s:a.b.*)\Zz[abc]z(?s:[abc])\Zz[]]z
(?s:[]])\Zz[!x]z(?s:[^x])\Zz[^x]z(?s:[\^x])\Zz[xz
(?s:\[x)\Z)ÚassertEqualr   )r   r   r   r   Útest_translatee   s    z TranslateTestCase.test_translateN)r3   r4   r5   r9   r   r   r   r   r6   c   s   r6   c               @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚFilterTestCasec             C   s@   |   tddddgdƒddg¡ |   tdddd	gd
ƒddg¡ d S )NÚPythonZRubyZPerlZTclzP*s   Pythons   Rubys   Perls   Tcls   P*)r8   r   )r   r   r   r   Útest_filterr   s    
zFilterTestCase.test_filterc             C   s(   |   ttdgd¡ |   ttdgd¡ d S )Nr   r   s   testr   )r   r   r   )r   r   r   r   r   x   s    z!FilterTestCase.test_mix_bytes_strc             C   sh   t j d¡t j d¡k}|  tdddgdƒ|r6ddgndg¡ |  tdddgdƒ|r\ddgndg¡ d S )NÚPÚpzTest.pyzTest.rbzTest.PLz*.p*z*.P*)r   r    r!   r8   r   )r   r"   r   r   r   r#   |   s
    zFilterTestCase.test_casec             C   sh   t j d¡t j d¡k}|  tdddgdƒ|r6ddgndg¡ |  tdddgdƒ|r\ddgndg¡ d S )Nr   r$   zusr/binZusrzusr\libzusr/*zusr\*)r   r    r!   r8   r   )r   r%   r   r   r   r&   ƒ   s
    zFilterTestCase.test_sepN)r3   r4   r5   r<   r   r#   r&   r   r   r   r   r:   p   s   r:   Ú__main__)Ú__doc__Zunittestr   r.   r   r   r   r   ZTestCaser   r6   r:   r3   Úmainr   r   r   r   Ú<module>   s   Z