Sindbad~EG File Manager
�
&Μgk ���dZddlmZddlZddlmZed�ddlmZmZddl m
Z
ddlmZddl
mZej Zej$ZGd �d
ej&�Zedk(rej,d�
�yy)zTest replace, coverage 78%.�)�
ReplaceDialogN)�requires�gui)�Tk�Text)�Mock)�Mboxc�h�eZdZed��Zed��Zd�Zd�Zd�Zd�Z d�Z
d�Zd �Zd
�Z
d�Zd�Zy
)�ReplaceDialogTestc�*�t�|_|jj�tt_t j|j�|_t|j|j�|_ d�|j_
t�|j_t|j�|_t�|j_t�|j_|j|j_y)Nc��y�N�r��;/usr/local/lib/python3.12/idlelib/idle_test/test_replace.py�<lambda>z.ReplaceDialogTest.setUpClass.<locals>.<lambda>s��$r)r�root�withdrawr �se�
messagebox�SearchEngine�enginer�dialog�bellr�okr�text�undo_block_start�undo_block_stop��clss r�
setUpClasszReplaceDialogTest.setUpClasss����4�����������
��_�_�S�X�X�.��
�"�3�8�8�S�Z�Z�8��
�&��
�
�����
�
�
�����>���$(�F����!�#'�6���� ��(�(��
�
�rc�f�tt_|`|`|`|jj�|`yr)� orig_mboxrrrrrr�destroyrs r�
tearDownClasszReplaceDialogTest.tearDownClass!s+��!��
��H�c�j�#�*��������Hrc�<�|jjdd�y)N�insertzThis is a sample sTring)rr'��selfs r�setUpzReplaceDialogTest.setUp(s��� � ����#<�=rc�n�|jjjd�|jjjd�|jj
jd�|jjjd�|jjjd�|jjjd�|jjjd�dt_dt_|jjdd�y)N�FT�1.0�end)r�patvar�setr�replvar�wordvar�casevar�revar�wrapvar�backvar� showerror�title�messager�deleter(s r�tearDownzReplaceDialogTest.tearDown+s����������r�"���������#���������&���������&��������e�$���������%���������&�� ��� ��� � �����&rc�:�|j}|j}|jj}|jj
}|jj}|jjd�||jj�|j��|jd�|jd�|�||jdd�d�|jdd�|jd�|jd�|�||jd d
�d�|jd�|jd�|�||jd
d�d�|jdd�|jdd�|jdd�}|jd�|�|jdd�}|||�|jdd�|jd�|jd�|�||jd�d�||jd�d�|�||jd�d�||jd�d�|jdd�}|�|jdd�}|||�|jdd�}|jd�|�|jdd�}|||�|jjd�y)N�asdf�a�1.8z1.12r'r-�is�hello�1.2z1.7�string�worldz1.23z1.28r.z
line42:�
[a-z][\d]+z1.9�i�jz2.1�foobarr)r�assertEqualrr/rr1�
replace_it�setpat�getpat�getr0�mark_setr'�find_it�r)r�equal�pv�rv�replace�before_text�
after_texts r�test_replace_simplez%ReplaceDialogTest.test_replace_simple7sl���y�y��� � ��
�[�[�
�
��
�[�[�
�
���+�+�(�(��
�����6�"�
�d�k�k� � �"�B�F�F�H�-� ���s��
���v��� �
�d�h�h�u�f�%�v�.�
�
�
�h��&�
���t��
���w��� �
�d�h�h�u�e�$�g�.� ���x��
���w��� �
�d�h�h�v�v�&��0�
�
�
�h��&����H�k�*��h�h�u�e�,��
���}��� ��X�X�e�U�+�
�
�k�:�&�
�
�
�h��&�
���s��
���s��� �
�d�h�h�u�o�s�#�
�d�h�h�u�o�s�#�� �
�d�h�h�u�o�s�#�
�d�h�h�u�o�s�#��h�h�u�e�,��� ��X�X�e�U�+�
�
�k�:�&��h�h�u�e�,��
���x��� ��X�X�e�U�+�
�
�k�:�&�
�����A�rc�2�|j}|j}|jj}|jj
}|jj}|jjjd�|jdd�|jd�|jd�|�||jd�d�||jd�d�|�||jd�d�||jd�d�|�||jd�d�|jdd �|jd
�|jdd�}|�|jdd�}|||�y)
NFr'�1.4rFrGrB�1.5z1.20r?r@r-r.)rrIrr/rr1rJr5r0rNrMrPs r�test_replace_wrap_aroundz*ReplaceDialogTest.test_replace_wrap_around}s5���y�y��� � ��
�[�[�
�
��
�[�[�
�
���+�+�(�(����������&�
�
�
�h��&�
���s��
���s��� �
�d�h�h�u�o�s�#�
�d�h�h�u�o�s�#�� �
�d�h�h�u�o�s�#�
�d�h�h�v���$�� �
�d�h�h�u�o�s�#�
�
�
�h��&�
���t���h�h�u�e�,��� ��X�X�e�U�+�
�
�k�:�&rc��|j}|j}|jj}|jj
}|jj}|jjjd�|jd�|jd�|�||jdd�d�||jdd�d�y) NTr@rAr-rY�ThisrZz1.10)
rrIrr/rr1rJr2r0rM)r)rrQrRrSrTs r�test_replace_whole_wordz)ReplaceDialogTest.test_replace_whole_word�s����y�y��� � ��
�[�[�
�
��
�[�[�
�
���+�+�(�(����������%�
���t��
���w��� �
�d�h�h�u�e�$�f�-�
�d�h�h�u�f�%�w�/rc�8�|j}|j}|jj}|jj
}|jj}|jjjd�|jjdd�}|jd�|jd�|�|jjdd�}|||�|jd�|�||jdd�d�y)NTr-r.�this�thatr]rY)
rIrrr/rr1rJr3r0rM�r)rQrrRrSrTrUrVs r�test_replace_match_casez)ReplaceDialogTest.test_replace_match_case�s���� � ���y�y��
�[�[�
�
��
�[�[�
�
���+�+�(�(����������%��i�i�m�m�E�5�1��
���v��
���v��� ��Y�Y�]�]�5�%�0�
�
�k�:�&�
���v��� �
�d�h�h�u�e�$�f�-rc���|j}|j}|jj}|jj
}|jj}|jjjd�|jdd�}|jd�|jd�|�|jdd�}|||�|jdd�|�||jdd �d
�|jd�|�|jdtj�|jd
tj�|jd�|�|jdtj�|jdtj�dt_
dt_|jd�|jd�|�|jdtj�|jdtj�|jjd�||j�d�y)NTr-r.rErAr'z
line42�2.0z2.8�linhellor,�error�Emptyz[\d�Patternz[a]ztest\zInvalid Replace Expression�?z\?)rIrrr/rr1rJr4r0rMr'�assertInr7r8r9�setcookedpatrbs r�test_replace_regexz$ReplaceDialogTest.test_replace_regex�s���� � ���y�y��
�[�[�
�
��
�[�[�
�
���+�+�(�(���������d�#��h�h�u�e�,��
���}��
���w��� ��X�X�e�U�+�
�
�k�:�&����H�j�)�� �
�d�h�h�u�e�$�j�1�
���r�
�� ��
�
�g�y���/��
�
�g�y�0�0�1�
���v��� ��
�
�g�y���/��
�
�i��!2�!2�3�� ��� ��
���u�
�
���x��� ��
�
�g�y���/��
�
�2�I�4E�4E�F�
��� � ��%�
�b�f�f�h��rc�\�|j}|j}|jj}|jj
}|jj}|jjjd�|jdd�|jd�|jd�|�||jdd�d�||jdd �d�|�||jd
d�d�|�||jdd
�d�y)NTr'z
is as r@�wasrBrYrez2.3rZr?)rIrrr/rr1rJr6r0r'rM)r)rQrrRrSrTs r�test_replace_backwardsz(ReplaceDialogTest.test_replace_backwards�s���� � ���y�y��
�[�[�
�
��
�[�[�
�
���+�+�(�(����������%����H�j�)�
���t��
���u�
�� �
�d�h�h�u�e�$�d�+�
�d�h�h�u�e�$�e�,�� �
�d�h�h�u�e�$�e�,�� �
�d�h�h�u�e�$�e�,rc��|j}|jj}|jj}|jj
}|j
dd�|j
d|jdd�dz�|jd�|jd�|�|jd|jdd��|jjjd�|jd �|�|jd
tj�|jdtj�|jd�|jd
�|�|jjjd�|jd�|jd�|�y)Nr'�
r-r.�dr@roTr,rgrhz[s][T]�\Fztext which is not presentrH)rrr/rr1�replace_allr'rMr0�assertNotInr4rkr7r8r9)r)rrRrSrus r�test_replace_allz"ReplaceDialogTest.test_replace_all�s:���y�y��
�[�[�
�
��
�[�[�
�
���k�k�-�-�����H�d�#����H�d�h�h�u�e�4�S�8�9�
���t��
���u�
��
�����t�x�x��u�5�6��������d�#�
���r�
��
��
�
�g�y���/��
�
�g�y�0�0�1�
���x��
���t���
��������e�$�
���*�+�
���x���
rc��|j}|jj}|jj}|jj
}|j}|jd�|jd�|�||jdd�d�|jjjd�|jd�|�y)Nr]roz sel.firstzsel.lastTr,)
rrr/rr1�default_commandrIr0rMr4)r)rrRrS�replace_findrQs r�test_default_commandz&ReplaceDialogTest.test_default_commands����y�y��
�[�[�
�
��
�[�[�
�
���{�{�2�2��� � ��
���v��
���u�
���
�d�h�h�{�J�/��7��������d�#�
���r�
��rN)�__name__�
__module__�__qualname__�classmethodr!r%r*r;rWr[r^rcrmrprwr{rrrrrs]���#��#�����>�
'�D�L'�:0�.�&'�R-�(�8rr�__main__�)� verbosity)�__doc__�idlelib.replacer�unittest�test.supportr�tkinterrr�
unittest.mockr�idlelib.idle_test.mock_tkr �idlelib.searchengine�searchenginerrr#r7�TestCaserr|�mainrrr�<module>r�sh���)��!������*�!��M�M� ��N�N� �Q��)�)�Q�h�z���H�M�M�A��r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists