
    /hh                     >   S SK Jr  S SKrS SKJr  S SKJr  S SKJr  S SK	r	S SK
r
 " S S5      r\" 5       r " S S	5      r\" 5       r " S
 S\R                  5      r " S S\R                  \5      r " S S\R                  5      r\S:X  a  \R(                  " SS9  gg)    )grepN)captured_stdout)ExtraAssertions)Varc                       \ rS rSrS rSrg)Dummy_searchengine   c                     U R                   $ N)_patselfs    D/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/test_grep.pygetpatDummy_searchengine.getpat   s    yy     N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r      s    
r   r   c                   Z    \ rS rSr\R
                  R                  r\" S5      r\	r
S rSrg)
Dummy_grep   Fc                     g r   r   r   s    r   closeDummy_grep.close#   s    r   r   N)r   r   r   r   r   
GrepDialoggrep_itr   recvarsearchengineenginer   r   r   r   r   r   r      s&     oo%%GZFFr   r   c                   L    \ rS rSr\S 5       r\S 5       rS rS rS r	S r
Srg	)
FindfilesTest)   c                     [         R                  R                  [        5      U l        [         R                  R	                  U R                  5      U l        g r   )ospathrealpath__file__dirnameclss    r   
setUpClassFindfilesTest.setUpClass+   s0    ww''177??3<<0r   c                     U ? U ?g r   )r*   r)   r-   s    r   tearDownClassFindfilesTest.tearDownClass0   s    L#(r   c                     [        5        n[        [        R                  " SSS5      5      nS S S 5        U R	                  W/ 5        U R                  SWR                  5       5        g ! , (       d  f       NA= f)N
invaliddirz*.*Finvalid)r   listr   	findfilesassertEqualassertIngetvalue)r   sfilelists      r   test_invaliddirFindfilesTest.test_invaliddir4   sS    !DNN<FGH 2&i. s   "A((
A6c                 |   [         R                  n[        R                  " 5       n[        R                  " U R
                  5        Sn[        U" [        R                  US5      5      nU R                  [        R
                  R                  [        R                  U5      U5        [        R                  " U5        g )Nztest_grep.pyF)
r   r8   r(   getcwdchdirr)   r7   curdirr:   join)r   ffsave_cwdfilenamer=   s        r   test_curdirFindfilesTest.test_curdir:   so    ^^99;
!299h67bggll299h7B
r   c                    [         R                  n[        R                  R	                  U R                  S5      n[        U" U R                  SS5      5      nU R                  [        U5      S5        U R                  U R                  U5        U R                  X#5        [        U" U R                  SS5      5      nU R                  [        U5      S5        U R                  U R                  U5        U R                  X#5        [        U" U R                  SS5      5      nU R                  [        U5      S5        U R                  U R                  U5        g )Nz
README.txt*.pyF
   z*.txtr   zgrep.*)r   r8   r(   r)   rD   r7   assertGreaterlenr:   r*   assertNotInassertNotEqualr9   )r   rE   readmer=   s       r   	test_baseFindfilesTest.test_baseD   s    ^^dii6 499fe453x="-dmmX.* 499gu56CM1-1f' 499h67X*1r   c                    [         R                  n[        R                  R	                  U R                  5      n[        R                  R                  US5      nSn[        U" X$S5      5      n[        U5      nU R                  US5        U R                  X55        U R                  U R                  U5        [        U" X$S5      5      nU R                  [        U5      U5        U R                  X55        U R                  U R                  U5        [        R                  R	                  U5      n[        U" USS5      5      nU R                  U R                  U5        g )Nzgrep.pyrK   F   T)r   r8   r(   r)   r,   rD   r7   rN   rM   r:   rO   r*   )r   rE   parentgrepfilepatr=   parent_sizes          r   test_recurseFindfilesTest.test_recurseZ   s   ^^+77<<	2 6./(m;+h)1 6-.3x=+6h)dmmX. (66401dmmX.r   r   N)r   r   r   r   classmethodr/   r2   r>   rH   rR   rZ   r   r   r   r   r%   r%   )   s<    1 1 # #/2,/r   r%   c                   &    \ rS rSrS rS rS rSrg)Grep_itTestw   c                 2   U[         R                  l        [        5        n[         R	                  [
        R                  " U5      [        5        S S S 5        WR                  5       R                  S5      nUR                  5         U$ ! , (       d  f       N?= f)N
)_grepr#   r   r   r    recompiler+   r;   splitpop)r   rX   r<   liness       r   reportGrep_itTest.report|   s^    !MM"**S/84 

""4(			 s   /B
Bc                     SnU R                  U5      nU R                  [        U5      S5        U R                  XS   5        U R                  US   S5        g )Nzxyz*xyz*xyz*xyz*xyz*xyz*xyz*   r      zNo hits.)rh   r9   rN   r:   r   rX   rg   s      r   test_unfoundGrep_itTest.test_unfound   sM    C UQ'c8$q:.r   c                    SnU R                  U5      nU R                  [        U5      S5        U R                  XS   5        U R                  SUS   5        U R                  SUS   5        U R	                  US   S	5        g )
Nz<""" !Changing this line will break Test_findfile.test_found!   r   zpy: 1:rl   2      z(Hint:)rh   r9   rN   r:   assertStartsWithrm   s      r   
test_foundGrep_itTest.test_found   sq    LC UQ'c8$ha)c58$eAh1r   r   N)r   r   r   r   rh   rn   rv   r   r   r   r   r^   r^   w   s    
/2r   r^   c                       \ rS rSrSrg)Default_commandTest   r   N)r   r   r   r   r   r   r   r   ry   ry      s     	r   ry   __main__rk   )	verbosity)idlelibr   unittesttest.supportr   test.support.testcaser   idlelib.idle_test.mock_tkr   r(   rc   r   r"   r   rb   TestCaser%   r^   ry   r   mainr   r   r   <module>r      s      ( 1 ) 	 	  "#  	K/H%% K/\2(##_ 2>	(++ 	 zMMA r   