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_configdialog.cpython-311.pyc
�

��Vc_���&�dZddlmZddlmZed��ddlZddlmZddlmZddl	m
Z
mZmZm
Z
mZmZdd	lmZdd
lmZmZmZejZejd��ejd��ejd��ejd��d�Zdadaed
ZedZedZedZd�Zd�Z Gd�dej!��Z"Gd�dej!��Z#Gd�dej!��Z$Gd�dej!��Z%Gd�dej!��Z&Gd�dej!��Z'Gd�d ej!��Z(Gd!�d"ej!��Z)Gd#�d$ej!��Z*Gd%�d&ej!��Z+e,d'krej-d(�)��dSdS)*zfTest configdialog, coverage 94%.

Half the class creates dialog, half works with user customizations.
�)�configdialog)�requires�guiN)�mock)�Func)�Tk�	StringVar�IntVar�
BooleanVar�DISABLED�NORMAL)�config)�idleConf�changes�tracers�)�main�	highlight�keys�
extensionsrrrrc�|�tt_t��atjtdd���adS)N�TestT)�_utest)�testcfgr�userCfgr�rootr�ConfigDialog�dialog���7D:\Python311\Lib\idlelib\idle_test\test_configdialog.py�setUpModuler""s.���H��
�4�4�D�
�
&�t�V�D�
A�
A�
A�F�F�Fr c��tt_tj��tj��t
j��t���t�	��dxaa
dS�N)�usercfgrrr�detach�clearrr�update_idletasks�destroyrrr r!�tearDownModuler**s[���H���N�����M�O�O�O��M�O�O�O��������L�L�N�N�N���D�6�6�6r c��eZdZd�Zd�ZdS)�ConfigDialogTestc��dSr$r��selfs r!�test_deactivate_current_configz/ConfigDialogTest.test_deactivate_current_config7����r c��dSr$rr.s r!�activate_config_changesz(ConfigDialogTest.activate_config_changes:r1r N)�__name__�
__module__�__qualname__r0r3rr r!r,r,5s2������
�
�
�
�
�
�
�
r r,c�&�eZdZd�Zd�Zd�Zd�ZdS)�
ButtonTestc��t}tj��x}|_tj��x}|_|jd���|���|���|`|`dS)N�Ok)rr�Mock�applyr)�buttons�invoke�assert_called_once)r/�dr<r)s    r!�
test_click_okzButtonTest.test_click_ok@st�����)�+�+�%����"�i�k�k�)��!�)�	�	�$���� � � �
� � �"�"�"��"�"�$�$�$�
�I�q�w�w�wr c��t}tj��x}|_tj��x}|j_tj��x}|_|jd���|�	��|�	��|�	��|j`|`|`dS)N�Apply)
rrr;�deactivate_current_config�extpage�save_all_changed_extensionsr3r=r>r?)r/r@�
deactivate�save_ext�activates     r!�test_click_applyzButtonTest.test_click_applyIs�����37�9�;�;�>�
�Q�0�;?�9�;�;�F��1�9�8�/3�y�{�{�:��1�,�	�	�'��!�!�#�#�#��%�%�'�'�'��#�#�%�%�%��#�#�%�%�%�
�I�1�
�%�q�'B�'B�'Br c��t}t��|_dtdd<|jd���|�tdi��|�|jjd��|`dS)N�r�	something�Cancel)rrr)rr=r>�assertEqual�called�r/r@s  r!�test_click_cancelzButtonTest.test_click_cancelUsw�����F�F��	�'(�����$�	�	�(��"�"�$�$�$�������"�-�-�-������)�1�-�-�-�
�I�I�Ir c��tj�tj��tj�tdt���5}tj	d�
��|jd|jd}}ddd��n#1swxYwY|�|d��|�
|�d��o|�d����dS)	N�	view_text)�new_callable�Help�title�contentszHelp for IDLE preferenceszWhen you clickza different name.
)r�note�select�keyspager�patch�objectrrr=r>�kwdsrO�
assertTrue�
startswith�endswith)r/�viewrWrXs    r!�test_click_helpzButtonTest.test_click_help^s8������6�?�+�+�+�
�Z�
�
�|�[�,0��2�2�	H�59��N�6�"�)�)�+�+�+�"�i��0�$�)�J�2G�8�E�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	
���� ;�<�<�<�����+�+�,<�=�=�A� �)�)�*?�@�@�	B�	B�	B�	B�	Bs�?B!�!B%�(B%N)r4r5r6rArJrRrcrr r!r8r8>sX���������
C�
C�
C����B�B�B�B�Br r8c�n�eZdZdZed���Zed���Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�ZdS)
�FontPageTestz�Test that font widgets enable users to make font changes.

    Test that widget actions set vars, that var changes add three
    options to changes and call set_samples, and that set_samples
    changes the font of both sample boxes.
    c��tjx}|_tj�|��t��|_|���dSr$)r�fontpage�pagerYrZr�set_samples�update��clsrhs  r!�
setUpClasszFontPageTest.setUpClasspsC�� �/�)��s�x�����4� � � ��6�6������
�
�
�
�
r c��|j`dSr$)rhri�rls r!�
tearDownClasszFontPageTest.tearDownClassws���H� � � r c�,�tj��dSr$�rr'r.s r!�setUpzFontPageTest.setUp{����
�����r c��tj��|j}|j�d��|j�d��|j�d��d|j_|�	��|�
|j���d��|�
|j���d��|�|j�����|�
|jjd��tj��dS)N�Fake�1TrrL)rr&rh�	font_name�set�	font_size�	font_boldrirP�
load_font_cfg�assertNotEqual�get�assertFalserO�attachrQs  r!�test_load_font_cfgzFontPageTest.test_load_font_cfg~s��	������I��	��������	��������	�������� ��
��	���������A�K�O�O�-�-�v�6�6�6����A�K�O�O�-�-�s�3�3�3��������*�*�+�+�+������-�q�1�1�1�������r c���|j}|j���dkr|�d��|j}|�d��|j�d��}|���|���|�d��|�d��|�d��}|�	||��|�
|j���|�����|���|���|�d��|�d��|�d��}|�
||��|�
|j���|�����dS)	N��need at least 2 fontsr�activez
<Key-Down>z<KeyRelease-Down>z<Key-Up>z<KeyRelease-Up>)rh�fontlist�size�skipTestrIr~�focus_forcerj�event_generater}�assertInrx�lowerrO)r/r@r��font�	down_font�up_fonts      r!�test_fontlist_keyzFontPageTest.test_fontlist_key�s����I���:�?�?���q� �	3��M�M�1�2�2�2��:�����!�����z�~�~�h�'�'��	����������������-�-�-���� 3�4�4�4��L�L��*�*�	����I�t�,�,�,��
�
�a�k�o�o�'�'����):�):�;�;�;�	���������������
�+�+�+���� 1�2�2�2��,�,�x�(�(������$�'�'�'��
�
�a�k�o�o�'�'������9�9�9�9�9r c���|j}|j���dkr|�d��|j}|�d��|���|�d��|���|�d��\}}}}||dzz
}||dzz
}|�	d||���|�	d||���|�
d��}|�
d��}|�||��|�|j
�
��|�����dS)	Nr�r�rrL�
<Button-1>��x�y�<ButtonRelease-1>�anchor)rhr�r�r�rIr��seerj�bboxr�r~rOr�rxr�)	r/r@r�r�r��dx�dy�font1�select_fonts	         r!�test_fontlist_mousez FontPageTest.test_fontlist_mouse�sQ���I���:�?�?���q� �	3��M�M�1�2�2�2��:�����!����	���������Q�����������}�}�Q�'�'���1�b�"�	�R�1�W���	�R�1�W��������Q��7�7�7���� 3�q�A��>�>�>����Q�����l�l�8�,�,������e�,�,�,��
�
�a�k�o�o�'�'������7�7�7�7�7r c��|j}|jj�d��|�|j���d��dS)N�(�40)rh�sizelist�variableryrOrzr~rQs  r!�
test_sizelistzFontPageTest.test_sizelist�sJ���I��	�
�����#�#�#��������*�*�D�1�1�1�1�1r c�\�|j}|j�d��|j���|�|j�����|j���|�|j�����dS)NF)rhr{ry�bold_toggler>r_r~rrQs  r!�test_bold_togglezFontPageTest.test_bold_toggle�s����I��	��������	�
�������������)�)�*�*�*�	�
�������������*�*�+�+�+�+�+r c���tjtdd��}t|d��}|ddk}|j}|j�|��|j�|��d|j_	|j
�d��dd|t|��d�i}|�t|��|�|jj	d��tj��|j�d	��ddd	t|��d�i}|�t|��|�|jj	d��tj��|j�|��ddd	t|��d�i}|�t|��|�|jj	d
��dS)Nr�EditorWindowrLr��boldrz	Test Font)r�z	font-sizez	font-bold�20�)r�GetFontr�strrhrzryr{rirPrxrO�mainpagerr')r/�default_font�default_size�default_boldr@�expecteds      r!�
test_font_setzFontPageTest.test_font_set�s���
 �'��f�n�E�E���<��?�+�+��#�A��&�0���I��	�����%�%�%�	�����%�%�%� ��
��	�����$�$�$�"�[�2>�25�l�2C�2C�%E�%E�F��	
����8�,�,�,������-�q�1�1�1��
����	��������"�[�26�25�l�2C�2C�%E�%E�F��	
����8�,�,�,������-�q�1�1�1��
����	����L�(�)�)�)�"�[�26�25�,�6F�2G�2G�%I�%I�J��	
����8�,�,�,������-�q�1�1�1�1�1r c��|j}|`|j|jf}iic|_|_|j�d��|j�d��|j�d��ddi}|���|�|j|jcxko|knc��|\|_|_t��|_dS)N�test�5rLr�)r�r�r�)
rhri�font_sample�highlight_samplerxryrzr{r_r)r/r@�orig_samplesr�s    r!�test_set_sampleszFontPageTest.test_set_samples�s����I��
�M��}�a�&8�8��,.��)��
�q�)�	��������	��������	���������1�2��	
�
�
��������
��);�G�G�G�G�x�G�G�G�G�H�H�H�,8�)��
�q�)�����
�
�
r N)r4r5r6�__doc__�classmethodrmrprsr�r�r�r�r�r�r�rr r!rereis�������������[���!�!��[�!������� :�:�:�:8�8�8�.2�2�2�,�,�,�"2�"2�"2�H����r rec��eZdZdZed���Zed���Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�HighPageTestz�Test that highlight tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes and that themes work correctly.
    c�*�tjx}|_tj�|��t��|_t��|_t��|_t��|_	|�
��dSr$)r�highpagerhrYrZr�set_theme_type�paint_theme_sample�set_highlight_target�set_color_samplerjrks  r!rmzHighPageTest.setUpClasssg�� �/�)��s�x�����4� � � �"�f�f���"&�&�&���$(�F�F��!� $��������
�
�
�
�
r c�$�|j}|`|`|`|`dSr$)rhr�r�r�r�)rlr@s  r!rpzHighPageTest.tearDownClasss%���H��
��a�2�
�"�A�$6�$6�$6r c��|j}tjdd��D]'}tjd�|���(tj��d|j_d|j	_d|j
_d|j_dS)N�userrr)rhr�GetSectionListr�remove_sectionrr'r�rPr�r�r��r/r@�sections   r!rszHighPageTest.setUps����I�� �.�v�{�C�C�	B�	B�G���[�)�8�8��A�A�A�A��
����"#����&'���#�()���%�$%���!�!�!r c� �tj��|j}|j}t	jd���t_|���|�	|j
�����||j���d��||j
���d��||j���d��||jjd��||jjd��||jjd��t
jdddd	��t
jdd
dd��|���||j���d��||j
���d��||jjd
��||jjd
��||jjd
��t	jd
���t_t
jdddd��|���|�|j
�����||j���d��||j
���d
��||jjd��||jjd��||jjd��t`tj��dS)N�IDLE Classic��return_value�- no custom themes -��disabledrLr�test1�option�value�test2�option2�value2r�r�Theme�default�0r�)rr&rhrOrr;r�CurrentTheme�load_theme_cfgr_�theme_sourcer~�builtin_name�custom_name�custom_theme_on�stater�rPr�r��	SetOptionrr��r/r@�eqs   r!�test_load_theme_cfgz HighPageTest.test_load_theme_cfg*s���������I��
�
��!%�	�~� F� F� F���	�����������*�*�,�,�-�-�-�
��1�>������0�0�0�
��1�=����� 6�7�7�7�
��1��"�"�$�$�m�4�4�4�
��1��"�A�&�&�&�
��1��&��*�*�*�
��1�!�(�!�,�,�,�	��;���7�C�C�C���;���H�E�E�E�	������
��1�>������0�0�0�
��1�=������(�(�(�
��1��"�A�&�&�&�
��1��&��*�*�*�
��1�!�(�!�,�,�,�!%�	�w� ?� ?� ?�����6�7�I�s�;�;�;�	�����������+�+�-�-�.�.�.�
��1�>������0�0�0�
��1�=������(�(�(�
��1��"�A�&�&�&�
��1��&��*�*�*�
��1�!�(�!�,�,�,��!�������r c�L�|j}|j}t��|_t��|_|j���|tdddii��||jjd��||jjd��tj
��|j�d��|j���|�tdddii��||jjd��||jjd��|`|`dS)Nr�r��TruerLr�z	!disabled�False)
rOrhr�var_changed_builtin_name�var_changed_custom_name�builtin_theme_onr>r�rPrr'r�r��r/r�r@s   r!�test_theme_sourcezHighPageTest.test_theme_sourceSs$��
�
���I��%)�V�V��"�$(�F�F��!�	��!�!�#�#�#�
��8�g�	�6�2�3�4�4�4�
��1�%�,�a�0�0�0�
��1�$�+�Q�/�/�/��
����	
�����/�/�/�	�� � �"�"�"�����G�i��-A�#B�C�C�C�
��1�%�,�a�0�0�0�
��1�$�+�Q�/�/�/�
�&��(A�(A�(Ar c��|j}|j}gd�}tjdddd��|j�|d��|tdddd�i��||jd	d
��||jj	d��tj��tjdddd��|j�|d��|tdd
dii��||jd	d
��||jj	d��tj��|j�|d��|tdddd�i��||jd	d��||jj	d��dS)N)r��	IDLE Dark�IDLE Newrr��name�spamr�r��r��name2�textzNew theme, see HelprLr�r�r�rr�)rOrhrr��builtinlist�SetMenur��
theme_messager�rPrr'�r/r�r@�	item_lists    r!�test_builtin_namezHighPageTest.test_builtin_namehs���
�
���I��=�=�=�	�	��6�7�F�F�;�;�;�	�
���i��5�5�5�
��8�g��)4� 6� 6�7�	8�	8�	8�
��1�?�6�"�$9�:�:�:�
��1��&��*�*�*�	�
������6�7�F�J�?�?�?�	�
���i��5�5�5�
��8�g���5�6�7�7�7�
��1�?�6�"�$9�:�:�:�
��1��&��*�*�*�	�
����	�
���i��8�8�8�
��8�g���D�D�E�F�F�F�
��1�?�6�"�B�'�'�'�
��1��&��*�*�*�*�*r c��|j}|j�gd��|�dt��|�|jjd��tj	��|j�gd�d��|�tdddii��|�|jjd��dS)Nr�r�r��a�b�crr�rL)
rh�
customlistr��assertNotInr�rOr�rPrr'rQs  r!�test_custom_namezHighPageTest.test_custom_name�s����I��	
����R�!7�8�8�8�����(�+�+�+�����-�4�a�8�8�8�	�
����	����_�_�_�c�2�2�2�����G�f�c�]�#;�<�<�<�����-�4�a�8�8�8�8�8r c��|j}t��|_|j�d��|�|jjd��|`dS)N�greenrL)rhr�on_new_color_set�colorryrOrPrQs  r!�
test_colorzHighPageTest.test_color�sQ���I��!�V�V���	����G��������+�2�A�6�6�6�
���r c���|j}|j}|j�gd�d��||j���d��||jjd��dS)NrrrL)rOrh�
targetlistr��highlight_targetr~r�rPr�s   r!� test_highlight_target_list_mousez-HighPageTest.test_highlight_target_list_mouse�sl��
�
���I��	����_�_�_�c�2�2�2�
��1��!�!�#�#�S�)�)�)�
��1�!�(�!�,�,�,�,�,r c����	�|j}|j�i}d}�j�	�	����	�d���	����fd�}�	fd�}||���	���D]r}�	�|��ddd�D]Q}|dz
}||��|�j�	��||��|�j
j|���R�sdS)Nr��?c�\���j���D]\}}|||d<�dS�Nr)�theme_elements�items)�elem�element�tagr@s   �r!�tag_to_elementzEHighPageTest.test_highlight_target_text_mouse.<locals>.tag_to_element�s>��� !� 0� 6� 6� 8� 8�
'�
'����&��S��V���
'�
'r c�����|��\}}}}||dzz
}||dzz
}��ddd�����d||�����d||�����d||���dS)Nr��<Enter>rr��<Motion>�<ButtonPress-1>r�)r�r�)�startr�r�r�r��hss     �r!�click_itz?HighPageTest.test_highlight_target_text_mouse.<locals>.click_it�s�����7�7�5�>�>�L�A�q�"�b�
��q��L�A�
��q��L�A����i�1���2�2�2����j�A���3�3�3����/�1���:�:�:����1�Q�!��<�<�<�<�<r r�rL)rOrhr�r�r�r(�	tag_names�
tag_rangesrr~r�rP)
r/r�r�countrr r�start_indexr@rs
        @@r!� test_highlight_target_text_mousez-HighPageTest.test_highlight_target_text_mouse�sA����
�
���I������
�
��
������
���s����
������	'�	'�	'�	'�	'�	=�	=�	=�	=�	=�	��t�����<�<�>�>�	9�	9�C�!�}�}�S�1�1�!�$�Q�$�7�
9�
9����
�����%�%�%���1�%�)�)�+�+�T�#�Y�7�7�7���1�)�0�%�8�8�8�8�	
9�	9�	9r c���|j}|j}|j}|���|�d��|���|�ddd���|�ddd���td��D]2}|�ddd���|�ddd����3||�d	��d
��dS)Nrrrr�rr�rr��selr)	rOrhr�r�r�r(r��ranger")r/r�r@r�_s     r!�"test_highlight_sample_double_clickz/HighPageTest.test_highlight_sample_double_click�s���
�
���I��
�
��
������
���s����
������	���)�q�A��.�.�.�
���*��Q��/�/�/��q���	=�	=�A����/�1���:�:�:����1�Q�!��<�<�<�<�
��2�=�=�����$�$�$�$�$r c�2�|j}|j}|j}|���|�d��|���|�d��\}}}}}|�d��|�d��|�d||���|�d||���|�d||���|�d	||���||�d
��d��dS)Nrz1.0z<Leave>rrr�rz<B1-Motion>r�r'r)	rOrhr�r�r�r(�	dlineinfor�r")	r/r�r@rr�r�r�r��offsets	         r!�test_highlight_sample_b1_motionz,HighPageTest.test_highlight_sample_b1_motion�s"��
�
���I��
�
��
������
���s����
������!�|�|�E�2�2���1�b�"�f�	���)�$�$�$�
���)�$�$�$�
���*��Q��/�/�/�
���+�q�A��6�6�6�
���-�2���4�4�4�
���-��r��:�:�:�
��2�=�=�����$�$�$�$�$r c��|j}|j}|`|j�d��|���||jdt��||jdt��||j	�
��d��|j�d��|���||jdt��||j�
��d��||jdt��||j	�
��d��t��|_dS�NTr�r�F��selectedr)
rOrhr�r�ryr�r
rr�button_delete_customr�r�rr�s   r!�test_set_theme_typez HighPageTest.test_set_theme_type�sD��
�
���I��
��	
����4� � � �	������
��1�=��!�6�*�*�*�
��1�<�� �(�+�+�+�
��1�!�'�'�)�)�=�9�9�9�	
����5�!�!�!�	������
��1�=��!�8�,�,�,�
��1��"�"�$�$�m�4�4�4�
��1�<�� �&�)�)�)�
��1�!�'�'�)�)�2�.�.�.��6�6����r c�f�|j}|j}tjj}t��x}tj_t��x}|_|j�d��|j	�d��d|_
|j���||j	�
��d��d|j�|jdd��f|_
|j���||j	�
��d��d|_
|j	�d��|j�d��d|_
|j���||jd	��||j	�
��d��d
|_
|j���||j�
��|j
��||j	�
��d��|j	�d��|j�d��|j���||j	�
��d��|`|tj_dS)
NzEditor Breakpointz#ffffff)NNr�style�
background))g��k@�r8�#de0000TrLzMy New Themer9F)rOrhr�colorchooser�askcolorr�get_new_theme_namerryr
�result�button_set_colorr>r~r6�lookup�frame_color_setr�rPr�)r/r�r@�orig_chooser�chooser�gntns      r!�test_get_colorzHighPageTest.test_get_colorsO��
�
���I��#�0�9��7;�v�v�=��,�+�4�&*�f�f�,��q�#�	����2�3�3�3�	����I����&���	��!�!�#�#�#�
��1�7�;�;�=�=�)�$�$�$��a�g�n�n�Q�->�w�-G��V�V�W���	��!�!�#�#�#�
��1�7�;�;�=�=�)�$�$�$�>���	
����I����	����4� � � ����	��!�!�#�#�#�
��4�;�����
��1�7�;�;�=�=�)�$�$�$�$���	��!�!�#�#�#�
��1�=�������,�,�,�
��1�7�;�;�=�=�)�$�$�$�	
����I����	����5�!�!�!�	��!�!�#�#�#�
��1�7�;�;�=�=�)�$�$�$�
� �-9��!�*�*�*r c��|j}d}|j�d��|j�d��|j�d��|j�|��|�|j�|j	dd��|��|�|j
�dd��|��|�tdd	|ii��dS)
Nz#3f7cae�Python�
Selected TextTr6r7�hilite�
foregroundzhilite-foreground)
rhr�ryr�fg_bg_toggler
rOr6r?r@r��tag_cgetr�)r/r@r
s   r!�test_on_new_color_setz"HighPageTest.test_on_new_color_set6s����I����	�
���(�#�#�#�	�����/�/�/�	����4� � � �	����E������������(9�'�(B�L�Q�Q�SX�Y�Y�Y�����+�4�4�X�|�L�L�e�T�T�T�����"�%8�%�$@�A�	C�	C�	C�	C�	Cr c���tj}td���x}t_|j}d|_|�|�d��d��|t_dS)NT��return_selfz	New Themer)r�SectionNamerrhr=rOr<�r/�orig_sectionname�snr@s    r!�test_get_new_theme_namez$HighPageTest.test_get_new_theme_nameCsc��'�3��(,��(>�(>�(>�>��\�
%��I����	�����-�-�b�1�1�;�?�?�?�#3�� � � r c��|j}t��x}|_|j�d��d|_|j���|�|jtj
d��d|_d|_|�|jtj
d��|j���|�|jtj
d��|`dS)NTrrzmy new themer)
rhrr<r�ryr=�button_save_customr>rrrrPr�)r/r@rCs   r!�test_save_as_new_themez#HighPageTest.test_save_as_new_themeMs����I��&*�f�f�,��q�#�	����4� � � ����	��#�#�%�%�%������h�&6�{�&C�D�D�D�%�����������h�&6�{�&C�D�D�D�	��#�#�%�%�%��
�
�d�k�8�#3�K�#@�A�A�A�
� � � r c�N�|j}|j}|j�d��|j�d��d}d}|�|tj��|�|��|t
j	dd��|g��|t
j
dd��t
j
d|����||j���|��|�
|j�����||jjd��t!jd|d	d
��|�|tj��|�|��|t
j	dd��||g��|�t
j
d|��t
j
d|����t
jd|d	d
��|t
j
d|��t
j
d|����dS)NTr�zmy new custom themezmy second custom themer�rr�rLzhit-background�yellow)rOrhr�ryr�rrr�
create_newr��GetThemeDictr�r~rr�rPr�
add_optionr}r��r/r�r@�	first_new�
second_news     r!�test_create_new_and_save_newz)HighPageTest.test_create_new_and_save_new`s��
�
���I��	
����4� � � �	����>�*�*�*�)�	�-�
�	
����H�$4�5�5�5�	���Y����
��8�"�6�;�7�7�)��E�E�E�
��8� ��N�;�;�� ���3�3�	5�	5�	5�
��1�=�����	�*�*�*������+�+�-�-�.�.�.�
��1��"�A�&�&�&�	��;�	�3C�X�N�N�N�����X�%5�6�6�6�	���Z� � � �
��8�"�6�;�7�7�)�Z�9P�Q�Q�Q����H�1�&�)�D�D�$�1�&�*�E�E�	G�	G�	G�	��;�	�3C�X�N�N�N�
��8� ���3�3�� ���4�4�	6�	6�	6�	6�	6r c��|j}|j}|`|j�d��||j���d��||j���d��|�|j	��||j
jd��|j�d��||j���d��||j���d��|�|j	��||j
jd��t��|_dS)	N�Cursor)r�r2r�rL�Commentr1rr�)
rOrhr�rry�fg_onr��bg_onr_rJr�rPrr�s   r!�test_set_highlight_targetz&HighPageTest.test_set_highlight_target�s$��
�
���I��
�"�	
����x�(�(�(�
��1�7�=�=�?�?�4�5�5�5�
��1�7�=�=�?�?�M�*�*�*������'�'�'�
��1��$�a�(�(�(�	
����y�)�)�)�
��1�7�=�=�?�?�M�*�*�*�
��1�7�=�=�?�?�B���������'�'�'�
��1��$�a�(�(�(�!%������r c���|j}|j}|j���|�|jd��|j���|�|jd��dS)NrLr�)rhr�rdr>rOrPre)r/r@�scss   r!�test_set_color_sample_bindingz*HighPageTest.test_set_color_sample_binding�sk���I��� ��	������������Q�'�'�'�	������������Q�'�'�'�'�'r c�t�|j}|`|j�d��|j�d��|���|�|j�|jdd��|j	�
dd����t��|_dS)NrGTr6r7rHrI)rhr�rryrJrOr6r?r@r�rKrrQs  r!�test_set_color_samplez"HighPageTest.test_set_color_sample�s����I��
��	�����/�/�/�	����4� � � �	�������������q�0��9�<�H�H��"�+�+�H�l�C�C�	E�	E�	E�"�V�V����r c��|j}|j}|`|jj}t
j}|j�d��|j	�d��d}|�
|��d|j_|���ddd�}|�
��D]%\}}|�|d|��|���&||jjd	��|�
��D]\}}tjd
|d|z|��� |���|�
��D]\}}||d|��|���||jjd��t#��|_dS)
NTr�z	IDLE Testr�bluerY)rIr7�consolerLrzconsole-r�)rOrhr�r�rKr�GetHighlightr�ryr�rZr�rPrr}rr\r)	r/r�rh�hs_tag�gh�theme�new_console�keyr�s	         r!�test_paint_theme_samplez$HighPageTest.test_paint_theme_sample�s���
�
���y���#��&�/��
�
"��	
����d�#�#�#�����k�*�*�*����������'(���$�	
���!�!�!�%+�%-�0�0��%�+�+�-�-�	?�	?�J�C�������y�#� 6� 6��>�>�>�>�
��4� �'��+�+�+�&�+�+�-�-�	J�	J�J�C����{�E�:�c�>�5�I�I�I�I����!�!�!�%�+�+�-�-�	.�	.�J�C���B�v�v�i��%�%�u�-�-�-�-�
��4� �'��+�+�+�"&�&�&����r c��|j}|j}|j�d��t	��x}|_t	��t_t	��t_d}tj
d�|dd��ddit|<d}tj
d�|dd��dd	it|<|j
�d��|j
���|j�|��d
|_|j���||jd��|t|ddi��|tjdd��||g��|tjjd
��|tjjd
��||jjd
��d|_|j���||jd��|�|t��|tjdd��|g��||j
���d��||j���|��|tjjd��|tjjd��||jjd��|j�|��d|_|j���||jd��|�|t��|tjdd��g��||j
���d��||j���d��|tjjd��|tjjd��||jjd��t`t`|`dS)Nr�z
spam themerr�r�r�r�zother themer�FrLr�rTr�rr�r�r�)rOrhr3r�r�askyesnorrDr3rrr�r�r�r>r�ryr=rPr�r�rr~)r/r�r@�yesno�
theme_name�theme_name2s      r!�test_delete_customzHighPageTest.test_delete_custom�s���
�
���I��	��$�$�^�4�4�4�!�V�V�#���
�+/�6�6��(�)-����&�!�
����%�/�/�
�F�G�L�L�L� (�&�1����#�����%�/�/��V�W�M�M�M�!)�7� 3����	
�����/�/�/�	�� � �"�"�"�	�
���*�%�%�%����	��%�%�'�'�'�
��5�<�����
��8�J��(�F�!3�4�4�4�
��8�"�6�;�7�7�*�k�9R�S�S�S�
��6�+�2�A�6�6�6�
��6�)�0�!�4�4�4�
��1��"�A�&�&�&����	��%�%�'�'�'�
��5�<���������X�.�.�.�
��8�"�6�;�7�7�+��G�G�G�
��1��"�"�$�$�b�)�)�)�
��1�=������,�,�,�
��6�+�2�A�6�6�6�
��6�)�0�!�4�4�4�
��1��"�A�&�&�&�	
�
���+�&�&�&����	��%�%�'�'�'�
��5�<���������X�.�.�.�
��8�"�6�;�7�7��<�<�<�
��1��"�"�$�$�m�4�4�4�
��1�=����� 6�7�7�7�
��6�+�2�A�6�6�6�
��6�)�0�!�4�4�4�
��1��"�A�&�&�&��*�F�,L�
�J�J�Jr N)r4r5r6r�r�rmrprsr�r�r�rrrr%r*r.r4rDrLrTrWr`rfrirkrur{rr r!r�r�s�������������[���7�7��[�7�

&�
&�
&�'�'�'�RB�B�B�*+�+�+�89�9�9����-�-�-�#9�#9�#9�J%�%�%�(%�%�%�,"�"�"�*-:�-:�-:�^C�C�C�4�4�4�!�!�!�&6�6�6�@(�(�(�*(�(�(�	$�	$�	$�)�)�)�@9�9�9�9�9r r�c��eZdZdZed���Zed���Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�ZdS)�KeysPageTestz�Test that keys tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes and that key sets works correctly.
    c��tjx}|_tj�|��t��|_t��|_dSr$)rr[rhrYrZr�
set_keys_type�load_keys_listrks  r!rmzKeysPageTest.setUpClass
sD�� �/�)��s�x�����4� � � �!�V�V���"�f�f����r c��|j}|`|`dSr$)rhrr�rks  r!rpzKeysPageTest.tearDownClasss���x����� 3� 3� 3r c���|j}tjdd��D]'}tjd�|���(tj��d|j_d|j	_dS)Nr�rr)
rhrr�rr�rr'rrPr�r�s   r!rszKeysPageTest.setUpsl���I�� �.�v�v�>�>�	=�	=�G���V�$�3�3�G�<�<�<�<��
����!"����"#�����r c�l�tj��|j}|j}t	jd���t_|���|�	|j
�����||j���d��||j
���d��||j���d��||jjd��||jjd��||jjd��t
jddd	d
��t
jdddd
��|���||j���d��||j
���d��||jjd��||jjd��||jjd��t	jd���t_t	jd���t_t
jdddd��|���|�|j
�����||j���d��||j
���d��||jjd��||jjd��||jjd��t`t`tj��dS)N�IDLE Classic OSXr��- no custom keys -r�rL�r�rr�r�r�r�r�r�r�zIDLE Modern Unixr�Keysr�r�r�)r�)rr&rhrOrr;r�CurrentKeys�load_key_cfgr_�
keyset_sourcer~r�r��custom_keyset_onr�rrPr��argsr��default_keysrr�r�s   r!�test_load_key_cfgzKeysPageTest.test_load_key_cfg#s���������I��
�
�� $�y�6H�I�I�I���	�����������+�+�-�-�.�.�.�
��1�>�����!3�4�4�4�
��1�=����� 4�5�5�5�
��1��#�#�%�%�}�5�5�5�
��1�?�!�1�%�%�%�
��1��"�A�&�&�&�
��1�� �"8�9�9�9�	��6�7�H�g�>�>�>���6�7�I�x�@�@�@�	������
��1�>�����!3�4�4�4�
��1�=������(�(�(�
��1�?�!�1�%�%�%�
��1��"�A�&�&�&�
��1�� �"8�9�9�9� $�y�g�>�>�>��� $�	�7I� J� J� J�����6�6�9�c�:�:�:�	�����������,�,�.�.�/�/�/�
��1�>�����!3�4�4�4�
��1�=������(�(�(�
��1�?�!�1�%�%�%�
��1��"�A�&�&�&�
��1�� �+�.�.�.�� �(�"7�������r c�L�|j}|j}t��|_t��|_|j���|tdddii��||jjd��||jjd��tj
��|j�d��|j���|�tdddii��||jjd��||jjd��|`|`dS)Nr�r�r�rLrr�r�)
rOrhrr�r��builtin_keyset_onr>r�rPrr'r�r�r�s   r!�test_keyset_sourcezKeysPageTest.test_keyset_sourceMs$��
�
���I��%)�V�V��"�$(�F�F��!�	��"�"�$�$�$�
��8�f�y�&�1�2�3�3�3�
��1�%�,�a�0�0�0�
��1�$�+�Q�/�/�/��
����	
�� � ��0�0�0�	��!�!�#�#�#�����F�Y��,@�#A�B�B�B�
��1�%�,�a�0�0�0�
��1�$�+�Q�/�/�/�
�&��(A�(A�(Ar c��|j}|j}tjd�d��gd�}|j�|d��|tdddd�i��||jdd��||j	j
d	��||j	jd
��tj
��tjdddd��|j�|d��|tdd
dii��||jdd��||j	j
d��||j	jd
��tj
��|j�|d��|tdddd�i��||jdd��||j	j
d��||j	jd��dS)Nrr�)�IDLE Classic Windowsr��IDLE Modern UNIXr�r�r�r�zNew key set, see HelprL)r�r�zIDLE Classic Unixr�r�r�rr�r�)rOrhrrr�r�r�r��keys_messager�rPr�rr'r�r�s    r!r�zKeysPageTest.test_builtin_namebs
��
�
���I����� �/�/��7�7�7�)�)�)�	�	
�
���i�);�<�<�<�
��8�f�'=�(:�<�<�=�	>�	>�	>�
��1�>�&�!�#:�;�;�;�
��1��"�A�&�&�&�
��1�� �"8�9�9�9�	�
������6�6�6�3F�G�G�G�	�
���i�);�<�<�<�
��8�f�w�(:�;�<�=�=�=�
��1�>�&�!�#:�;�;�;�
��1��"�A�&�&�&�
��1�� �"8�9�9�9�	�
����	�
���i�);�<�<�<�
��8�f�'9�B�G�G�H�I�I�I�
��1�>�&�!�2�&�&�&�
��1��"�A�&�&�&�
��1�� �"8�9�9�9�9�9r c��|j}|j�gd��|�dt��|�|jjd��tj	��|j�gd�d��|�tdddii��|�|jjd��dS)Nr�r�rrrr�rL)
rhrr�rr�rOr�rPrr'rQs  r!rzKeysPageTest.test_custom_name�s����I��	
����R�!5�6�6�6������*�*�*�����)�0�!�4�4�4�	�
����	����_�_�_�c�2�2�2�����F�V�S�M�#:�;�;�;�����)�0�!�4�4�4�4�4r c���tjdddd��|j}|j�d��|j�dd��|j�dd��|j�d	d
��|j�d��|j�	d��|j
�d��|�tdddii��|j�d	��|j�	d	��|j
�d��|�tdd
dii��dS)
Nr�ZzDummy�enabler�zmy custom keysr�end�copyrLzz-in�	<Key-F11>�ZzDummy_cfgBindings)rr�rhr�ry�bindingslist�delete�insert�
selection_set�selection_anchor�
keybindingrOr[rErQs  r!�test_keybindingzKeysPageTest.test_keybinding�se����<��H�f�E�E�E��I��	�
���*�+�+�+�	����a��'�'�'�	����a��(�(�(�	����a��(�(�(�	��$�$�Q�'�'�'�	��'�'��*�*�*�	�����%�%�%�����*�V�[�,A�B�	D�	D�	D�	
��$�$�Q�'�'�'�	��'�'��*�*�*�	�����%�%�%�����/�&�+�1F�G�	I�	I�	I�	I�	Ir c��|j}|j}|`|j�d��|���||jdt��||jdt��||j	�
��d��|j�d��|���||jdt��||j�
��d��||jdt��||j	�
��d��t��|_dSr0)
rOrhrr�ryr�r
rr�button_delete_custom_keysr�r�rr�s   r!�test_set_keys_typezKeysPageTest.test_set_keys_type�s<��
�
���I��
�O�	
����D�!�!�!�	������
��1�=��!�6�*�*�*�
��1�<�� �(�+�+�+�
��1�&�,�,�.�.�
�>�>�>�	
����E�"�"�"�	������
��1�=��!�8�,�,�,�
��1��#�#�%�%�}�5�5�5�
��1�<�� �&�)�)�)�
��1�&�,�,�.�.��3�3�3��&�&����r c��|j}|j}tj}t	d���x}t_t	��x}|_|j�d��|j�	dd��|j�
dd��|j�d��|j�d��|j
�d��|j�d��d|_|j���||j�d	��d��||j
���d��d
|_d|_|j���||jd��||j�d	��d��d|_|j���||j���|j��||j�d	��d
��||j
���d
��|j�d��d|_d|_|j���||jd��||j�d	��d��||j
���d��|`|t_dS)NTrNr�rr�zcopy - <Control-Shift-Key-C>zKey-arr�r�rLzMy New Key Setzcopy - <Key-F11>Fz<Key-p>zcopy - <Key-p>)rOrhr�
GetKeysDialogr�get_new_keys_name�button_new_keysr�r�r�r�r�r�r�ryr�r=r>r~rPr�)r/r�r@�orig_getkeysdialog�gkd�gnkns      r!�test_get_new_keyszKeysPageTest.test_get_new_keys�s���
�
���I��)�7��+/�D�+A�+A�+A�A��l�(�%)�V�V�+��q�"�	�����/�/�/�	����a��'�'�'�	����a�!?�@�@�@�	��$�$�Q�'�'�'�	��'�'��*�*�*�	�����!�!�!�	����D�!�!�!���
�	�� � �"�"�"�
��1�>���h�'�'�)G�H�H�H�
��1�<�����w�'�'�'�!��
����	�� � �"�"�"�
��4�;�����
��1�>���h�'�'�)G�H�H�H�&���	�� � �"�"�"�
��1�=�������,�,�,�
��1�>���h�'�'�);�<�<�<�
��1�<�����{�+�+�+�	
����E�"�"�"������
�	�� � �"�"�"�
��4�;�����
��1�>���h�'�'�)9�:�:�:�
��1�<�����y�)�)�)�
��%7��"�"�"r c���tj}td���x}t_|j}d|_|�|�d��d��|t_dS)NTrNzNew Keysr)rrPrrhr=rOr�rQs    r!�test_get_new_keys_namez#KeysPageTest.test_get_new_keys_name�sc��'�3��(,��(>�(>�(>�>��\�
%��I����	�����,�,�R�0�0�*�=�=�=�#3�� � � r c��|j}t��x}|_|j�d��d|_|j���d|_d|_|�	|jtjd��|j���|�|jtjd��|`dS)NTrzmy new key setrr)
rhrr�r�ryr=�button_save_custom_keysr>rPrrrr�)r/r@r�s   r!�test_save_as_new_key_setz%KeysPageTest.test_save_as_new_key_set�s����I��%)�V�V�+��q�"�	����D�!�!�!����	�!�(�(�*�*�*�'�����������h�&6�v�&>�?�?�?�	�!�(�(�*�*�*��
�
�d�k�8�#3�F�#;�<�<�<�
���r c�
�|j}|j}|�dd��|�dd��|�dd��|�d��|���|�d��|���|�d��\}}}}||dzz
}||dzz
}|�	ddd���|�	d	||���|�	d
||���|�	d||���|�
|�d��d��|�
|j�
��d
��dS)Nrr�r�rL�findr�rr�rr�r�r�r)rhr�r�r�rIr�r�rjr�r�rOr~r�r�)r/r@rr�r�r�r�s       r!�test_on_bindingslist_selectz(KeysPageTest.test_on_bindingslist_selectsm���I��
�N��	����E����	����F����	����F����	�
�
�1�
�
�
�	�
�
����	���a����	���
�
�
��v�v�a�y�y���1�b�"�	�R�1�W���	�R�1�W���	����a�1��-�-�-�	����q�A��.�.�.�	�����a��0�0�0�	���,��Q��7�7�7�������x���&�1�1�1�����*�0�0�2�2�B�7�7�7�7�7r c�B�|j}|j}|j�d��|j�d��d}d}|�|tj��|�|��|t
j	dd��|g��|t
j
d��t
j
|����||j���|��|�
|j�����||jjd��t!jd|dd	��|�|tj��|�|��|t
j	dd��||g��|�t
j
|��t
j
|����t
jd|dd	��|t
j
|��t
j
|����dS)
NTr�zmy new custom key setzmy second custom keysetr�rrLr�r�)rOrhr�ryr�rrr�create_new_key_setr��	GetKeySetr�r~rrrPrr\r}r�r]s     r!�,test_create_new_key_set_and_save_new_key_setz9KeysPageTest.test_create_new_key_set_and_save_new_key_sets��
�
���I��	
����D�!�!�!�	����1�2�2�2�+�	�.�
�	
����H�$4�5�5�5�	���Y�'�'�'�
��8�"�6�6�2�2�Y�K�@�@�@�
��8��4�5�5���i�(�(�	*�	*�	*�
��1�=�����	�*�*�*������,�,�.�.�/�/�/�
��1�?�!�1�%�%�%�	��6�9�f�k�B�B�B�����X�%5�6�6�6�	���Z�(�(�(�
��8�"�6�6�2�2�Y�
�4K�L�L�L����H�.�y�9�9�$�.�z�:�:�	<�	<�	<�	��6�9�f�k�B�B�B�
��8��i�(�(�(�*<�Z�*H�*H�I�I�I�I�Ir c���|j}|j}t��x}t_|`|j}|�dd��|�dd��|�dd��ddgdgd	gd
�|_	tjddd
d��d}|�d��||�dd��|��||�d��d��||�
��d��|�d��|�d��|�d��||�dd��|��||�d��d��||�
��d��|�d��|�d��|�d��||�dd��|��||�d��d��||�
��d��t��|_t`dS)Nrr�z<<find>>rLz<<help>>z<Control-Key-c>z<Control-Key-C>z<Control-Key-space>r�)z<<copy>>z<<force-open-completions>>z<<spam>>rzmy keysr�z
<Shift-Key-a>)z&copy - <Control-Key-c> <Control-Key-C>�,force-open-completions - <Control-Key-space>�spam - <Shift-Key-a>r�rrr�)rLr�r�)r�)rOrhrrr�r�r�r�r�r=rr\r~�curselectionr�r�)r/r�r@�gksrr�s      r!�test_load_keys_listz KeysPageTest.test_load_keys_list:sW��
�
���I��#'�6�6�)��h� �
��
�N��	����E����	����J����	����J����#4�6G�"H�5J�4K�#.�-�1�1��
�	��6�9�f�o�F�F�F�,��
	
����#�#�#�
��1�5�5��E�?�?�H�%�%�%�
��1�5�5��?�?�B����
��1�>�>���R� � � �	
�������	���1����	����#�#�#�
��1�5�5��E�?�?�H�%�%�%�
��1�5�5��?�?�J�K�K�K�
��1�>�>���U�#�#�#�	
�������	���1����	����#�#�#�
��1�5�5��E�?�?�H�%�%�%�
��1�5�5��?�?�2�3�3�3�
��1�>�>���U�#�#�#��6�6������r c��|j}|j}|j�d��t	��x}|_t	��t_t	��t_d}tj
d�|dd��ddit|<d}tj
d�|dd��dd	it|<|j
�d��|j
���|j�|��d
|_|j���||jd��|t|ddi��|tjdd��||g��|tjjd
��|tjjd
��||jjd
��d|_|j���||jd��|�|t��|tjdd��|g��||j
���d��||j���|��|tjjd��|tjjd��||jjd��|j�|��d|_|j���||jd��|�|t��|tjdd��g��||j
���d��||j���d��|tjjd��|tjjd��||jjd��t`t`|`dS)Nr�zspam key setrr�r�r�r�z
other key setr�FrLr�rTr�rr�r�r�)rOrhr�r�rrwrrDr3rrr�r[r�r>r�ryr=rPr�rrr~)r/r�r@rx�keyset_name�keyset_name2s      r!�test_delete_custom_keysz$KeysPageTest.test_delete_custom_keyses���
�
���I��	�#�)�)�.�9�9�9�!�V�V�#���
�+/�6�6��(�)-����&�$����� �*�*�;���H�H�H�!)�6� 2����&����� �*�*�<���I�I�I�"*�G�!4����	
�� � ��0�0�0�	��!�!�#�#�#�	�
���+�&�&�&����	�#�*�*�,�,�,�
��5�<�����
��8�K� �8�V�"4�5�5�5�
��8�"�6�6�2�2�[�,�4O�P�P�P�
��6�+�2�A�6�6�6�
��6�)�0�!�4�4�4�
��1�?�!�1�%�%�%����	�#�*�*�,�,�,�
��5�<���������h�/�/�/�
��8�"�6�6�2�2�\�N�C�C�C�
��1��#�#�%�%�r�*�*�*�
��1�=������-�-�-�
��6�+�2�A�6�6�6�
��6�)�0�!�4�4�4�
��1�?�!�1�%�%�%�	
�
���,�'�'�'����	�#�*�*�,�,�,�
��5�<���������h�/�/�/�
��8�"�6�6�2�2�B�7�7�7�
��1��#�#�%�%�}�5�5�5�
��1�=����� 4�5�5�5�
��6�+�2�A�6�6�6�
��6�)�0�!�4�4�4�
��1�?�!�1�%�%�%��*�F�,L�
�J�J�Jr N)r4r5r6r�r�rmrprsr�r�r�rr�r�r�r�r�r�r�r�r�rr r!r}r}s3���������%�%��[�%��4�4��[�4�$�$�$�(�(�(�TB�B�B�*:�:�:�@5�5�5�I�I�I�*!�!�!�*.8�.8�.8�`4�4�4� � � �$8�8�8�*J�J�J�>)�)�)�V9�9�9�9�9r r}c�^�eZdZdZed���Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�ZdS)
�WinPageTestz�Test that general tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes.
    c��tjx}|_tj�|��|���dSr$)r�winpagerhrYrZrjrks  r!rmzWinPageTest.setUpClass�s7�� �.�(��s�x�����4� � � ����
�
�
�
�
r c�,�tj��dSr$rrr.s r!rszWinPageTest.setUp�rtr c��|j}|j}|j�d��|j�d��|j�d��|���||j���d��||j���d��||j���d��dS)NrLr�80r�)rOrh�startup_editry�	win_width�
win_height�load_windows_cfgr~r�s   r!�test_load_windows_cfgz!WinPageTest.test_load_windows_cfg�s���
�
���I��	����1����	��������	��������	������
��1�>������#�#�#�
��1�;�?�?���d�#�#�#�
��1�<�����t�$�$�$�$�$r c��|j}|j���|�tdddii��tj��|j���|�tdddii��dS)N�Generalzeditor-on-startuprwr�)rh�startup_editor_onr>rOr�rr'�startup_shell_onrQs  r!�test_startupzWinPageTest.test_startup�s����I��	��"�"�$�$�$�����#�&9�3�%?�@�	B�	B�	B��
����	��!�!�#�#�#�����#�&9�3�%?�@�	B�	B�	B�	B�	Br c��|j}|j�dd��|j�dd��|�t
dddii��t
j��|j�dd��|j�dd��|�t
dddii��dS)Nrr��11r��height�width)	rh�win_height_intr�r�rOr�rr'�
win_width_intrQs  r!�test_editor_sizezWinPageTest.test_editor_size�s����I��	�����5�)�)�)�	�����4�(�(�(�����N�X�t�4D�#E�F�F�F��
����	����q�%�(�(�(�	����q�$�'�'�'�����N�W�d�O�#D�E�E�E�E�Er c���|j}|j�d��|�|j���d��|�tdddii��dS)N��6�Indentz
num-spaces)rh�indent_chooserryrO�
indent_spacesr~r�rQs  r!�test_indent_spaceszWinPageTest.test_indent_spaces�sj���I��	����Q���������,�,�.�.��4�4�4�����H�|�S�.A�#B�C�C�C�C�Cr c��|jj���|�tdddii��dS)Nr�zcursor-blinkr�)rh�cursor_blink_boolr>rOr�r.s r!�test_cursor_blinkzWinPageTest.test_cursor_blink�s?���	�#�*�*�,�,�,�����N�^�W�4M�#N�O�O�O�O�Or c���|jj�dd��|jj�dd��|�t
dddii��dS)Nrr�r��AutoComplete�	popupwait)rh�
auto_wait_intr�r�rOrEr.s r!�test_autocomplete_waitz"WinPageTest.test_autocomplete_wait�s^���	��&�&�q�%�0�0�0��	��&�&�q�$�/�/�/�����>�K��3F�"G�H�H�H�H�Hr c���|j}|j}|jd�d��|tdddii��tj��|j�dd��|j�	dd��|tdddii��tj��|j
���|tdd	d
ii��dS)N�menur�
ParenMatchr6�openerr�r�zflash-delay�bellr�)rhrO�paren_style_typer>rErr'�paren_flash_timer�r��bell_onr�s   r!�test_parenmatchzWinPageTest.test_parenmatch�s����I��
�
��	��6�"�)�)�!�,�,�,�
��7�\�G�X�#6�7�8�8�8��
����	��!�!�!�U�+�+�+�	��!�!�!�T�*�*�*�
��7�\�M�4�#8�9�:�:�:��
����	�	������
��7�\�F�G�#4�5�6�6�6�6�6r c���|jj�dd��|jj�dd��|�t
dddii��dS)Nrr�r��FormatParagraphz	max-width)rh�format_width_intr�r�rOrEr.s r!�test_paragraphzWinPageTest.test_paragraph�s_���	�"�)�)�!�U�3�3�3��	�"�)�)�!�T�2�2�2�����#4�{�D�6I�"J�K�K�K�K�Kr N)r4r5r6r�r�rmrsr�r�r�r�r�r�r�r�rr r!r�r��s���������
����[��
���
%�
%�
%�B�B�B�F�F�F�D�D�D�P�P�P�I�I�I�
7�7�7�L�L�L�L�Lr r�c�@�eZdZdZed���Zd�Zd�Zd�Zd�Z	dS)�ShedPageTestz�Test that shed tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes.
    c��tjx}|_tj�|��|���dSr$)r�shedpagerhrYrZrjrks  r!rmzShedPageTest.setUpClass�s7�� �/�)��s�x�����4� � � ����
�
�
�
�
r c�,�tj��dSr$rrr.s r!rszShedPageTest.setUp�rtr c���|j}|j}|j�d��|���||j���d��dS)NrLr)rOrh�autosavery�load_shelled_cfgr~r�s   r!�test_load_shelled_cfgz"ShedPageTest.test_load_shelled_cfgs[��
�
���I��	�
���q����	������
��1�:�>�>���Q�����r c���|j}|j���|�tdddii��|j���|�tdddii��dS)Nr�rrwr�)rh�save_auto_onr>rOr��save_ask_onrQs  r!�
test_autosavezShedPageTest.test_autosave	sw���I��	�����������I�
�C�/@�#A�B�B�B�	�
����������I�
�C�/@�#A�B�B�B�B�Br c���|jj�dd��|jj�dd��|�t
dddii��dS)Nrr�rw�CodeContext�maxlines)rh�context_intr�r�rOrEr.s r!�test_contextzShedPageTest.test_contexts^���	��$�$�Q��.�.�.��	��$�$�Q��,�,�,�����=�:�s�2C�"D�E�E�E�E�Er N)
r4r5r6r�r�rmrsrrrrr r!r�r��s}��������
����[��
��� � � �C�C�C�F�F�F�F�Fr r�c�(�eZdZdZed���ZdS)�ExtPageTest�/Test that the help source list works correctly.c�\�tj}tj�|��dSr$)rrErYrZrks  r!rmzExtPageTest.setUpClasss%���~������4� � � � � r N)r4r5r6r�r�rmrr r!r
r
s3������9�9��!�!��[�!�!�!r r
c�n�eZdZdZed���Zed���Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�ZdS)
�HelpSourceTestrc��tj}tj�|��|jx}|_t
��x|_|_t
��x|_	|_
|���dSr$)rrErYrZ�
frame_help�framerry�set_add_delete_state�upc�update_help_changesrj)rlrhrs   r!rmzHelpSourceTest.setUpClass!sd���~������4� � � � �O�+���	�15���7��	�E�.�04���6��	�E�-�
�������r c��|j}|`|`|`|`|j�dd��|j���dS)Nrr�)	rryrrr�helplistr��
user_helplistr')rlrs  r!rpzHelpSourceTest.tearDownClass*sP���	���I�u�1��I�u�0�
����a��'�'�'�
��!�!�#�#�#�#�#r c�,�tj��dSr$rrr.s r!rszHelpSourceTest.setUp2rtr c�.�|j}|j}|j�dd��ddg|_tjdddd��|���||j�dd��d	��||jd
g��dS)Nr��bad�worser�	HelpFilesrwz	name;filer)r�)r��filerw)	rOrrr�rrr��
load_helplistr~�r/r��frs   r!�test_load_helplistz!HelpSourceTest.test_load_helplist5s���
�
��
�Z��
����5�%�(�(�(�!�7�+�����6�;��[�A�A�A�
������
��2�;�?�?�1�e�$�$�i�0�0�0�
��2��3�4�5�5�5�5�5r c�8�|j}|j|_|j|_|j}d}|�|d��|�|��|���|�	|��|�
��|�|��\}}}}||dzz
}||dzz
}dx|j_|j_|�
ddd���|�
d||���|�
d||���|�
d	||���|�|�d
��d��|�|jj��|�|jj��dS)Nr��sourcer�rrr�rr�r�r�)rrryrrrr�rIr�r�rjr�rPr�rOr~r_r)r/r#r�dexr�r�r�r�s        r!�test_source_selectedz#HelpSourceTest.test_source_selected?s���
�Z���(����'����;��������X�&�&�&����#�������������S�����������}�}�S�)�)���1�b�"�	�R�1�W���	�R�1�W���()�)���
���
����	�Q�!��4�4�4����
�a�1��5�5�5������Q��7�7�7���� 3�q�A��>�>�>�������h�/�/��:�:�:������
�&�&�&�������'�'�'�'�'r c���|j}|j}|`|j}|j}|�dd��|��||j���d��||j���d��|�dd��|��||j���d��||j���d��|�	d��|��||j���d��||j���d��t��|_dS)Nrr�r�r&r)rOrrrr��button_helplist_editr��button_helplist_remover�r�r)r/r�r#�sad�hs     r!�test_set_add_delete_statez(HelpSourceTest.test_set_add_delete_stateWsY��
�
��
�Z���#��%���K��	����E���������
��2�"�(�(�*�*�M�:�:�:�
��2�$�*�*�,�,�m�<�<�<�	����H���������
��2�"�(�(�*�*�M�:�:�:�
��2�$�*�*�,�,�m�<�<�<�	������������
��2�"�(�(�*�*�B�/�/�/�
��2�$�*�*�,�,�b�1�1�1�"&�&�&����r c�x�|j}tj}td���x}t_|j}|j�dd��|j���dx|j	_
|j_
d|_|�
��|�t|j�dd����|jcxkogknc��|�|jj
��d|_|�
��d|_|�
��||j�dd��d��||jddg��||jj
d	��|�|j	j
��|t_dS)
NTrNrr�r��name1�file1�r��file2)r1r�r�)rOr�
HelpSourcerrrr�rr'ryrPrr=�helplist_item_addr_�listr~r�r/r��orig_helpsourcerr#s     r!�test_helplist_item_addz%HelpSourceTest.test_helplist_item_addos����
��&�1��'+��'=�'=�'=�=��\�
$�
�Z��
����1�e�$�$�$�
���� � � �()�)���
���
���	�
����������R�[�_�_�Q��6�6�7�7��(�/�/�/�/�,.�/�/�/�/�	0�	0�	0�������'�'�'�&��	�
������&��	�
������
��2�;�?�?�1�e�$�$�&8�9�9�9�
��2��0�2D�E�F�F�F�
��2�6�=�!����������'�'�'�"1����r c��|j}tj}td���x}t_|j}|j�dd��|j�dd��|j�d��|j�	d��|j
���|j
�d��dx|j
_|j_d|_|���d|_|���||j�dd��d��||j
dg��|�|jj��d	|_|���||j�dd��d
��||j
d	g��|�|jj|j
jcxkodknc��|t_dS)NTrNrr�r1r0r)r1r3)r�rL)rOrr5rrrr�r�r�r�rr'�appendryrPrr=�helplist_item_editr~rr_r8s     r!�test_helplist_item_editz&HelpSourceTest.test_helplist_item_edit�s���
�
��&�1��'+��'=�'=�'=�=��\�
$�
�Z��
����1�e�$�$�$�
����1�g�&�&�&�
��!�!�!�$�$�$�
��$�$�Q�'�'�'�
���� � � �
���� 2�3�3�3�()�)���
���
���	�
������&��	�
������
��2�;�?�?�1�e�$�$�j�1�1�1�
��2��0�1�2�2�2�������'�'�'�&��	�
������
��2�;�?�?�1�e�$�$�j�1�1�1�
��2��0�1�2�2�2������
����;�;�;�;�!�;�;�;�;�<�<�<�"1����r c��|j}|j}|j�dd��|j�dd��|j�d��|j�d��|j���|j�	d��dx|j
_|j_|�
��||j�dd��d��||jg��|�|jj|j
jcxkodknc��dS)Nrr�r1r0rrL)rOrrr�r�r�r�rr'r<ryrPr�helplist_item_remover~r_r"s   r!�test_helplist_item_removez(HelpSourceTest.test_helplist_item_remove�s1��
�
��
�Z��
����1�e�$�$�$�
����1�g�&�&�&�
��!�!�!�$�$�$�
��$�$�Q�'�'�'�
���� � � �
���� 2�3�3�3�()�)���
���
�
���!�!�!�
��2�;�?�?�1�e�$�$�b�)�)�)�
��2��R� � � ������
����;�;�;�;�!�;�;�;�;�<�<�<�<�<r c�H�|j}|`|j���|j�d��|j�d��|���|�tdddd���t��|_dS)Nr0r3rzname1;file1zname2;file2)rw�2)rrrr'r<rOr�r)r/r#s  r!�test_update_help_changesz'HelpSourceTest.test_update_help_changes�s���
�Z���"�
���� � � �
���� 2�3�3�3�
���� 2�3�3�3�
��� � � �����+�.�,�=�A�A�	C�	C�	C�!%������r N)r4r5r6r�r�rmrprsr$r(r.r:r>rArDrr r!rrs�������9�9�����[���$�$��[�$����6�6�6�(�(�(�0)�)�)�02�2�2�82�2�2�<=�=�=� 
(�
(�
(�
(�
(r rc�j�eZdZed���Zed���Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
dS)�VarTraceTestc��tj��|_tt��|_t
t��|_dSr$)r�VarTracerr
r�ivr�bvros r!rmzVarTraceTest.setUpClass�s2��"�+�-�-����������D�!�!����r c��|`|`|`dSr$)rrIrJros r!rpzVarTraceTest.tearDownClass�s���K������r c�F�|j���d|_dSr)rr'rPr.s r!rszVarTraceTest.setUp�s!�������������r c�&�|xjdz
c_dS)N�
)rP�r/�paramss  r!�var_changed_incrementz"VarTraceTest.var_changed_increment�s�����r�����r c��dSr$rrOs  r!�var_changed_booleanz VarTraceTest.var_changed_boolean�r1r c��|j}|���|�|jg��|�|jg��dSr$)r�__init__rO�untraced�traced�r/�trs  r!�	test_initzVarTraceTest.test_init�sL��
�\��
���
�
�
������b�)�)�)������B�'�'�'�'�'r c��|j}|j�d��|j�d��|���|�|jg��|�|jg��dS)NrrL)rrVr<rWr'rOrXs  r!�
test_clearzVarTraceTest.test_clear�sx��
�\��
����1����
�	�������
���
�
�
������b�)�)�)������B�'�'�'�'�'r c���|j}t��}tj|���x}|_|�|j|j��}|�||j��|�|j	|j
��}|�||j	��tt��}|�|d��}|�||��|�
��|�|d��||jf||j
f||fg}|�|jg��|�|j|��|`dS)Nr��rr�r�)rrrr;�
make_callback�addrIrQ�assertIsrJrSr	rr?�assert_called_withrOrWrV)	r/rY�func�cbrIrJ�sv�sv2r�s	         r!�test_addzVarTraceTest.test_add�sF��
�\���v�v�� $�	�t� <� <� <�<��R�
�
�V�V�D�G�T�7�
8�
8���
�
�b�$�'�"�"�"�
�V�V�D�G�T�5�
6�
6���
�
�b�$�'�"�"�"�
�t�_�_���f�f�R�6�7�7���
�
�c�2����
������
���b�"?�@�@�@���3�4���1�2���J� ��	
�����B�'�'�'������h�/�/�/����r c���|j�|jd��}|�t	|����|j�d��|�dtd��|��|�dtd��|�	tdddd��tj
��dS)Nr^�*r�rr��42)rr_rIr_�callableryrrr�rOr')r/rds  r!�test_make_callbackzVarTraceTest.test_make_callbacks���
�\�
'�
'���1N�
O�
O���������%�%�%�����B��������G�F�O�4�4�4�
������
�
�i����1�1�1��������3�H�=�t�D�D�D��
�����r c��|j}|�|j|j��}|�|j|j��}||jf||jfg}|���|�|jg��|�	|j
|��|�d��|�|���d��|�|j
d��d|_
|���|�d��|�|j
d��d|_
|���|�|j
g��|�	|j|��|�d��|�|j
d��dS)NrLrNr)rr`rIrQrJrSr�rOrV�assertCountEqualrWryr~rPr&)r/rYrIrJr�s     r!�test_attach_detachzVarTraceTest.test_attach_detachs���
�\��
�V�V�D�G�T�7�
8�
8��
�V�V�D�G�T�5�
6�
6����3�4���1�2�4��	�	�	���������b�)�)�)����b�i��2�2�2�
���q�	�	�	���������1�%�%�%������b�)�)�)�
���
�	�	����
���q�	�	�	������b�)�)�)����
�	�	���������B�'�'�'����b�k�8�4�4�4�
���q�	�	�	������a�(�(�(�(�(r N)r4r5r6r�rmrprsrQrSrZr\rgrlrorr r!rFrF�s��������"�"��[�"�
�(�(��[�(�������
�
�
�(�(�(�(�(�(����0
�
�
�)�)�)�)�)r rF�__main__r�)�	verbosity).r��idlelibr�test.supportr�unittestr�idlelib.idle_test.mock_idler�tkinterrr	r
rrr
r�idlelib.configdialogrrrrr%�IdleUserConfParserrrrr�r�r[rEr"r*�TestCaser,r8rer�r}r�r�r
rrFr4rrr r!�<module>rzs�����!� � � � � �!�!�!�!�!�!�����������������,�,�,�,�,�,�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�������;�;�;�;�;�;�;�;�;�;�
�
��%�F�%�b�)�)�*��*�2�.�.�%�F�%�b�)�)�+�&�+�B�/�/�	�����	
���6�?���;����6�?��
�,�
��B�B�B����
�
�
�
�
�x�(�
�
�
�(B�(B�(B�(B�(B��"�(B�(B�(B�V[�[�[�[�[�8�$�[�[�[�||�|�|�|�|�8�$�|�|�|�~X�X�X�X�X�8�$�X�X�X�vNL�NL�NL�NL�NL�(�#�NL�NL�NL�b!F�!F�!F�!F�!F�8�$�!F�!F�!F�J!�!�!�!�!�(�#�!�!�!�d(�d(�d(�d(�d(�X�&�d(�d(�d(�Ne)�e)�e)�e)�e)�8�$�e)�e)�e)�P�z����H�M�A��������r