a 9êdg„ã@s€dZddlmZddlZddlmZedƒddlmZddlm Z m Z ddl m Z Gd d „d ej ƒZed kr|ejd d ddS)zTest undo, coverage 77%.é)Ú UndoDelegatorN)ÚrequiresZgui)ÚMock)ÚTextÚTk)Ú Percolatorc@sdeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)ÚUndoDelegatorTestcCs$tƒ|_t|jƒ|_t|jƒ|_dS©N)rÚrootrÚtextrÚ percolator©Úcls©rú7/usr/local/lib/python3.9/idlelib/idle_test/test_undo.pyÚ setUpClasss zUndoDelegatorTest.setUpClasscCs&|jj ¡|`|`|j ¡|`dSr )r ZredirÚcloser r Zdestroyr rrrÚ tearDownClasss  zUndoDelegatorTest.tearDownClasscCs$tƒ|_tƒ|j_|j |j¡dSr )rÚ delegatorrÚbellr Z insertfilter©ÚselfrrrÚsetUps zUndoDelegatorTest.setUpcCs*|j |j¡|j dd¡|j ¡dS)Nú1.0Úend)r Z removefilterrr ÚdeleteZ resetcacherrrrÚtearDown"szUndoDelegatorTest.tearDowncCsð|j}| dd¡| dd¡| d¡| | dd¡d¡| dd¡| dd ¡| d d ¡| dd ¡| d¡| | dd ¡d ¡| d¡| | dd¡d¡| d¡| | dd¡d¡| d¡|j d¡| |jj j ¡dS)NÚinsertZfoobarÚhú<>rrÚ ÚfooÚbarú1.2ú1.4ZhelloZfoarz1.6ú1.3Úevent) r rÚevent_generateÚ assertEqualÚgetrrZ undo_eventÚ assertTruerÚcalled©rr rrrÚtest_undo_event's$            z!UndoDelegatorTest.test_undo_eventcCsp|j}| dd¡| dd¡| dd¡| d¡| d¡| | dd¡d¡| d¡| |jjj ¡dS)Nrr!r"rr%rz<>) r rrr'r(r)r*rrr+r,rrrÚtest_redo_event=s      z!UndoDelegatorTest.test_redo_eventcCsf|j}|j}| dd¡| dd¡| dd¡| |j|jfd¡| d¡| |j|jfd¡d S) z› Dump_event cannot be tested directly without changing environment variables. So, test statements in dump_event indirectly rr!r"r#r$)éTr)éFN)r rrrZassertTupleEqualÚpointerZ can_merger')rr ÚdrrrÚtest_dump_eventIs    z!UndoDelegatorTest.test_dump_eventcCsŠ|j}| | ¡¡|j dd¡| | ¡¡tƒ|_| d¡|  |j |j ¡| |jj ¡| d¡|  |j d¡| |jj ¡dS)NrÚaTFéÿÿÿÿ) rr*Z get_savedr rZ assertFalserZsaved_change_hookZ set_savedr(r1Zsavedr+)rr2rrrÚtest_get_set_savedYs  z$UndoDelegatorTest.test_get_set_savedcCsŠ|j}| dd¡|j ¡| dd¡| dd¡|j ¡| | dd¡d¡|j ¡| dd¡|j ¡| | dd¡d¡dS)Nrr!r"rr%)r rrZundo_block_startZundo_block_stopr(r)r,rrrÚtest_undo_start_stopls        z&UndoDelegatorTest.test_undo_start_stopcCsH|j}d|j_}t|dƒD]$}| dd¡| t|jjƒ|¡qdS)Né rr!)r rÚmax_undoÚrangerZassertLessEqualÚlenZundolist)rr r9ÚirrrÚ test_addcmd}s   zUndoDelegatorTest.test_addcmdN)Ú__name__Ú __module__Ú __qualname__Ú classmethodrrrrr-r.r3r6r7r=rrrrrs   rÚ__main__r0F)Ú verbosityÚexit)Ú__doc__Z idlelib.undorZunittestZ test.supportrZ unittest.mockrÚtkinterrrZidlelib.percolatorrZTestCaserr>ÚmainrrrrÚs    x