<!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
 f                 @   s   d Z ddlmZ ddlZddlmZ ed ddlmZ ddlm	Z	m
Z
 ddlmZ G d	d
 d
ejZedkr|ejddd dS )zTest undo, coverage 77%.    )UndoDelegatorN)requiresZgui)Mock)TextTk)
Percolatorc               @   sd   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S )UndoDelegatorTestc             C   s$   t  | _t| j| _t| j| _d S )N)r   rootr   textr   
percolator)cls r   @/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_undo.py
setUpClass   s    zUndoDelegatorTest.setUpClassc             C   s&   | j jj  | ` | `| jj  | `d S )N)r   Zredircloser
   r	   Zdestroy)r   r   r   r   tearDownClass   s    
zUndoDelegatorTest.tearDownClassc             C   s$   t  | _t | j_| jj| j d S )N)r   	delegatorr   bellr   Zinsertfilter)selfr   r   r   setUp   s    
zUndoDelegatorTest.setUpc             C   s*   | j j| j | jjdd | jj  d S )Nz1.0end)r   Zremovefilterr   r
   deleteZ
resetcache)r   r   r   r   tearDown"   s    zUndoDelegatorTest.tearDownc             C   s   | j }|jdd |jdd |jd | j|jddd |jdd |jdd	 |jd
d |jdd |jd | j|jddd |jd | j|jddd |jd | j|jddd |jd | jjd | j| jj	j
 d S )NinsertZfoobarhz<<undo>>z1.0r   
foobarz1.2z1.4ZhelloZfoarz1.6z1.3Zevent)r
   r   event_generateassertEqualgetr   r   Z
undo_event
assertTruer   called)r   r
   r   r   r   test_undo_event'   s$    




z!UndoDelegatorTest.test_undo_eventc             C   sp   | j }|jdd |jdd |jdd |jd |jd | j|jddd |jd | j| jjj	 d S )Nr   r   r   z1.0z1.3z<<undo>>z<<redo>>)
r
   r   r   r   r   r    r!   r   r   r"   )r   r
   r   r   r   test_redo_event=   s    


z!UndoDelegatorTest.test_redo_eventc             C   sf   | j }| j}|jdd |jdd |jdd | j|j|jfd |jd | j|j|jfd dS )z
        Dump_event cannot be tested directly without changing
        environment variables. So, test statements in dump_event
        indirectly
        r   r   r   z1.2z1.4   Tz<<undo>>   FN)r%   T)r&   F)r
   r   r   r   ZassertTupleEqualpointerZ	can_merger   )r   r
   dr   r   r   test_dump_eventI   s    
z!UndoDelegatorTest.test_dump_eventc             C   s   | j }| j|j  | jjdd | j|j  t |_|jd | j	|j
|j | j|jj |jd | j	|jd | j|jj d S )Nr   aTF   )r   r!   Z	get_savedr
   r   ZassertFalser   Zsaved_change_hookZ	set_savedr   r'   Zsavedr"   )r   r(   r   r   r   test_get_set_savedY   s    

z$UndoDelegatorTest.test_get_set_savedc             C   s   | j }|jdd | jj  |jdd |jdd | jj  | j|jddd | jj  |jdd | jj  | j|jddd d S )Nr   r   r   z1.0z1.3)r
   r   r   Zundo_block_startZundo_block_stopr   r    )r   r
   r   r   r   test_undo_start_stopl   s    



z&UndoDelegatorTest.test_undo_start_stopc             C   sL   | j }d | j_}x4t|d D ]$}|jdd | jt| jj| q W d S )N
   r   r   )r
   r   max_undoranger   ZassertLessEquallenZundolist)r   r
   r0   ir   r   r   test_addcmd}   s
    zUndoDelegatorTest.test_addcmdN)__name__
__module____qualname__classmethodr   r   r   r   r#   r$   r)   r-   r.   r4   r   r   r   r   r      s   r   __main__r&   F)	verbosityexit)__doc__Zidlelib.undor   ZunittestZtest.supportr   Zunittest.mockr   Ztkinterr   r   Zidlelib.percolatorr   ZTestCaser   r5   mainr   r   r   r   <module>   s   x