a  ze@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|_dSN)rrootrtextr percolatorclsrO/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/idle_test/test_undo.py setUpClasss zUndoDelegatorTest.setUpClasscCs&|jj|`|`|j|`dSr )r Zredircloser r Zdestroyr rrr tearDownClasss  zUndoDelegatorTest.tearDownClasscCs$t|_t|j_|j|jdSr )r delegatorrbellr Z insertfilterselfrrrsetUps zUndoDelegatorTest.setUpcCs*|j|j|jdd|jdS)N1.0end)r Z removefilterrr deleteZ resetcacherrrrtearDown"szUndoDelegatorTest.tearDowncCs|j}|dd|dd|d||ddd|dd|dd |d d |dd |d||dd d |d||ddd|d||ddd|d|jd||jj j dS)NinsertZfoobarh<>rr foobar1.21.4ZhelloZfoarz1.61.3event) r revent_generate assertEqualgetrrZ undo_event assertTruercalledrr rrrtest_undo_event's$            z!UndoDelegatorTest.test_undo_eventcCsp|j}|dd|dd|dd|d|d||ddd|d||jjj dS)Nrr!r"rr%rz<>) r rrr'r(r)r*rrr+r,rrrtest_redo_event=s      z!UndoDelegatorTest.test_redo_eventcCsf|j}|j}|dd|dd|dd||j|jfd|d||j|jfdd 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 rrrZassertTupleEqualpointerZ can_merger')rr drrrtest_dump_eventIs    z!UndoDelegatorTest.test_dump_eventcCs|j}|||jdd||t|_|d| |j |j ||jj |d| |j d||jj dS)NraTF) rr*Z get_savedr rZ assertFalserZsaved_change_hookZ set_savedr(r1Zsavedr+)rr2rrrtest_get_set_savedYs  z$UndoDelegatorTest.test_get_set_savedcCs|j}|dd|j|dd|dd|j||ddd|j|dd|j||ddddS)Nrr!r"rr%)r rrZundo_block_startZundo_block_stopr(r)r,rrrtest_undo_start_stopls        z&UndoDelegatorTest.test_undo_start_stopcCsH|j}d|j_}t|dD]$}|dd|t|jj|qdS)N rr!)r rmax_undorangerZassertLessEquallenZundolist)rr r9irrr test_addcmd}s   zUndoDelegatorTest.test_addcmdN)__name__ __module__ __qualname__ classmethodrrrrr-r.r3r6r7r=rrrrrs   r__main__r0F) verbosityexit)__doc__Z idlelib.undorZunittestZ test.supportrZ unittest.mockrtkinterrrZidlelib.percolatorrZTestCaserr>mainrrrrs    x