
    /hh                         S r SSKJr  SSKrSSKJr  \" S5        SSKJr  SSKJ	r	J
r
  SSKJr   " S	 S
\R                  5      r\S:X  a  \R                   " SSS9  gg)zTest undo, coverage 77%.    )UndoDelegatorN)requiresgui)Mock)TextTk)
Percolatorc                   d    \ 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g)UndoDelegatorTest   c                     [        5       U l        [        U R                  5      U l        [	        U R                  5      U l        g N)r   rootr   textr	   
percolatorclss    D/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/test_undo.py
setUpClassUndoDelegatorTest.setUpClass   s*    4>#CHH-    c                     U R                   R                  R                  5         U ? U ?U R                  R                  5         U ?g r   )r   redircloser   r   destroyr   s    r   tearDownClassUndoDelegatorTest.tearDownClass   s6    ""$NCHHr   c                     [        5       U l        [        5       U R                  l        U R                  R                  U R                  5        g r   )r   	delegatorr   bellr   insertfilterselfs    r   setUpUndoDelegatorTest.setUp   s/    &"f$$T^^4r   c                     U R                   R                  U R                  5        U R                  R	                  SS5        U R                  R                  5         g )N1.0end)r   removefilterr   r   delete
resetcacher"   s    r   tearDownUndoDelegatorTest.tearDown"   s<    $$T^^4		&!!#r   c                 B   U R                   nUR                  SS5        UR                  SS5        UR                  S5        U R                  UR	                  SS5      S5        UR                  SS5        UR                  SS	5        UR                  S
S5        UR                  SS5        UR                  S5        U R                  UR	                  SS5      S5        UR                  S5        U R                  UR	                  SS5      S5        UR                  S5        U R                  UR	                  SS5      S5        UR                  S5        U R                  R                  S5        U R                  U R                  R                  R                  5        g )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_event!UndoDelegatorTest.test_undo_event'   s?   yyHh'Hc"J'%/6He$He$E5!Hg&J'%/8J'%/:J'%/7J'!!'*++223r   c                    U R                   nUR                  SS5        UR                  SS5        UR                  SS5        UR                  S5        UR                  S5        U R	                  UR                  SS5      S5        UR                  S5        U R                  U R                  R                  R                  5        g )Nr/   r4   r5   r'   r:   r2   z<<redo>>)
r   r/   r*   r<   r=   r>   r@   r   r    rA   rB   s     r   test_redo_event!UndoDelegatorTest.test_redo_event=   s    yyHe$He$E5!J'J'%/7J'++223r   c                 b   U R                   nU R                  nUR                  SS5        UR                  SS5        UR                  SS5        U R	                  UR
                  UR                  4S5        UR                  S5        U R	                  UR
                  UR                  4S5        g	)
z{
Dump_event cannot be tested directly without changing
environment variables. So, test statements in dump_event
indirectly
r/   r4   r5   r6   r7   )   Tr2   )   FN)r   r   r/   r*   assertTupleEqualpointer	can_merger<   )r#   r   ds      r   test_dump_event!UndoDelegatorTest.test_dump_eventI   s     yyNNHe$He$E5!qyy!++6	BJ'qyy!++6
Cr   c                 J   U R                   nU R                  UR                  5       5        U R                  R	                  SS5        U R                  UR                  5       5        [        5       Ul        UR                  S5        U R                  UR                  UR                  5        U R                  UR                  R                  5        UR                  S5        U R                  UR                  S5        U R                  UR                  R                  5        g )Nr/   aTF)r   r@   	get_savedr   r/   assertFalser   saved_change_hook	set_savedr=   rL   savedrA   )r#   rN   s     r   test_get_set_saved$UndoDelegatorTest.test_get_set_savedY   s     NN&		3''"f	DAGG,++223	E"%++223r   c                    U R                   nUR                  SS5        U R                  R                  5         UR                  SS5        UR                  SS5        U R                  R	                  5         U R                  UR                  SS5      S5        U R                  R                  5         UR                  SS5        U R                  R	                  5         U R                  UR                  SS5      S5        g )Nr/   r4   r5   r'   r:   )r   r/   r   undo_block_startundo_block_stopr=   r>   rB   s     r   test_undo_start_stop&UndoDelegatorTest.test_undo_start_stopl   s    yyHe$'')He$He$&&(%/7 	'')He$&&(%/7r   c                     U R                   nS=U R                  l        n[        US-   5       HD  nUR	                  SS5        U R                  [        U R                  R                  5      U5        MF     g )N
   r/   r4   )r   r   max_undoranger/   assertLessEquallenundolist)r#   r   rb   is       r   test_addcmdUndoDelegatorTest.test_addcmd}   s\    yy-//(x"}%AKK%(  T^^%<%<!=xH &r   )r   N)__name__
__module____qualname____firstlineno__classmethodr   r   r$   r,   rC   rF   rO   rY   r^   rh   __static_attributes__ r   r   r   r      sR    . .
  5
$
4,
4D 4&8"Ir   r   __main__rJ   F)	verbosityexit)__doc__idlelib.undor   unittesttest.supportr   unittest.mockr   tkinterr   r   idlelib.percolatorr	   TestCaser   rj   mainrp   r   r   <module>r}      sW     '  !    )uI)) uIp zMMAE* r   