+
     Bi                     @   R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIt^ RI	t	 ! R R4      t
]
! 4       t ! R R4      t]! 4       t ! R	 R
]P                  4      t ! R R]P                  4      t ! R R]P                  4      t]R8X  d   ]P&                  ! ^R7       R# R# )a  !Changing this line will break Test_findfile.test_found!
Non-gui unit tests for grep.GrepDialog methods.
dummy_command calls grep_it calls findfiles.
An exception raised in one method will fail callers.
Otherwise, tests are mostly independent.
Currently only test grep_it, coverage 51%.
)grepN)captured_stdout)Varc                   *   a  ] tR t^t o RtR tRtV tR# )Dummy_searchenginezGrepDialog.__init__ calls parent SearchDiabolBase which attaches the
passed in SearchEngine instance as attribute 'engine'. Only a few of the
many possible self.engine.x attributes are needed here.
c                    V P                   # N)_patselfs   &2/usr/lib/python3.14/idlelib/idle_test/test_grep.pygetpatDummy_searchengine.getpat   s    yy     N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classdictcell____classdict__s   @r   r   r      s      r   r   c                   f   a  ] tR t^t o ]P
                  P                  t]! R4      t]	t
R tRtV tR# )
Dummy_grepFc                    R # 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   s   @r   r   r      s.      oo%%GZFF r   r   c                   X   a  ] tR t^(t o ]R 4       t]R 4       tR tR tR t	R t
RtV tR# )	FindfilesTestc                    \         P                  P                  \        4      V n        \         P                  P	                  V P                  4      V n        R # r   )ospathrealpath__file__dirnameclss   &r   
setUpClassFindfilesTest.setUpClass*   s0    ww''177??3<<0r   c                    V = V =R # r   )r)   r(   r,   s   &r   tearDownClassFindfilesTest.tearDownClass/   s    L#(r   c           	        \        4       ;_uu_ 4       p\        \        P                  ! R RR4      4      pRRR4       V P	                  X. 4       V P                  RXP                  4       4       R#   + '       g   i     LD; i)
invaliddirz*.*FNinvalid)r   listr   	findfilesassertEqualassertIngetvalue)r   sfilelists   &  r   test_invaliddirFindfilesTest.test_invaliddir3   sV    !DNN<FGH 2&i. s   "A11B	c                ~   \         P                  p\        P                  ! 4       p\        P                  ! V P
                  4       R p\        V! \        P                  VR4      4      pV P                  \        P
                  P                  \        P                  V4      V4       \        P                  ! V4       R# )ztest_grep.pyFN)
r   r7   r'   getcwdchdirr(   r6   curdirr9   join)r   ffsave_cwdfilenamer<   s   &    r   test_curdirFindfilesTest.test_curdir9   so    ^^99;
!299h67bggll299h7B
r   c                   \         P                  p\        P                  P	                  V P                  R 4      p\        V! V P                  RR4      4      pV P                  \        V4      ^
4       V P                  V P                  V4       V P                  W#4       \        V! V P                  RR4      4      pV P                  \        V4      ^ 4       V P                  V P                  V4       V P                  W#4       \        V! V P                  RR4      4      pV P                  \        V4      ^ 4       V P                  V P                  V4       R# )z
README.txt*.pyFz*.txtzgrep.*N)r   r7   r'   r(   rC   r6   assertGreaterlenr9   r)   assertNotInassertNotEqualr8   )r   rD   readmer<   s   &   r   	test_baseFindfilesTest.test_baseC   s    ^^dii6 499fe453x="-dmmX.* 499gu56CM1-1f' 499h67X*1r   c                   \         P                  p\        P                  P	                  V P                  4      p\        P                  P                  VR 4      pRp\        V! W$R4      4      p\        V4      pV P                  V^4       V P                  W54       V P                  V P                  V4       \        V! W$R4      4      pV P                  \        V4      V4       V P                  W54       V P                  V P                  V4       \        P                  P	                  V4      p\        V! VRR4      4      pV P                  V P                  V4       R# )zgrep.pyrJ   FTN)r   r7   r'   r(   r+   rC   r6   rL   rK   r9   rM   r)   )r   rD   parentgrepfilepatr<   parent_sizes   &      r   test_recurseFindfilesTest.test_recurseY   s   ^^+77<<	2 6./(m;+h)1 6-.3x=+6h)dmmX. (66401dmmX.r   r   N)r   r   r   r   classmethodr.   r1   r=   rG   rP   rW   r   r   r   s   @r   r%   r%   (   sD     1 1 # #/2,/ /r   r%   c                   2   a  ] tR t^vt o R tR tR tRtV tR# )Grep_itTestc                F   V\         P                  n        \        4       ;_uu_ 4       p\         P	                  \
        P                  ! V4      \        4       R R R 4       XP                  4       P                  R4      pVP                  4        V#   + '       g   i     LA; i)N
)_grepr#   r	   r   r    recompiler*   r:   splitpop)r   rU   r;   liness   &&  r   reportGrep_itTest.report{   sa    !MM"**S/84 

""4(			 s   /BB 	c                    RpV P                  V4      pV P                  \        V4      ^4       V P                  W^ ,          4       V P                  V^,          R4       R# )zxyz*zNo hits.Nzxyz*xyz*xyz*xyz*xyz*xyz*xyz*)rd   r8   rL   r9   r   rU   rc   s   &  r   test_unfoundGrep_itTest.test_unfound   sM    C UQ'c8$q:.r   c                (   R pV P                  V4      pV P                  \        V4      ^4       V P                  W^ ,          4       V P                  RV^,          4       V P                  RV^,          4       V P	                  V^,          R4       R# )z<""" !Changing this line will break Test_findfile.test_found!zpy: 1:2z(Hint:N)rd   r8   rL   r9   assertStartsWithrg   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   rd   rh   rm   r   r   r   s   @r   r[   r[   v   s     
/2 2r   r[   c                       ] tR t^tRtR# )Default_commandTestr   N)r   r   r   r   r   r   r   r   rp   rp      s     	r   rp   __main__)	verbosity)r   idlelibr   unittesttest.supportr   idlelib.idle_test.mock_tkr   r'   r_   r   r"   r   r^   TestCaser%   r[   rp   r   mainr   r   r   <module>ry      s      ( ) 	 	  "#  	K/H%% K/\2(## 2>	(++ 	 zMMA r   