
    daf*                         d Z ddl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ej                        Z
 G d dej                        Z G d d	ej                        Zed
k(  r ej                          yy)z"Test cases for the fnmatch module.    N)fnmatchfnmatchcase	translatefilterc                   `    e Zd ZdefdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)FnmatchTestCaseTc                     |r | j                   |||      d|d|       y | j                   |||      d|d|       y )Nz	expected z to match pattern z not to match pattern )
assertTrueassertFalse)selffilenamepatternshould_matchfns        ,/root/Python-3.12.4/Lib/test/test_fnmatch.pycheck_matchzFnmatchTestCase.check_match   sG    OOBx1$g/0 R'2$g/0    c                 j   | 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       y )Nabcz?*?z???*z*???z???*zab[cd]zab[!de]zab[de]Faz??b\[\]z[!\]zfoo
barzfoo*zfoo
bar
z
foo
r   r   checks     r   test_fnmatchzFnmatchTestCase.test_fnmatch   s      eUeUeVeVeUeSeXeYeXu%c4c3 	dFc7dGU# 	j&!lF#gvu%dCr   c                 B    | j                   } |dd        |ddd       y )N2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz*a*a*a*a*a*a*a*a*a*a3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFr   r   s     r   test_slow_fnmatchz!FnmatchTestCase.test_slow_fnmatch1   s'      h./ 	n4e<r   c                     | j                  t        t        dd       | j                  t        t        dd       | j                  t        t        dd       | j                  t        t        dd       y Ntest   *   testr   )assertRaises	TypeErrorr   r   r   s    r   test_mix_bytes_strz"FnmatchTestCase.test_mix_bytes_str8   sR    )Wfd;)Wgs;)[&$?)['3?r   c                    | 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               y )Nr   TAbCFusr/binusr\bin)r   r   r   s     r   test_fnmatchcasez FnmatchTestCase.test_fnmatchcase>   s}      eUD+.eUE;/eUE;/eUD+.iD+6j)UK8iUK8j*dK8r   c                 p    | j                  dd       | j                  dd       | j                  dd       y )Nr(   s   te*s   tests   te*s   foo
bars   foo*r   r+   s    r   
test_byteszFnmatchTestCase.test_bytesJ   s2    &)j1g.r   c                     t         j                  j                  d      t         j                  j                  d      k(  }| j                  } |dd        |dd|        |dd|        |dd       y )NABCr   r.   ospathnormcaser   )r   
ignorecaser   s      r   	test_casezFnmatchTestCase.test_caseO   sa    WW%%e,0@0@0GG
  eUeUJ'eUJ'eUr   c                     t         j                  j                  d      t         j                  j                  d      k(  }| j                  } |dd        |dd|        |dd|        |dd       y )Nr   /r/   r0   r6   r   normsepr   s      r   test_sepzFnmatchTestCase.test_sepW   sa    ''""4(BGG,<,<S,AA  i#j)W-iW-j*%r   c                    t         j                  j                  d      t         j                  j                  d      k(  }| j                  }t        j
                  t        j                  z   t        j                  z   }|D ]  } ||d|dv         ||d|dv        |D ]#  } ||d|dv xr |        ||d|dvxs |        % t        j                  D ]#  } ||d|dv xr |        ||d|dvxs |        % |D ]  } ||d	|d
k(          |D ]'  } ||d|dv         ||d|dv         ||d|dk7         )  |dd        |dd        |dd        |dd       y )Nr5   r   z[az]azz[!az]z[AZ]z[!AZ]AZz[aa]r   z[^az]z^azz[[az]z[azz[!]]][z[]z[!z[!]	r7   r8   r9   r   stringascii_lowercasedigitspunctuationascii_uppercase)r   r:   r   tescasescs        r   test_char_setzFnmatchTestCase.test_char_set_   s   WW%%e,0@0@0GG
  ))FMM9F<N<NN 	-A!VQ$Y'!Watm,	-  	AA!Va4i7Z8!Wq}?Z@	A '' 	AA!Va4i7Z8!Wq}?Z@	A  	'A!VQ#X&	'  	(A!Wa5j)!Wa5j)!Wa3h'	( 	c3dDdDeUr   c                    t         j                  j                  d      t         j                  j                  d      k(  }t         j                  j                  d      t         j                  j                  d      k(  }| j                  }t        j
                  t        j                  z   t        j                  z   }|D ]2  } ||d|dv         ||d|dv        ||d|d	v         ||d
|d	v       4 |D ]#  } ||d|dv xr |        ||d|dvxs |        % t        j                  D ]#  } ||d|dv xr |        ||d|dvxs |        % |D ]  } ||d|dk(          |D ]  } ||d|dv        ||d|dv        ||d|dv        |r|dk(  s ||d|dv         ||d|dv         ||d|dv         ||d|dv        ||d|dv         ||d|dv        ||d|d v         ||d!|d v        |D ]N  } ||d"d#        ||d$d%        ||d&|d'v         ||d(|d'v        ||d)|dv        |r|dk(  rC ||d*|dv        P y )+Nr5   r   r   r=   z[b-d]bcdz[!b-d]z[b-dx-z]bcdxyzz	[!b-dx-z]z[B-D]z[!B-D]BCDz[b-b]r   z[!-#]z-#z[!--.]z-.z[^-`]z^_`z[[-^]z[\]^z[\-^]z\]^z[b-]z-bz[!b-]z[-b]z[!-b]z[-]-z[!-]z[d-b]Fz[!d-b]Tz[d-bx-z]xyzz	[!d-bx-z]z[d-b^-`]z[d-b[-^]rF   )r   r:   r?   r   rL   rM   s         r   
test_rangezFnmatchTestCase.test_rangez   s   WW%%e,0@0@0GG
''""4(BGG,<,<S,AA  ))FMM9F<N<NN 	5A!Wa5j)!Xq~.!Zh/![!8"34		5  	CA!WqEz9z:!XAz>B	C '' 	CA!WqEz9z:!XAz>B	C  	(A!Wa3h'	(  	+A!Watm,!Xq}-!Wa5j)Sa!w,/a1;/!VQ$Y'!Watm,!VQ$Y'!Watm,!UAH%!VQc\*	+  	3A!We$!Xt$!Ze,![!5.1!Ze,SaQ'\2	3r   c                 Z   t         j                  j                  d      t         j                  j                  d      k(  }| j                  } |dd        |dd        |dd|        |dd|        |ddd        |ddd        |dd        |dd|        |dd        |d	dd       y )
Nr   r=   z[/]r   Fz[\\]z[\t]t	r6   r>   s      r   test_sep_in_char_setz$FnmatchTestCase.test_sep_in_char_set   s    ''""4(BGG,<,<S,AA  c6dFc67#dFG$eVU#gvu%dGc7G$c7dGU#r   c                 .   t         j                  j                  d      t         j                  j                  d      k(  }| 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d|         |ddd        |ddd        |ddd       y )Nr   r=   za/bza[.-0]bza\bFza[Z-^]bza[/-0]bza[\-0]bza[.-/]bza[.-\]bza[\-^]bza[/-^]bza[Z-\]bza[Z-/]br6   r>   s      r   test_sep_in_rangez!FnmatchTestCase.test_sep_in_range   s)   ''""4(BGG,<,<S,AA  eYG,fi'fiW-eY&eYG,fi'iE*j)U+eYfi)iE*j)U+fj!eZ)j*e,iU+fjg+.eZ'j*e,iU+r   c                    t        j                         5  t        j                  dt               | j                  } |dd        |dd        |dd        |dd	        |d
d        |dd       d d d        y # 1 sw Y   y xY w)NerrorrE   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   s     r   test_warningszFnmatchTestCase.test_warnings   sz    $$& 	&!!'73$$E#u#x #x #x #}%#}%	& 	& 	&s   AA;;BN)__name__
__module____qualname__r   r   r   r#   r,   r1   r3   r;   r@   rN   rU   rY   r[   rg    r   r   r   r   
   sJ    :>7 06=@
9/
&6*3X$,8	&r   r   c                       e Zd Zd Zy)TranslateTestCasec                 v   dd l }| j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d	       | j                  t        d
      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       t        d      }| j                  |d       t        d      }t        d      }t        d      }d j                  |||g      }| j	                  |j                  |d!             | j	                  |j                  |d"             | j	                  |j                  |d#             | j                  |j                  |d$             y )%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(?s:(?>.*?a)(?>.*?a).*a)\Zz
**a**a**a*z
**b**b**b*z*c*c*c*r_   abaccadabxbcabcbabcaxcdabccbad)reassertEqualr   joinr
   matchr   )r   rt   rW   r1r2r3fatres          r   test_translatez TranslateTestCase.test_translate   s   36356*O<7+_=5)=96*N;6*O<4-87+->?;/><0-@<0-@#457IJl#9: |$|$y!"b"&	23	23
34%45r   N)rh   ri   rj   r|   rk   r   r   rm   rm      s    6r   rm   c                   $    e Zd Zd Zd Zd Zd Zy)FilterTestCasec                     | j                  t        g dd      ddg       | j                  t        g dd      ddg       y )	N)PythonRubyPerlTclzP*r   r   )   Pythons   Ruby   Perls   Tcls   P*r   r   )ru   r   r+   s    r   test_filterzFilterTestCase.test_filter   sB     A4H"F+	- EuM#W-	/r   c                 x    | j                  t        t        dgd       | j                  t        t        dgd       y r%   )r)   r*   r   r+   s    r   r,   z!FilterTestCase.test_mix_bytes_str  s.    )VfXt<)VgY<r   c                     t         j                  j                  d      t         j                  j                  d      k(  }| j                  t	        g dd      |rddgndg       | j                  t	        g dd      |r	ddg       y dg       y )NPp)Test.pyzTest.rbTest.PLz*.p*r   r   z*.P*r7   r8   r9   ru   r   )r   r:   s     r   r;   zFilterTestCase.test_case	  s    WW%%c*bgg.>.>s.CC
 A6J3=)Y/I;	P A6J3=)Y/	PDM;	Pr   c                     t         j                  j                  d      t         j                  j                  d      k(  }| j                  t	        g dd      |rddgndg       | j                  t	        g dd      |r	ddg       y dg       y )Nr   r=   )r/   usrusr\libzusr/*r/   r   zusr\*r   )r   r?   s     r   r@   zFilterTestCase.test_sep  s    ''""4(BGG,<,<S,AA >H4;)Z0)	N >I4;)Z0	OBL	Or   N)rh   ri   rj   r   r,   r;   r@   rk   r   r   r~   r~      s    /=POr   r~   __main__)__doc__unittestr7   rG   rc   r   r   r   r   TestCaser   rm   r~   rh   mainrk   r   r   <module>r      sp    (  	   ; ;O&h'' O&d6)) 6BOX&& O6 zHMMO r   