B „ f„ã@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 ú@/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_undo.pyÚ setUpClasss zUndoDelegatorTest.setUpClasscCs&|jj ¡|`|`|j ¡|`dS)N)r ZredirÚcloser r Zdestroy)r r r rÚ tearDownClasss  zUndoDelegatorTest.tearDownClasscCs$tƒ|_tƒ|j_|j |j¡dS)N)rÚ delegatorrÚbellr Z insertfilter)Úselfr r rÚsetUps zUndoDelegatorTest.setUpcCs*|j |j¡|j dd¡|j ¡dS)Nz1.0Úend)r Z removefilterrr ÚdeleteZ resetcache)rr r rÚ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Úhz<>z1.0rÚ ÚfooÚbarz1.2z1.4ZhelloZfoarz1.6z1.3Zevent) r rÚevent_generateÚ assertEqualÚgetrrZ undo_eventÚ assertTruerÚcalled)rr r r rÚtest_undo_event's$            z!UndoDelegatorTest.test_undo_eventcCsp|j}| dd¡| dd¡| dd¡| d¡| d¡| | dd¡d¡| d¡| |jjj ¡dS)Nrrrz1.0z1.3z<>z<>) r rrrrr r!rrr")rr r r rÚ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 rrrz1.2z1.4)éTz<>)éFN)r rrrZassertTupleEqualÚpointerZ can_merger)rr Údr r rÚ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_savedrr'Zsavedr")rr(r r rÚtest_get_set_savedYs  z$UndoDelegatorTest.test_get_set_savedcCsŠ|j}| dd¡|j ¡| dd¡| dd¡|j ¡| | dd¡d¡|j ¡| dd¡|j ¡| | dd¡d¡dS)Nrrrz1.0z1.3)r rrZundo_block_startZundo_block_stoprr )rr r r rÚtest_undo_start_stopls        z&UndoDelegatorTest.test_undo_start_stopcCsL|j}d|j_}x4t|dƒD]$}| dd¡| t|jjƒ|¡q WdS)Né rr)r rÚmax_undoÚrangerZassertLessEqualÚlenZundolist)rr r/Úir r rÚ test_addcmd}s   zUndoDelegatorTest.test_addcmdN)Ú__name__Ú __module__Ú __qualname__Ú classmethodrrrrr#r$r)r,r-r3r r r rrs   rÚ__main__r&F)Ú verbosityÚexit)Ú__doc__Z idlelib.undorZunittestZ test.supportrZ unittest.mockrZtkinterrrZidlelib.percolatorrZTestCaserr4Úmainr r r rÚs    x