
    6bh                     D   	 d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	Z	d dl
Z
 G d d      Z e       Z G d d	      Z e       Z G d
 dej                        Z G d dej                  e      Z G d dej                        Zedk(  r ej(                  d       yy)    )grepN)captured_stdout)ExtraAssertions)Varc                       e Zd Z	 d Zy)Dummy_searchenginec                     | j                   S N)_patselfs    E/opt/python-3.12.12/usr/lib/python3.12/idlelib/idle_test/test_grep.pygetpatzDummy_searchengine.getpat   s    yy    N)__name__
__module____qualname__r    r   r   r   r      s    r   r   c                   R    e Zd Zej                  j
                  Z ed      ZeZ	d Z
y)
Dummy_grepFc                      y r
   r   r   s    r   closezDummy_grep.close#   s    r   N)r   r   r   r   
GrepDialoggrep_itr   recvarsearchengineenginer   r   r   r   r   r      s&     oo%%GZFFr   r   c                   D    e Zd Zed        Zed        Zd Zd Zd Zd Z	y)FindfilesTestc                     t         j                  j                  t              | _        t         j                  j	                  | j                        | _        y r
   )ospathrealpath__file__dirnameclss    r   
setUpClasszFindfilesTest.setUpClass+   s0    ww''177??3<<0r   c                     | ` | `y r
   )r#   r"   r&   s    r   tearDownClasszFindfilesTest.tearDownClass0   s    L#(r   c                     t               5 }t        t        j                  ddd            }d d d        | j	                  g        | j                  dj                                y # 1 sw Y   <xY w)N
invaliddirz*.*Finvalid)r   listr   	findfilesassertEqualassertIngetvalue)r   sfilelists      r   test_invaliddirzFindfilesTest.test_invaliddir4   sS    !DNN<FGH 2&i. s   !A''A0c                 v   t         j                  }t        j                         }t        j                  | j
                         d}t         |t        j                  |d            }| j                  t        j
                  j                  t        j                  |      |       t        j                  |       y )Nztest_grep.pyF)
r   r/   r!   getcwdchdirr"   r.   curdirr1   join)r   ffsave_cwdfilenamer4   s        r   test_curdirzFindfilesTest.test_curdir:   so    ^^99;
!299h67bggll299h7B
r   c                    t         j                  }t        j                  j	                  | j                  d      }t         || j                  dd            }| j                  t        |      d       | j                  | j                  |       | j                  ||       t         || j                  dd            }| j                  t        |      d       | j                  | j                  |       | j                  ||       t         || j                  dd            }| j                  t        |      d       | j                  | j                  |       y )Nz
README.txt*.pyF
   z*.txtr   zgrep.*)r   r/   r!   r"   r:   r.   assertGreaterlenr1   r#   assertNotInassertNotEqualr0   )r   r;   readmer4   s       r   	test_basezFindfilesTest.test_baseD   s   ^^dii6 499fe453x="-dmmX.* 499gu56CM1-1fh' 499h67X*1r   c                    t         j                  }t        j                  j	                  | j                        }t        j                  j                  |d      }d}t         |||d            }t        |      }| j                  |d       | j                  ||       | j                  | j                  |       t         |||d            }| j                  t        |      |       | j                  ||       | j                  | j                  |       t        j                  j	                  |      }t         ||dd            }| j                  | j                  |       y )Nzgrep.pyr@   F   T)r   r/   r!   r"   r%   r:   r.   rC   rB   r1   rD   r#   )r   r;   parentgrepfilepatr4   parent_sizes          r   test_recursezFindfilesTest.test_recurseZ   s   ^^+77<<	2 63./(m;+h)1 63-.3x=+6h)dmmX. (66401dmmX.r   N)
r   r   r   classmethodr(   r*   r5   r>   rG   rN   r   r   r   r   r   )   s<    1 1 # #/2,/r   r   c                       e Zd Zd Zd Zd Zy)Grep_itTestc                 &   |t         j                  _        t               5 }t         j	                  t        j                  |      t               d d d        j                         j                  d      }|j                          |S # 1 sw Y   :xY w)N
)_grepr   r   r   r   recompiler$   r2   splitpop)r   rL   r3   liness       r   reportzGrep_itTest.report|   s^    !MM"**S/84 

""4(			 s   .BBc                     d}| j                  |      }| j                  t        |      d       | j                  ||d          | j                  |d   d       y )Nzxyz*xyz*xyz*xyz*xyz*xyz*xyz*   r      zNo hits.)rZ   r0   rC   r1   r   rL   rY   s      r   test_unfoundzGrep_itTest.test_unfound   sO    C UQ'c58$q:.r   c                    d}| j                  |      }| j                  t        |      d       | j                  ||d          | j                  d|d          | j                  d|d          | j	                  |d   d	       y )
Nz<""" !Changing this line will break Test_findfile.test_found!   r   zpy: 1:r]   2      z(Hint:)rZ   r0   rC   r1   assertStartsWithr^   s      r   
test_foundzGrep_itTest.test_found   ss    LC UQ'c58$ha)c58$eAh1r   N)r   r   r   rZ   r_   rf   r   r   r   rQ   rQ   w   s    
/2r   rQ   c                       e Zd Zy)Default_commandTestN)r   r   r   r   r   r   rh   rh      s     	r   rh   __main__r\   )	verbosity)idlelibr   unittesttest.supportr   test.support.testcaser   idlelib.idle_test.mock_tkr   r!   rU   r   r   r   rT   TestCaser   rQ   rh   r   mainr   r   r   <module>rr      s      ( 1 ) 	 	  "#  	K/H%% K/\2(##_ 2>	(++ 	 zHMMA r   