HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/idlelib/idle_test/__pycache__/test_squeezer.cpython-311.pyc
�

��Vc�N��^�dZddlmZddlmZmZddlZddlmZm	Z	m
Z
mZmZddl
mZddlmZddlmZdd	lmZmZmZdd
lmZddlmZddlmZejZd
�ZGd�dej��Z Gd�dej��Z!Gd�dej��Z"e#dkrej$d���dSdS)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��������fd�}|�|���S)z*Helper for tests: Create a root Tk object.�guic�X����������dS�N)�update_idletasks�destroy��roots��3D:\Python311\Lib\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"sX����U�O�O�O�
�4�4�D��M�M�O�O�O���������\�*�*�*��Krc�B�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�CountLinesTestz1Tests for the count_lines_with_wrapping function.c�J�|�|t||����Sr��assertEqualr)�self�expected�text�	linewidths    r�checkzCountLinesTest.check$s*������%�d�I�6�6�
�
�	
rc�L�|�td��d��dS)zTest with an empty string.�rNr&�r(s r�test_count_emptyzCountLinesTest.test_count_empty*s'�����2�2�6�6��:�:�:�:�:rc�L�|�td��d��dS)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�L�|�td��d��dS)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�L�|�td��d��dS)z Test with several lines of text.z1
2
3
�Nr&r/s r�test_count_several_linesz'CountLinesTest.test_count_several_lines6s'�����2�;�?�?��C�C�C�C�Crc��|�ddd���|�ddd���|�ddd���dS)	Nr6�
�P�r)r*r+r2�

�
z










�r,r/s r�test_empty_lineszCountLinesTest.test_empty_lines:sP���
�
�A�D�B�
�7�7�7��
�
�A�F�b�
�9�9�9��
�
�B�Y�"�
�=�=�=�=�=rc�f�|�ddd���|�ddd���dS)Nr9��aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar=r>z�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
rAr/s r�test_long_linezCountLinesTest.test_long_line?s9���
�
�A�I��
�<�<�<��
�
�A�$4��
�C�C�C�C�Crc��td��}|�d|d���|�d|dzd���|�d|d���|�d|d	���|�d
|d���dS)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_lengthsCs��������	
�
�
�A�D�B�
�7�7�7��
�
�A�D�4�K�2�
�>�>�>��
�
�A�D�B�
�7�7�7��
�
�A�D�B�
�7�7�7��
�
�B�T�R�
�8�8�8�8�8rN)�__name__�
__module__�__qualname__�__doc__r,r0r3r7r:rBrErM�rrr$r$"s�������;�;�
�
�
�;�;�;�A�A�A�A�A�A�D�D�D�>�>�>�
D�D�D�9�9�9�9�9rr$c�r�eZdZdZdd�Zdd�Zdd�Zd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�Zd�Zd�ZdS)�SqueezerTestzTests for the Squeezer class.Fc��t��}d|_|rBt|��|_|�|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_windowSsY��&�(�(����
��	<�+�D�1�1�G�L��/�/�W�\�/�B�B�K�0;�;�G�L�7�;�-��rNc�P�|�|���}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�|�|�t|��}t|��}d|d<|�dd��|S)N)�Courierr@�font�iomark�1.0)r"r�mark_set)r(rr\s   rrWzSqueezerTest.make_text_widgetfsH���	*�#�D�)�)�D��4�j�j��-��F�����X�u�-�-�-��rc��tj|||��}tj||||��|�tj||||��dSr)r�	GetOption�	SetOptionr )r(�
configType�section�option�value�prev_vals      r� set_idleconf_option_with_cleanupz-SqueezerTest.set_idleconf_option_with_cleanupns[���%�j�'�6�B�B����:�w���>�>�>�����*�"�G�V�X�	?�	?�	?�	?�	?rc��|���}|�|��}dD]�\}}}|�|||���5t|��}t	j|d|��5|�|�|��|��ddd��n#1swxYwYddd��n#1swxYwY��dS)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�0���.�.�w�7�7��	0
�	K�	K�+�I�z�8����	�)3�'/��1�1�
K�
K��I�����\�'�7�J�?�?�K�K��$�$�X�%9�%9�$�%?�%?��J�J�J�K�K�K�K�K�K�K�K�K�K�K����K�K�K�K�	
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K��	K�	Ks6�
&B=�0*B&�B=�&B*�*B=�-B*�.B=�=C	�C	c���|���}|�|��}|�|j|��|�|jg��dS)z(Test the creation of Squeezer instances.N)r]ra�assertIsr[r'�expandingbuttons)r(r[r`s   r�	test_initzSqueezerTest.test_init�s\���.�.�0�0���.�.�w�7�7���
�
�h�&��0�0�0�����2�B�7�7�7�7�7rc���|���}ddddzdfD]�}tt���x|_}|�|��}|�|j�|d��t��|�|jd��|�|d��|�t|j
��d	����d
S)�@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�0�����t�!3�5I�J�	@�	@�D�)-�>�)J�)J�)J�J�G�M�J��2�2�7�;�;�H����X�-�3�3�D�"�=�=�~�N�N�N����Z�2�A�6�6�6��)�)�$��3�3�3����S��!:�;�;�Q�?�?�?�?�	@�	@rc��ddddzdfD]�}|���}t|j_|j}|�|��}|�|j�|d��t��|�|jd��|�|d��|�t|j
��d����d	S)
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�4�G�)7�G�M�&� ��J��2�2�7�;�;�H����X�-�3�3�D�(�C�C�,�
.�
.�
.����Z�2�A�6�6�6��)�)�$��9�9�9����S��!:�;�;�Q�?�?�?�?�
	@�
	@rc�*�|���}dD]�}tt���x|_}|�|��}d|_|�|j�|d��t��|�|jd��|�	|d��|�t|j��d����ddzd	fD]�}tt���x|_}|�|��}d|_|�|j�|d��d
��|�|jd��|�t|j��d����d
S)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�0�� �		@�		@�D�)-�>�)J�)J�)J�J�G�M�J��2�2�7�;�;�H�.0�H�+����X�-�3�3�D�(�C�C�+�
-�
-�
-����Z�2�A�6�6�6��)�)�$��9�9�9����S��!:�;�;�Q�?�?�?�?� �4�'�)=�>�	@�	@�D�)-�>�)J�)J�)J�J�G�M�J��2�2�7�;�;�H�.0�H�+����X�-�3�3�D�(�C�C�T�J�J�J����Z�2�A�6�6�6����S��!:�;�;�Q�?�?�?�?�	@�	@rc�r�|�d���}|j}|�|��}d|_t	d���|_|�dd��|�|�dd	��d
��|�t|j
��d��dS)
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�E���l���.�.�w�7�7��*+��'�#��3�3�3����
�
�j�(�+�+�+���������6�6��=�=�=�����X�6�7�7��;�;�;�;�;rc���dD�]�}|�d���}|j}|�|��}td���|_|�dd|��|�dd��|�|�dd	��d
��|�t|j
��d��|���}|�|d��|�|�dd	��d
��|�t|j
��d��|�|j
djd��|j
d�
��|�|�dd	��d
��|�t|j
��d�����dS)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�s���-�	@�	@�H��2�2�D�2�I�I�G�!�,�K��2�2�7�;�;�H�#'�Q�#7�#7�#7�H� �
���u�n�h�?�?�?�� � ��5�1�1�1����[�_�_�U�E�:�:�<L�M�M�M����S��!:�;�;�Q�?�?�?��2�2�4�4�F����V�W�-�-�-����[�_�_�U�E�:�:�F�C�C�C����S��!:�;�;�Q�?�?�?����X�6�q�9�;�\�J�J�J�
�%�a�(�/�/�1�1�1����[�_�_�U�E�:�:�<L�M�M�M����S��!:�;�;�Q�?�?�?�?�1	@�	@rc��|�d���}|j}|�|��}td���|_|�ddd��|�dd��|�|�dd	��d
��|�t|j
��d��|���}|�|d��|�|�dd	��d
��|�t|j
��d��d
S)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�s0���.�.��.�E�E���l���.�.�w�7�7��#��3�3�3���	���5�.�%�8�8�8����X�u�-�-�-���������6�6�8H�I�I�I�����X�6�7�7��;�;�;��.�.�0�0�������)�)�)���������6�6�8H�I�I�I�����X�6�7�7��;�;�;�;�;rc�8�|�d���}|j}|�|��}td���|_|�ddd��|�dd��|���|�t|j
��d	��|�dd
d��|�dd��|���}|�|d��|�|�dd��d
��|�t|j
��d��|�|�
|j
dd|j
d	����dS)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_texts����.�.��.�E�E���l���.�.�w�7�7��#��3�3�3���	���5�.�(�;�;�;����X�u�-�-�-��%�%�'�'�'�����X�6�7�7��;�;�;�	���5�/�8�<�<�<����X�u�-�-�-��.�.�0�0�������)�)�)���������6�6��A�A�A�����X�6�7�7��;�;�;�����+�+��%�a�(���%�a�(�
�
�	�	�	�	�	rc��|�d���}|�|��}|j}|dz}|�dddt	|����tj��|�|j|��dS)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�E���.�.�w�7�7��&.�&E�#�&A�2�%E�"��-�-��I�7��*�+�+�	-�	-�	-�	���������8�3�	5�	5�	5�	5�	5rc�,�tj��dS)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�rRrrrTrTQs������'�'�
�
�
�
���������?�?�?�K�K�K�,8�8�8�
@�
@�
@�@�@�@�@�@�@�0
<�
<�
<�@�@�@�:<�<�<�(���45�5�5�"����rrTc�b�eZdZdZd�Zede���d���Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�ExpandingButtonTestz$Tests for the ExpandingButton class.c��t|��}t��}t|��|j_t|jj��|j_|�|jjj��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_squeezer4sl����%�%���6�6�� $�T�
�
����)�(�*:�*?�@�@��������(�,�2�3�3�3�+-��'��rzidlelib.squeezer.Hovertip��autospecc�B�|���}|jj}tddd|��}|�|jd��|�|j|��|�d|�d��v��|�|�	dd��d��|�
d	|�����d
tj
��rdndz}|�
||�����|�|jd
��|�|t t ���|jdd
}|�
d|�����dS)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�G������*�F�3�3�3�	
����/��=�=�=����
�o�&:�&:�6�&B�&B�B�C�C�C�	
��������6�6��=�=�=�	
�
�
�)�?�+?�+?�+A�+A�B�B�B�)�F�O�4E�4E�-N�S�S�3�O���
�
�'��)=�)=�)?�)?�@�@�@�	
����0�!�4�4�4��'�'���#�'�N�N�N�$�-�a�0��3���
�
�m�\�%7�%7�%9�%9�:�:�:�:�:rc��|���}tddd|��}|jj}|�d|���|�t
�����}|�|d��|�|�dd��d	��|�	d
��}|�|�d|��d��|�|�
dd��d|f��|�|jjj
d��|jj�|��dS)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]sP���*�*�,�,��)�&�&�"�h�G�G���&�+���!�!�%��!�@�@�@�!�'�'�d�f�f�'�5�5�������&�&�&�	
��������6�6��A�A�A�%�*�*�8�4�4����������?�?��H�H�H�����2�2�6�5�A�A� �.�1�	3�	3�	3�	
����2�9�D�a�H�H�H��!�(�;�;�O�L�L�L�L�Lrc��|���}ddz}t|dd|��}|���|�|j��|j}|�d|���td��5}d|j_	d|j
_	|�t���	��}d
d
d
��n#1swxYwY|�
|d��|�
|j�dd��d
��td��5}d|j_	d|j
_	|�t���	��}d
d
d
��n#1swxYwY|�
|d
��|�
|j�dd��|��d
S)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_oupputxs'���*�*�,�,���U�{��)�$���H�E�E���(�(�*�*�*�����4�5�5�5�&�*���!�!�%��!�@�@�@��0�
1�
1�	:�[�38�K�#�0�05�K� �-�$�+�+�$�&�&�+�9�9�F�		:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	
�����)�)�)�����-�1�1�%��B�B�B�G�G�G��0�
1�
1�	:�[�37�K�#�0�04�K� �-�$�+�+�$�&�&�+�9�9�F�		:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	
�����&�&�&�����-�1�1�%��B�B�D�I�I�I�I�Is$�;C�C�C�-;E4�4E8�;E8c���|���}tddd|��}t��|_t��|_|�t�����}|�|d��|�|jjd��|�|jjd��|j�d��dS)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�G��*.�&�&��'�+/�6�6��(�!�%�%�D�F�F�%�3�3�������&�&�&�	
����8�C�Q�G�G�G�����9�D�a�H�H�H��(�;�;�F�C�C�C�C�Crc��|���}tddd|��}t��|_t	dt
���5}|�t�����|�|jd��|�|j	dd	d��d
d
d
��d
S#1swxYwYd
S)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�G��(,����%�
�/�)�
D�
D�
D�		E�!�� � �t�v�v� �.�.�.�
���^�6��:�:�:�
���^�5�a�8��;�V�D�D�D�		E�		E�		E�		E�		E�		E�		E�		E�		E�		E�		E�		E����		E�		E�		E�		E�		E�		Es�A%C�C�	Cc���|���}tddd|��}td��5}t��}||_t��}d|_d|_|�|���|�|j	j
t|j����|jD]%^}}|j	�
|t����&	ddd��dS#1swxYwYdS)	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�sR���*�*�,�,��)�&�&�"�h�G�G��
�>�
"�
"�
	P�i����I�%.�I�"����J��J�L��J�L��.�.�Z�.�@�@�@����Y�2�=� ��!<�=�=�
?�
?�
?� /� ;�
P�
P�����%�5�5�E�3�5�O�O�O�O�
P�
	P�
	P�
	P�
	P�
	P�
	P�
	P�
	P�
	P�
	P�
	P�
	P����
	P�
	P�
	P�
	P�
	P�
	Ps�B'C+�+C/�2C/N)
rNrOrPrQr�rrr~r�r�r�r�r�rRrrr�r�0s�������.�.�
�
�
��U�&��:�:�:�;�;�;�:�;�8M�M�M�6!J�!J�!J�FD�D�D�(E�E�E�"P�P�P�P�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�J�J�J�J�J�J�J�J�J�J�J�J�!�!�!�!�!�!�#�#�#�#�#�#�)�)�)�)�)�)�
�
�
�
�
�
�
�
�
�
�������&�&�&�&�&�&�$�$�$�$�$�$��(�����,9�,9�,9�,9�,9�X�&�,9�,9�,9�^\�\�\�\�\�8�$�\�\�\�~^P�^P�^P�^P�^P�(�+�^P�^P�^P�B�z����H�M�A��������r