
    z%i                         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
ej                        Zedk(  r ej                   dd       yy)zTest undo, coverage 77%.    )UndoDelegatorN)requiresgui)Mock)TextTk)
Percolatorc                   \    e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zy)UndoDelegatorTestc                     t               | _        t        | j                        | _        t	        | j                        | _        y N)r   rootr   textr	   
percolatorclss    O/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_undo.py
setUpClasszUndoDelegatorTest.setUpClass   s*    4>#CHH-    c                     | j                   j                  j                          | ` | `| j                  j                          | `y r   )r   redircloser   r   destroyr   s    r   tearDownClasszUndoDelegatorTest.tearDownClass   s6    ""$NCHHr   c                     t               | _        t               | j                  _        | j                  j                  | j                         y r   )r   	delegatorr   bellr   insertfilterselfs    r   setUpzUndoDelegatorTest.setUp   s/    &"f$$T^^4r   c                     | j                   j                  | j                         | j                  j	                  dd       | j                  j                          y )N1.0end)r   removefilterr   r   delete
resetcacher   s    r   tearDownzUndoDelegatorTest.tearDown"   s<    $$T^^4		&!!#r   c                 B   | 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                         y )Ninsertfoobarh<<undo>>r#   r$   
foobar1.21.4hellofoarz1.61.3event)r   r*   event_generateassertEqualgetr&   r   
undo_event
assertTruer   calledr    r   s     r   test_undo_eventz!UndoDelegatorTest.test_undo_event'   s?   yyHh'Hc"J'%/6He$He$E5!Hg&J'%/8J'%/:J'%/7J'!!'*++223r   c                    | 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                         y )Nr*   r/   r0   r#   r5   r-   z<<redo>>)
r   r*   r&   r7   r8   r9   r;   r   r   r<   r=   s     r   test_redo_eventz!UndoDelegatorTest.test_redo_event=   s    yyHe$He$E5!J'J'%/7J'++223r   c                 b   | j                   }| j                  }|j                  dd       |j                  dd       |j                  dd       | j	                  |j
                  |j                  fd       |j                  d       | j	                  |j
                  |j                  fd       y	)
z
        Dump_event cannot be tested directly without changing
        environment variables. So, test statements in dump_event
        indirectly
        r*   r/   r0   r1   r2   )   Tr-   )   FN)r   r   r*   r&   assertTupleEqualpointer	can_merger7   )r    r   ds      r   test_dump_eventz!UndoDelegatorTest.test_dump_eventI   s     yyNNHe$He$E5!qyy!++6	BJ'qyy!++6
Cr   c                 J   | 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                         y )Nr*   aTF)r   r;   	get_savedr   r*   assertFalser   saved_change_hook	set_savedr8   rE   savedr<   )r    rG   s     r   test_get_set_savedz$UndoDelegatorTest.test_get_set_savedY   s     NN&		3''"f	DAGG,++223	E"%++223r   c                    | 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       y )Nr*   r/   r0   r#   r5   )r   r*   r   undo_block_startundo_block_stopr8   r9   r=   s     r   test_undo_start_stopz&UndoDelegatorTest.test_undo_start_stopl   s    yyHe$'')He$He$&&(%/7 	'')He$&&(%/7r   c                     | j                   }dx| j                  _        }t        |dz         D ]C  }|j	                  dd       | j                  t        | j                  j                        |       E y )N
   r*   r/   )r   r   max_undoranger*   assertLessEquallenundolist)r    r   rX   is       r   test_addcmdzUndoDelegatorTest.test_addcmd}   sc    yy-//(x"}% 	IAKK%(  T^^%<%<!=xH	Ir   N)__name__
__module____qualname__classmethodr   r   r!   r(   r>   r@   rH   rQ   rU   r^    r   r   r   r      sR    . .
  5
$
4,
4D 4&8"Ir   r   __main__rC   F)	verbosityexit)__doc__idlelib.undor   unittesttest.supportr   unittest.mockr   tkinterr   r   idlelib.percolatorr	   TestCaser   r_   mainrc   r   r   <module>rp      sY     '  !    )uI)) uIp zHMMAE* r   