a
    ze                     @   sz   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rve   dS )
    N)fnmatchfnmatchcase	translatefilterc                   @   sZ   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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)
assertTrueassertFalse)selffilenamepatternZshould_matchfn r   '/usr/lib/python3.9/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   s    | j }|dd |ddd d S )NZ2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz*a*a*a*a*a*a*a*a*a*aZ3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFr   r   r   r   r   test_slow_fnmatch0   s    
z!FnmatchTestCase.test_slow_fnmatchc                 C   sD   |  ttdd |  ttdd |  ttdd |  ttdd d S Ntest   *   testr   )assertRaises	TypeErrorr   r   r	   r   r   r   test_mix_bytes_str7   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AbCFusr/binusr\bin)r   r   r   r   r   r   test_fnmatchcase=   s    z FnmatchTestCase.test_fnmatchcasec                 C   s(   |  dd |  dd |  dd d S )Nr   s   te*s   tests   te*s   foo
bars   foo*r   r!   r   r   r   
test_bytesI   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_caseN   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   /r$   r%   r)   )r	   normsepr   r   r   r   test_sepV   s    
zFnmatchTestCase.test_sepc                 C   sz   t  ^ t dt | j}|dd |dd |dd |dd	 |d
d |dd W d    n1 sl0    Y  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   test_warnings^   s    





zFnmatchTestCase.test_warningsN)__name__
__module____qualname__r   r   r   r   r"   r&   r'   r.   r1   r=   r   r   r   r   r   	   s   
r   c                   @   s   e Zd Zdd ZdS )TranslateTestCasec           
      C   s  dd l }| tdd | tdd | tdd | tdd	 | td
d | tdd | tdd | 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  | |d |d   d!|d  }d!|d  }| |d"| d#| d$| d#| d%	 td&}td'}td(}d)|||g}	| ||	d* | ||	d+ | ||	d, | ||	d- d S ).Nr   r   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)\Zz*.txtz(?s:.*\.txt)\Zz	*********z
A*********z
(?s:A.*)\Zz
*********Az
(?s:.*A)\ZzA*********?[?]?z(?s:A.*.[?].)\Zz
**a*a****az\d+            gz(?s:(?=(?P<z>.*?a))(?P=z)(?=(?P<z).*a)\Zz
**a**a**a*z
**b**b**b*z*c*c*c*r5   ZabaccadZabxbcabZcbabcaxcZdabccbad)	reassertEqualr   findalllenjoinr   matchr   )
r	   rH   tdigitsZg1Zg2Zr1Zr2Zr3Zfatrer   r   r   test_translatel   s@    z TranslateTestCase.test_translateN)r>   r?   r@   rP   r   r   r   r   rA   j   s   rA   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
FilterTestCasec                 C   s8   |  tg ddddg |  tg ddddg d S )	N)PythonZRubyPerlZTclzP*rR   rS   )   Pythons   Ruby   Perls   Tcls   P*rT   rU   )rI   r   r!   r   r   r   test_filter   s    zFilterTestCase.test_filterc                 C   s(   |  ttdgd |  ttdgd d S r   )r   r    r   r!   r   r   r   r"      s    z!FilterTestCase.test_mix_bytes_strc                 C   sd   t jdt jdk}| tg dd|r4ddgndg | tg dd|rXddgndg d S )NPp)Test.pyzTest.rbTest.PLz*.p*rY   rZ   z*.P*r*   r+   r,   rI   r   )r	   r-   r   r   r   r.      s    zFilterTestCase.test_casec                 C   sd   t jdt jdk}| tg dd|r4ddgndg | tg dd|rXddgndg d S )Nr   r/   )r$   Zusrusr\libzusr/*r$   r\   zusr\*r[   )r	   r0   r   r   r   r1      s    zFilterTestCase.test_sepN)r>   r?   r@   rV   r"   r.   r1   r   r   r   r   rQ      s   rQ   __main__)Zunittestr*   r9   r   r   r   r   ZTestCaser   rA   rQ   r>   mainr   r   r   r   <module>   s   a)