3  f@sdZddlmZddlZddlmZedddlmZddlm Z m Z ddl m Z Gd d d ej Zed kr|ejd d ddS)zTest undo, coverage 77%.) UndoDelegatorN)requiresZgui)Mock)TextTk) Percolatorc@sdeZdZeddZeddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ dS)UndoDelegatorTestcCs$t|_t|j|_t|j|_dS)N)rrootrtextr percolator)clsr @/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_undo.py setUpClasss zUndoDelegatorTest.setUpClasscCs&|jjj|`|`|jj|`dS)N)r Zredircloser r Zdestroy)r r r r tearDownClasss  zUndoDelegatorTest.tearDownClasscCs$t|_t|j_|jj|jdS)N)r delegatorrbellr Z insertfilter)selfr r rsetUps zUndoDelegatorTest.setUpcCs*|jj|j|jjdd|jjdS)Nz1.0end)r Z removefilterrr deleteZ resetcache)rr r rtearDown"szUndoDelegatorTest.tearDowncCs|j}|jdd|jdd|jd|j|jddd|jdd|jdd |jd d |jdd |jd|j|jdd d |jd|j|jddd|jd|j|jddd|jd|jjd|j|jj j dS)NinsertZfoobarhz<>z1.0r foobarz1.2z1.4ZhelloZfoarz1.6z1.3Zevent) r revent_generate assertEqualgetrrZ undo_event assertTruercalled)rr r r rtest_undo_event's$            z!UndoDelegatorTest.test_undo_eventcCsp|j}|jdd|jdd|jdd|jd|jd|j|jddd|jd|j|jjj dS)Nrrrz1.0z1.3z<>z<>) r rrrrr r!rrr")rr r r rtest_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.4Tz<>FN)r%T)r&F)r rrrZassertTupleEqualpointerZ can_merger)rr dr r rtest_dump_eventIs    z!UndoDelegatorTest.test_dump_eventcCs|j}|j|j|jjdd|j|jt|_|jd|j |j |j |j|jj |jd|j |j d|j|jj dS)NraTF) rr!Z get_savedr rZ assertFalserZsaved_change_hookZ set_savedrr'Zsavedr")rr(r r rtest_get_set_savedYs  z$UndoDelegatorTest.test_get_set_savedcCs|j}|jdd|jj|jdd|jdd|jj|j|jddd|jj|jdd|jj|j|jddddS)Nrrrz1.0z1.3)r rrZundo_block_startZundo_block_stoprr )rr r r rtest_undo_start_stopls        z&UndoDelegatorTest.test_undo_start_stopcCsL|j}d|j_}x4t|dD]$}|jdd|jt|jj|q WdS)N rr)r rmax_undorangerZassertLessEquallenZundolist)rr r0ir r r test_addcmd}s   zUndoDelegatorTest.test_addcmdN)__name__ __module__ __qualname__ classmethodrrrrr#r$r)r-r.r4r r r rrs   r__main__r&F) verbosityexit)__doc__Z idlelib.undorZunittestZ test.supportrZ unittest.mockrZtkinterrrZidlelib.percolatorrZTestCaserr5mainr r r rs    x