£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
 fq                  @   s   d Z ddlmZ ddlZddlmZ ed ddlmZmZ ddl	m
Z
 ddlmZ ddljZejZejZG d	d
 d
ejZedkrejdd dS )zTest replace, coverage 78%.    )ReplaceDialogN)requiresZgui)TkText)Mock)Mboxc               @   st   e Zd Zedd Zedd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )ReplaceDialogTestc             C   sz   t  | _| jj  tt_tj| j| _t| j| j| _	dd | j	_
t | j	_t| j| _t | j_t | j_| j| j	_d S )Nc               S   s   d S )N r	   r	   r	   C/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_replace.py<lambda>   s    z.ReplaceDialogTest.setUpClass.<locals>.<lambda>)r   rootZwithdrawr   setkMessageBoxZSearchEngineenginer   dialogZbellr   okr   textZundo_block_startZundo_block_stop)clsr	   r	   r
   
setUpClass   s    



zReplaceDialogTest.setUpClassc             C   s$   t t_| `| `| `| jj  | `d S )N)	orig_mboxr   r   r   r   r   r   Zdestroy)r   r	   r	   r
   tearDownClass!   s    
zReplaceDialogTest.tearDownClassc             C   s   | j jdd d S )NinsertzThis is a sample sTring)r   r   )selfr	   r	   r
   setUp(   s    zReplaceDialogTest.setUpc             C   s   | j jjd | jjjd | j jjd | j jjd | j jjd | j jjd | j j	jd dt
_dt
_| jjdd d S )N FTz1.0end)r   patvarsetr   replvarwordvarcasevarrevarwrapvarbackvar	showerrortitlemessager   delete)r   r	   r	   r
   tearDown+   s    zReplaceDialogTest.tearDownc             C   s  | j }| j}| jj}| jj}| jj}| jjd || jj |j	  |j
d |j
d |  ||j	ddd |jdd |j
d |j
d |  ||j	d	d
d |j
d |j
d |  ||j	ddd |jdd |jdd |j	dd}|j
d |  |j	dd}||| |jdd |j
d |j
d |  ||j	dd ||j	dd |  ||j	dd ||j	dd |j	dd}|  |j	dd}||| |j	dd}|j
d |  |j	dd}||| | jjd d S )NZasdfaz1.8z1.12r   z1.0ishelloz1.2z1.7stringZworldz1.23z1.28r   z
line42:z
[a-z][\d]+z1.9ijz2.1foobarr   )r   assertEqualr   r   r   r   
replace_itZsetpatZgetpatgetr   mark_setr   Zfind_it)r   r   equalpvrvreplacebefore_text
after_textr	   r	   r
   test_replace_simple7   s\    












z%ReplaceDialogTest.test_replace_simplec             C   s   | j }| j}| jj}| jj}| jj}| jjjd |j	dd |jd |jd |  ||j
dd ||j
dd |  ||j
dd ||j
dd |  ||j
dd |j	dd	 |jd
 |j
dd}|  |j
dd}||| d S )NFr   z1.4r-   r.   z1.2z1.5z1.20z1.8r*   z1.0r   )r   r0   r   r   r   r   r1   r"   r   r3   r2   )r   r   r4   r5   r6   r7   r8   r9   r	   r	   r
   test_replace_wrap_around}   s.    


z*ReplaceDialogTest.test_replace_wrap_aroundc             C   st   | j }| j}| jj}| jj}| jj}| jjjd |jd |jd |  ||j	ddd ||j	ddd d S )	NTr*   r+   z1.0z1.4Thisz1.5z1.10)
r   r0   r   r   r   r   r1   r   r   r2   )r   r   r4   r5   r6   r7   r	   r	   r
   test_replace_whole_word   s    

z)ReplaceDialogTest.test_replace_whole_wordc             C   s   | j }| j}| jj}| jj}| jj}| jjjd | jj	dd}|jd |jd |  | jj	dd}||| |jd |  ||j	ddd d S )NTz1.0r   thisthatr<   z1.4)
r0   r   r   r   r   r   r1   r    r   r2   )r   r4   r   r5   r6   r7   r8   r9   r	   r	   r
   test_replace_match_case   s    



z)ReplaceDialogTest.test_replace_match_casec             C   sJ  | j }| j}| jj}| jj}| jj}| jjjd |j	dd}|jd |jd |  |j	dd}||| |j
dd |  ||j	dd	d
 |jd |  | jdtj | jdtj |jd |  | jdtj | jdtj dt_dt_|jd |jd |  | jdtj | jdtj | jjd ||j	 d d S )NTz1.0r   z
[a-z][\d]+r+   r   z
line42z2.0z2.8Zlinhellor   errorEmptyz[\dPatternz[a]ztest\zInvalid Replace Expression?z\?)r0   r   r   r   r   r   r1   r!   r   r2   r   assertInr$   r%   r&   Zsetcookedpat)r   r4   r   r5   r6   r7   r8   r9   r	   r	   r
   test_replace_regex   s@    






z$ReplaceDialogTest.test_replace_regexc             C   s   | j }| j}| jj}| jj}| jj}| jjjd |j	dd |jd |jd |  ||j
ddd ||j
dd	d |  ||j
d
dd |  ||j
dd
d d S )NTr   z
is as r*   wasz1.2z1.4z2.0z2.3z1.5z1.8)r0   r   r   r   r   r   r1   r#   r   r   r2   )r   r4   r   r5   r6   r7   r	   r	   r
   test_replace_backwards   s     

z(ReplaceDialogTest.test_replace_backwardsc             C   s   | j }| jj}| jj}| jj}|jdd |jd|jddd  |jd |jd |  | j	d|jdd | jj
jd |jd	 |  | jd
tj | jdtj |jd |jd |  | jj
jd |jd |jd |  d S )Nr   
z1.0r   d   r*   rG   Tr   rA   rB   z[s][T]\Fztext which is not presentr/   )r   r   r   r   r   replace_allr   r2   r   ZassertNotInr!   rE   r$   r%   r&   )r   r   r5   r6   rL   r	   r	   r
   test_replace_all   s,    






z"ReplaceDialogTest.test_replace_allc             C   sr   | j }| jj}| jj}| jj}| j}|jd |jd |  ||jddd | jj	jd |jd |  d S )Nr<   rG   z	sel.firstzsel.lastTr   )
r   r   r   r   r   Zdefault_commandr0   r   r2   r!   )r   r   r5   r6   Zreplace_findr4   r	   r	   r
   test_default_command  s    


z&ReplaceDialogTest.test_default_commandN)__name__
__module____qualname__classmethodr   r   r   r(   r:   r;   r=   r@   rF   rH   rM   rN   r	   r	   r	   r
   r      s   F)r   __main__   )	verbosity)__doc__Zidlelib.replacer   ZunittestZtest.supportr   Ztkinterr   r   Zunittest.mockr   Zidlelib.idle_test.mock_tkr   Zidlelib.searchengineZsearchenginer   r   r   r$   ZTestCaser   rO   mainr	   r	   r	   r
   <module>   s   
  