Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/idlelib/idle_test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/idlelib/idle_test/__pycache__/test_squeezer.cpython-312.opt-1.pyc

�

&Μg�L��r�dZddlmZddlmZmZddlZddlmZm	Z	m
Z
mZmZddl
mZddlmZddlmZdd	lmZmZmZdd
lmZddlmZddlmZej:Zd
�ZGd�dej>�Z Gd�dej>�Z!Gd�dej>�Z"e#dk(rejHd��yy)zTest squeezer, coverage 95%�)�dedent)�Text�TkN)�Mock�NonCallableMagicMock�patch�sentinel�ANY)�requires)�idleConf)�
Percolator)�count_lines_with_wrapping�ExpandingButton�Squeezer)�macosx)�	view_text)�Hovertipc�~��td�t���j��fd�}|j|��S)z*Helper for tests: Create a root Tk object.�guic�F���j��j�y�N)�update_idletasks�destroy��roots��</usr/local/lib/python3.12/idlelib/idle_test/test_squeezer.py�cleanup_rootz&get_test_tk_root.<locals>.cleanup_roots�����������)rr�withdraw�
addCleanup)�
test_instancerrs  @r�get_test_tk_rootr"s4����U�O�
�4�D��M�M�O�����\�*��Krc�@�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy
)�CountLinesTestz1Tests for the count_lines_with_wrapping function.c�:�|j|t||��Sr��assertEqualr)�self�expected�text�	linewidths    r�checkzCountLinesTest.check$s"������%�d�I�6�
�	
rc�:�|jtd�d�y)zTest with an empty string.�rNr&�r(s r�test_count_emptyzCountLinesTest.test_count_empty*s�����2�2�6��:rc�:�|jtd�d�y)z/Test with a string which begins with a newline.z
text�Nr&r/s r�!test_count_begins_with_empty_linez0CountLinesTest.test_count_begins_with_empty_line.������2�8�<�a�@rc�:�|jtd�d�y)z-Test with a string which ends with a newline.ztext
�Nr&r/s r�test_count_ends_with_empty_linez.CountLinesTest.test_count_ends_with_empty_line2r4rc�:�|jtd�d�y)z Test with several lines of text.z1
2
3
�Nr&r/s r�test_count_several_linesz'CountLinesTest.test_count_several_lines6s�����2�;�?��Crc�|�|jddd��|jddd��|jddd��y)	Nr6�
�P�r)r*r+r2�

�
z










�r,r/s r�test_empty_lineszCountLinesTest.test_empty_lines:s8���
�
�A�D�B�
�7��
�
�A�F�b�
�9��
�
�B�Y�"�
�=rc�T�|jddd��|jddd��y)Nr9��aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar=r>z�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
rAr/s r�test_long_linezCountLinesTest.test_long_line?s'���
�
�A�I��
�<��
�
�A�$4��
�Crc���td�}|jd|d��|jd|dzd��|jd|d��|jd|d	��|jd
|d��y)Nz�            13 characters
            43 is the number of characters on this line

            7 chars
            13 characters�r=r>r<��(���r@)rr,)r(r*s  r�$test_several_lines_different_lengthsz3CountLinesTest.test_several_lines_different_lengthsCsq������	
�
�
�A�D�B�
�7��
�
�A�D�4�K�2�
�>��
�
�A�D�B�
�7��
�
�A�D�B�
�7��
�
�B�T�R�
�8rN)�__name__�
__module__�__qualname__�__doc__r,r0r3r7r:rBrErM�rrr$r$"s1��;�
�;�A�A�D�>�
D�9rr$c�p�eZdZdZdd�Zdd�Zdd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zy)�SqueezerTestzTests for the Squeezer class.c��t�}d|_|rDt|�|_|j	|j��}|x|_|j_|S)z$Create a mock EditorWindow instance.r=r)r�widthr"r�make_text_widgetr*�per�bottom)r(�with_text_widget�editwin�text_widgets    r�make_mock_editor_windowz$SqueezerTest.make_mock_editor_windowSsO��&�(����
��+�D�1�G�L��/�/�W�\�\�/�B�K�0;�;�G�L�7�;�;�-��rNc�@�|�|j�}t|�}|S)z<Create an actual Squeezer instance with a mock EditorWindow.)r]r)r(�
editor_window�squeezers   r�make_squeezer_instancez#SqueezerTest.make_squeezer_instance_s%��� � �8�8�:�M��M�*���rc�d�|�t|�}t|�}d|d<|jdd�|S)N)�Courierr@�font�iomark�1.0)r"r�mark_set)r(rr\s   rrWzSqueezerTest.make_text_widgetfs:���<�#�D�)�D��4�j��-��F�����X�u�-��rc��tj|||�}tj||||�|jtj||||�yr)r�	GetOption�	SetOptionr )r(�
configType�section�option�value�prev_vals      r� set_idleconf_option_with_cleanupz-SqueezerTest.set_idleconf_option_with_cleanupnsG���%�%�j�'�6�B�����:�w���>�����*�*�"�G�V�X�	?rc�^�|j�}|j|�}dD]o\}}}|j|||��5t|�}t	j
|d|�5|j
|j|�|�ddd�ddd��qy#1swY�xYw#1swY��xYw)z0Test Squeezer.count_lines() with various inputs.))z'\n'r=r6)z'\n' * 3r=r9)z'a' * 40 + '\n'r=r6)z'a' * 80 + '\n'r=r6)z'a' * 200 + '\n'r=r9)�'aa\t' * 20r=r2)z'aa\t' * 21r=r9)rrrI�)�	text_code�
line_widthr)rVN)r]ra�subTest�evalr�objectr'�count_lines)r(r[r`rtrur)r*s       r�test_count_lineszSqueezerTest.test_count_linests����.�.�0���.�.�w�7��	0
�+�I�z�8����	�)3�'/��1��I����\�\�'�7�J�?��$�$�X�%9�%9�$�%?��J�@�	1�1�	0
�@�?��	1�1�s#�#B#�""B�B#�B �B#�#B,	c��|j�}|j|�}|j|j|�|j	|j
g�y)z(Test the creation of Squeezer instances.N)r]ra�assertIsr[r'�expandingbuttons)r(r[r`s   r�	test_initzSqueezerTest.test_init�sJ���.�.�0���.�.�w�7���
�
�h�&�&��0�����2�2�B�7rc��|j�}ddddzdfD]�}tt��x|_}|j	|�}|j|jj|d�t�|j|jd�|j|d�|jt|j�d	���y
)�@Test Squeezer's overriding of the EditorWindow's write() method.r.�TEXT�	LONG TEXT���LMANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
��return_valuerRr6rN)r]r�SENTINEL_VALUE�writerar'r[�
call_count�assert_called_with�lenr}�r(r[r*�
orig_writer`s     r�test_write_no_tagszSqueezerTest.test_write_no_tags�s����.�.�0�����t�!3�5I�J�D�)-�>�)J�J�G�M�J��2�2�7�;�H����X�-�-�3�3�D�"�=�~�N����Z�2�2�A�6��)�)�$��3����S��!:�!:�;�Q�?�Krc��ddddzdfD]�}|j�}t|j_|j}|j	|�}|j|jj|d�t�|j|jd�|j|d�|jt|j�d���y	)
r�r.r�r�r�r��stderrr6rN)r]r�r�r�rar'r[r�r�r�r})r(r*r[r�r`s     r�test_write_not_stdoutz"SqueezerTest.test_write_not_stdout�s������t�!3�5I�J�D��2�2�4�G�)7�G�M�M�&� ���J��2�2�7�;�H����X�-�-�3�3�D�(�C�,�
.����Z�2�2�A�6��)�)�$��9����S��!:�!:�;�Q�?�Krc���|j�}dD]�}tt��x|_}|j	|�}d|_|j
|jj|d�t�|j
|jd�|j|d�|j
t|j�d���ddzd	fD]�}tt��x|_}|j	|�}d|_|j
|jj|d�d
�|j
|jd�|j
t|j�d���y
)r�)r.r�r��2�stdoutr6rr�r�r�N)r]rr�r�ra�auto_squeeze_min_linesr'r[r�r�r�r}r�s     r�test_write_stdoutzSqueezerTest.test_write_stdout�s>���.�.�0�� �D�)-�>�)J�J�G�M�J��2�2�7�;�H�.0�H�+����X�-�-�3�3�D�(�C�+�
-����Z�2�2�A�6��)�)�$��9����S��!:�!:�;�Q�?�!�!�4�'�)=�>�D�)-�>�)J�J�G�M�J��2�2�7�;�H�.0�H�+����X�-�-�3�3�D�(�C�T�J����Z�2�2�A�6����S��!:�!:�;�Q�?�?rc�D�|jd��}|j}|j|�}d|_t	d��|_|j
dd�|j|jdd	�d
�|jt|j�d�y)
zATest that the auto-squeezing creates an ExpandingButton properly.T�rZrGrHr�zTEXT
TEXT
TEXT
TEXT
TEXT
TEXT
r�rf�endr<r6N)r]r*rar�rryr�r'�getr�r})r(r[r\r`s    r�test_auto_squeezezSqueezerTest.test_auto_squeeze�s����.�.��.�E���l�l���.�.�w�7��*+��'�#��3����
�
�j�(�+���������6��=�����X�6�6�7��;rc�Z�dD�]�}|jd��}|j}|j|�}td��|_|jdd|�|j
dd�|j|jdd	�d
�|jt|j�d�|j�}|j|d�|j|jdd	�d
�|jt|j�d�|j|jdjd�|jdj�|j|jdd	�d
�|jt|j�d����y)z%Test the squeeze_current_text method.)r�r�Tr�rHr�rf�
SOME
TEXT
�insertr��SOME
TEXT

r�breakr?r6z	SOME
TEXTN)r]r*rarryr�rgr'r�r�r}�squeeze_current_text�s�expand)r(�tag_namer[r\r`�retvals      r�test_squeeze_current_textz&SqueezerTest.test_squeeze_current_text�si��-�H��2�2�D�2�I�G�!�,�,�K��2�2�7�;�H�#'�Q�#7�H� �
���u�n�h�?�� � ��5�1����[�_�_�U�E�:�<L�M����S��!:�!:�;�Q�?��2�2�4�F����V�W�-����[�_�_�U�E�:�F�C����S��!:�!:�;�Q�?����X�6�6�q�9�;�;�\�J�
�%�%�a�(�/�/�1����[�_�_�U�E�:�<L�M����S��!:�!:�;�Q�?�1-rc�.�|jd��}|j}|j|�}td��|_|jddd�|j
dd�|j|jdd	�d
�|jt|j�d�|j�}|j|d�|j|jdd	�d
�|jt|j�d�y
)z@Test that the event doesn't squeeze text without a relevant tag.Tr�rHr�rfr��TAGr�r�r�rr�N)r]r*rarryr�rgr'r�r�r}r��r(r[r\r`r�s     r�)test_squeeze_current_text_no_allowed_tagsz6SqueezerTest.test_squeeze_current_text_no_allowed_tags�s����.�.��.�E���l�l���.�.�w�7��#��3���	���5�.�%�8����X�u�-���������6�8H�I�����X�6�6�7��;��.�.�0�������)���������6�8H�I�����X�6�6�7��;rc���|jd��}|j}|j|�}td��|_|jddd�|j
dd�|j�|jt|j�d	�|jdd
d�|j
dd�|j�}|j|d�|j|jdd�d
�|jt|j�d�|j|j|jdd|jd	��y)z2Test squeezing text before existing squeezed text.Tr�rHr�rfr�r�r�r6zMORE
STUFF
r�r�z


r2r�<N)r]r*rarryr�rgr�r'r�r}r��
assertTrue�comparer�s     r�/test_squeeze_text_before_existing_squeezed_textz<SqueezerTest.test_squeeze_text_before_existing_squeezed_texts6���.�.��.�E���l�l���.�.�w�7��#��3���	���5�.�(�;����X�u�-��%�%�'�����X�6�6�7��;�	���5�/�8�<����X�u�-��.�.�0�������)���������6��A�����X�6�6�7��;�����+�+��%�%�a�(���%�%�a�(�
�	rc��|jd��}|j|�}|j}|dz}|jdddt	|��tj�|j|j|�y)zTest the reload() class-method.Tr�r@�main�PyShellzauto-squeeze-min-linesN)r]rar�rp�strr�reloadr')r(r[r`�orig_auto_squeeze_min_lines�new_auto_squeeze_min_liness     r�test_reloadzSqueezerTest.test_reloads����.�.��.�E���.�.�w�7��&.�&E�&E�#�&A�2�%E�"��-�-��I�7��*�+�	-�	��������8�8�3�	5rc�,�tj�y)z@Test that Squeezer.reload() runs without any instances existing.N)rr�r/s r�!test_reload_no_squeezer_instancesz.SqueezerTest.test_reload_no_squeezer_instances+s�����r)Fr)rNrOrPrQr]rarWrprzr~r�r�r�r�r�r�r�r�r�rRrrrTrTQsU��'�
���?�K�,8�
@�@�@�0
<�@�:<�(�45�"rrTc�T�eZdZdZd�Zede��d��Zd�Zd�Z	d�Z
d	�Zd
�Zy)�ExpandingButtonTestz$Tests for the ExpandingButton class.c�,�t|�}t�}t|�|j_t|jj�|j_|j|jjj�d|_	|S)z0Helper for tests: Create a mock Squeezer object.r�)
r"rrr[r*r
rXr �closer�)r(rr`s   r�make_mock_squeezerz&ExpandingButtonTest.make_mock_squeezer4sq����%���6�� $�T�
�����)�(�*:�*:�*?�*?�@���������(�(�,�,�2�2�3�+-��'��rzidlelib.squeezer.Hovertip��autospecc���|j�}|jj}tddd|�}|j	|j
d�|j	|j|�|jd|jd�v�|j	|jdd�d�|jd	|j��d
tj�rdndz}|j||j��|j	|jd
�|j|t t ��|j"dd
}|jd|j%��y)z1Test the simplest creation of an ExpandingButton.r��TAGSr�z50 linesr*rfr�r<z<Double-Button-1>z<Button-%s>�2�3r6)�hover_delayrzright-clickN)r�r[r*rr'r��masterr��cgetr��assertIn�bindr�isAquaTkr�r�r
�	call_args�lower)r(�MockHovertipr`r\�expandingbutton�right_button_code�tooltip_texts       rr~zExpandingButtonTest.test_init@s=���*�*�,���&�&�+�+��)�&�&�"�h�G������*�*�F�3�	
����/�/��=����
�o�&:�&:�6�&B�B�C�	
��������6��=�	
�
�
�)�?�+?�+?�+A�B�)�F�O�O�4E�S�3�O���
�
�'��)=�)=�)?�@�	
����0�0�!�4��'�'���#�'�N�$�-�-�a�0��3���
�
�m�\�%7�%7�%9�:rc��|j�}tddd|�}|jj}|j	d|��|jt
���}|j|d�|j|jdd�d	�|jd
�}|j|jd|�d�|j|jdd�d|f�|j|jjjd�|jjj|�y)zTest the expand event.r�r�r�rf��window��eventNr�zTEXT
�end-1cr6)r�rr[r*�
window_creater�rr'r��index�
tag_nextranger}�remover�r�)r(r`r�r\r��text_end_indexs      r�test_expandzExpandingButtonTest.test_expand]s���*�*�,��)�&�&�"�h�G���&�&�+�+���!�!�%��!�@�!�'�'�d�f�'�5�������&�	
��������6��A�%�*�*�8�4����������?��H�����2�2�6�5�A� �.�1�	3�	
����2�2�9�9�D�D�a�H��!�!�(�(�;�;�O�Lrc�F�|j�}ddz}t|dd|�}|j�|j|j�|j
}|j
d|��td�5}d|j_	d|j_	|jt��	�}d
d
d
�|jd�|j|j
jdd�d
�td�5}d|j_	d|j_	|jt��	�}d
d
d
�|j|d
�|j|j
jdd�|�y
#1swY��xYw#1swY�TxYw)z@Test that expanding very long output asks user for confirmation.�ai��r�r�rfr�zidlelib.squeezer.messageboxFr�Nr�r�r.T)r�r�set_is_dangerousr��is_dangerousr*r�r�askokcancelr��askyesnor�rr'r�)r(r`r*r�r\�mock_msgboxr�s       r�test_expand_dangerous_oupputz0ExpandingButtonTest.test_expand_dangerous_oupputxsi���*�*�,���U�{��)�$���H�E���(�(�*�����4�4�5�&�*�*���!�!�%��!�@��0�
1�[�38�K�#�#�0�05�K� � �-�$�+�+�$�&�+�9�F�	2�	
�����)�����-�-�1�1�%��B�B�G��0�
1�[�37�K�#�#�0�04�K� � �-�$�+�+�$�&�+�9�F�	2�	
�����&�����-�-�1�1�%��B�D�I�'2�
1��2�
1�s�9=F�=F�F�F c��|j�}tddd|�}t�|_t�|_|jt���}|j
|d�|j
|jjd�|j
|jjd�|jjd�y)zTest the copy event.r�r�r�r�Nr6)	r�rr�clipboard_clear�clipboard_append�copyr'r�r�)r(r`r�r�s    r�	test_copyzExpandingButtonTest.test_copy�s���
�*�*�,��)�&�&�"�h�G��*.�&��'�+/�6��(�!�%�%�D�F�%�3�������&�	
����8�8�C�C�Q�G�����9�9�D�D�a�H��(�(�;�;�F�Crc�Z�|j�}tddd|�}t�|_t	dt
��5}|j
t���|j|jd�|j|jdd	d�d
d
d
�y
#1swYy
xYw)zTest the view event.r�r�r�zidlelib.squeezer.view_textr�r�r6rr2N)
r�rr�
selection_ownrr�viewr'r�r�)r(r`r��mock_view_texts    r�	test_viewzExpandingButtonTest.test_view�s����*�*�,��)�&�&�"�h�G��(,���%�
�/�)�
D�!�� � �t�v� �.�
���^�6�6��:�
���^�5�5�a�8��;�V�D�E�
D�
D�s�AB!�!B*c���|j�}tddd|�}td�5}t�}||_t�}d|_d|_|j|��|j|jjt|j��|jD]%^}}|jj|t���'	ddd�y#1swYyxYw)	zTest the context menu.r�r�r�ztkinter.Menur@r�)�label�commandN)r�rrrr��x�y�context_menu_eventr'�add_commandr�r��rmenu_specs�assert_any_callr
)r(r`r��	mock_Menu�	mock_menu�
mock_eventr��datas        r�
test_rmenuzExpandingButtonTest.test_rmenu�s����*�*�,��)�&�&�"�h�G��
�>�
"�i���I�%.�I�"���J��J�L��J�L��.�.�Z�.�@����Y�2�2�=�=� ��!<�!<�=�
?� /� ;� ;�����%�%�5�5�E�3�5�O�!<�#�
"�
"�s�B)C�C&N)
rNrOrPrQr�rrr~r�r�r�r�r�rRrrr�r�0sE��.�
��&��:�;�;�;�8M�6!J�FD�(E�"Prr��__main__r2)�	verbosity)%rQ�textwrapr�tkinterrr�unittest�
unittest.mockrrrr	r
�test.supportr�idlelib.configr�idlelib.percolatorr
�idlelib.squeezerrrr�idlelibr�idlelib.textviewr�idlelib.tooltiprr�r"�TestCaser$rTr�rNr�rRrr�<module>rs�������J�J�!�#�)�
�
��&�$��(�(���,9�X�&�&�,9�^\�8�$�$�\�~^P�(�+�+�^P�B�z���H�M�M�A��r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists