B � 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/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