
    z%i                     6   	 d dl mZ d dl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                        Z G d dej                        Zedk(  r ej$                  d       yy)    )grepN)captured_stdout)Varc                       e Zd Z	 d Zy)Dummy_searchenginec                     | j                   S N)_patselfs    O/home/uftp/.pyenv/versions/3.12.0/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.tearDownClass/   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_invaliddir3   s^     	H!DNN<FGH	H2&i.	H 	H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-   curdirr0   join)r   ffsave_cwdfilenamer3   s        r   test_curdirzFindfilesTest.test_curdir9   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!   r9   r-   assertGreaterlenr0   r"   assertNotInassertNotEqualr/   )r   r:   readmer3   s       r   	test_basezFindfilesTest.test_baseC   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$   r9   r-   rB   rA   r0   rC   r"   )r   r:   parentgrepfilepatr3   parent_sizes          r   test_recursezFindfilesTest.test_recurseY   s   ^^+77<<	2 63./(m;+h)1 63-.3x=+6h)dmmX. (66401dmmX.r   N)
r   r   r   classmethodr'   r)   r4   r=   rF   rM   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#   r1   splitpop)r   rK   r2   liness       r   reportzGrep_itTest.report{   se     	5!MM"**S/84	5

""4(				5 	5s   .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.)rY   r/   rB   r0   r   rK   rX   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   j                  d	             y )
Nz<""" !Changing this line will break Test_findfile.test_found!   r   zpy: 1:r\   2      z(Hint:)rY   r/   rB   r0   
assertTrue
startswithr]   s      r   
test_foundzGrep_itTest.test_found   sz    LC UQ'c58$ha)c58$a++H56r   N)r   r   r   rY   r^   rf   r   r   r   rP   rP   v   s    
/7r   rP   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   idlelib.idle_test.mock_tkr   r    rT   r   r   r   rS   TestCaser   rP   rh   r   mainr   r   r   <module>rq      s      ( ) 	 	  "#  	K/H%% K/\7(## 7>	(++ 	 zHMMA r   