3 § f„ã@s€dZddlmZddlZddlmZedƒddlmZddlm Z m Z ddl m Z Gd d „d ej ƒZed kr|ejd d d�dS)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/python36/lib64/python3.6/idlelib/idle_test/test_undo.pyÚ setUpClasss zUndoDelegatorTest.setUpClasscCs&|jjjƒ|`|`|jjƒ|`dS)N)r ZredirÚcloser r Zdestroy)r r r rÚ tearDownClasss  zUndoDelegatorTest.tearDownClasscCs$tƒ|_tƒ|j_|jj|jƒdS)N)rÚ delegatorrÚbellr Z insertfilter)Úselfr r rÚsetUps zUndoDelegatorTest.setUpcCs*|jj|jƒ|jjddƒ|jjƒdS)Nz1.0Úend)r Z removefilterrr ÚdeleteZ resetcache)rr r rÚtearDown"szUndoDelegatorTest.tearDowncCsð|j}|jddƒ|jddƒ|jdƒ|j|jddƒdƒ|jddƒ|jdd ƒ|jd d ƒ|jdd ƒ|jdƒ|j|jdd ƒd ƒ|jdƒ|j|jddƒdƒ|jdƒ|j|jddƒdƒ|jdƒ|jjdƒ|j|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}|jddƒ|jddƒ|jddƒ|jdƒ|jdƒ|j|jddƒdƒ|jdƒ|j|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}|jddƒ|jddƒ|jddƒ|j|j|jfd ƒ|jdƒ|j|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%T)r&F)r rrrZassertTupleEqualÚpointerZ can_merger)rr Údr r rÚtest_dump_eventIs    z!UndoDelegatorTest.test_dump_eventcCsŠ|j}|j|jƒƒ|jjddƒ|j|jƒƒtƒ|_|jdƒ|j |j |j ƒ|j|jj ƒ|jdƒ|j |j dƒ|j|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}|jddƒ|jjƒ|jddƒ|jddƒ|jjƒ|j|jddƒdƒ|jjƒ|jddƒ|jjƒ|j|jddƒ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]$}|jddƒ|jt|jjƒ|ƒq WdS)Né rr)r rÚmax_undoÚrangerZassertLessEqualÚlenZundolist)rr r0Úir r rÚ test_addcmd}s   zUndoDelegatorTest.test_addcmdN)Ú__name__Ú __module__Ú __qualname__Ú classmethodrrrrr#r$r)r-r.r4r r r rrs   rÚ__main__r&F)Ú verbosityÚexit)Ú__doc__Z idlelib.undorZunittestZ test.supportrZ unittest.mockrZtkinterrrZidlelib.percolatorrZTestCaserr5Úmainr r r rÚs    x