B YI~dq �@s�ddlmZddlZddlmZed�ddlmZmZddlm Z ddl m Z ddl m ZejZe jZGdd �d ej�Zed kr�ejd d �dS) �)� ReplaceDialogN)�requiresZgui)�Tk�Text)�Mock)�Mboxc@steZdZedd��Zedd��Zdd�Zdd�Zd d �Zd d �Z d d�Z dd�Z dd�Z dd�Z dd�Zdd�ZdS)�ReplaceDialogTestcCszt�|_|j��tt_t�|j�|_t|j|j�|_ dd�|j _ t �|j _ t |j�|_t �|j_t �|j_|j|j _dS)NcSsdS)N�r r r �C/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_replace.py��z.ReplaceDialogTest.setUpClass..)r�rootZwithdrawr�se� tkMessageBoxZ SearchEngine�enginer�dialogZbellr�okr�textZundo_block_startZundo_block_stop)�clsr r r � setUpClasss      zReplaceDialogTest.setUpClasscCs$tt_|`|`|`|j��|`dS)N)� orig_mboxrrrrrr Zdestroy)rr r r � tearDownClass!s  zReplaceDialogTest.tearDownClasscCs|j�dd�dS)N�insertzThis is a sample sTring)rr)�selfr r r �setUp(szReplaceDialogTest.setUpcCs�|jj�d�|jj�d�|jj�d�|jj�d�|jj�d�|jj�d�|jj �d�dt _ dt _ |j �dd�dS)N�FTz1.0�end)r�patvar�setr�replvar�wordvar�casevar�revar�wrapvar�backvar� showerror�title�messager�delete)rr r r �tearDown+szReplaceDialogTest.tearDowncCs�|j}|j}|jj}|jj}|jj}|j�d�||j��|� ��|� d�|� d�|�||� dd�d�|� dd�|� d�|� d�|�||� d d �d�|� d �|� d �|�||� d d�d �|� dd�|� dd�|� dd�}|� d�|�|� dd�}|||�|� dd�|� d�|� d�|�||� d�d�||� d�d�|�||� d�d�||� d�d�|� dd�}|�|� dd�}|||�|� dd�}|� d�|�|� dd�}|||�|j� d�dS)NZasdf�az1.8z1.12rz1.0�is�helloz1.2z1.7�stringZworldz1.23z1.28rz line42:z [a-z][\d]+z1.9�i�jz2.1�foobarr)r� assertEqualrrrr� replace_itZsetpatZgetpat�getr�mark_setrZfind_it)rr�equal�pv�rv�replace� before_text� after_textr r r �test_replace_simple7s\                        z%ReplaceDialogTest.test_replace_simplecCs�|j}|j}|jj}|jj}|jj}|jj�d�|� dd�|�d�|�d�|�||� d�d�||� d�d�|�||� d�d�||� d�d�|�||� d�d�|� dd �|�d �|� d d �}|�|� d d �}|||�dS) NFrz1.4r.r/z1.2z1.5z1.20z1.8r+z1.0r) rr1rrrrr2r#rr4r3)rrr5r6r7r8r9r:r r r �test_replace_wrap_around}s.       z*ReplaceDialogTest.test_replace_wrap_aroundcCst|j}|j}|jj}|jj}|jj}|jj�d�|�d�|�d�|�||� dd�d�||� dd�d�dS) NTr+r,z1.0z1.4�Thisz1.5z1.10) rr1rrrrr2r rr3)rrr5r6r7r8r r r �test_replace_whole_word�s  z)ReplaceDialogTest.test_replace_whole_wordcCs�|j}|j}|jj}|jj}|jj}|jj�d�|j� dd�}|�d�|�d�|�|j� dd�}|||�|�d�|�||� dd�d�dS)NTz1.0r�this�thatr=z1.4) r1rrrrrr2r!rr3)rr5rr6r7r8r9r:r r r �test_replace_match_case�s    z)ReplaceDialogTest.test_replace_match_casecCsJ|j}|j}|jj}|jj}|jj}|jj�d�|� dd�}|�d�|�d�|�|� dd�}|||�|� dd�|�||� dd �d �|�d �|�|� d t j �|� d t j�|�d�|�|� d t j �|� dt j�d t _ d t _|�d�|�d�|�|� d t j �|� dt j�|j�d�||� �d�dS)NTz1.0rz [a-z][\d]+r,rz line42z2.0z2.8Zlinhellor�error�Emptyz[\d�Patternz[a]ztest\zInvalid Replace Expression�?z\?)r1rrrrrr2r"rr3r�assertInr%r&r'Z setcookedpat)rr5rr6r7r8r9r:r r r �test_replace_regex�s@           z$ReplaceDialogTest.test_replace_regexcCs�|j}|j}|jj}|jj}|jj}|jj�d�|� dd�|�d�|�d�|�||� dd�d�||� dd �d�|�||� d d �d�|�||� dd �d�dS) NTrz is as r+�wasz1.2z1.4z2.0z2.3z1.5z1.8) r1rrrrrr2r$rrr3)rr5rr6r7r8r r r �test_replace_backwards�s    z(ReplaceDialogTest.test_replace_backwardscCs�|j}|jj}|jj}|jj}|�dd�|�d|�dd�d�|�d�|�d�|�|� d|�dd��|jj �d�|�d �|�|� d t j �|� d t j�|�d �|�d �|�|jj �d�|�d�|�d�|�dS)Nr� z1.0r�dr+rHTrrBrCz[s][T]�\Fztext which is not presentr0)rrrrr� replace_allrr3rZ assertNotInr"rFr%r&r')rrr6r7rMr r r �test_replace_all�s,        z"ReplaceDialogTest.test_replace_allcCsr|j}|jj}|jj}|jj}|j}|�d�|�d�|�||�dd�d�|jj �d�|�d�|�dS)Nr=rHz sel.firstzsel.lastTr) rrrrrZdefault_commandr1rr3r")rrr6r7Z replace_findr5r r r �test_default_commands   z&ReplaceDialogTest.test_default_commandN)�__name__� __module__� __qualname__� classmethodrrrr)r;r<r>rArGrIrNrOr r r r rs   F)r�__main__�)� verbosity)Zidlelib.replacerZunittestZ test.supportrZtkinterrrZ unittest.mockrZidlelib.idle_test.mock_tkrZidlelib.searchengineZ searchenginerrrr%ZTestCaserrP�mainr r r r �s