Ë
    #´˜j„  ã                   ó¾   — 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    ú-lib/python3.12/idlelib/idle_test/test_undo.pyÚ
setUpClasszUndoDelegatorTest.setUpClass   s*   € ä“4ˆŒÜ˜Ÿ™“>ˆŒÜ# C§H¡HÓ-ˆ�ó    c                 óŒ   — | j                   j                  j                  «        | ` | `| j                  j                  «        | `y r   )r   ÚredirÚcloser   r   Údestroyr   s    r   ÚtearDownClasszUndoDelegatorTest.tearDownClass   s6   € à�‰×Ñ×"Ñ"Ô$ØˆN˜C˜HØ�‰×ÑÔØ‰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?  € Ø�y‰yˆà�‰�H˜hÔ'Ø�‰�H˜cÔ"Ø×Ñ˜JÔ'Ø×Ñ˜Ÿ™ %¨Ó/°Ô6à�‰�H˜eÔ$Ø�‰�H˜eÔ$Ø�‰�E˜5Ô!Ø�‰�H˜gÔ&Ø×Ñ˜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–   € Ø�y‰yˆà�‰�H˜eÔ$Ø�‰�H˜eÔ$Ø�‰�E˜5Ô!Ø×Ñ˜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ˆ   € ð �y‰yˆØ�N‰Nˆà�‰�H˜eÔ$Ø�‰�H˜eÔ$Ø�‰�E˜5Ô!Ø×Ñ˜qŸy™y¨!¯+©+Ð6¸	ÔBØ×Ñ˜JÔ'Ø×Ñ˜qŸy™y¨!¯+©+Ð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Å   € ð �N‰Nˆà�‰˜Ÿ™›Ô&Ø�	‰	×Ñ˜ 3Ô'Ø×Ñ˜Ÿ™›Ô'Ü"›fˆÔà	�‰�DÔØ×Ñ˜Ÿ™ A§G¡GÔ,Ø�‰˜×+Ñ+×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»   € à�y‰yˆà�‰�H˜eÔ$Ø�‰×'Ñ'Ô)Ø�‰�H˜eÔ$Ø�‰�H˜eÔ$Ø�‰×&Ñ&Ô(Ø×Ñ˜Ÿ™ %¨Ó/°Ô7ð 	�‰×'Ñ'Ô)Ø�‰�H˜eÔ$Ø�‰×&Ñ&Ô(Ø×Ñ˜Ÿ™ %¨Ó/°Õ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}   s\   € Ø�y‰yˆà-/Ð/ˆ�‰Ô (Ü�x "‘}Ö%ˆAØ�K‰K˜ %Ô(Ø× Ñ ¤ T§^¡^×%<Ñ%<Ó!=¸xÕHñ &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ÒØ€H‡M�M˜A EÖ*ð r   