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_sidebar.cpython-311.opt-1.pyc
�

��Vc�j��f�dZddlmZddlZddlmZddlZddlZddlm	Z	m
Z
ddlmZddl
ZddlmZddlmZdd	lmZdd
lmZddlZddlmZmZmZddlmZddlZdd
lmZm Z Gd�d��Z!Gd�dej"��Z#Gd�dej"��Z$e%dkrej&d���dSdS)zTest sidebar, coverage 85%�)�dedentN)�chain)�requires�	swap_attr)�support)�run_in_tk_mainloop)�	Delegator)�
fixwordbreaks)�
Percolator)�
fix_x11_paste�PyShell�PyShellFileList)�fix_scaling)�get_end_linenumber�
get_linenoc� �eZdZd�Zd�Zd�ZdS)�
Dummy_editwinc���||_|jj|_t|��|_t��|_|j�|j��dS�N)�text�master�
text_framer�perr	�undo�insertfilter)�selfrs  �2D:\Python311\Lib\idlelib\idle_test\test_sidebar.py�__init__zDummy_editwin.__init__sM����	��)�*����d�#�#����K�K��	�����d�i�(�(�(�(�(�c��dSr�)r�name�values   r�setvarzDummy_editwin.setvars���rc�j�tt|j�|������Sr)�int�floatr�index)rr(s  r�	getlinenozDummy_editwin.getlineno"s&���5������/�/�0�0�1�1�1rN)�__name__�
__module__�__qualname__rr$r)r!rrrrsA������)�)�)�
�
�
�2�2�2�2�2rrc�<�eZdZed���Zed���Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zejd��d���Zd�Zejd��d���Zejd��d���Zd�Zd�Zd�ZdS)�LineNumbersTestc��td��tj��|_|j���tj|j��|_|j�tjtj	d���|j�
dd���|j�dd���tj|jddtj
���|_|j�ddtj�	��t#|j��|_tj|j��|j_dS)
N�guiT)�side�fill�expand�)�weight�P�)�width�height�wrap)�row�column�sticky)r�tk�Tk�root�withdraw�Framer�pack�LEFT�BOTH�rowconfigure�columnconfigure�Text�NONEr�grid�NSEWr�editwin�	Scrollbar�vbar��clss r�
setUpClasszLineNumbersTest.setUpClass(s���������5�7�7������������#�(�+�+���������r�w�t��D�D�D���#�#�A�a�#�0�0�0���&�&�q��&�3�3�3��7�3�>��B�R�W�M�M�M�����
�
�!�A�b�g�
�6�6�6�#�C�H�-�-����<���7�7�����rc��|jj���|j���|j���|`|`|`|`dSr)rLr�closer@�update�destroyrrrOs r�
tearDownClasszLineNumbersTest.tearDownClass9sS�������������������������H�c�n�c�k�3�8�8�8rc�L���tj��j���_ddd��_tjjj���fd�}tj	j
�tjjd|��}|�����
|j��d�_�fd�}tj	j
�tjjd|��}|�����
|j��dS)	N�#abcdef�#123456��
background�
foregroundc�6��|dkr�jS�||��S)N�
linenumber)�
highlight_cfg)�theme�element�orig_idleConf_GetHighlightrs  ��r�mock_idleconf_GetHighlightz9LineNumbersTest.setUp.<locals>.mock_idleconf_GetHighlightFs,����,�&�
*��)�)�-�-�e�W�=�=�=r�GetHighlight�TkFixedFontc����jSr)�
font_override)r@�
configType�sectionrs   �r�mock_idleconf_GetFontz4LineNumbersTest.setUp.<locals>.mock_idleconf_GetFontPs����%�%r�GetFont)�idlelib�sidebar�LineNumbersrLr^r_�idleConfrd�unittest�mock�patch�object�start�
addCleanup�stoprg)rrc�GetHighlight_patcherrj�GetFont_patcherrbs`    @r�setUpzLineNumbersTest.setUp@s)����!�/�5�5�d�l�C�C���,5�,5�7�7���%,�_�%=�%J�"�	>�	>�	>�	>�	>�	>� (�}�2�9�9��O�$�n�6P� R� R���"�"�$�$�$����,�1�2�2�2�*���	&�	&�	&�	&�	&�"�-�-�4�4��O�$�i�1F�H�H������������,�-�-�-�-�-rc�<�|j�dd��dS�N�1.0�end)r�delete�rs r�tearDownzLineNumbersTest.tearDownWs ���	�����&�&�&�&�&rc�v�ttt|j�d������S)N�sel)�tuple�map�strr�
tag_rangesrs r�
get_selectionzLineNumbersTest.get_selectionZs*���S��d�i�2�2�5�9�9�:�:�;�;�;rc�z�|jj�|�d���}|ddz}|ddz}||fS)Nz.end -1cr�r4)r^�sidebar_text�bbox)r�liner��x�ys     r�get_line_screen_positionz(LineNumbersTest.get_line_screen_position]sF����+�0�0�D�1B�1B�1B�C�C����G�a�K����G�a�K���!�t�rc��|jj���d}|�|dtj��dS)N�state���)r^r��config�assertEqualr>�DISABLED)rr�s  r�assert_state_disabledz%LineNumbersTest.assert_state_disabledcs?����,�3�3�5�5�g�>������r��B�K�0�0�0�0�0rc�V�|jj�dtj��S)Nr|)r^r��getr>�ENDrs r�get_sidebar_text_contentsz)LineNumbersTest.get_sidebar_text_contentsgs����+�/�/��r�v�>�>�>rc���d�tttt	d|dz����dg����}|�|���|��dS)N�
r4�)�joinrr�r��ranger�r�)r�n_lines�expecteds   r�assert_sidebar_n_linesz&LineNumbersTest.assert_sidebar_n_linesjs_���9�9�U�3�s�E�!�W�q�[�,A�,A�#B�#B�R�D�I�I�J�J������7�7�9�9�8�D�D�D�D�Drc�`�|�|j�dd��|��Sr{)r�rr�)rr�s  r�assert_text_equalsz"LineNumbersTest.assert_text_equalsns(������	�
�
�e�U� ;� ;�X�F�F�Frc�0�|�d��dS�Nr4)r�rs r�test_init_emptyzLineNumbersTest.test_init_emptyqs���#�#�A�&�&�&�&�&rc��|j�dd��|�d��|�d��dS)N�insertzfoo bar
foo bar
foo bar
zfoo bar
foo bar
foo bar

�)rr�r�r�rs r�test_init_not_emptyz#LineNumbersTest.test_init_not_emptytsI���	����=�1�1�1���� 4�5�5�5��#�#�A�&�&�&�&�&rc��|�|jjd��|j���|�|jjd��|j���|�|jjd��|j���|�|jjd��|j���|�|jjd��|j���|�|jjd��dS)NFT)r�r^�is_shown�show_sidebar�hide_sidebarrs r�test_toggle_linenumberingz)LineNumbersTest.test_toggle_linenumberingys�������1�5�9�9�9���$�$�&�&�&������1�4�8�8�8���$�$�&�&�&������1�5�9�9�9���$�$�&�&�&������1�5�9�9�9���$�$�&�&�&������1�4�8�8�8���$�$�&�&�&������1�4�8�8�8�8�8rc���|j�dd��|�d��|�d��|���|j�dd��|�d��|�d��|���|j�dd��|�d	��|�d
��|���|j�dd��|�d��|�d
��|���dS)Nr��foobar�foobar
r4z
foozfoobar
foo
r�zhello
hello
zfoobar
foohello
hello

r�z
worldzfoobar
foohello
hello

world
�)rr�r�r�r�rs r�test_insertzLineNumbersTest.test_insert�sR���	����8�,�,�,����
�+�+�+��#�#�A�&�&�&��"�"�$�$�$��	����7�+�+�+�����0�0�0��#�#�A�&�&�&��"�"�$�$�$��	����;�/�/�/���� =�>�>�>��#�#�A�&�&�&��"�"�$�$�$��	����9�-�-�-���� D�E�E�E��#�#�A�&�&�&��"�"�$�$�$�$�$rc���|j�dd��|�d��|j�dd��|�d��|�d��|���|j�dd��|�d	��|�d
��|���|j�dd��|�d
��|�d
��|���|j�dd��|�d��|�d��|���|j�dd��|�d��|�d��|���dS)Nr�r�r�z1.1z1.3zfbar
r4zfoo
foo
z
fbarfoo
foo

��2.0z2.endz
fbarfoo


r}zfba
r|r�)rr�r�r~r�r�rs r�test_deletezLineNumbersTest.test_delete�s����	����8�,�,�,����
�+�+�+��	�����&�&�&�����)�)�)��#�#�A�&�&�&��"�"�$�$�$��	����9�-�-�-���� 2�3�3�3��#�#�A�&�&�&��"�"�$�$�$�	
�	�����(�(�(�����0�0�0��#�#�A�&�&�&��"�"�$�$�$��	�����&�&�&�����(�(�(��#�#�A�&�&�&��"�"�$�$�$�	
�	�����&�&�&�����%�%�%��#�#�A�&�&�&��"�"�$�$�$�$�$rc�	���fd�}��d����|��d���j�dd����d����|��d���j�dd����d����|��d���j�dd����d����|��d	���j�dd����d
����|��d	���j�dd����d����|��d	���j�dd����d����|��d���j�dd
����d����|��d	���j�dd����d����|��d���j�dd����d����|��d���j�dd����d����|��d���j�dd����d����|��d	���j�dd����d����|��d	���j�dd����d����|��d���j�dd����d����|��d��dS)zY
        Test that linenumber text widget is always at the minimum
        width
        c�X���jj���ddS)Nr8r�)r^r�r�rs�r�	get_widthz:LineNumbersTest.test_sidebar_text_width.<locals>.get_width�s$����?�/�6�6�8�8��A�"�E�Err4r��fooz foo
foo
foo
foo
foo
foo
foo
foo
�	zfoo
�
r��zinsert -1l linestartzinsert linestartahfoo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
�c�dr��ez50.0 -1czend -1c�1z5.0 -1cr�r|N)r�r�rr�r~)rr�s` r�test_sidebar_text_widthz'LineNumbersTest.test_sidebar_text_width�sS���
	F�	F�	F�	F�	F�	
�#�#�A�&�&�&��������a�(�(�(��	����5�)�)�)��#�#�A�&�&�&��������a�(�(�(��	����9�-�-�-��#�#�A�&�&�&��������a�(�(�(��	����7�+�+�+��#�#�B�'�'�'��������a�(�(�(��	����7�+�+�+��#�#�B�'�'�'��������a�(�(�(��	���/�1C�D�D�D��#�#�B�'�'�'��������a�(�(�(��	���/�1C�D�D�D��#�#�A�&�&�&��������a�(�(�(��	����:�.�.�.��#�#�B�'�'�'��������a�(�(�(��	����7�+�+�+��#�#�C�(�(�(��������a�(�(�(��	����7�+�+�+��#�#�C�(�(�(��������a�(�(�(��	���/�1C�D�D�D��#�#�C�(�(�(��������a�(�(�(��	���/�1C�D�D�D��#�#�B�'�'�'��������a�(�(�(��	����Y�/�/�/��#�#�B�'�'�'��������a�(�(�(��	����I�.�.�.��#�#�A�&�&�&��������a�(�(�(�	
�	����	�*�*�*��#�#�A�&�&�&��������a�(�(�(�(�(rz
test disabledc���|j���|j�dd��|j���|�d��\}}|jj�d||���|jj���|j���|�	|�
��d��dS)Nr|zone
two
three
four
r��
<Button-1>�r�r�)r�z3.0)r^r�rr�r@rTr�r��event_generater�r�)rr�r�s   r�test_click_selectionz$LineNumbersTest.test_click_selections�����$�$�&�&�&��	���� 9�:�:�:��	�������,�,�Q�/�/���1���$�3�3�L�A��3�K�K�K���$�+�+�-�-�-��	����������+�+�-�-�~�>�>�>�>�>rc�v�|�|��\}}|�|��\}}|jj�d||���|j���d�}t
tt|||d�����tt|||d�������D]@\}}	|jj�d||	���|j����A|jj�d||���|j���dS)Nr�r�c3�dK�|dz
}t|��D]}||z
|z|z||z|zzV��dS)z;linearly interpolate from a to b (inclusive) in equal stepsr4N)r�)�a�b�steps�	last_step�is     r�lerpz+LineNumbersTest.simulate_drag.<locals>.lerps]������	�I��5�\�\�
N�
N��!�A�
��2�a�7�1�y�=�A�:M�M�M�M�M�M�
N�
Nrr�)r�z<B1-Motion>z<ButtonRelease-1>)	r�r^r�r�r@rT�zipr�r&)
r�
start_line�end_line�start_x�start_y�end_x�end_yr�r�r�s
          r�
simulate_dragzLineNumbersTest.simulate_drags^���8�8��D�D�����4�4�X�>�>���u���$�3�3�L�6=��	4�	J�	J�	J��	������	N�	N�	N���C���g�u�B�7�7�7�8�8��C���g�u�B�7�7�7�8�8�
�
�	�	�D�A�q�
�O�(�7�7�
��a�7�P�P�P��I���������$�3�3�4G�6;�u�	4�	F�	F�	F��	�������rc��|j���|j�dd��|j���|�dd��|�|���d��dS)Nr|�one
two
three
four
five
r�r��r�z5.0�	r^r�rr�r@rTr�r�r�rs r�test_drag_selection_downz(LineNumbersTest.test_drag_selection_down+�����$�$�&�&�&��	���� ?�@�@�@��	������	
���1�a� � � �����+�+�-�-�~�>�>�>�>�>rc��|j���|j�dd��|j���|�dd��|�|���d��dS)Nr|r�r�r�r�r�rs r�test_drag_selection_upz&LineNumbersTest.test_drag_selection_up5r�rc��|j���|j�dd��|j���|j�dd��|j���|�|j�d��d��|�|jj	�d��d��|jj	�
dddd�	��|j���|�|j�d��d��|�|jj	�d��d��dS)
Nr|a�line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
r��unit�@0,0z11.0�<MouseWheel>r�r�r��delta)r^r�rr�r@rT�yview_scrollr�r(r�r��assertNotEqualrs r�test_scrollzLineNumbersTest.test_scroll?sT����$�$�&�&�&��	�����/�/�/��	������	
�	���r�6�*�*�*��	��������������0�0�&�9�9�9������5�;�;�F�C�C�V�L�L�L�
	
��$�3�3�N�67�1�:<�	4�	>�	>�	>�	
�	���������D�I�O�O�F�3�3�V�<�<�<����D�O�8�>�>�v�F�F��O�O�O�O�Orc��|j}|jd}d}|�||��|���||_|���|���|�|jd|��||_|���|�|jd|��dS)N�font�
TkTextFont)r^r�r�r�rg�update_fontr�r�)r�ln�	orig_font�	test_fonts    rr�zLineNumbersTest.test_fontTs���
�_���O�F�+�	� �	����I�y�1�1�1�	������&���
������	������������0�)�<�<�<�'���
������������0�)�<�<�<�<�<rc�|����j�t�j��}ddd�}��fd�}����|�_��������||������||��|�_����||��dS)Nz#222222z#ffff00rZc������jd|d�����jd|d��dS)Nr[r\)r�r�)�colorsr�rs ��r�assert_colors_are_equalzFLineNumbersTest.test_highlight_colors.<locals>.assert_colors_are_equalqsM������R�_�\�:�F�<�<P�Q�Q�Q����R�_�\�:�F�<�<P�Q�Q�Q�Q�Qr)r^�dictr_r��
update_colorsr�)r�orig_colors�test_colorsr�r�s`   @r�test_highlight_colorsz%LineNumbersTest.test_highlight_colorsks�����
�_���4�-�.�.��%.�i�H�H��	R�	R�	R�	R�	R�	R�
	������(���
������	���������,�,�,�	���������,�,�,�)���
���������,�,�,�,�,rN)r*r+r,�classmethodrQrVryr�r�r�r�r�r�r�r�r�r�r�r�r�rp�skipr�r�r�r�r�r�r�r!rrr.r.&s��������8�8��[�8� �<�<��[�<�.�.�.�.'�'�'�<�<�<����1�1�1�?�?�?�E�E�E�G�G�G�'�'�'�'�'�'�
9�9�9�%�%�%�*%�%�%�<B)�B)�B)�V�X�]�?�#�#�?�?�$�#�?����2�X�]�?�#�#�?�?�$�#�?��X�]�?�#�#�?�?�$�#�?�P�P�P�*=�=�=�.-�-�-�-�-rr.c�L�eZdZUdZejed<dZeed<e	d���Z
e	d���Ze	d���Ze	d���Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Ze��d���Ze��d���Ze��d���Ze��d���Ze��d���Ze��d���Ze��d���Zd�Zd�Z e��d���Z!e��d���Z"e��d���Z#dS)�ShellSidebarTestNr@�shellc�V�td��tj��x|_}|���t|��t
|��t|��t|��x|_	}|�
��|���dS)Nr0)rr>r?r@rArr
rr�flist�update_idletasks�
init_shell)rPr@rs   rrQzShellSidebarTest.setUpClass�s���������%�'�'�!���4��
�
�����D�����d�����d����+�D�1�1�1��	�E��������������rc���|j�,d|j_|j���d|_d|_|j���|j���d|_dS)NF)r�	executingrSrr@rrUrOs rrVzShellSidebarTest.tearDownClass�si���9�	�"'�C�I���I�O�O�����C�I���	���!�!�#�#�#������������rc���|j���|_d|j_|j���t
|jjd��dz
|_dS)Nr��end-1cr4)	r�
open_shellr�pollintervalr@rTrr�n_preface_linesrOs rrzShellSidebarTest.init_shell�sT���I�(�(�*�*��	�!#��	���������(�����B�B�Q�F����rc���|jjj�|jdz�d�d��|jj���|j���dS)Nr4�.0r)	rr�bottomr~r�
shell_sidebar�update_sidebarr@rTrOs r�reset_shellzShellSidebarTest.reset_shell�s_���	�
��#�#�s�':�1�'<�$@�$@�$@�(�K�K�K��	��.�.�0�0�0���������rc��d|_tj|jjkr'tj|_|jjt_|���dSr)�
_saved_stdout�sys�stdoutrrrs rryzShellSidebarTest.setUp�sN��
"����:���*�*�	+�!$��D����*�C�J��������rc�:�|j�|jt_dSdSr)rrrrs rr�zShellSidebarTest.tearDown�s%����	,��+�C�J�J�J�	,�	,rc�����|jjj�t��t
j����}�fd�|D���|���}�fd�|D��S)Nc�p��i|]2}��|��d��|d����3S)r4r)r��itemcget��.0r�canvass  �r�
<dictcomp>z6ShellSidebarTest.get_sidebar_lines.<locals>.<dictcomp>�sJ���
�
�
��
�K�K����a� �&�/�/�$��"?�"?�
�
�
rc�<��g|]}��|d����Sr)r�)rr��texts_by_y_coordss  �r�
<listcomp>z6ShellSidebarTest.get_sidebar_lines.<locals>.<listcomp>�s*���F�F�F�1�!�%�%�a��.�.�F�F�Fr)rrr�list�findr>�ALL�get_shell_line_y_coords)r�texts�
line_y_coordsrrs   @@r�get_sidebar_linesz"ShellSidebarTest.get_sidebar_lines�s�������)�0���V�[�[���(�(�)�)��
�
�
�
��
�
�
���4�4�6�6�
�F�F�F�F�
�F�F�F�Frc��|jj���|�|���t|��d�|��dSr)rrrr�r'�len)r�expected_liness  r�assert_sidebar_lines_end_withz.ShellSidebarTest.assert_sidebar_lines_end_with�sc���
� �/�/�1�1�1�����"�"�$�$�c�.�&9�&9�%9�%:�%:�;��	
�	
�	
�	
�	
rc�~�|jj}g}|�d��}|�dd��ddkr|�|�d���}|�|��x}�J|�|d��|�|�d���}|�|��x}�J|S)Nr��.r4�0z +1line linestartz +1line)rrr(�split�	dlineinfo�append)rr�y_coordsr(�lineinfos     rr$z(ShellSidebarTest.get_shell_line_y_coords�s����z������
�
�6�"�"���;�;�s�A���q�!�S�(�	<��J�J�%�:�:�:�;�;�E��>�>�%�0�0�0�x�	2��O�O�H�Q�K�(�(�(��J�J�%�0�0�0�1�1�E� �>�>�%�0�0�0�x�	2��rc����|jjj�t��t
j����}|��fd�����fd�|D��S)Nc�:����|��dSr��r�)rrs �r�<lambda>z<ShellSidebarTest.get_sidebar_line_y_coords.<locals>.<lambda>�s���F�K�K��$5�$5�a�$8�r)�keyc�F��g|]}��|��d��S)r4r6rs  �rr z>ShellSidebarTest.get_sidebar_line_y_coords.<locals>.<listcomp>�s*���7�7�7�����D�!�!�!�$�7�7�7r)rrrr!r"r>r#�sort)rr%rs  @r�get_sidebar_line_y_coordsz*ShellSidebarTest.get_sidebar_line_y_coords�sc�����)�0���V�[�[���(�(�)�)��
�
�
�8�8�8�8�
�9�9�9�7�7�7�7��7�7�7�7rc��|�t|�����t|�������dSr)�assertLessEqual�setr;r$rs r�assert_sidebar_lines_syncedz,ShellSidebarTest.assert_sidebar_lines_synced�sR�������.�.�0�0�1�1���,�,�.�.�/�/�	
�	
�	
�	
�	
rc���|j}|j}t|�d����D]7\}}|dkr|�d��|�d|d���8dS)Nr�r�<<newline-and-indent>>r��stdin)rr�	enumerater/r�r�)r�inputrr�
line_indexr�s      r�do_inputzShellSidebarTest.do_input�s|���
���z�� )�%�+�+�d�*;�*;� <� <�	1�	1��J���A�~�
>��#�#�$<�=�=�=��K�K��$��0�0�0�0�	1�	1rc��|���}|�|dgt|��dz
zdgz��|���dS)Nr4�>>>)r'r�r)r?)r�
sidebar_liness  r�test_initial_statez#ShellSidebarTest.test_initial_state�sf���.�.�0�0�
�����
�F�c�-�(�(�1�,�-���7�	
�	
�	
�	
�(�(�*�*�*�*�*rc#�jK�|�d��dV�|�ddg��dS)Nr�rH�rFr+rs r�test_single_empty_inputz(ShellSidebarTest.test_single_empty_input�s?�����
�
�d����
�����*�*�E�5�>�:�:�:�:�:rc#�jK�|�d��dV�|�gd���dS)Nz1
�rHNrHrLrs r�test_single_line_statementz+ShellSidebarTest.test_single_line_statementsB�����
�
�e����
�����*�*�+?�+?�+?�@�@�@�@�@rc#�K�|�td����dV�|�gd���dS)N�7            if True:
            print(1)

            �rH�...rTrTNrH)rFrr+rs r�test_multi_line_statementz*ShellSidebarTest.test_multi_line_statementsk����	
�
�
�f����	�	�	�
	�����*�*�,
�,
�,
�	�	�	�	�	rc#�K�|�d��dV�|�gd���|���dS)Nz�11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
rO)rFr+r?rs r�test_single_long_line_wrapsz,ShellSidebarTest.test_single_long_line_wrapssU�����
�
�&�'�'�'�
�����*�*�+?�+?�+?�@�@�@��(�(�*�*�*�*�*rc#��K�|j}|j}|�d��dV�|�gd���|�dd��|�d��dV�|�gd���|���|jjd�	��dV�|�gd���|���dS)Nzprint("a\nb\nc")
)rHNNNrHr�zinsert -1line linestartz<<squeeze-current-text>>rOr)
rrrFr+�mark_setr�r?�squeezer�expandingbuttonsr3)rrrs   r�test_squeeze_multi_line_outputz/ShellSidebarTest.test_squeeze_multi_line_output$s�����
���z���
�
�,�-�-�-�
�����*�*�+K�+K�+K�L�L�L��
�
�h� :�;�;�;����6�7�7�7�
�����*�*�+?�+?�+?�@�@�@��(�(�*�*�*�
��'��*�1�1�3�3�3�
�����*�*�+K�+K�+K�L�L�L��(�(�*�*�*�*�*rc#��K�|jj}|���}|�t	d����dV�|�gd���|���}|�||��|�d��dV�|�gd���|�d��|�d��dV�|�gd���|�d|�	d����|�d	��dV�|�d
��dV�|�dg��|�d��dV�|�dd
g��|�d	��|�d	��dV�|�gd���dS)Nz6            if True:
            print(1)
            )rHrTrTz<<interrupt-execution>>)rHrTrTNrHz<<history-previous>>)rHrTNrHr�z
insert -2lrAz<<undo>>rHz<<redo>>rTrS)
rrr'rFrr+r�r�rYr()rr�initial_sidebar_lines�with_block_sidebar_liness    r�test_interrupt_recall_undo_redoz0ShellSidebarTest.test_interrupt_recall_undo_redo8s)�����z��� $� 6� 6� 8� 8���
�
�f����	�	�	�	�����*�*�+@�+@�+@�A�A�A�#'�#9�#9�#;�#;� ����4�6K�L�L�L�	
���5�6�6�6�
�����*�*�+M�+M�+M�N�N�N�	
���2�3�3�3����5�6�6�6�
�����*�*�+F�+F�+F�G�G�G�	
�
�
�h��
�
�<� 8� 8�9�9�9����4�5�5�5�
�������J�'�'�'�
�����*�*�E�7�3�3�3����J�'�'�'�
�����*�*�E�5�>�:�:�:����4�5�5�5����4�5�5�5�
�����*�*�5�5�5�	
�	
�	
�	
�	
rc#�VK�tjd��5t|jdd��5|�dddzzdz��dV�|�|���dg��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nig+rZzx = �1i'r�rH)r�adjust_int_max_str_digitsrrrFr�r'rs r�test_very_long_wrapped_linez,ShellSidebarTest.test_very_long_wrapped_linefsV����
�
.�v�
6�
6�	@�	@��$�*�j�$�7�7�	@�	@��M�M�&�3�v�:�-��4�5�5�5��E�E�E����T�3�3�5�5��w�?�?�?�		@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@s5�B�AB�:B�B
	�
B�
B
	�B�B"�%B"c�������jj�d��fd�}tjj�tjjd|�����	����fd�}��
|����fd�}��|�����������
|�����dS)Nr�c����Srr!)r@rhrir�s   �rrjz9ShellSidebarTest.test_font.<locals>.mock_idleconf_GetFontss	����rrkc�X����������dSr)rvr�)rxrms��r�cleanupz+ShellSidebarTest.test_font.<locals>.cleanupxs-���� � �"�"�"����!�!�!�!�!rc�����j�t��tj����}�fd�|D��}��t
|��d��tt|����S)Nc�<��h|]}��|d����S)r��rrs  �r�	<setcomp>zGShellSidebarTest.test_font.<locals>.get_sidebar_font.<locals>.<setcomp>�s'���E�E�E�t�V�_�_�T�6�2�2�E�E�Err4)	rr!r"r>r#r�r)�next�iter)r%�fontsrrrms  @��r�get_sidebar_fontz4ShellSidebarTest.test_font.<locals>.get_sidebar_font}so�����^�F�����R�V�,�,�-�-�E�E�E�E�E�u�E�E�E�E����S��Z�Z��+�+�+���U���$�$�$r)rrrprqrrrsrlrmrortrur�r�r�)rrjrhrprxrmr�s`   @@@rr�zShellSidebarTest.test_fontns�������*�*�� �	�	�	�	�	�	�"�-�-�4�4��O�$�i�1F�H�H��������	"�	"�	"�	"�	"�	"�	
���� � � �	%�	%�	%�	%�	%�	%�	
���,�,�.�.�	�:�:�:����������)�)�+�+�Y�7�7�7�7�7rc���������jj�ddd��tjjj���fd�}tjj�	tjjd|�����
����fd�}��|����fd�}��|�������
����|�����dS)NrXrYrZc�(��|dvr�S�||��S)N)r^�consoler!)r`rarbr�s  ��rrczJShellSidebarTest.test_highlight_colors.<locals>.mock_idleconf_GetHighlight�s*����3�3�
#�"�"�-�-�e�W�=�=�=rrdc�X����������dSr)rvr�)rwrms��rrhz7ShellSidebarTest.test_highlight_colors.<locals>.cleanup�s-��� �%�%�'�'�'��!�!�#�#�#�#�#rc�:����j�t��tj����}�fd�|D��}��t
|��d��tt|����}��	d��}||d�S)Nc�<��h|]}��|d����S)r2rkrs  �rrlzUShellSidebarTest.test_highlight_colors.<locals>.get_sidebar_colors.<locals>.<setcomp>�s'���C�C�C�T�6�?�?�4��0�0�C�C�Crr4r[rZ)
rr!r"r>r#r�r)rmrn�cget)r%�fgs�fg�bgrrrms    @��r�get_sidebar_colorszBShellSidebarTest.test_highlight_colors.<locals>.get_sidebar_colors�s������^�F�����R�V�,�,�-�-�E�C�C�C�C�U�C�C�C�C����S��X�X�q�)�)�)��d�3�i�i���B����\�*�*�B�"$�B�7�7�7r)rrrlrmrordrprqrrrsrtrur�r�r�)rrcrhr{rwrbrmr�s`   @@@@rr�z&ShellSidebarTest.test_highlight_colors�s2��������*�*��%.�i�H�H��%,�_�%=�%J�"�	>�	>�	>�	>�	>�	>� (�}�2�9�9��O�$�n�&� (� (��	�"�"�$�$�$�	$�	$�	$�	$�	$�	$�	
���� � � �	8�	8�	8�	8�	8�	8�	
���.�.�0�0�+�>�>�>����������+�+�-�-�{�;�;�;�;�;rc#��K�|jj}|jj}|�d��dV�|�t|d��d��t
|��}|�|�|�	|�d�������tjdkrdnd}|j�
dd	d	|�
��dV�|�|�|�	|�d�������|j�
dd	d	���dV�|�|�|�	|�d�������dS)
Nzox = """



































































































"""
r�r4r
�darwinr��xr�rr�z
<Button-5>r�)rrrrF�
assertGreaterrr�assertIsNotNoner0r(r�platformrr��assertIsNone)rrmr�last_linenor�s     r�test_mousewheelz ShellSidebarTest.test_mousewheel�sp�����*�*���z���	
�
�
�4�5�5�5�
�������:�d�F�3�3�Q�7�7�7�(��.�.�����T�^�^�D�J�J�+�7I�7I�7I�,J�,J�K�K�L�L�L��l�h�.�7���C����%�%�n��Q�e�%�L�L�L�
�������$�.�.����{�4F�4F�4F�)G�)G�H�H�I�I�I�	��%�%�l�a�1�%�=�=�=�
�������T�^�^�D�J�J�+�7I�7I�7I�,J�,J�K�K�L�L�L�L�Lrc#�2K�|jj}|jj}t|��}|�td����dV�|�d|�d�d��|�dd��}|�|�	d����|�
d|��|�d	��|�|j
��|���}|�||��dS)
NrRr�r
r�	sel.first�sel.lastz	if True:
z
1
z<<copy>>)rrrrrFr�tag_addr��
assertTrue�
startswith�assertInr�ru�clipboard_clear�
clipboard_getr�)rrmr�
first_line�
selected_text�copied_texts      r�	test_copyzShellSidebarTest.test_copy�s�����*�*���z���'��-�-�
��
�
�f����	�	�	�
	�������U�z�-�-�-�x�8�8�8�����j�9�9�
����
�0�0��>�>�?�?�?��
�
�g�}�-�-�-����J�'�'�'�����,�-�-�-��(�(�*�*������m�4�4�4�4�4rc#�$K�|jj}|jj}t|��}|�td����dV�|�d|�d�d��|�dd��}|�|�	d����|�dd��}|�
d	��}|���d
gdgt|��dz
zzdgz}d	�
d
�t||d���D����d	z}|�d��|�|j��|���}	|�|	|��dS)Nz;            if True:
                print(1)

            r�z.3rr�r�zTrue:
zsel.first linestartr�rHrTr�c3�4K�|]\}}|�|n|dz|zV��dS)N� r!)r�promptr�s   r�	<genexpr>z:ShellSidebarTest.test_copy_with_prompts.<locals>.<genexpr>�sL����/
�/
�����;�D�D����t�(;�/
�/
�/
�/
�/
�/
rT)�strictz<<copy-with-prompts>>)rrrrrFrr�r�r�r�r/�popr)r�r�r�rur�r�r�)
rrmrr�r��selected_lines_text�selected_lines�expected_prompts�selected_text_with_promptsr�s
          r�test_copy_with_promptsz'ShellSidebarTest.test_copy_with_prompts�s������*�*���z���'��-�-�
��
�
�f����	�	�	�
	�������U�z�-�-�-�x�8�8�8�����j�9�9�
����
�0�0��;�;�<�<�<�"�h�h�'<�j�I�I��,�2�2�4�8�8���������G�u�g��^�!4�!4�q�!8�9�9�T�F�B�	�%)�Y�Y�/
�/
� #�$4�$2�+/�!1�!1�!1�/
�/
�/
�&
�&
�

�&�"�	
���3�4�4�4�����,�-�-�-��(�(�*�*������&@�A�A�A�A�Ar)$r*r+r,r@r>r?�__annotations__rr
r�rQrVrrryr�r'r+r$r;r?rFrJrrMrPrUrWr\r`rdr�r�r�r�r�r!rrr�r��s���������D�"�%�����E�7��������[�� ����[���G�G��[�G�����[��

�
�
�,�,�,�G�G�G�
�
�
�	�	�	�8�8�8�
�
�
�1�1�1�+�+�+�����;�;���;�
����A�A���A�
���������"����+�+���+�����+�+���+�&����+
�+
���+
�Z����@�@���@�8�8�8�4<�<�<�@����M�M���M�0����5�5���5�0����!B�!B���!B�!B�!Brr��__main__r�)�	verbosity)'�__doc__�textwraprr�	itertoolsrrp�
unittest.mock�test.supportrr�testr�tkinterr>�'idlelib.idle_test.tkinter_testing_utilsr�idlelib.delegatorr	�idlelib.editorr
�idlelib.percolatorr�idlelib.pyshellrlrr
r�idlelib.runr�idlelib.sidebarrrr�TestCaser.r�r*�mainr!rr�<module>r�s��� � �������
�
�
�
���������������,�,�,�,�,�,�,�,�����������F�F�F�F�F�F�'�'�'�'�'�'�(�(�(�(�(�(�)�)�)�)�)�)�����C�C�C�C�C�C�C�C�C�C�#�#�#�#�#�#�����:�:�:�:�:�:�:�:�2�2�2�2�2�2�2�2�a-�a-�a-�a-�a-�h�'�a-�a-�a-�HrB�rB�rB�rB�rB�x�(�rB�rB�rB�j�z����H�M�A��������r