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

�

&Μg]���H�dZddlmZddlmZed�ddlZddlmZddlmZddl	m
Z
mZmZm
Z
mZmZdd	lmZdd
lmZmZmZej*Zej.d�ej.d�ej.d�ej.d�d�Zdadaed
ZedZedZedZd�Zd�Z Gd�dejB�Z"Gd�dejB�Z#Gd�dejB�Z$Gd�dejB�Z%Gd�dejB�Z&Gd�dejB�Z'Gd�d ejB�Z(Gd!�d"ejB�Z)Gd#�d$ejB�Z*Gd%�d&ejB�Z+e,d'k(rejZd(�)�yy)*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�n�tt_t�atjtdd��ay)N�TestT)�_utest)�testcfgr�userCfgr�rootr�ConfigDialog�dialog���@/usr/local/lib/python3.12/idlelib/idle_test/test_configdialog.py�setUpModuler""s%���H��
�4�D�
�
&�
&�t�V�D�
A�Fr c���tt_tj�tj
�t
j
�tj�tj�dxaa
y�N)�usercfgrrr�detach�clearrr�update_idletasks�destroyrrr r!�tearDownModuler**sE���H���N�N���M�M�O��M�M�O������L�L�N���D�6r c��eZdZd�Zd�Zy)�ConfigDialogTestc��yr$r��selfs r!�test_deactivate_current_configz/ConfigDialogTest.test_deactivate_current_config7���r c��yr$rr.s r!�activate_config_changesz(ConfigDialogTest.activate_config_changes:r1r N)�__name__�
__module__�__qualname__r0r3rr r!r,r,5s��
�
r r,c�$�eZdZd�Zd�Zd�Zd�Zy)�
ButtonTestc��t}tj�x}|_tj�x}|_|j
dj
�|j�|j�|`|`y)N�Ok)rr�Mock�applyr)�buttons�invoke�assert_called_once)r/�dr<r)s    r!�
test_click_okzButtonTest.test_click_ok@s`�����)�)�+�%����"�i�i�k�)��!�)�	�	�	�$���� �
� � �"��"�"�$�
�I�q�wr c��t}tj�x}|_tj�x}|j_tj�x}|_|jdj�|j�|j�|j�|j`|`|`y)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�9�;�>�
�Q�0�;?�9�9�;�F��1�9�9�8�/3�y�y�{�:��1�,�	�	�	�'��!�!�#��%�%�'��#�#�%��#�#�%�
�I�I�1�
�%�q�'Br c��t}t�|_dtdd<|jdj�|j
tdi�|j
|jjd�|`y)N�r�	something�Cancel)rrr)rr=r>�assertEqual�called�r/r@s  r!�test_click_cancelzButtonTest.test_click_cancelUsf�����F��	�'(�����$�	�	�	�(��"�"�$�������"�-�������)�)�1�-�
�Ir c���tjjtj�tj
j
tdt��5}tjdj�|jd|jd}}ddd�|jd�|jjd�xr|jd��y#1swY�OxYw)	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^s��������6�?�?�+�
�Z�Z�
�
�|�[�,0��2�59��N�N�6�"�)�)�+�"�i�i��0�$�)�)�J�2G�8�E�2�	
���� ;�<�����+�+�,<�=�A� �)�)�*?�@�	B�2�2�s
�AC&�&C/N)r4r5r6rArJrRrcrr r!r8r8>s���
C��Br r8c�`�eZdZdZed��Zed��Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zy)
�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}|_tjj	|�t�|_|j�yr$)r�fontpage�pagerYrZr�set_samples�update��clsrhs  r!�
setUpClasszFontPageTest.setUpClassps7�� �/�/�)��s�x������4� ��6������
r c��|j`yr$)rhri�rls r!�
tearDownClasszFontPageTest.tearDownClassws���H�H� r c�,�tj�yr$�rr'r.s r!�setUpzFontPageTest.setUp{����
�
�r c��tj�|j}|jj	d�|j
j	d�|jj	d�d|j_|j�|j|jj�d�|j|j
j�d�|j|jj��|j|jjd�tj�y)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�I��	�������	�������	������� ��
�
��	�������A�K�K�O�O�-�v�6����A�K�K�O�O�-�s�3���������*�+�������-�-�q�1����r c�\�|j}|jj�dkr|jd�|j}|j	d�|jjd�}|j
�|j�|jd�|jd�|jd�}|j||�|j|jj�|j��|j
�|j�|jd�|jd�|jd�}|j||�|j|jj�|j��y)	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�s9���I�I���:�:�?�?��q� ��M�M�1�2��:�:�����!���z�z�~�~�h�'��	������������-���� 3�4��L�L��*�	����I�t�,��
�
�a�k�k�o�o�'����):�;�	�����������
�+���� 1�2��,�,�x�(������$�'��
�
�a�k�k�o�o�'�����9r c��|j}|jj�dkr|jd�|j}|j	d�|j�|j
d�|j�|jd�\}}}}||dzz
}||dzz
}|jd||��|jd||��|jd�}|jd�}|j||�|j|jj�|j��y)	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�s
���I�I���:�:�?�?��q� ��M�M�1�2��:�:�����!��	�������Q�������}�}�Q�'���1�b�"�	�R�1�W���	�R�1�W��������Q��7���� 3�q�A��>����Q����l�l�8�,������e�,��
�
�a�k�k�o�o�'�����7r c��|j}|jjjd�|j	|j
j
�d�y)N�(�40)rh�sizelist�variableryrOrzr~rQs  r!�
test_sizelistzFontPageTest.test_sizelist�s>���I�I��	�
�
������#���������*�D�1r c�^�|j}|jjd�|jj	�|j|jj
��|jj	�|j|jj
��y)NF)rhr{ry�bold_toggler>r_r~rrQs  r!�test_bold_togglezFontPageTest.test_bold_toggle�sk���I�I��	�������	�
�
������������)�*�	�
�
������������*�+r c���tjtdd�}t|d�}|ddk(}|j}|j
j
|�|jj
|�d|j_	|jj
d�dd|t|�d�i}|jt|�|j|jjd�tj�|j
j
d	�ddd	t|�d�i}|jt|�|j|jjd�tj�|jj
|�ddd	t|�d�i}|jt|�|j|jjd
�y)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���<��?�+��#�A��&�0���I�I��	������%�	������%� ��
�
��	������$�"�[�2>�25�l�2C�%E�F��	
����8�,�������-�-�q�1��
�
��	�������"�[�26�25�l�2C�%E�F��	
����8�,�������-�-�q�1��
�
��	�����L�(�)�"�[�26�25�,�6F�2G�%I�J��	
����8�,�������-�-�q�1r c���|j}|`|j|jf}iic|_|_|jjd�|jjd�|jjd�ddi}|j�|j|j|jcxk(xr|k(nc�|\|_|_t�|_y)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�I��
�M��}�}�a�&8�&8�8��,.��)��
�q�)�	�������	�������	��������1�2��	
�
�
������
�
��);�);�G�x�G�H�,8�)��
�q�)����
r N)r4r5r6�__doc__�classmethodrmrprsr�r�r�r�r�r�r�rr r!rereisX��������!��!��� :�:8�.2�,�"2�Hr 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�Zy)�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}|_tjj	|�t�|_t�|_t�|_t�|_	|j�yr$)r�highpagerhrYrZr�set_theme_type�paint_theme_sample�set_highlight_target�set_color_samplerjrks  r!rmzHighPageTest.setUpClasssU�� �/�/�)��s�x������4� �"�f���"&�&���$(�F��!� $�������
r c�,�|j}|`|`|`|`yr$)rhr�r�r�r�)rlr@s  r!rpzHighPageTest.tearDownClasss!���H�H��
��a�2�
�"�A�$6r c�F�|j}tjdd�D]$}tjdj	|��&tj�d|j_d|j_d|j_d|j_y)N�userrr)rhr�GetSectionListr�remove_sectionrr'r�rPr�r�r��r/r@�sections   r!rszHighPageTest.setUps���I�I�� �.�.�v�{�C�G����[�)�8�8��A�D��
�
��"#�����&'����#�()����%�$%����!r c�x�tj�|j}|j}t	j
d��t_|j�|j|jj��||jj�d�||jj�d�||jj�d�||j j"d�||j$j"d�||j&j"d�t
j(dddd	�t
j(dd
dd�|j�||jj�d�||jj�d�||j j"d
�||j$j"d
�||j&j"d
�t	j
d
��t_t
j(dddd�|j�|j+|jj��||jj�d�||jj�d
�||j j"d�||j$j"d�||j&j"d�t`tj,�y)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*sV�������I�I��
�
�
��!%�	�	�~� F���	����������*�*�,�-�
�1�>�>�����0�
�1�=�=���� 6�7�
�1���"�"�$�m�4�
�1���"�"�A�&�
�1���&�&��*�
�1�!�!�(�(�!�,�	���;���7�C����;���H�E�	����
�1�>�>�����0�
�1�=�=�����(�
�1���"�"�A�&�
�1���&�&��*�
�1�!�!�(�(�!�,�!%�	�	�w� ?������6�7�I�s�;�	����������+�+�-�.�
�1�>�>�����0�
�1�=�=�����(�
�1���"�"�A�&�
�1���&�&��*�
�1�!�!�(�(�!�,��!����r c�|�|j}|j}t�|_t�|_|j
j
�|tdddii�||jjd�||jjd�tj�|jjd�|jj
�|jtdddii�||jjd�||jjd�|`|`y)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�I��%)�V��"�$(�F��!�	���!�!�#�
�8�g�	�6�2�3�4�
�1�%�%�,�,�a�0�
�1�$�$�+�+�Q�/��
�
��	
������/�	��� � �"�����G�i��-A�#B�C�
�1�%�%�,�,�a�0�
�1�$�$�+�+�Q�/�
�&��(Ar c�0�|j}|j}gd�}tjdddd�|jj|d�|tdddd�i�||jd	d
�||jjd�tj�tjdddd�|jj|d�|tdd
dii�||jd	d
�||jjd�tj�|jj|d�|tdddd�i�||jd	d�||jjd�y)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_namehsW��
�
�
���I�I��=�	�	���6�7�F�F�;�	�
�
���i��5�
�8�g��)4� 6�7�	8�
�1�?�?�6�"�$9�:�
�1���&�&��*�	�
�
�����6�7�F�J�?�	�
�
���i��5�
�8�g���5�6�7�
�1�?�?�6�"�$9�:�
�1���&�&��*�	�
�
��	�
�
���i��8�
�8�g���D�E�F�
�1�?�?�6�"�B�'�
�1���&�&��*r c��|j}|jjgd�|jdt�|j|jjd�tj�|jjgd�d�|jtdddii�|j|jjd�y)Nr�r�r��a�b�crr�rL)
rh�
customlistr��assertNotInr�rOr�rPrr'rQs  r!�test_custom_namezHighPageTest.test_custom_name�s����I�I��	
�����R�!7�8�����(�+�����-�-�4�4�a�8�	�
�
��	�����_�c�2�����G�f�c�]�#;�<�����-�-�4�4�a�8r c��|j}t�|_|jj	d�|j|jjd�|`y)N�greenrL)rhr�on_new_color_set�colorryrOrPrQs  r!�
test_colorzHighPageTest.test_color�sG���I�I��!�V���	�����G������+�+�2�2�A�6�
�r c���|j}|j}|jjgd�d�||jj�d�||jjd�y)NrrrL)rOrh�
targetlistr��highlight_targetr~r�rPr�s   r!� test_highlight_target_list_mousez-HighPageTest.test_highlight_target_list_mouse�sY��
�
�
���I�I��	�����_�c�2�
�1���!�!�#�S�)�
�1�!�!�(�(�!�,r c����|j}|j}|j��j��fd�}|jj�D��cic]\}}||��
}}}d}�j
�D]d}	|�j|d�d�||jj�||�|dz
}||jj|��fycc}}w#t$rY�ywxYw)Nc�4���j|��j��j|�\}}}}||dzz
}||dzz
}�jddd���jd||���jd||���jd||��y)	z'Simulate click on character at *index*.r��<Enter>rr��<Motion>�<ButtonPress-1>r�N)r�r(r�r�)�indexr�r�r�r��hss     �r!�
click_charzAHighPageTest.test_highlight_target_text_mouse.<locals>.click_char�s�����F�F�5�M����!��7�7�5�>�L�A�q�"�b�
��q��L�A�
��q��L�A����i�1���2����j�A���3����/�1���:����1�Q�!��<r r�1.0rL)
rOrhr�r��theme_elements�items�	tag_names�
tag_nextrangerr~r�rP�
IndexError)	r/r�r@r�element�tag�elem�countrs	        @r!� test_highlight_target_text_mousez-HighPageTest.test_highlight_target_text_mouse�s����
�
�
���I�I��
�
�
��
����
	=�23�1A�1A�1G�1G�1I�J�1I���#��W��1I��J����<�<�>�C�
��2�+�+�C��7��:�;��1�%�%�)�)�+�T�#�Y�7���
���1�)�)�0�0�%�8�"��K���
��
�s�
C"�>A!C(�(	C4�3C4c��|j}|j}|j}|j�|j	d�|j�|j
ddd��|j
ddd��td�D]*}|j
ddd��|j
ddd���,||jd	�d
�y)N��?rrr�rr�rr��selr)	rOrhr�r�r�r(r��range�
tag_ranges)r/r�r@r�_s     r!�"test_highlight_sample_double_clickz/HighPageTest.test_highlight_sample_double_click�s���
�
�
���I�I��
�
�
��
����
���s��
����	���)�q�A��.�
���*��Q��/��q��A����/�1���:����1�Q�!��<��	�2�=�=����$r c���|j}|j}|j}|j�|j	d�|j�|j
d�\}}}}}|jd�|jd�|jd||��|jd||��|jd||��|jd	||��||jd
�d�y)Nr$rz<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�I��
�
�
��
����
���s��
����!�|�|�E�2���1�b�"�f�	���)�$�
���)�$�
���*��Q��/�
���+�q�A��6�
���-�2���4�
���-��r��:�
�2�=�=����$r c��|j}|j}|`|jj	d�|j�||j
dt�||jdt�||jj�d�|jj	d�|j�||j
dt�||jj�d�||jdt�||jj�d�t�|_y�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�s���
�
�
���I�I��
��	
�����4� �	����
�1�=�=��!�6�*�
�1�<�<�� �(�+�
�1�!�!�'�'�)�=�9�	
�����5�!�	����
�1�=�=��!�8�,�
�1���"�"�$�m�4�
�1�<�<�� �&�)�
�1�!�!�'�'�)�2�.��6��r c��|j}|j}tjj}t�x}tj_t�x}|_|jjd�|jjd�d|_
|jj�||jj�d�d|jj|j dd�f|_
|jj�||jj�d�d|_
|jjd�|j"jd�d|_
|jj�||j$d	�||jj�d�d
|_
|jj�||j&j�|j�||jj�d�|jjd�|j"jd�|jj�||jj�d�|`|tj_y)
NzEditor Breakpointz#ffffff)NNr�style�
background))g��k@�r7�#de0000TrLzMy New Themer8F)rOrhr�colorchooser�askcolorr�get_new_theme_namerryr
�result�button_set_colorr>r~r5�lookup�frame_color_setr�rPr�)r/r�r@�orig_chooser�chooser�gntns      r!�test_get_colorzHighPageTest.test_get_colors���
�
�
���I�I��#�0�0�9�9��7;�v�=��,�+�+�4�&*�f�,��q�#�	�����2�3�	�����I��&���	���!�!�#�
�1�7�7�;�;�=�)�$��a�g�g�n�n�Q�->�->�w�-G��V�W���	���!�!�#�
�1�7�7�;�;�=�)�$�>���	
�����I��	�����4� ����	���!�!�#�
�4�;�;���
�1�7�7�;�;�=�)�$�$���	���!�!�#�
�1�=�=�������,�
�1�7�7�;�;�=�)�$�	
�����I��	�����5�!�	���!�!�#�
�1�7�7�;�;�=�)�$�
� �-9��!�!�*r c��|j}d}|jjd�|jjd�|jjd�|j
j|�|j
|jj|jdd�|�|j
|jjdd�|�|j
tdd	|ii�y)
Nz#3f7cae�Python�
Selected TextTr5r6�hilite�
foregroundzhilite-foreground)
rhr�ryr�fg_bg_toggler
rOr5r>r?r��tag_cgetr�)r/r@r
s   r!�test_on_new_color_setz"HighPageTest.test_on_new_color_set3s����I�I����	�
�
���(�#�	������/�	�����4� �	�����E�����������(9�(9�'�(B�L�Q�SX�Y�����+�+�4�4�X�|�L�e�T�����"�%8�%�$@�A�	Cr c���tj}td��x}t_|j}d|_|j|j
d�d�|t_y)NT��return_selfz	New Themer)r�SectionNamerrhr<rOr;�r/�orig_sectionname�snr@s    r!�test_get_new_theme_namez$HighPageTest.test_get_new_theme_name@sS��'�3�3��(,��(>�>��\�
%��I�I����	�����-�-�b�1�;�?�#3�� r c��|j}t�x}|_|jj	d�d|_|jj�|j|j
tjd�d|_d|_|j|j
tjd�|jj�|j|j
tjd�|`y)NTrrzmy new themer)
rhrr;r�ryr<�button_save_customr>rrrrPr�)r/r@rBs   r!�test_save_as_new_themez#HighPageTest.test_save_as_new_themeJs����I�I��&*�f�,��q�#�	�����4� ����	���#�#�%�������h�&6�&6�{�&C�D�%������������h�&6�&6�{�&C�D�	���#�#�%��
�
�d�k�k�8�#3�#3�K�#@�A�
� r c�L�|j}|j}|jjd�|jjd�d}d}|j|tj�|j|�|t
jdd�|g�|t
jdd�t
jd|��||jj�|�|j|jj��||jjd�t!j"d|d	d
�|j|tj�|j|�|t
jdd�||g�|j%t
jd|�t
jd|��t
j&d|d	d
�|t
jd|�t
jd|��y)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�I��	
�����4� �	�����>�*�)�	�-�
�	
����H�$4�$4�5�	���Y��
�8�"�"�6�;�7�)��E�
�8� � ��N�;�� � ���3�	5�
�1�=�=����	�*�������+�+�-�.�
�1���"�"�A�&�	���;�	�3C�X�N�����X�%5�%5�6�	���Z� �
�8�"�"�6�;�7�)�Z�9P�Q����H�1�1�&�)�D�$�1�1�&�*�E�	G�	���;�	�3C�X�N�
�8� � ���3�� � ���4�	6r c��|j}|j}|`|jj	d�||j
j
�d�||jj
�d�|j|j�||jjd�|jj	d�||j
j
�d�||jj
�d�|j|j�||jjd�t�|_y)	N�Cursor)r�r1r�rL�Commentr0rr�)
rOrhr�rry�fg_onr��bg_onr_rIr�rPrr�s   r!�test_set_highlight_targetz&HighPageTest.test_set_highlight_target}s���
�
�
���I�I��
�"�	
�����x�(�
�1�7�7�=�=�?�4�5�
�1�7�7�=�=�?�M�*�������'�
�1���$�$�a�(�	
�����y�)�
�1�7�7�=�=�?�M�*�
�1�7�7�=�=�?�B��������'�
�1���$�$�a�(�!%���r c��|j}|j}|jj�|j	|j
d�|jj�|j	|j
d�y)NrLr�)rhr�rcr>rOrPrd)r/r@�scss   r!�test_set_color_sample_bindingz*HighPageTest.test_set_color_sample_binding�sZ���I�I��� � ��	������������Q�'�	������������Q�'r c�p�|j}|`|jjd�|jjd�|j�|j|jj|jdd�|jjdd��t�|_y)NrFTr5r6rGrH)rhr�rryrIrOr5r>r?r�rJrrQs  r!�test_set_color_samplez"HighPageTest.test_set_color_sample�s����I�I��
��	������/�	�����4� �	������������q�0�0��9�<�H��"�"�+�+�H�l�C�	E�"�V��r c�,�|j}|j}|`|jj}t
j}|jjd�|jjd�d}|j|�d|j_|j�ddd�}|j�D]\}}|j|d|�|�� ||jjd	�|j�D] \}}tj d
|d|z|��"|j�|j�D]\}}||d|�|��||jjd�t#�|_y)
NTr�z	IDLE Testr�bluerX)rHr6�consolerLrzconsole-r�)rOrhr�r�rJr�GetHighlightr�ryr�rYr�rPrr}rr[r)	r/r�rh�hs_tag�gh�theme�new_console�keyr�s	         r!�test_paint_theme_samplez$HighPageTest.test_paint_theme_sample�se��
�
�
���y�y���#��&�&�/�/��
�
"�
"��	
�����d�#������k�*��������'(����$�	
���!�%+�%-�0��%�+�+�-�J�C������y�#� 6��>�.�
�4� � �'�'��+�&�+�+�-�J�C�����{�E�:�c�>�5�I�.����!�%�+�+�-�J�C���v�i��%�u�-�.�
�4� � �'�'��+�"&�&��r c�8�|j}|j}|jjd�t	�x}|_t	�t_t	�t_d}tjdj|dd�ddit|<d}tjdj|dd�dd	it|<|jjd�|jj�|jj!|�d
|_|jj�||j$d�|t|ddi�|tj&dd�||g�|tjj$d
�|tjj$d
�||j(j$d
�d|_|jj�||j$d�|j+|t�|tj&dd�|g�||jj�d�||jj-�|�|tjj$d�|tjj$d�||j(j$d�|jj!|�d|_|jj�||j$d�|j+|t�|tj&dd�g�||jj�d�||jj-�d�|tjj$d�|tjj$d�||j(j$d�t`t`|`y)Nr�z
spam themerr�r�r�r�zother themer�FrLr�rTr�rr�r�r�)rOrhr2r�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�I��	���$�$�^�4�!�V�#���
�+/�6��(�)-���&�!�
�����%�/�/�
�F�G�L� (�&�1����#������%�/�/��V�W�M�!)�7� 3����	
������/�	��� � �"�	�
�
���*�%����	���%�%�'�
�5�<�<���
�8�J��(�F�!3�4�
�8�"�"�6�;�7�*�k�9R�S�
�6�+�+�2�2�A�6�
�6�)�)�0�0�!�4�
�1���"�"�A�&����	���%�%�'�
�5�<�<�������X�.�
�8�"�"�6�;�7�+��G�
�1���"�"�$�b�)�
�1�=�=�����,�
�6�+�+�2�2�A�6�
�6�)�)�0�0�!�4�
�1���"�"�A�&�	
�
�
���+�&����	���%�%�'�
�5�<�<�������X�.�
�8�"�"�6�;�7��<�
�1���"�"�$�m�4�
�1�=�=���� 6�7�
�6�+�+�2�2�A�6�
�6�)�)�0�0�!�4�
�1���"�"�A�&��*�F�,L�
�Jr N)r4r5r6r�r�rmrprsr�r�r�rrrr"r)r-r3rCrKrSrVr_rerhrjrtrzrr r!r�r�s���������7��7�

&�'�RB�*+�89��-� �D%�(%�,"�*-:�^C�4�!�&6�@(�*(�	$�)�@9r r�c��eZdZdZed��Zed��Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zy)�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}|_tjj	|�t�|_t�|_yr$)rr[rhrYrZr�
set_keys_type�load_keys_listrks  r!rmzKeysPageTest.setUpClass
s8�� �/�/�)��s�x������4� �!�V���"�f��r c�$�|j}|`|`yr$)rhr~rrks  r!rpzKeysPageTest.tearDownClasss���x�x����� 3r c��|j}tjdd�D]$}tjdj	|��&tj�d|j_d|j_y)Nr�rr)
rhrr�rr�rr'r~rPrr�s   r!rszKeysPageTest.setUps`���I�I�� �.�.�v�v�>�G����V�$�3�3�G�<�?��
�
��!"�����"#����r c���tj�|j}|j}t	j
d��t_|j�|j|jj��||jj�d�||jj�d�||jj�d�||j j"d�||j$j"d�||j$j&d�t
j(ddd	d
�t
j(dddd
�|j�||jj�d�||jj�d�||j j"d�||j$j"d�||j$j&d�t	j
d��t_t	j
d��t_t
j(dddd�|j�|j-|jj��||jj�d�||jj�d�||j j"d�||j$j"d�||j$j&d�t`t`tj.�y)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�r~rPr�argsr��default_keysrr�r�s   r!�test_load_key_cfgzKeysPageTest.test_load_key_cfg sg�������I�I��
�
�
�� $�y�y�6H�I���	����������+�+�-�.�
�1�>�>����!3�4�
�1�=�=���� 4�5�
�1���#�#�%�}�5�
�1�?�?�!�!�1�%�
�1���"�"�A�&�
�1��� � �"8�9�	���6�7�H�g�>����6�7�I�x�@�	����
�1�>�>����!3�4�
�1�=�=�����(�
�1�?�?�!�!�1�%�
�1���"�"�A�&�
�1��� � �"8�9� $�y�y�g�>��� $�	�	�7I� J������6�6�9�c�:�	����������,�,�.�/�
�1�>�>����!3�4�
�1�=�=�����(�
�1�?�?�!�!�1�%�
�1���"�"�A�&�
�1��� � �+�.�� �(�"7����r c�|�|j}|j}t�|_t�|_|j
j
�|tdddii�||jjd�||jjd�tj�|jjd�|jj
�|jtdddii�||jjd�||jjd�|`|`y)Nr�r�r�rLrr�r�)
rOrhrr�r��builtin_keyset_onr>r�rPrr'r�r�r�s   r!�test_keyset_sourcezKeysPageTest.test_keyset_sourceJs���
�
�
���I�I��%)�V��"�$(�F��!�	���"�"�$�
�8�f�y�&�1�2�3�
�1�%�%�,�,�a�0�
�1�$�$�+�+�Q�/��
�
��	
��� � ��0�	���!�!�#�����F�Y��,@�#A�B�
�1�%�%�,�,�a�0�
�1�$�$�+�+�Q�/�
�&��(Ar c���|j}|j}tjdj	d�gd�}|j
j
|d�|tdddd�i�||jdd�||jjd	�||jjd
�tj�tjdddd�|j
j
|d�|tdd
dii�||jdd�||jjd�||jjd
�tj�|j
j
|d�|tdddd�i�||jdd�||jjd�||jjd�y)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_messagerrPr�rr'r�r�s    r!r�zKeysPageTest.test_builtin_name_s���
�
�
���I�I������ �/�/��7�)�	�	
�
�
���i�);�<�
�8�f�'=�(:�<�=�	>�
�1�>�>�&�!�#:�;�
�1���"�"�A�&�
�1��� � �"8�9�	�
�
�����6�6�6�3F�G�	�
�
���i�);�<�
�8�f�w�(:�;�<�=�
�1�>�>�&�!�#:�;�
�1���"�"�A�&�
�1��� � �"8�9�	�
�
��	�
�
���i�);�<�
�8�f�'9�B�G�H�I�
�1�>�>�&�!�2�&�
�1���"�"�A�&�
�1��� � �"8�9r c��|j}|jjgd�|jdt�|j|jjd�tj�|jjgd�d�|jtdddii�|j|jjd�y)Nr�r�rrrr�rL)
rhrr�rr�rOrrPrr'rQs  r!rzKeysPageTest.test_custom_names����I�I��	
�����R�!5�6������*�����)�)�0�0�!�4�	�
�
��	�����_�c�2�����F�V�S�M�#:�;�����)�)�0�0�!�4r c���tjdddd�|j}|jj	d�|j
j
dd�|j
jdd�|j
jd	d
�|j
jd�|j
jd�|jj	d�|jtdddii�|j
jd	�|j
jd	�|jj	d�|jtdd
dii�y)
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�s�����<��H�f�E��I�I��	�
�
���*�+�	�����a��'�	�����a��(�	�����a��(�	���$�$�Q�'�	���'�'��*�	������%�����*�V�[�,A�B�	D�	
���$�$�Q�'�	���'�'��*�	������%�����/�&�+�1F�G�	Ir c��|j}|j}|`|jj	d�|j�||j
dt�||jdt�||jj�d�|jj	d�|j�||j
dt�||jj�d�||jdt�||jj�d�t�|_yr/)
rOrhr~r�ryr�r
rr�button_delete_custom_keysr�r�rr�s   r!�test_set_keys_typezKeysPageTest.test_set_keys_type�s���
�
�
���I�I��
�O�	
�����D�!�	����
�1�=�=��!�6�*�
�1�<�<�� �(�+�
�1�&�&�,�,�.�
�>�	
�����E�"�	����
�1�=�=��!�8�,�
�1���#�#�%�}�5�
�1�<�<�� �&�)�
�1�&�&�,�,�.��3��&��r c��|j}|j}tj}t	d��x}t_t	�x}|_|jjd�|jjdd�|jjdd�|jjd�|jjd�|jjd�|jjd�d|_|jj#�||jj%d	�d�||jj%�d�d
|_d|_|jj#�||j&d�||jj%d	�d�d|_|jj#�||j(j%�|j �||jj%d	�d
�||jj%�d
�|jjd�d|_d|_|jj#�||j&d�||jj%d	�d�||jj%�d�|`|t_y)NTrMr�rr�zcopy - <Control-Shift-Key-C>zKey-arr�r�rLzMy New Key Setzcopy - <Key-F11>Fz<Key-p>zcopy - <Key-p>)rOrhr�
GetKeysWindowr�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�sD��
�
�
���I�I��)�7�7��+/�D�+A�A��l�(�%)�V�+��q�"�	������/�	�����a��'�	�����a�!?�@�	���$�$�Q�'�	���'�'��*�	������!�	�����D�!���
�	��� � �"�
�1�>�>���h�'�)G�H�
�1�<�<����w�'�!��
����	��� � �"�
�4�;�;���
�1�>�>���h�'�)G�H�&���	��� � �"�
�1�=�=�������,�
�1�>�>���h�'�);�<�
�1�<�<����{�+�	
�����E�"������
�	��� � �"�
�4�;�;���
�1�>�>���h�'�)9�:�
�1�<�<����y�)�
��%7��"r c���tj}td��x}t_|j}d|_|j|j
d�d�|t_y)NTrMzNew Keysr)rrOrrhr<rOr�rPs    r!�test_get_new_keys_namez#KeysPageTest.test_get_new_keys_name�sS��'�3�3��(,��(>�>��\�
%��I�I����	�����,�,�R�0�*�=�#3�� r c��|j}t�x}|_|jj	d�d|_|jj�d|_d|_|j|j
tjd�|jj�|j|j
tjd�|`y)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�I��%)�V�+��q�"�	�����D�!����	�!�!�(�(�*�'������������h�&6�&6�v�&>�?�	�!�!�(�(�*��
�
�d�k�k�8�#3�#3�F�#;�<�
�r c��|j}|j}|jdd�|jdd�|jdd�|j	d�|j�|j
d�|j�|jd�\}}}}||dzz
}||dzz
}|jddd��|jd	||��|jd
||��|jd||��|j|jd�d�|j|jj�d
�y)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_selects!���I�I��
�N�N��	����E��	����F��	����F��	�
�
�1�
�	�
�
��	���a��	���
��v�v�a�y���1�b�"�	�R�1�W���	�R�1�W���	����a�1��-�	����q�A��.�	�����a��0�	���,��Q��7�������x��&�1�����*�*�0�0�2�B�7r c�@�|j}|j}|jjd�|jjd�d}d}|j|tj�|j|�|t
jdd�|g�|t
jd�t
j|��||jj�|�|j|jj��||jjd�t!j"d|dd	�|j|tj�|j|�|t
jdd�||g�|j%t
j|�t
j|��t
j&d|dd	�|t
j|�t
j|��y)
NTr�zmy new custom key setzmy second custom keysetr�rrLr�r�)rOrhr�ryr�rrr�create_new_key_setr��	GetKeySetr�r~rr~rPrr[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�I��	
�����D�!�	�����1�2�+�	�.�
�	
����H�$4�$4�5�	���Y�'�
�8�"�"�6�6�2�Y�K�@�
�8���4�5����i�(�	*�
�1�=�=����	�*�������,�,�.�/�
�1�?�?�!�!�1�%�	���6�9�f�k�B�����X�%5�%5�6�	���Z�(�
�8�"�"�6�6�2�Y�
�4K�L����H�.�.�y�9�$�.�.�z�:�	<�	���6�9�f�k�B�
�8���i�(�(�*<�*<�Z�*H�Ir c��|j}|j}t�x}t_|`|j}|jdd�|jdd�|jdd�ddgdgd	gd
�|_	tjddd
d�d}|jd�||jdd�|�||jd�d�||j�d�|jd�|jd�|jd�||jdd�|�||jd�d�||j�d�|jd�|jd�|jd�||jdd�|�||jd�d�||j�d�t�|_t`y)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�rr�r�r�r<rr[r~�curselectionr�r�)r/r�r@�gksrr�s      r!�test_load_keys_listz KeysPageTest.test_load_keys_list7s���
�
�
���I�I��#'�6�)��h� �
��
�N�N��	����E��	����J��	����J��#4�6G�"H�5J�4K�#.�-�1��
�	���6�9�f�o�F�,��
	
����#�
�1�5�5��E�?�H�%�
�1�5�5��?�B��
�1�>�>��R� �	
�����	���1��	����#�
�1�5�5��E�?�H�%�
�1�5�5��?�J�K�
�1�>�>��U�#�	
�����	���1��	����#�
�1�5�5��E�?�H�%�
�1�5�5��?�2�3�
�1�>�>��U�#��6����r c�8�|j}|j}|jjd�t	�x}|_t	�t_t	�t_d}tjdj|dd�ddit|<d}tjdj|dd�dd	it|<|jjd�|jj�|jj!|�d
|_|jj�||j$d�|t|ddi�|tj&dd�||g�|tjj$d
�|tjj$d
�||j(j$d
�d|_|jj�||j$d�|j+|t�|tj&dd�|g�||jj�d�||jj-�|�|tjj$d�|tjj$d�||j(j$d�|jj!|�d|_|jj�||j$d�|j+|t�|tj&dd�g�||jj�d�||jj-�d�|tjj$d�|tjj$d�||j(j$d�t`t`|`y)Nr�zspam key setrr�r�r�r�z
other key setr�FrLr�rTr�rr�r�r�)rOrhr�r�rrvrrDr3rrr�r[r�r>r�ryr<rPr�r~rr~)r/r�r@rw�keyset_name�keyset_name2s      r!�test_delete_custom_keysz$KeysPageTest.test_delete_custom_keysbs&��
�
�
���I�I��	�#�#�)�)�.�9�!�V�#���
�+/�6��(�)-���&�$������ �*�*�;���H�!)�6� 2����&������ �*�*�<���I�"*�G�!4����	
��� � ��0�	���!�!�#�	�
�
���+�&����	�#�#�*�*�,�
�5�<�<���
�8�K� �8�V�"4�5�
�8�"�"�6�6�2�[�,�4O�P�
�6�+�+�2�2�A�6�
�6�)�)�0�0�!�4�
�1�?�?�!�!�1�%����	�#�#�*�*�,�
�5�<�<�������h�/�
�8�"�"�6�6�2�\�N�C�
�1���#�#�%�r�*�
�1�=�=�����-�
�6�+�+�2�2�A�6�
�6�)�)�0�0�!�4�
�1�?�?�!�!�1�%�	
�
�
���,�'����	�#�#�*�*�,�
�5�<�<�������h�/�
�8�"�"�6�6�2�B�7�
�1���#�#�%�}�5�
�1�=�=���� 4�5�
�6�+�+�2�2�A�6�
�6�)�)�0�0�!�4�
�1�?�?�!�!�1�%��*�F�,L�
�Jr N)r4r5r6r�r�rmrprsr�r�r�rr�r�r�r�r�r�r�r�r�rr r!r|r|s|����%��%��4��4�$�(�TB�*:�@5�I�*!�*.8�`4� �$8�*J�>)�V9r r|c�V�eZdZdZed��Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zy)
�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}|_tjj	|�|j�yr$)r�winpagerhrYrZrjrks  r!rmzWinPageTest.setUpClass�s-�� �.�.�(��s�x������4� ����
r c�,�tj�yr$rrr.s r!rszWinPageTest.setUp�rtr c��|j}|j}|jjd�|jjd�|j
jd�|j
�||jj�d�||jj�d�||j
j�d�y)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�I��	�����1��	�������	�������	����
�1�>�>�����#�
�1�;�;�?�?��d�#�
�1�<�<����t�$r c��|j}|jj�|jtdddii�tj�|jj�|jtdddii�y)N�Generalzeditor-on-startuprwr�)rh�startup_editor_onr>rOr�rr'�startup_shell_onrQs  r!�test_startupzWinPageTest.test_startup�sv���I�I��	���"�"�$�����#�&9�3�%?�@�	B��
�
��	���!�!�#�����#�&9�3�%?�@�	Br c��|j}|jjdd�|jjdd�|j	t
dddii�t
j�|jjdd�|jjdd�|j	t
dddii�y)Nrr��11r��height�width)	rh�win_height_intr�r�rOr�rr'�
win_width_intrQs  r!�test_editor_sizezWinPageTest.test_editor_size�s����I�I��	������5�)�	������4�(�����N�X�t�4D�#E�F��
�
��	�����q�%�(�	�����q�$�'�����N�W�d�O�#D�Er c���|j}|jjd�|j|jj�d�|jtdddii�y)N��6�Indentz
num-spaces)rh�indent_chooserryrO�
indent_spacesr~r�rQs  r!�test_indent_spaceszWinPageTest.test_indent_spaces�sV���I�I��	�����Q��������,�,�.��4�����H�|�S�.A�#B�Cr c��|jjj�|jtdddii�y)Nr�zcursor-blinkr�)rh�cursor_blink_boolr>rOr�r.s r!�test_cursor_blinkzWinPageTest.test_cursor_blink�s2���	�	�#�#�*�*�,�����N�^�W�4M�#N�Or c���|jjjdd�|jjjdd�|j	t
dddii�y)Nrr�r��AutoComplete�	popupwait)rh�
auto_wait_intr�r�rOrEr.s r!�test_autocomplete_waitz"WinPageTest.test_autocomplete_wait�sP���	�	���&�&�q�%�0��	�	���&�&�q�$�/�����>�K��3F�"G�Hr c���|j}|j}|jdjd�|tdddii�tj�|jjdd�|jjdd�|tdddii�tj�|jj�|tdd	d
ii�y)N�menur�
ParenMatchr5�openerr�r�zflash-delay�bellr�)rhrO�paren_style_typer>rErr'�paren_flash_timer�r��bell_onr�s   r!�test_parenmatchzWinPageTest.test_parenmatch�s����I�I��
�
�
��	���6�"�)�)�!�,�
�7�\�G�X�#6�7�8��
�
��	���!�!�!�U�+�	���!�!�!�T�*�
�7�\�M�4�#8�9�:��
�
��	�	�	����
�7�\�F�G�#4�5�6r c���|jjjdd�|jjjdd�|j	t
dddii�y)Nrr�r��FormatParagraphz	max-width)rh�format_width_intr�r�rOrEr.s r!�test_paragraphzWinPageTest.test_paragraph�sQ���	�	�"�"�)�)�!�U�3��	�	�"�"�)�)�!�T�2�����#4�{�D�6I�"J�Kr N)r4r5r6r�r�rmrsr�r�r�r�r�r�r�r�rr r!r�r��sN���
����
�
%�B�F�D�P�I�
7�Lr r�c�8�eZdZdZed��Zd�Zd�Zd�Zd�Z	y)�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}|_tjj	|�|j�yr$)r�shedpagerhrYrZrjrks  r!rmzShedPageTest.setUpClass�s-�� �/�/�)��s�x������4� ����
r c�,�tj�yr$rrr.s r!rszShedPageTest.setUp�rtr c���|j}|j}|jjd�|j	�||jj�d�y)NrLr)rOrh�autosavery�load_shelled_cfgr~r�s   r!�test_load_shelled_cfgz"ShedPageTest.test_load_shelled_cfg�sG��
�
�
���I�I��	�
�
���q��	����
�1�:�:�>�>��Q�r c���|j}|jj�|jtdddii�|j
j�|jtdddii�y)Nr�r�rwr�)rh�save_auto_onr>rOr��save_ask_onrQs  r!�
test_autosavezShedPageTest.test_autosaves_���I�I��	����������I�
�C�/@�#A�B�	�
�
��������I�
�C�/@�#A�Br c���|jjjdd�|jjjdd�|j	t
dddii�y)Nrr�rw�CodeContext�maxlines)rh�context_intr�r�rOrEr.s r!�test_contextzShedPageTest.test_context
sP���	�	���$�$�Q��.��	�	���$�$�Q��,�����=�:�s�2C�"D�Er N)
r4r5r6r�r�rmrsrrr
rr r!r�r��s1���
����
� �C�Fr r�c� �eZdZdZed��Zy)�ExtPageTest�/Test that the help source list works correctly.c�b�tj}tjj|�yr$)rrErYrZrks  r!rmzExtPageTest.setUpClasss���~�~�������4� r N)r4r5r6r�r�rmrr r!rrs��9��!��!r rc�`�eZdZdZed��Zed��Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zy)
�HelpSourceTestr
c��tj}tjj|�|jx}|_t
�x|_|_t
�x|_	|_
|j�yr$)rrErYrZ�
frame_help�framerry�set_add_delete_state�upc�update_help_changesrj)rlrhrs   r!rmzHelpSourceTest.setUpClasssX���~�~�������4� � �O�O�+���	�15��7��	�E�.�04��6��	�E�-�
���r c��|j}|`|`|`|`|j
j
dd�|jj�y)Nrr�)	rryrrr�helplistr��
user_helplistr')rlrs  r!rpzHelpSourceTest.tearDownClass'sE���	�	���I�u�1��I�u�0�
�����a��'�
���!�!�#r c�,�tj�yr$rrr.s r!rszHelpSourceTest.setUp/rtr c�<�|j}|j}|jjdd�ddg|_tjdddd�|j�||jjdd�d	�||jd
g�y)Nr��bad�worser�	HelpFilesrwz	name;filer)r�)r��filerw)	rOrrr�rrr��
load_helplistr~�r/r��frs   r!�test_load_helplistz!HelpSourceTest.test_load_helplist2s���
�
�
��
�Z�Z��
�����5�%�(�!�7�+������6�;��[�A�
����
�2�;�;�?�?�1�e�$�i�0�
�2���3�4�5r c�*�|j}|j|_|j|_|j
}d}|j
|d�|j|�|j�|j|�|j�|j|�\}}}}||dzz
}||dzz
}dx|j_|j_|jddd��|jd||��|jd||��|jd	||��|j|jd
�d�|j!|jj�|j#|jj�y)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<sO��
�Z�Z���(�(����'�'����;�;��������X�&����#���������S�������}�}�S�)���1�b�"�	�R�1�W���	�R�1�W���()�)����
����
����	�Q�!��4����
�a�1��5������Q��7���� 3�q�A��>�������h�/��:�������
�
�&���������'r c��|j}|j}|`|j}|j}|j	dd�|�||j
j
�d�||jj
�d�|jdd�|�||j
j
�d�||jj
�d�|jd�|�||j
j
�d�||jj
�d�t�|_y)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_stateTs��
�
�
��
�Z�Z���#��%�%���K�K��	����E����
�2�"�"�(�(�*�M�:�
�2�$�$�*�*�,�m�<�	����H����
�2�"�"�(�(�*�M�:�
�2�$�$�*�*�,�m�<�	�������
�2�"�"�(�(�*�B�/�
�2�$�$�*�*�,�b�1�"&�&��r c��|j}tj}td��x}t_|j}|j
j
dd�|jj�dx|j_
|j_
d|_|j�|jt|j
j!dd��|jcxk(xrgk(nc�|j#|jj�d|_|j�d|_|j�||j
j!dd�d�||jddg�||jjd	�|j#|jj�|t_y)
NTrMrr�r��name1�file1�r��file2)r0r�r�)rOr�
HelpSourcerrrr�rr'ryrPrr<�helplist_item_addr_�listr~r�r/r��orig_helpsourcerr"s     r!�test_helplist_item_addz%HelpSourceTest.test_helplist_item_addlsY���
�
��&�1�1��'+��'=�=��\�
$�
�Z�Z��
�����1�e�$�
����� �()�)����
����
���	�
��������R�[�[�_�_�Q��6�7��(�(�/�,.�/�	0���������'�&��	�
����&��	�
����
�2�;�;�?�?�1�e�$�&8�9�
�2���0�2D�E�F�
�2�6�6�=�=�!����������'�"1��r c�`�|j}tj}td��x}t_|j}|j
j
dd�|j
jdd�|j
jd�|j
jd�|jj�|jjd�dx|j_|j_d|_|j#�d|_|j#�||j
j%dd�d�||jdg�|j'|jj�d	|_|j#�||j
j%dd�d
�||jd	g�|j)|jj|jjcxk(xrdk(nc�|t_y)NTrMrr�r0r/r)r0r2)r�rL)rOrr4rrrr�r�r�r�rr'�appendryrPrr<�helplist_item_editr~rr_r7s     r!�test_helplist_item_editz&HelpSourceTest.test_helplist_item_edit�s���
�
�
��&�1�1��'+��'=�=��\�
$�
�Z�Z��
�����1�e�$�
�����1�g�&�
���!�!�!�$�
���$�$�Q�'�
����� �
����� 2�3�()�)����
����
���	�
����&��	�
����
�2�;�;�?�?�1�e�$�j�1�
�2���0�1�2���������'�&��	�
����
�2�;�;�?�?�1�e�$�j�1�
�2���0�1�2�������
�
������;�!�;�<�"1��r c���|j}|j}|jjdd�|jj	dd�|jjd�|jj
d�|jj�|jjd�dx|j_|j_|j�||jjdd�d�||jg�|j|jj|jjcxk(xr
dk(�yc�y)Nrr�r0r/rrL)rOrrr�r�r�r�rr'r;ryrPr�helplist_item_remover~r_r!s   r!�test_helplist_item_removez(HelpSourceTest.test_helplist_item_remove�s��
�
�
��
�Z�Z��
�����1�e�$�
�����1�g�&�
���!�!�!�$�
���$�$�Q�'�
����� �
����� 2�3�()�)����
����
�
���!�
�2�;�;�?�?�1�e�$�b�)�
�2���R� �������
�
������;�!�;�<�;�<r c�6�|j}|`|jj�|jj	d�|jj	d�|j�|jtdddd��t�|_y)Nr/r2rzname1;file1zname2;file2)rw�2)rrrr'r;rOr�r)r/r"s  r!�test_update_help_changesz'HelpSourceTest.test_update_help_changes�s���
�Z�Z���"�
����� �
����� 2�3�
����� 2�3�
��� �����+�.�,�=�A�	C�!%���r N)r4r5r6r�r�rmrprsr#r'r-r9r=r@rCrr r!rrsS��9������$��$��6�(�0)�02�82�<=� 
(r rc�\�eZdZed��Zed��Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
y)�VarTraceTestc��tj�|_tt�|_t
t�|_yr$)r�VarTracerr
r�ivr�bvros r!rmzVarTraceTest.setUpClass�s)��"�+�+�-���������D�!��r c��|`|`|`yr$)rrHrIros r!rpzVarTraceTest.tearDownClass�s���K����r c�F�|jj�d|_y)Nr)rr'rPr.s r!rszVarTraceTest.setUp�s����������r c�.�|xjdz
c_y)N�
)rP�r/�paramss  r!�var_changed_incrementz"VarTraceTest.var_changed_increment�s�����r��r c��yr$rrNs  r!�var_changed_booleanz VarTraceTest.var_changed_boolean�r1r c��|j}|j�|j|jg�|j|jg�yr$)r�__init__rO�untraced�traced�r/�trs  r!�	test_initzVarTraceTest.test_init�s<��
�\�\��
���
�������b�)�������B�'r c��|j}|jjd�|jjd�|j	�|j|jg�|j|jg�y)NrrL)rrUr;rVr'rOrWs  r!�
test_clearzVarTraceTest.test_clear�s`��
�\�\��
�����1��
�	�	�����
���
�������b�)�������B�'r c���|j}t�}tj|��x}|_|j|j|j�}|j||j�|j|j|j�}|j||j�tt�}|j|d�}|j||�|j�|j|d�||jf||jf||fg}|j|j g�|j|j"|�|`y)Nr��rr�r�)rrrr;�
make_callback�addrHrP�assertIsrIrRr	rr?�assert_called_withrOrVrU)	r/rX�func�cbrHrI�sv�sv2r�s	         r!�test_addzVarTraceTest.test_add�s��
�\�\���v�� $�	�	�t� <�<��R�
�
�V�V�D�G�G�T�7�7�
8���
�
�b�$�'�'�"�
�V�V�D�G�G�T�5�5�
6���
�
�b�$�'�'�"�
�t�_���f�f�R�6�7���
�
�c�2��
����
���b�"?�@���3�3�4���1�1�2���J� ��	
������B�'�������h�/��r c��|jj|jd�}|jt	|��|jjd�|j
dtd�|�|jdtd�|jtdddd�tj�y)Nr]�*r�rr��42)rr^rHr_�callableryrrr�rOr')r/rcs  r!�test_make_callbackzVarTraceTest.test_make_callback�s���
�\�\�
'�
'����1N�
O��������%������B������G�F�O�4�
���
�
�i����1��������3�H�=�t�D��
�
�r c��|j}|j|j|j�}|j|j|j
�}||jf||j
fg}|j
�|j|jg�|j|j|�|jd�|j|j�d�|j|jd�d|_
|j
�|jd�|j|jd�d|_
|j�|j|jg�|j|j|�|jd�|j|jd�y)NrLrMr)rr_rHrPrIrRr�rOrU�assertCountEqualrVryr~rPr&)r/rXrHrIr�s     r!�test_attach_detachzVarTraceTest.test_attach_detachsT��
�\�\��
�V�V�D�G�G�T�7�7�
8��
�V�V�D�G�G�T�5�5�
6����3�3�4���1�1�2�4��	�	�	��������b�)����b�i�i��2�
���q�	��������1�%�������b�)�
���
�	�	��
���q�	�������b�)����
�	�	��������B�'����b�k�k�8�4�
���q�	�������a�(r N)r4r5r6r�rmrprsrPrRrYr[rfrkrnrr r!rErE�sP���"��"�
�(��(���
�(�(��0
�)r rE�__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rrEr4rrr r!�<module>rys����!�!������,�I�I��;�;�
�
�
��%�F�%�%�b�)�*��*�*�2�.�%�F�%�%�b�)�+�&�+�+�B�/�	����	
���6�?���;����6�?��
�,�
��B��
�x�(�(�
�(B��"�"�(B�V[�8�$�$�[�|y�8�$�$�y�xX�8�$�$�X�vNL�(�#�#�NL�b!F�8�$�$�!F�J!�(�#�#�!�d(�X�&�&�d(�Ne)�8�$�$�e)�P�z���H�M�M�A��r 

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