o
    g                     @   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r?e  dS dS )z"Test cases for the fnmatch module.    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  d S | |||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   G/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/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      
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   r/   zFnmatchTestCase.test_sepc                 C   s|   t  0 t dt | j}|dd |dd |dd |dd	 |d
d |dd W d    d S 1 s7w   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.   r2   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*r6   ZabaccadZabxbcabZcbabcaxcZdabccbad)	reassertEqualr   findalllenjoinr   matchr   )
r	   rI   tdigitsZg1Zg2Zr1Zr2Zr3Zfatrer   r   r   test_translatel   s@   z TranslateTestCase.test_translateN)r?   r@   rA   rQ   r   r   r   r   rB   j   s    rB   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*rS   rT   )   Pythons   Ruby   Perls   Tcls   P*rU   rV   )rJ   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   j   t jdt jdk}| tg dd|rddgndg | tg dd|r/ddg d S dg d S )NPp)Test.pyzTest.rbTest.PLz*.p*r[   r\   z*.P*r*   r+   r,   rJ   r   )r	   r-   r   r   r   r.         
zFilterTestCase.test_casec                 C   rX   )Nr   r0   )r$   Zusrusr\libzusr/*r$   r_   zusr\*r]   )r	   r1   r   r   r   r2      r^   zFilterTestCase.test_sepN)r?   r@   rA   rW   r"   r.   r2   r   r   r   r   rR      s
    rR   __main__)__doc__Zunittestr*   r:   r   r   r   r   ZTestCaser   rB   rR   r?   mainr   r   r   r   <module>   s    a)