3 Õì2a„ã@s|ddlmZddlZddlmZedƒddlmZddlmZm Z ddl m Z Gdd „d ej ƒZ ed krxejd d d �dS)é)Ú 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/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 ƒdS) Nrrrz1.2z1.4éTz<>éF)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)Z idlelib.undorZunittestZ test.supportrZ unittest.mockrZtkinterrrZidlelib.percolatorrZTestCaserr5Úmainr r r rÚs    x