<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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re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   
  