
    /hhk                          S r SSKJr  SSKrSSKJr  \" S5        SSKJrJr  SSK	J
r
  SSKJr  SSKJr  \R                   r\R$                  r " S	 S
\R&                  5      r\S:X  a  \R,                  " SS9  gg)zTest replace, coverage 78%.    )ReplaceDialogN)requiresgui)TkText)Mock)Mboxc                   p    \ rS rSr\S 5       r\S 5       rS rS rS r	S r
S rS	 rS
 rS rS rS rSrg)ReplaceDialogTest   c                 ,   [        5       U l        U R                  R                  5         [        [        l        [        R                  " U R                  5      U l        [        U R                  U R                  5      U l	        S U R                  l
        [        5       U R                  l        [        U R                  5      U l        [        5       U R                  l        [        5       U R                  l        U R                  U R                  l        g )Nc                      g N r       G/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/test_replace.py<lambda>.ReplaceDialogTest.setUpClass.<locals>.<lambda>   s    $r   )r   rootwithdrawr	   se
messageboxSearchEngineenginer   dialogbellr   okr   textundo_block_startundo_block_stopclss    r   
setUpClassReplaceDialogTest.setUpClass   s    4__SXX.
"388SZZ8
&



>$(F!#'6 ((

r   c                 f    [         [        l        U ?U ?U ?U R                  R                  5         U ?g r   )	orig_mboxr   r   r   r   r   r   destroyr!   s    r   tearDownClassReplaceDialogTest.tearDownClass!   s+    !Hcj#*Hr   c                 <    U R                   R                  SS5        g )NinsertzThis is a sample sTring)r   r+   selfs    r   setUpReplaceDialogTest.setUp(   s    		#<=r   c                 n   U R                   R                  R                  S5        U R                  R                  R                  S5        U R                   R
                  R                  S5        U R                   R                  R                  S5        U R                   R                  R                  S5        U R                   R                  R                  S5        U R                   R                  R                  S5        S[        l        S[        l        U R                  R                  SS5        g )N FT1.0end)r   patvarsetr   replvarwordvarcasevarrevarwrapvarbackvar	showerrortitlemessager   deleter,   s    r   tearDownReplaceDialogTest.tearDown+   s    r"#&&e$%&				&r   c                 4   U R                   nU R                  nU R                  R                  nU R                  R
                  nU R                  R                  nU R                  R                  S5        U" U R                  R                  5       UR                  5       5        UR                  S5        UR                  S5        U" 5         U" UR                  SS5      S5        UR                  SS5        UR                  S5        UR                  S5        U" 5         U" UR                  S	S
5      S5        UR                  S5        UR                  S5        U" 5         U" UR                  SS5      S5        UR                  SS5        UR                  SS5        UR                  SS5      nUR                  S5        U" 5         UR                  SS5      nU" Xg5        UR                  SS5        UR                  S5        UR                  S5        U" 5         U" UR                  S5      S5        U" UR                  S5      S5        U" 5         U" UR                  S5      S5        U" UR                  S5      S5        UR                  SS5      nU" 5         UR                  SS5      nU" Xg5        UR                  SS5      nUR                  S5        U" 5         UR                  SS5      nU" Xg5        U R                  R                  S5        g )Nasdfa1.8z1.12r+   r2   ishello1.2z1.7stringworldz1.23z1.28r3   z
line42:
[a-z][\d]+z1.9ijz2.1foobarr   )r   assertEqualr   r4   r   r6   
replace_itsetpatgetpatgetr5   mark_setr+   find_itr-   r   equalpvrvreplacebefore_text
after_texts           r   test_replace_simple%ReplaceDialogTest.test_replace_simple7   sf    yy  [[[[  ++(( 	6"dkk  "BFFH- 	s
v	dhhuf%v. 	h&
t
w	dhhue$g. 	x
w	dhhvv&0 	h&Hk*hhue,
}	XXeU+
k& 	h&
s
s	dhhuos#dhhuos#	dhhuos#dhhuos#hhue,	XXeU+
k& hhue,
x	XXeU+
k& 	Ar   c                 0   U R                   nU R                  nU R                  R                  nU R                  R
                  nU R                  R                  nU R                  R                  R                  S5        UR                  SS5        UR                  S5        UR                  S5        U" 5         U" UR                  S5      S5        U" UR                  S5      S5        U" 5         U" UR                  S5      S5        U" UR                  S5      S5        U" 5         U" UR                  S5      S5        UR                  SS	5        UR                  S
5        UR                  SS5      nU" 5         UR                  SS5      nU" Xg5        g )NFr+   1.4rL   rM   rH   1.5z1.20rE   rF   r2   r3   )r   rO   r   r4   r   r6   rP   r:   r5   rT   rS   rV   s           r   test_replace_wrap_around*ReplaceDialogTest.test_replace_wrap_around}   s3   yy  [[[[  ++((& 	h&
s
s	dhhuos#dhhuos#	dhhuos#dhhv$	dhhuos# 	h&
thhue,	XXeU+
k&r   c                    U R                   nU R                  nU R                  R                  nU R                  R
                  nU R                  R                  nU R                  R                  R                  S5        UR                  S5        UR                  S5        U" 5         U" UR                  SS5      S5        U" UR                  SS5      S5        g )	NTrF   rG   r2   r`   Thisra   z1.10)
r   rO   r   r4   r   r6   rP   r7   r5   rS   )r-   r   rW   rX   rY   rZ   s         r   test_replace_whole_word)ReplaceDialogTest.test_replace_whole_word   s    yy  [[[[  ++((%
t
w	dhhue$f-dhhuf%w/r   c                 6   U R                   nU R                  nU R                  R                  nU R                  R
                  nU R                  R                  nU R                  R                  R                  S5        U R                  R                  SS5      nUR                  S5        UR                  S5        U" 5         U R                  R                  SS5      nU" Xg5        UR                  S5        U" 5         U" UR                  SS5      S5        g )NTr2   r3   thisthatre   r`   )
rO   r   r   r4   r   r6   rP   r8   r5   rS   r-   rW   r   rX   rY   rZ   r[   r\   s           r   test_replace_match_case)ReplaceDialogTest.test_replace_match_case   s      yy[[[[  ++((%iimmE51
v
v	YY]]5%0
k&
v	dhhue$f-r   c                    U R                   nU R                  nU R                  R                  nU R                  R
                  nU R                  R                  nU R                  R                  R                  S5        UR                  SS5      nUR                  S5        UR                  S5        U" 5         UR                  SS5      nU" Xg5        UR                  SS5        U" 5         U" UR                  SS	5      S
5        UR                  S5        U" 5         U R                  S[        R                  5        U R                  S[        R                  5        UR                  S5        U" 5         U R                  S[        R                  5        U R                  S[        R                  5        S[        l        S[        l        UR                  S5        UR                  S5        U" 5         U R                  S[        R                  5        U R                  S[        R                  5        U R                  R                  S5        U" UR                  5       S5        g )NTr2   r3   rK   rG   r+   z
line422.0z2.8linhellor1   errorEmptyz[\dPatternz[a]ztest\zInvalid Replace Expression?z\?)rO   r   r   r4   r   r6   rP   r9   r5   rS   r+   assertInr<   r=   r>   setcookedpatrk   s           r   test_replace_regex$ReplaceDialogTest.test_replace_regex   s     yy[[[[  ++((d#hhue,
}
w	XXeU+
k&Hj)	dhhue$j1
r
	gy/gy001
v	gy/i!2!23		
u
x	gy/2I4E4EF 	  %bffhr   c                 \   U R                   nU R                  nU R                  R                  nU R                  R
                  nU R                  R                  nU R                  R                  R                  S5        UR                  SS5        UR                  S5        UR                  S5        U" 5         U" UR                  SS5      S5        U" UR                  SS	5      S5        U" 5         U" UR                  S
S5      S5        U" 5         U" UR                  SS
5      S5        g )NTr+   z
is as rF   wasrH   r`   ro   z2.3ra   rE   )rO   r   r   r4   r   r6   rP   r;   r5   r+   rS   )r-   rW   r   rX   rY   rZ   s         r   test_replace_backwards(ReplaceDialogTest.test_replace_backwards   s      yy[[[[  ++((%Hj)
t
u	dhhue$d+dhhue$e,	dhhue$e,	dhhue$e,r   c                    U R                   nU R                  R                  nU R                  R                  nU R                  R
                  nUR                  SS5        UR                  SUR                  SS5      S-  5        UR                  S5        UR                  S5        U" 5         U R                  SUR                  SS5      5        U R                  R                  R                  S5        UR                  S	5        U" 5         U R                  S
[        R                  5        U R                  S[        R                  5        UR                  S5        UR                  S5        U" 5         U R                  R                  R                  S5        UR                  S5        UR                  S5        U" 5         g )Nr+   
r2   r3   d   rF   rz   Tr1   rq   rr   z[s][T]\Fztext which is not presentrN   )r   r   r4   r   r6   replace_allr+   rS   r5   assertNotInr9   ru   r<   r=   r>   )r-   r   rX   rY   r   s        r   test_replace_all"ReplaceDialogTest.test_replace_all   s:   yy[[[[  kk--Hd#Hdhhue4S89
t
utxxu56d#
r
gy/gy001
x
te$
*+
xr   c                    U R                   nU R                  R                  nU R                  R                  nU R                  R
                  nU R                  nUR                  S5        UR                  S5        U" 5         U" UR                  SS5      S5        U R                  R                  R                  S5        UR                  S5        U" 5         g )Nre   rz   z	sel.firstzsel.lastTr1   )
r   r   r4   r   r6   default_commandrO   r5   rS   r9   )r-   r   rX   rY   replace_findrW   s         r   test_default_command&ReplaceDialogTest.test_default_command  s    yy[[[[  {{22  
v
udhh{J/7d#
r
r   r   N)__name__
__module____qualname____firstlineno__classmethodr#   r(   r.   r@   r]   rb   rf   rl   rw   r{   r   r   __static_attributes__r   r   r   r   r      s]    # #  >
'DL':0.&'R-(8r   r   __main__   )	verbosity)__doc__idlelib.replacer   unittesttest.supportr   tkinterr   r   unittest.mockr   idlelib.idle_test.mock_tkr	   idlelib.searchenginesearchenginer   r   r&   r<   TestCaser   r   mainr   r   r   <module>r      sf     )  !    * !MM	NN	Q)) Qh zMMA r   