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/tkinter/test/test_ttk/__pycache__/test_widgets.cpython-311.opt-2.pyc
�

��VcU���ddlZddlZddlmZmZddlmZmZddlZddlm	Z	ddl
mZmZm
Z
mZmZddlmZmZmZmZmZmZed��Gd�d	e��ZGd
�deej��ZGd�d
ee��Zee��Gd�deej����Zee��Gd�deej����ZGd�de��Zee��Gd�deej����Zee��Gd�deej����Zee��Gd�deej����Z eee��Gd�deej����Z!eee��Gd�de!ej����Z"eee��Gd�deej����Z#ee��Gd �d!eej����Z$Gd"�d#eej��Z%ee��Gd$�d%eej����Z&ee��Gd&�d'eej����Z'ej(ej)d(kd)��ee��Gd*�d+eej������Z*eee��Gd,�d-eej����Z+eee��Gd.�d/e!ej����Z,ee��Gd0�d1eej����Z-ee��Gd2�d3eej����Z.ee��Gd4�d5eej����Z/Gd6�d7eej��Z0ee e"e!eeee%e+e#e'e$e&e*e.e/e,e-ee0fZ1e2d8krej3��dSdS)9�N)�ttk�TclError)�requires�
gc_collect)�
MockTclObj)�AbstractTkTest�tcl_version�get_tk_patchlevel�simulate_mouse_click�AbstractDefaultRootTest)�add_standard_options�AbstractWidgetTest�StandardOptionsTests�IntegerSizeTests�PixelSizeTests�setUpModule�guic� �eZdZd�Zd�Zd�ZdS)�StandardTtkOptionsTestsc�(�|���}|�|dd��d}t��dkrd}|�|dd|���|�d���}|�|dd��dS)	N�class��"attempt to change read-only option���r�beta��"Attempt to change read-only option�Foo��errmsg��class_)�create�assertEqualr
�checkInvalidParam��self�widgetr"�widget2s    �6D:\Python311\Lib\tkinter\test\test_ttk\test_widgets.py�test_configure_classz,StandardTtkOptionsTests.test_configure_classs���������������"�-�-�-�3�����!5�5�	8�7�F����v�w��f��E�E�E��+�+�U�+�+�+�������)�5�1�1�1�1�1�c��|���}|�|ddd���|�|ddd���|�|ddd���|�|dd	d
���|�|ddd���|�|dd
��|�|ddd���dS)N�paddingr)�0��expected�)�5)r4r)r5�6)r4r�)r5r6�7)r4rr7r)r5r6r8�8)�5p�6p�7p�8p�r�r%�
checkParam�r)r*s  r,�test_configure_paddingz.StandardTtkOptionsTests.test_configure_paddings�������������	�1�v��>�>�>�����	�1�v��>�>�>�����	�6�J��G�G�G�����	�9�!0�	�	2�	2�	2�����	�<�!5�	�	7�	7�	7�����	�+C�D�D�D�����	�2���;�;�;�;�;r.c�j�|���}|�|dd��d}t|d��r%dt|d�����z}|�|dd|���|�d���}|�|d	d��dS)
N�stylerzLayout Foo not found�default_orientzLayout %s.Foo not foundr r!r#r)r%r&�hasattr�getattr�titler'r(s    r,�test_configure_stylez,StandardTtkOptionsTests.test_configure_style)s���������������"�-�-�-�'���4�)�*�*�	?�/��d�$4�5�5�;�;�=�=�>�F����v�w���	�	�	�	��+�+�U�+�+�+�������)�5�1�1�1��r.N)�__name__�
__module__�__qualname__r-rBrIr>r.r,rrsA������2�2�2�
<�
<�
<�
�
�
�
�
r.rc�,��eZdZ	�fd�Zd�Zd�Z�xZS)�
WidgetTestc���t�����tj|jdd���|_|j���dS)Nr�Text)�width�text)�super�setUpr�Button�rootr*�pack�r)�	__class__s �r,rTzWidgetTest.setUp;sH���
���
�
�����j���!�&�A�A�A�����������r.c	��|j���|�|j�t	|j���dz��t	|j���dz����d��|�|j�dd��d��|�tj	|jjdd��|�tj	|jjdd��|�tj	|jjdd��dS)N��label���rr4)
r*�updater&�identify�int�winfo_width�winfo_height�assertRaises�tkinterr�r)s r,�
test_identifyzWidgetTest.test_identify@s��������������-�-����'�'�)�)�A�-�.�.����(�(�*�*�Q�.�/�/����	�	�	�	
�����-�-�b�"�5�5�r�:�:�:����'�*�D�K�,@�$��J�J�J����'�*�D�K�,@�!�T�J�J�J����'�*�D�K�,@�!�R�H�H�H�H�Hr.c���|�|j���d��|�|j�dg��d��|�|j�dg��d��|�|j�dg��d��|�|j�ddg��d��|�|j�ddg��d��|�|j�ddg��d��d�}|�|jjdg|d	fid
di��d	d
dif��|j���}|�t
j|jjdg��|�t
j|jjddg��|�||j�����|j�ddg��|�|j���d
��dS)Nr>�	!disabledT�disabled)rh�active)z!activeric�
�||fS�Nr>)�arg1�kws  r,�test_cbz-WidgetTest.test_widget_state.<locals>.test_cb\s����8�Or.�hi�msg�there�badstate)rj)r&r*�state�instatercrdr)r)ro�	currstates   r,�test_widget_statezWidgetTest.test_widget_stateLsd�������*�*�,�,�b�1�1�1������,�,�k�]�;�;�T�B�B�B�	
�����*�*�J�<�8�8�/�J�J�J������*�*�J�<�8�8�"�=�=�=������*�*�K��+B�C�C�#�	%�	%�	%�	
�����*�*�K��+B�C�C�R�H�H�H������*�*�H�k�+B�C�C�R�H�H�H�	�	�	����,���,�k�]��T�/�/�#�W�-�/�/�
�E�7�#�$�	&�	&�	&�
�K�%�%�'�'�	����'�*�D�K�,?�
�L�	�	�	����'�*�D�K�,?�
��$�	&�	&�	&�	
����D�K�$5�$5�$7�$7�8�8�8�	
����8�[�1�2�2�2������*�*�,�,�l�;�;�;�;�;r.)rJrKrLrTrfrw�
__classcell__�rYs@r,rNrN8s\�������6������

I�
I�
I�!<�!<�!<�!<�!<�!<�!<r.rNc��eZdZdZdS)�AbstractToplevelTestFN)rJrKrL�_conv_pixelsr>r.r,r{r{ps�������L�L�Lr.r{c��eZdZdZd�ZdS)�	FrameTest)	�borderwidthr�cursor�heightr0�reliefrD�	takefocusrQc�0�tj|jfi|��Srl)r�FramerV�r)�kwargss  r,r%zFrameTest.create|����y���-�-�f�-�-�-r.N�rJrKrL�OPTIONSr%r>r.r,r~r~ts*�������G�.�.�.�.�.r.r~c�$�eZdZdZd�Zd�Zd�ZdS)�LabelFrameTest)
rrr�r��labelanchor�labelwidgetr0r�rDr�rR�	underlinerQc�0�tj|jfi|��Srl)r�
LabelFramerVr�s  r,r%zLabelFrameTest.create�����~�d�i�2�2�6�2�2�2r.c��|���}|�|ddddddddd	d
ddd
d���|�|dd��dS)Nr��e�en�es�n�ne�nw�s�se�sw�w�wn�wsz!Bad label anchor specification {}r!�center)r%�checkEnumParamr'rAs  r,�test_configure_labelanchorz)LabelFrameTest.test_configure_labelanchor�sl�����������F�M��T�4��d�D�#�t�T�3��d�:�	�	<�	<�	<�	
���v�}�h�?�?�?�?�?r.c��|���}tj|jdd���}|�|d|d���|���dS)N�Mupp�foo)rR�namer�z.foor2)r%r�LabelrVr@�destroy)r)r*r\s   r,�test_configure_labelwidgetz)LabelFrameTest.test_configure_labelwidget�sR���������	�$�)�&�u�=�=�=������
�u�v��F�F�F�
�
�
�����r.N)rJrKrLr�r%r�r�r>r.r,r�r��sK�������G�3�3�3�@�@�@�����r.r�c�&�eZdZd�Zd�Zd�Zd�ZdS)�AbstractLabelTestc��tj|jd���}tj|jd���}|�|||d���|�||dd���|�|||fd���|�|||d|fd���|�||dd���|�||d	d
���dS)N�image1)�masterr��image2)r�r2rj)r�rjr�zimage1 active image2�spamzimage "spam" doesn't existr!)rd�
PhotoImagerVr@r')r)r*r��imager�s     r,�checkImageParamz!AbstractLabelTest.checkImageParam�s���"�$�)�(�C�C�C���#�4�9�8�D�D�D�������e�k��B�B�B������h���E�E�E������u�h���E�E�E������u�h��&?�!?�	�	A�	A�	A������&<�!?�	�	A�	A�	A����v�t�V�4�	�	6�	6�	6�	6�	6r.c���d���}dd�|dd����d|d��}|���}|j|dg|�Rd|i�dS)Nz,none text image center top bottom left rightzbad compound "{}": must be z, r]z, or �compoundr")�split�joinr%r�)r)�optionsr"r*s    r,�test_configure_compoundz)AbstractLabelTest.test_configure_compound�s���@�F�F�H�H��
<��	�	�'�#�2�#�,�'�'�
<�
<�.5�b�k�
<�
<�	����������F�J�H��H�H�H��H�H�H�H�Hr.c�`�|���}|�|dddd��dS)Nrtrjri�normal�r%�checkParamsrAs  r,�test_configure_statez&AbstractLabelTest.test_configure_state�s1�������������(�J��I�I�I�I�Ir.c�`�|���}|�|dddd��dS)NrQi�in���rr�rAs  r,�test_configure_widthz&AbstractLabelTest.test_configure_width�s1�������������#�t�Q�7�7�7�7�7r.N)rJrKrLr�r�r�r�r>r.r,r�r��sV������6�6�6�I�I�I�J�J�J�8�8�8�8�8r.r�c�"�eZdZdZdZd�Zd�ZdS)�	LabelTest)�anchor�
backgroundrrr�r��font�
foregroundr��justifyr0r�rtrDr�rR�textvariabler�rQ�
wraplengthFc�0�tj|jfi|��Srl)rr�rVr�s  r,r%zLabelTest.create�r�r.c�\�|���}|�|dd��dS)Nr�z3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*r?rAs  r,�test_configure_fontzLabelTest.test_configure_font�s;�������������M�	O�	O�	O�	O�	Or.N)rJrKrLr�r|r%r�r>r.r,r�r��sE�������G��L�.�.�.�O�O�O�O�Or.r�c�$�eZdZdZd�Zd�Zd�ZdS)�
ButtonTest)r�commandr�r��defaultr�r0rtrDr�rRr�r�rQc�0�tj|jfi|��Srl)rrUrVr�s  r,r%zButtonTest.create�s���z�$�)�.�.�v�.�.�.r.c�`�|���}|�|dddd��dS)Nr�r�rjri�r%r�rAs  r,�test_configure_defaultz!ButtonTest.test_configure_default�s1�����������F�I�x��:�N�N�N�N�Nr.c���g�tj|j�fd����}|���|����dS)Nc�.����d��S�N���append��successs�r,�<lambda>z(ButtonTest.test_invoke.<locals>.<lambda>�s���G�N�N�1�4E�4E�r.�r�)rrUrV�invoke�
assertTrue)r)�btnr�s  @r,�test_invokezButtonTest.test_invoke�sM������j���,E�,E�,E�,E�F�F�F���
�
�������� � � � � r.N)rJrKrLr�r%r�r�r>r.r,r�r��sK�������G�/�/�/�O�O�O�!�!�!�!�!r.r�c�*�eZdZdZd�Zd�Zd�Zd�ZdS)�CheckbuttonTest)rr�r�r�r��offvalue�onvaluer0rtrDr�rRr�r��variablerQc�0�tj|jfi|��Srl)r�CheckbuttonrVr�s  r,r%zCheckbuttonTest.create������t�y�3�3�F�3�3�3r.c�b�|���}|�|ddddd��dS)Nr�r��ffffff@r�
any stringr�rAs  r,�test_configure_offvaluez'CheckbuttonTest.test_configure_offvalue�s3�������������Q��R��F�F�F�F�Fr.c�b�|���}|�|ddddd��dS)Nr�r�r�rr�r�rAs  r,�test_configure_onvaluez&CheckbuttonTest.test_configure_onvalue�s3�������������A�s�B��E�E�E�E�Er.c� ��g��fd�}tj|j|���}|�|���d��|�tj|jj	|d��|�
��}|�|d��|�|d|j�	|d����|����d|d<|�
��}|�t|����|�t���d	��|�|d
|j�	|d����dS)Nc�2����d��dS�Nr��cb test calledr�r�s�r,�cb_testz,CheckbuttonTest.test_invoke.<locals>.cb_test������N�N�1����#�#r.r�)�	alternater�r�r�rr�r�r�)rr�rVr&rtrcrdr�tk�globalgetvarr�r��assertFalse�str�assertLessEqual�len)r)r��cbtn�resr�s    @r,r�zCheckbuttonTest.test_invoke�s������	$�	$�	$�	$�	$���t�y�'�:�:�:��	
���������7�7�7����'�*�D�G�,@����	�	�	��k�k�m�m������.�/�/�/�����i���G� � ��j�!1�2�2�	4�	4�	4����� � � ���Y���k�k�m�m������S���"�"�"����S��\�\�1�-�-�-�����j�)��G� � ��j�!1�2�2�	4�	4�	4�	4�	4r.N)rJrKrLr�r%r�r�r�r>r.r,r�r��s]�������G�4�4�4�G�G�G�F�F�F�4�4�4�4�4r.r�c���eZdZdZejdkrdndZ�fd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Z�xZS)�	EntryTest)r�rr��exportselectionr�r��invalidcommandr��showrtrDr�r��validate�validatecommandrQ�xscrollcommand�darwinzEntry.field�textareac�z��t�����|���|_dSrl)rSrTr%�entryrXs �r,rTzEntryTest.setUp"�'���
���
�
�����[�[�]�]��
�
�
r.c�0�tj|jfi|��Srl)r�EntryrVr�s  r,r%zEntryTest.create&r�r.c�Z�|���}|�|d��dS)Nr�r%�checkCommandParamrAs  r,�test_configure_invalidcommandz'EntryTest.test_configure_invalidcommand)s,�����������v�'7�8�8�8�8�8r.c��|���}|�|dd��|�|dd��|�|dd��dS)Nr�*r� r?rAs  r,�test_configure_showzEntryTest.test_configure_show-sW��������������,�,�,�������+�+�+�������,�,�,�,�,r.c�`�|���}|�|dddd��dS)Nrtrir��readonlyr�rAs  r,r�zEntryTest.test_configure_state3s<�������������#�X�z�	;�	;�	;�	;�	;r.c
�f�|���}|�|ddddddd��dS)Nr�all�key�focus�focusin�focusout�noner�rAs  r,�test_configure_validatez!EntryTest.test_configure_validate8sG�����������F�J��u�g�y�*�f�	F�	F�	F�	F�	Fr.c�Z�|���}|�|d��dS)NrrrAs  r,�test_configure_validatecommandz(EntryTest.test_configure_validatecommand=s,�����������v�'8�9�9�9�9�9r.c��|�|j�d����|�tj|jjd��|�tj|jjd��dS)Nr�noindex)�assertIsBoundingBoxr�bboxrcrdrres r,�	test_bboxzEntryTest.test_bboxAsh��� � ������!3�!3�4�4�4����'�*�D�J�O�Y�G�G�G����'�*�D�J�O�T�B�B�B�B�Br.c�8�|j���|j���|�|j�dd��|j��|�|j�dd��d��|�tj|jjdd��|�tj|jjdd��|�tj|jjdd��dS)Nr4r]r)	rrWr^r&r_�IDENTIFY_ASrcrdrres r,rfzEntryTest.test_identifyFs����
�������
������	
�����,�,�Q��2�2�D�4D�E�E�E������,�,�R��4�4�b�9�9�9����'�*�D�J�,?��q�I�I�I����'�*�D�J�,?��D�I�I�I����'�*�D�J�,?��B�G�G�G�G�Gr.c����g��fd�}d|jd<d�|jd<||jd<|j���|����d|jd<|j���|�t	���d��||jd<d	�|jd<|j���|�t	���d��d|jd<|j���|�t	���d��d
|jd<|�tj|jj��dS)Nc�.����d��S�NTr�r�s�r,r�z3EntryTest.test_validation_options.<locals>.<lambda>Ts���w�~�~�d�3�3�r.rrc��dS)NFr>r>r.r,r�z3EntryTest.test_validation_options.<locals>.<lambda>Ws���r.rrrr�c��dSr,r>r>r.r,r�z3EntryTest.test_validation_options.<locals>.<lambda>bs���r.T)rrr�r&r�rcrdr)r)�test_invalidr�s  @r,�test_validation_optionsz!EntryTest.test_validation_optionsRs[�����3�3�3�3��!'��
�:��(5�
��
�$�%�'3��
�#�$��
���������� � � �')��
�#�$��
����������W���q�)�)�)�'3��
�#�$�(4���
�$�%��
����������W���q�)�)�)�(*��
�$�%��
����������W���q�)�)�)�(,��
�$�%����'�*�D�J�,?�@�@�@�@�@r.c�h��g��fd�}d|jd<|j�|��df|jd<|j�dd��|j�dd��|��d	d
g��|�|j���d��dS)Nc���d|���cxkrdksn��d��dS��d��dS�N�a�zFT)�lowerr�)�	to_insert�
validations �r,rz+EntryTest.test_validation.<locals>.validateosn����)�/�/�+�+�
�
�
�
�s�
�
�
�
��!�!�%�(�(�(��u����d�#�#�#��4r.rrz%Sr�endr�r4FT)r�register�insertr&�get)r)rr8s  @r,�test_validationzEntryTest.test_validationms�����
�	�	�	�	�	�"'��
�:��(,�
�(;�(;�H�(E�(E�t�(K��
�$�%��
���%��#�#�#��
���%��%�%�%�����e�T�]�3�3�3��������)�)�3�/�/�/�/�/r.c��d�}|j�|��df|jd<|j�dd��|�|j���d��|�|j���d��|j�dd��|�|j���d	��|j�dd
��|�|j���d��|�|j���d��|j�d
��|�|j���d��|�|j���d��dS)Nc�X�|D]&}d|���cxkrdksndS�'dSr3)r6)�content�letters  r,rz-EntryTest.test_revalidation.<locals>.validatesY��!�
!�
!���f�l�l�n�n�!�!�!�!��!�!�!�!� �5�5�!��4r.z%Prr9�avocadoTr>rr�a1bF)�invalidr�)rr:r;r&rrt�deleter<)r)rs  r,�test_revalidationzEntryTest.test_revalidation~s���	�	�	�)-�
�(;�(;�H�(E�(E�t�(K��
�$�%��
���%��+�+�+������,�,�.�.��5�5�5������)�)�+�+�R�0�0�0��
���!�U�#�#�#��������)�)�2�.�.�.��
���%��'�'�'������,�,�.�.��6�6�6������)�)�+�+�]�;�;�;��
���!���������,�,�.�.��5�5�5������)�)�+�+�R�0�0�0�0�0r.)rJrKrLr��sys�platformr)rTr%rrr�r r"r'rfr0r=rFrxrys@r,rrs��������G�$'�<�8�#;�K�-�-��K�#�#�#�#�#�.�.�.�9�9�9�-�-�-�;�;�;�
F�F�F�
:�:�:�C�C�C�

H�
H�
H�A�A�A�60�0�0�"1�1�1�1�1�1�1r.rc�d��eZdZdZejdkrdndZ�fd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
�xZS)�ComboboxTest)r�rr�rr�r�r�rr��postcommandrrtrDr�r�rr�valuesrQrrzCombobox.buttonr	c�z��t�����|���|_dSrl)rSrTr%�comborXs �r,rTzComboboxTest.setUp�rr.c�0�tj|jfi|��Srl)r�ComboboxrVr�s  r,r%zComboboxTest.create�����|�D�I�0�0��0�0�0r.c
�f�|���}|�|ddddddd��dS)Nr��d������LY@�fffff�Y@���r�1ir�rAs  r,�test_configure_heightz"ComboboxTest.test_configure_height�s7�������������3��u�d�A�t�L�L�L�L�Lr.c�j�|j���}|dz
d}}tjdkr/|�|j�||��d��|j�d||���|j�d||���|j���dS)Nr4r�
.*downarrow\Z�<ButtonPress-1>��x�y�<ButtonRelease-1>)rNrarGrH�assertRegexr_�event_generate�update_idletasks)r)rQr]r^s    r,�_show_drop_down_listboxz$ComboboxTest._show_drop_down_listbox�s����
�&�&�(�(���q�y�!�1���<�8�#�	J����T�Z�0�0��A�6�6�8H�I�I�I��
�!�!�"3�q�A�!�>�>�>��
�!�!�"5��a�!�@�@�@��
�#�#�%�%�%�%�%r.c����g�dg|jd<|j�d�fd���|j���|j���|j���}|���|j���|j�d��|j���|����dS)Nr�rLz<<ComboboxSelected>>c�.����d��Sr,r���evtr�s �r,r�z1ComboboxTest.test_virtual_event.<locals>.<lambda>�s������t�,�,�r.z<Return>)rN�bindrWr^rbrcrar�)r)r�r�s  @r,�test_virtual_eventzComboboxTest.test_virtual_event�s������ !�s��
�8���
���.�,�,�,�,�	.�	.�	.��
�������
��������(�(�*�*���$�$�&�&�&��
�������
�!�!�*�-�-�-��
���������� � � � � r.c�^��g��fd�|jd<|j���|j���|���|����d|jd<|���|�t
���d��dS)Nc�.����d��Sr,r�r�s�r,r�z9ComboboxTest.test_configure_postcommand.<locals>.<lambda>�s���G�N�N�4�,@�,@�r.rKrr�)rNrWr^rcr�r&r��r)r�s @r,�test_configure_postcommandz'ComboboxTest.test_configure_postcommand�s������$@�$@�$@�$@��
�=�!��
�������
�������$�$�&�&�&����� � � �%'��
�=�!��$�$�&�&�&�����W���q�)�)�)�)�)r.c����fd�}���jdd��|dd�����jddd������jdd�����jdd�����jdd��gd	��jd<�j�d
��|d
d���j�d��|d
d���j�d��|dd���j�d��d�jd<|dd���j�gd�������jd�jrdnd��gd��jd<���jd�jrdnd��gd��jd<���jd�jrdnd����tj	�jjt�jd������tj	�jjd��tj�j
gd����}��|d�jrdnd��|���dS)Nc������j���|�����j���|��dSrl)r&rNr<�current)�getval�currvalr)s  �r,�check_get_currentz=ComboboxTest.test_configure_values.<locals>.check_get_current�sO������T�Z�^�^�-�-�v�6�6�6����T�Z�/�/�1�1�7�;�;�;�;�;r.rLrr]�mon tue wed thur��mon�tue�wed�thurr2��*g��Q�	@rr��r4r��cr}r[rr4�d)r�r[rr�r�rr[�rL��1r�2�1 {} 2�za bza	bza
b�{a b} {a	b} {a
b}�za\tbz"a"z} {�a\\tb {"a"} \}\ \{�r�r[r�r�r�r�1 2 {})r&rNr@�setrp�	configure�wantobjectsrcrdrr�rrPrVr�)r)rs�combo2s`  r,�test_configure_valuesz"ComboboxTest.test_configure_values�s���	<�	<�	<�	<�	<�	
�����H�-�r�2�2�2���"�b�!�!�!�����
�H�.@�!>�	�	@�	@�	@�����
�H�.K�L�L�L�����
�H�.J�K�K�K�����
�H�b�1�1�1�,�}�}��
�8���
���s������#�q�!�!�!��
���1������#�q�!�!�!��
���s������#�r�"�"�"�	
�
���r����,��
�8����"�a� � � �	
�
���J�J�J��/�/�/������H�-�+/�+;�"���!�	#�	#�	#�
 7�6�6��
�8�������H�-�48�4D�/�0�0�.�	0�	0�	0�
 7�6�6��
�8�������H�-�48�4D�/�0�0�.�	0�	0�	0�
	
���'�*�D�J�,>���
�8�$�%�%�	'�	'�	'�	
���'�*�D�J�,>��C�C�C���d�i�
�
�
�;�;�;�������)�+/�+;�I����	K�	K�	K��������r.)rJrKrLr�rGrHr)rTr%rXrcrirmr�rxrys@r,rJrJ�s���������G�(+�|�x�'?�O�#�#�Z�K�#�#�#�#�#�1�1�1�M�M�M�&�&�&�!�!�!�"
*�
*�
*�:�:�:�:�:�:�:r.rJc�L��eZdZdZ�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Z�xZS)
�PanedWindowTest)rr�r��orientrDr�rQc�z��t�����|���|_dSrl)rSrTr%�panedrXs �r,rTzPanedWindowTest.setUprr.c�0�tj|jfi|��Srl)r�PanedWindowrVr�s  r,r%zPanedWindowTest.creater�r.c�\�|���}|�t|d��d��d}t��dkrd}|�|dd|���|�d���}|�t|d��d��dS)	Nr��verticalrrr�
horizontalr!)r�)r%r&r�r
r'r(s    r,�test_configure_orientz%PanedWindowTest.test_configure_orient"s�������������V�H�-�.�.�
�;�;�;�3�����!5�5�	8�7�F����v�x���	�	�	�	��+�+�\�+�2�2������W�X�.�/�/��>�>�>�>�>r.c��tj|j��}tj|��}|�tj|jj|��|���|���tj|j��}tj|��}|�tj|jj|��|���|���tj|j��}|j�|��|�tj|jj|��tj|j��}|j�|��|�	|j�
d��|j�
d����|�tj|jj
d��|���|���|�tj|jj
d��dS)Nrr�r[)rr�r�rcrdr�addr�rVr&�pane)r)r\�child�
good_child�other_childs     r,�test_addzPanedWindowTest.test_add-s����	�$�*�%�%���	�%� � �����'�*�D�J�N�E�B�B�B�
�
�
����
�
�
�����	�$�)�$�$���	�%� � �����'�*�D�J�N�E�B�B�B�
�
�
����
�
�
�����Y�t�y�)�)�
��
���z�"�"�"����'�*�D�J�N�J�G�G�G��i��
�+�+���
���{�#�#�#���������+�+�T�Z�_�_�Q�-?�-?�@�@�@����'�*�D�J�O�Q�?�?�?����������������'�*�D�J�O�Q�?�?�?�?�?r.c��|�tj|jjd��|�tj|jjd��|j�t
j|j����|j�d��|�tj|jjd��dS)Nr)	rcrdrr��forgetr�rr�rVres r,�test_forgetzPanedWindowTest.test_forgetHs������'�*�D�J�,=�t�D�D�D����'�*�D�J�,=�q�A�A�A��
���s�y���+�+�,�,�,��
���!�������'�*�D�J�,=�q�A�A�A�A�Ar.c�L�|�tj|jjdd��|�tj|jjdd��|�tj|jjdd��tj|j��}tj|j��}tj|j��}|�tj|jjd|��|j�d|��|j�d|��|�|j�	��t|��t|��f��|j�d|��|�|j�	��t|��t|��f��|j�d|��|�|j�	��t|��t|��t|��f��|j�	��}|j�d|��|�||j�	����|j�||��|�|j�	��t|��t|��t|��f��dS)Nrr9)rcrdrr�r;rr�rVr&�panesr�)r)r��child2�child3r�s     r,�test_insertzPanedWindowTest.test_insertPs������'�*�D�J�,=�t�Q�G�G�G����'�*�D�J�,=�q�$�G�G�G����'�*�D�J�,=�q�!�D�D�D��	�$�)�$�$����4�9�%�%����4�9�%�%�����'�*�D�J�,=�q�%�H�H�H��
���%��(�(�(��
���!�U�#�#�#������)�)�+�+�c�%�j�j�#�f�+�+�-F�G�G�G��
���!�V�$�$�$������)�)�+�+�c�&�k�k�3�u�:�:�-F�G�G�G��
���%��(�(�(������)�)�+�+�
��[�[�#�e�*�*�c�&�k�k�2�	4�	4�	4��
� � �"�"���
���%��(�(�(������
� 0� 0� 2� 2�3�3�3�
	
�
���&�&�)�)�)������)�)�+�+�
��[�[�#�f�+�+�s�5�z�z�2�	4�	4�	4�	4�	4r.c�
�|�tj|jjd��tj|j��}|j�|��|�	|j�d��t��|�|j�dd���|jrdnd��|�|j�dd��|jrdnd��|�|j�d��|j�t|������|�tj|jjdd���dS)Nr��weightr1r��	somevalue)�	badoption)rcrdrr�r�rr�rVr��assertIsInstance�dictr&r�r�)r)r�s  r,�	test_panezPanedWindowTest.test_panersO�����'�*�D�J�O�Q�?�?�?��	�$�)�$�$���
���u�������d�j�o�o�a�0�0�$�7�7�7���������4��8�8�"�.�7���C�	9�	9�	9�	
��������H�5�5�"�.�7���C�	9�	9�	9���������+�+�T�Z�_�_�S��Z�Z�-H�-H�I�I�I����'�*�D�J�O�Q�!�	�	#�	#�	#�	#�	#r.c���|�tj|jjd��|�tj|jjd��|�tj|jjd��tj|jd���}|j�|d���|�tj|jjd��tj|jd���}|j�|��|�tj|jjd��|j�dd	�
��|j�d��}|j�dd��|�	||j�d����|�
|j�d��t��dS)Nrrr4�rRr�r��bT�both)�expand�filli�)rcrdrr��sashposrr�r�rW�assertNotEqualr�r`)r)r�r��curr_poss    r,�test_sashposzPanedWindowTest.test_sashpos�s������'�*�D�J�,>��E�E�E����'�*�D�J�,>��C�C�C����'�*�D�J�,>��B�B�B��	�$�*�3�/�/�/���
���u�Q��'�'�'����'�*�D�J�,>��B�B�B���4�:�C�0�0�0���
���v�������'�*�D�J�,>��B�B�B��
���t�&��1�1�1��:�%�%�a�(�(���
���1�d�#�#�#����H�d�j�&8�&8��&;�&;�<�<�<����d�j�0�0��3�3�S�9�9�9�9�9r.)
rJrKrLr�rTr%r�r�r�r�r�r�rxrys@r,r�r�s���������G�
#�#�#�#�#�4�4�4�	?�	?�	?�@�@�@�6B�B�B� 4� 4� 4�D#�#�#� :�:�:�:�:�:�:r.r�c�$�eZdZdZd�Zd�Zd�ZdS)�RadiobuttonTest)rr�r�r�r�r0rtrDr�rRr�r��valuer�rQc�0�tj|jfi|��Srl)r�RadiobuttonrVr�s  r,r%zRadiobuttonTest.create�r�r.c�b�|���}|�|ddddd��dS)Nr�r�r�rr�r�rAs  r,�test_configure_valuez$RadiobuttonTest.test_configure_value�s3�������������!�S�"�l�C�C�C�C�Cr.c	���g��fd�}tj|j��}tj|j||d���}tj|j||d���}|jrd�}nt}|���}|�|d��|�||d��|�	����|�|�	��||j
�|d������|����d	|d
<|���}|�t|��d	��|�t���d��|�||d��|�	����|�|�	��||j
�|d������|�t|d��t|d����dS)Nc�2����d��dSr�r�r�s�r,r�z6RadiobuttonTest.test_configure_invoke.<locals>.cb_test�r�r.r)r�r�r�r�c��|Srlr>�r]s r,r�z7RadiobuttonTest.test_configure_invoke.<locals>.<lambda>����Q�r.r�r�r�rr�)rd�IntVarrVrr�r�r`r�r&r<r�r�r�r�r�r�)r)r��myvarr��cbtn2�convr�r�s       @r,�test_configure_invokez%RadiobuttonTest.test_configure_invoke�s.�����	$�	$�	$�	$�	$���t�y�)�)����t�y�'�(-�Q�8�8�8�����	�7�).�a�9�9�9����	��;�D�D��D��k�k�m�m������.�/�/�/������d�7�m�,�,�e�i�i�k�k�:�:�:����������D���%�%�d�:�&6�7�7�8�8�	:�	:�	:����� � � ���i���l�l�n�n������S���2�&�&�&����S��\�\�1�-�-�-������e�G�n�-�-�u�y�y�{�{�;�;�;����������D���%�%�d�:�&6�7�7�8�8�	:�	:�	:�	
����T�*�-�.�.��E�*�4E�0F�0F�G�G�G�G�Gr.N)rJrKrLr�r%r�r�r>r.r,r�r��sP�������G�4�4�4�D�D�D� H� H� H� H� Hr.r�c�$�eZdZdZd�Zd�Zd�ZdS)�MenubuttonTest)rr�r��	directionr��menur0rtrDr�rRr�r�rQc�0�tj|jfi|��Srl)r�
MenubuttonrVr�s  r,r%zMenubuttonTest.create�r�r.c	�d�|���}|�|dddddd��dS)Nr��above�below�left�right�flushr�rAs  r,�test_directionzMenubuttonTest.test_direction�s@�����������F�K���&�'�7�	<�	<�	<�	<�	<r.c��|���}tj|d���}|�|d|t���|���dS)Nr�)r��r�)r%rd�Menur@r�r�)r)r*r�s   r,�test_configure_menuz"MenubuttonTest.test_configure_menu�sN���������|�F��0�0�0��������3��7�7�7��������r.N)rJrKrLr�r%r�r�r>r.r,r�r��sH�������G�3�3�3�<�<�<�
����r.r�c�Z��eZdZdZdZdZ�fd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Z�xZS)
�	ScaleTest)rr�r��from�lengthr�rDr��tor�r�Fr�c����t�����|���|_|j���|j���dSrl)rSrTr%�scalerWr^rXs �r,rTzScaleTest.setUp�sO���
���
�
�����[�[�]�]��
��
�������
�������r.c�0�tj|jfi|��Srl)r�ScalerVr�s  r,r%zScaleTest.create�r�r.c�d�|���}|�|ddddd���dS)Nr�rS�������-@�333333.@Fr��r%�checkFloatParamrAs  r,�test_configure_fromzScaleTest.test_configure_from�s6�����������V�V�S�$��5��I�I�I�I�Ir.c�b�|���}|�|ddddd��dS)Nr��gffffff`@g33333�`@�5i�r%�checkPixelsParamrAs  r,�test_configure_lengthzScaleTest.test_configure_length�s3�����������f�h��U�E�4�H�H�H�H�Hr.c	�f�|���}|�|dddddd���dS)Nr��,r�r����Fr�r�rAs  r,�test_configure_tozScaleTest.test_configure_to�s8�����������V�T�3��d�C�e��L�L�L�L�Lr.c	�f�|���}|�|dddddd���dS)Nr�r�r�r�r�Fr�r�rAs  r,r�zScaleTest.test_configure_value�s8�����������V�W�c�4��s���O�O�O�O�Or.c���gd��|j�d�fd���}d|jd<d|jd<d|jd<|����gd��|j�d	d
���|j�dd
���|j�d���|����dS)N)r�r�r�z<<RangeChanged>>c�,������Srl)�pop)rg�failures �r,r�z-ScaleTest.test_custom_event.<locals>.<lambda>s��������r.�
r��from_rr�r[r4)r�r�r���)r�)r�rhr�r�)r)�funcidr�s  @r,�test_custom_eventzScaleTest.test_custom_events�����)�)������!3�5N�5N�5N�5N�O�O����
�6�� ��
�7����
�4������!�!�!��)�)���
���1���+�+�+��
���1���,�,�,��
�����#�#�#�����!�!�!�!�!r.c��|jrd�}nt}|j���}|�|j�|d��|jd��|�||j�dd����||jd����|�|j���|jd��d|jd<|�|j���|jd��|�tj|jjdd��|�tj|jjdd��dS)Nc��|Srlr>r�s r,r�z$ScaleTest.test_get.<locals>.<lambda>r�r.rr�r�r��r)	r��floatr�rar&r<rcrdr)r)r��scale_widths   r,�test_getzScaleTest.test_getsB����	��;�D�D��D��j�,�,�.�.����������Q�7�7���D�9I�J�J�J������d�j�n�n�Q��2�2�3�3�T�T�$�*�V�:L�5M�5M�N�N�N��������)�)�4�:�g�+>�?�?�?� ��
�7���������)�)�4�:�g�+>�?�?�?����'�*�D�J�N�B��B�B�B����'�*�D�J�N�A�r�B�B�B�B�Br.c���|jrd�}nt}||jd��}|dz}|j�|��|�||j�����|��||jd��}|j�|dz
��|�||j�����|��t
j|j��}||jd<|�|dz��|�||j�����|�����|�||j�����|dz��~t��|dz|jd<|�||j�����|dz��|�||j�����||jd����|�||j�d	d	����|��|�||j�|j�
��d	����|��|�tj|jjd��dS)
Nc��|Srlr>r�s r,r�z$ScaleTest.test_set.<locals>.<lambda>(r�r.r�r�r�r�r�r4r�r)
r�rr�r�r&r<rd�	DoubleVarrVrrarcr)r)r��max�new_max�min�vars      r,�test_setzScaleTest.test_set&s�����	��;�D�D��D��d�4�:�d�#�$�$����(���
���w���������d�j�n�n�.�.�/�/��5�5�5��d�4�:�f�%�&�&���
���s�Q�w���������d�j�n�n�.�.�/�/��5�5�5����	�*�*��!$��
�:������a����������d�j�n�n�.�.�/�/������;�;�;������d�j�n�n�.�.�/�/��q��9�9�9������"�B�h��
�7�������d�j�n�n�.�.�/�/��r��:�:�:������d�j�n�n�.�.�/�/���d�j��6I�1J�1J�K�K�K�	
�����d�j�n�n�Q��2�2�3�3�S�9�9�9������d�j�n�n�T�Z�-C�-C�-E�-E�q�I�I�J�J�C�P�P�P����'�*�D�J�N�D�A�A�A�A�Ar.)rJrKrLr�r|rErTr%r�r�r�r�rrrrxrys@r,r�r��s���������G��L�!�N������.�.�.�J�J�J�I�I�I�M�M�M�P�P�P�"�"�"�$C�C�C�""B�"B�"B�"B�"B�"B�"Br.r�c�>�eZdZdZdZdZd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�ProgressbarTest)rr�r�r��mode�maximum�phaserDr�r�r�Fr�c�0�tj|jfi|��Srl)r�ProgressbarrVr�s  r,r%zProgressbarTest.createUr�r.c�`�|���}|�|dddd��dS)Nr�gfffffY@g�����YL@�2ir�rAs  r,r�z%ProgressbarTest.test_configure_lengthXs1�����������f�h��t�T�B�B�B�B�Br.c	�f�|���}|�|dddddd���dS)Nr�fffff�b@������lS@rr�Fr�r�rAs  r,�test_configure_maximumz&ProgressbarTest.test_configure_maximum\s8�����������V�Y��t�Q��%��P�P�P�P�Pr.c�^�|���}|�|ddd��dS)Nr�determinate�
indeterminater�rAs  r,�test_configure_modez#ProgressbarTest.test_configure_mode`s/�����������F�F�M�?�K�K�K�K�Kr.c��dSrlr>res r,�test_configure_phasez$ProgressbarTest.test_configure_phaseds���r.c	�f�|���}|�|dddddd���dS)Nr�rrrr�Fr�r�rAs  r,r�z$ProgressbarTest.test_configure_valuehsE�����������V�W�e�T�1�c�"'�	�	)�	)�	)�	)�	)r.N)rJrKrLr�r|rEr%r�rr r"r�r>r.r,rrKs��������G�
�L�!�N�4�4�4�C�C�C�Q�Q�Q�L�L�L�
�
�
�)�)�)�)�)r.rrz"ttk.Scrollbar is special on MacOSXc��eZdZdZdZd�ZdS)�
ScrollbarTest)rr�r�r�rDr�r�c�0�tj|jfi|��Srl)r�	ScrollbarrVr�s  r,r%zScrollbarTest.createw����}�T�Y�1�1�&�1�1�1r.N�rJrKrLr�rEr%r>r.r,r%r%ns1�������G� �N�2�2�2�2�2r.r%c�^��eZdZdZ�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Z�xZS)
�NotebookTest)rr�r�r0rDr�rQc�z��t�����|�d���|_t	j|j��|_t	j|j��|_|j�	|jd���|j�	|jd���dS)Nr�r0r4r�r�)
rSrTr%�nbrr�rV�child1r�r�rXs �r,rTzNotebookTest.setUp�s����
���
�
�����+�+�a�+�(�(����i��	�*�*����i��	�*�*�������D�K�c��*�*�*�����D�K�c��*�*�*�*�*r.c�0�tj|jfi|��Srl)r�NotebookrVr�s  r,r%zNotebookTest.create�rQr.c��|j�d��|j�|j��|�t
j|jj|j��|�	|j�
d��d��|j�|j��|�	|j�
d��d��|j�|j��|�
|j�d����|j�|jd���|j���|j���t jdkrd}nd	}|�	|j�|��|j�d����t%d
dd
��D]>}	|j�d|zd���dkrdS�*#t
j$rY�;wxYw|�d
��dS)Nrr9r�rpr4r�rz@20,5z@5,5r4rSz@%d, 5zTab with text 'a' not found)r.r��hider�rcrdr�tabr/r&�indexr��selectr�rWr^rGrH�range�fail)r)�tb_idx�is   r,�test_tab_identifiersz!NotebookTest.test_tab_identifiers�s�������q��������T�[�!�!�!����'�*�D�G�K���E�E�E��������u�-�-�q�1�1�1�����D�K� � � ��������u�-�-�q�1�1�1�����t�{�#�#�#��������I�.�.�/�/�/�����D�K�c��*�*�*����������������<�8�#�	��F�F��F��������V�,�,�d�g�k�k�)�.D�.D�E�E�E��q�#�q�!�!�	5�	5�A�
��7�;�;�x�!�|�$�;�7�7�3�>���E�E����#�
�
�
���
����
�I�I�3�4�4�4�4�4s�3#H�H,�+H,c�$�|�tj|jjd��|�tj|jjd��|�tj|jjd��|�tj|jjd��|�tj|jjt
j|j��d���|j�	��}|j�|j
��|j�|j
��|�|j�	��|��t
j|j��}|j�|d���|j�	��}|j�d��}|j�|j
��}|j�|j
��|j�|j
��|�|j�	��|��|�|j�|j
��|��|�t|j
��|j�	��|��|�|j�d��|dz��dS)	Nr]rp�option)�unknownr}r�rpr�)rcrdrr.r3r�rr�rV�tabsr/r&r5r�r�)r)r?r��curr�child2_indexs     r,�test_add_and_hiddenz NotebookTest.test_add_and_hidden�sC�����'�*�D�G�L�"�=�=�=����'�*�D�G�L�$�?�?�?����'�*�D�G�L�$�?�?�?����'�*�D�G�K��>�>�>����'�*�D�G�K���4�9�9M�9M��	�	�	�	��w�|�|�~�~������T�[�!�!�!�����D�K� � � �����������.�.�.��	�$�)�$�$������E���$�$�$��w�|�|�~�~���w�}�}�Y�'�'���w�}�}�T�[�1�1������T�[�!�!�!�����D�K� � � �����������.�.�.��������t�{�3�3�\�B�B�B�����T�[�)�)�4�7�<�<�>�>�,�+G�H�H�H��������y�1�1�4�!�8�<�<�<�<�<r.c���|�tj|jjd��|�tj|jjd��|�tj|jjd��|j���}|j�|j��}|j�|j��|�t|j��|j�����|�
t|��dz
t|j�������|j�|j��|�
|j�|j��d��|�
||j�|j����dS)Nr]rpr�)rcrdrr.r�r?r5r/�assertNotInr�r&r�r�r�)r)r?�child1_indexs   r,r�zNotebookTest.test_forget�s]�����'�*�D�G�N�B�?�?�?����'�*�D�G�N�D�A�A�A����'�*�D�G�N�D�A�A�A��w�|�|�~�~���w�}�}�T�[�1�1������t�{�#�#�#�����T�[�)�)�4�7�<�<�>�>�:�:�:�����T���Q���D�G�L�L�N�N�(;�(;�<�<�<�����D�K� � � ��������t�{�3�3�Q�7�7�7����L�$�'�-�-���*D�*D�E�E�E�E�Er.c�@�|�tj|jjd��|�tj|jjd��|�|j�d��t��|�|j�|j��d��|�|j�|j	��d��|�|j�d��d��dS)Nr]r9rr�r[)
rcrdrr.r5r�r`r&r/r�res r,�
test_indexzNotebookTest.test_index�s������'�*�D�G�M�2�>�>�>����'�*�D�G�M�4�@�@�@����d�g�m�m�E�2�2�C�8�8�8��������t�{�3�3�Q�7�7�7��������t�{�3�3�Q�7�7�7��������u�-�-�q�1�1�1�1�1r.c���|j���}|j�d|d��|�|j���|d|df��|j�|j|j��|�|j���|��|j�d|j��|�|j���|d|df��|j�dd��|�|j���|��|�tj|jjd|d��|�tj|jjd|d��tj
|j��}|j�d|��|�|j���|dt|��|df��|j�
|��|�|j���|��|j�|j|��|�|j���t|��f|z��|j�
|��|�tj|jjd|��|�tj|jjd|��|�tj|jjdd��|�tj|jjdd��|�tj|jjdd��dS)Nr�rr9r[r])r.r?r;r&r/r�rcrdrrr�rVr�r�)r)r?r�s   r,r�zNotebookTest.test_insert�s����w�|�|�~�~������q�$�q�'�"�"�"����������$�q�'�4��7�);�<�<�<�����t�{�D�K�0�0�0�����������.�.�.�����u�d�k�*�*�*����������$�q�'�4��7�);�<�<�<�����u�a� � � �����������.�.�.����'�*�D�G�N�A�t�A�w�G�G�G����'�*�D�G�N�B��Q��H�H�H���4�9�%�%������q�&�!�!�!����������$�q�'�3�v�;�;��Q��)H�I�I�I�����v��������������.�.�.�����t�{�F�+�+�+����������#�f�+�+��4�)?�@�@�@�����v�������'�*�D�G�N�A�v�F�F�F����'�*�D�G�N�B��G�G�G�	
���'�*�D�G�N�E�4�H�H�H����'�*�D�G�N�D�!�D�D�D����'�*�D�G�N�D�$�G�G�G�G�Gr.c����|j���|j���g�g�|j�d�fd���|j�d�fd���|�|j���t|j����|j�|j��|�	���|�|j���t|j����|j���|�	���dS)Nz<Unmap>c�.����d��Sr,r�rfs �r,r�z*NotebookTest.test_select.<locals>.<lambda>s������t�0D�0D�r.z<<NotebookTabChanged>>c�.����d��Sr,r�)rg�tab_changeds �r,r�z*NotebookTest.test_select.<locals>.<lambda>s����*�*�4�0�0�r.)
r.rWr^r/rhr&r6r�r�r�)r)r�rLs @@r,�test_selectzNotebookTest.test_select�s$���������������������������$D�$D�$D�$D�E�E�E�����-�0�0�0�0�	2�	2�	2�	
�������)�)�3�t�{�+;�+;�<�<�<�����t�{�#�#�#����� � � ��������)�)�3�t�{�+;�+;�<�<�<������������$�$�$�$�$r.c�^�|�tj|jjd��|�tj|jjd��|�tj|jjd��|�|j�|j��t��|�|j�|jd���d��|�|j�|jd��d��|j�|jd���|�|j�|jd���d��|�|j�|jd��d��dS)Nr]�notabr�r4rR�abc)	rcrdrr.r4r�r/r�r&res r,�test_tabzNotebookTest.test_tabsI�����'�*�D�G�K��<�<�<����'�*�D�G�K��A�A�A����'�*�D�G�K��>�>�>����d�g�k�k�$�+�6�6��=�=�=��������T�[�t��<�<�c�B�B�B��������T�[�&�9�9�3�?�?�?�����D�K�e��,�,�,��������T�[�t��<�<�e�D�D�D��������T�[�&�9�9�5�A�A�A�A�Ar.c�P�|�t|j�����d��|j�|j��|j�|j��|�|j���d��dS)Nr[r>)r&r�r.r?r�r/r�res r,�test_configure_tabsz NotebookTest.test_configure_tabss|������T�W�\�\�^�^�,�,�a�0�0�0�����t�{�#�#�#�����t�{�#�#�#�����������,�,�,�,�,r.c��|j���|j���|j�d��tjdkrdnd}|�|j�dd��|��t|jdd��|j�	��|j�
d��|�|j���t|j����|j�	��|j�
d��|�|j���t|j
����|j�	��|j�
d��|�|j���t|j����|j�|j
dd�	��|j�|jd
d�	��|j���|j�	��|�|j�dd��|��t|jdd��tjdkrd}d}nd
}d}|j�
|��|�|j���t|j
����|j�
|��|�|j���t|j����dS)Nrrrrr4z
<Control-Tab>z<Shift-Control-Tab>r4)rRr�r�z<Left>z<Right>z<Alt-a>z<Alt-e>)r.rWr^r6rGrHr&r_r�focus_forcerar�r�r/r4�enable_traversal)r)�focus_identify_as�beginr9s    r,�test_traversalzNotebookTest.test_traversal&s���������������������q����'*�|�x�'?�G�G�G�R�������)�)�!�Q�/�/�1B�C�C�C��T�W�a��+�+�+�������������/�/�/��������)�)�3�t�{�+;�+;�<�<�<������������4�5�5�5��������)�)�3�t�{�+;�+;�<�<�<������������4�5�5�5��������)�)�3�t�{�+;�+;�<�<�<�����D�K�c�Q��7�7�7�����D�K�c�Q��7�7�7��� � �"�"�"�������������)�)�!�Q�/�/�1B�C�C�C��T�W�a��+�+�+��<�8�#�	��E��C�C��E��C�����u�%�%�%��������)�)�3�t�{�+;�+;�<�<�<�����s�#�#�#��������)�)�3�t�{�+;�+;�<�<�<�<�<r.)rJrKrLr�rTr%r;rBr�rGr�rMrQrSrYrxrys@r,r+r+{s���������G�+�+�+�+�+�1�1�1�5�5�5�<=�=�=�8
F�
F�
F�2�2�2�H�H�H�@%�%�%�&B�B�B�-�-�-�$=�$=�$=�$=�$=�$=�$=r.r+c�|��eZdZdZejdkrdndZ�fd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Z�xZS)�SpinboxTest)r�rr�r�rr�r��formatr��	incrementrr�rrtrDr�r�r�rrrLrQ�wraprrz
Spinbox.fieldr	c���t�����|���|_|j���dSrl)rSrTr%�spinrWrXs �r,rTzSpinboxTest.setUpXs;���
���
�
�����K�K�M�M��	��	�������r.c�0�tj|jfi|��Srl)r�SpinboxrVr�s  r,r%zSpinboxTest.create]s���{�4�9�/�/��/�/�/r.c��|j���}|j���}|dz
}|dzdz
}|�|j�||��d��|j�d||���|j�d||���|j���dS)Nr4r[z.*uparrow\Zr[r\r_�r`rarbr`r_rarb�r)rQr�r]r^s     r,�_click_increment_arrowz"SpinboxTest._click_increment_arrow`s����	�%�%�'�'����'�'�)�)���A�I���A�I��M�������+�+�A�q�1�1�>�B�B�B��	� � �!2�a�1� �=�=�=��	� � �!4��Q� �?�?�?��	�"�"�$�$�$�$�$r.c��|j���}|j���}|dz
}|dzdz}|�|j�||��d��|j�d||���|j�d||���|j���dS)Nr4r[�rZr[r\r_rdres     r,�_click_decrement_arrowz"SpinboxTest._click_decrement_arrowjs����	�%�%�'�'����'�'�)�)���A�I���A�I��M�������+�+�A�q�1�1�3C�D�D�D��	� � �!2�a�1� �=�=�=��	� � �!4��Q� �?�?�?��	�"�"�$�$�$�$�$r.c�X��g��fd�|jd<|j���|���|j���|����|���|�t
���d��d|jd<|j���|���|���|j���|�t
���d��dS)Nc�.����d��Sr,r�r�s�r,r�z4SpinboxTest.test_configure_command.<locals>.<lambda>ws���w�~�~�d�';�';�r.r�r[r)r`r^rfr�rir&r�rbrls @r,�test_configure_commandz"SpinboxTest.test_configure_commandts�����;�;�;�;��	�)���	�������#�#�%�%�%��	���������� � � ��#�#�%�%�%�����W���q�)�)�)� "��	�)���	�"�"�$�$�$��#�#�%�%�%��#�#�%�%�%��	����������W���q�)�)�)�)�)r.c��d|jd<d|jd<|j�d��|j���|���|�|j���d��|���|�|j���d��dS)Nrr�r4r�rhr5)r`r�r^rfr&r<res r,r�zSpinboxTest.test_configure_to�s�����	�&����	�$���	�
�
�a�����	�������#�#�%�%�%����������#�.�.�.��#�#�%�%�%����������#�.�.�.�.�.r.c��d|jd<d|jd<|j�d��|j���|���|�|j���d��|���|�|j���d��dS)Nr�r�r�r�r[r�)r`r�r^rir&r<res r,r�zSpinboxTest.test_configure_from�s�����	�&����	�$���	�
�
�a�����	�������#�#�%�%�%����������#�.�.�.��#�#�%�%�%����������#�.�.�.�.�.r.c���d|jd<d|jd<d|jd<|j�d��|j���|���|�|j���d��d	|jd<|j���|���|�|j���d
��dS)Nrr�r�r�rhr]r�r5r[�3)r`r�r^rfr&r<rires r,�test_configure_incrementz$SpinboxTest.test_configure_increment�s�����	�&����	�$��!"��	�+���	�
�
�a�����	�������#�#�%�%�%����������#�.�.�.�!"��	�+���	�������#�#�%�%�%����������#�.�.�.�.�.r.c��|j�d��d|jd<|j���|���|j���}|�t
|��d��|�|�d��d��d|jd<|j���|���|j���}|�d|v��|�t
|��d��dS)Nr�z%10.3fr\r��.rr)	r`r�r^rfr<r&r�r5r�)r)r�s  r,�test_configure_formatz!SpinboxTest.test_configure_format�s���	�
�
�a����&��	�(���	�������#�#�%�%�%��	�
�
��������U���R�(�(�(�������S�)�)�1�-�-�-� ��	�(���	�������#�#�%�%�%��	�
�
��������5�(�)�)�)�����U���Q�'�'�'�'�'r.c�t�d|jd<d|jd<|j�d��d|jd<|j���|���|�|j���d��|���|�|j���d��d	|jd<|j���|���|�|j���d��dS)
Nr�r�r�r�Tr^�10r�F)r`r�r^rir&r<rfres r,�test_configure_wrapzSpinboxTest.test_configure_wrap�s	����	�$����	�&���	�
�
�a���� ��	�&���	�������#�#�%�%�%����������$�/�/�/��#�#�%�%�%����������#�.�.�.�!��	�&���	�������#�#�%�%�%����������#�.�.�.�.�.r.c��|�|jdd��|�|jddd���|�|jdd��|�|jdd��|�|jdd��gd�|jd<|j�d��|j���|���|�|j���d	��|���|�|j���d��|j�gd
����|�|jd|j	rdnd
��gd�|jd<|�|jd|j	rdnd��gd�|jd<|�|jd|j	rdnd��tj|jgd����}|�|d|j	rdnd��|�
��dS)NrLrrtrur2rzr|r4r�rr�r�r�r�r�r�r�r�r�r�)r&r`r@r�r^rfr<rir�r�rrbrVr�)r)�spin2s  r,r�z!SpinboxTest.test_configure_values�sr�������8�,�b�1�1�1�����	�8�-?�!>�	�	@�	@�	@�����	�8�-J�K�K�K�����	�8�-I�J�J�J�����	�8�R�0�0�0�+�m�m��	�(��	
�	�
�
�c�����	�������#�#�%�%�%����������#�.�.�.��#�#�%�%�%����������#�.�.�.�	
�	���:�:�:��.�.�.������8�,�+/�+;�"���!�	#�	#�	#�
6�5�5��	�(�������8�,�48�4D�/�0�0�.�	0�	0�	0�
6�5�5��	�(�������8�,�48�4D�/�0�0�.�	0�	0�	0�
��D�I�j�j�j�9�9�9������x��+/�+;�I����	K�	K�	K�
�
�
�����r.)rJrKrLr�rGrHr)rTr%rfrirlr�r�rqrtrwr�rxrys@r,r[r[Ms���������G�&)�\�X�%=�M�/�/�:�K������
0�0�0�%�%�%�%�%�%�*�*�*�(
/�
/�
/�/�/�/�/�/�/�(�(�(�"/�/�/�&)�)�)�)�)�)�)r.r[c���eZdZdZ�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)�TreeviewTest)r�columnsr��displaycolumnsr�r0�
selectmoderrDr�r�yscrollcommandc�~��t�����|�d���|_dS)Nrr-)rSrTr%�tvrXs �r,rTzTreeviewTest.setUps-���
���
�
�����+�+�a�+�(�(����r.c�0�tj|jfi|��Srl)r�TreeviewrVr�s  r,r%zTreeviewTest.createrQr.c��|���}|�|ddd���|�|dd��|�|dd��dS)Nr|�a b c�r4r�r}r2rr?rAs  r,�test_configure_columnsz#TreeviewTest.test_configure_columnsse������������	�7�!0�	�	2�	2�	2�����	�?�;�;�;�����	�2�.�.�.�.�.r.c��|���}d|d<|�|ddd���|�|dd��|�|ddd���|�|dd	��|�|dd
d���|�|dd
d���|�|ddd���dS)Nr�r|r}zb a c)r�r4r}r2�#all)r�)r[r�r)r4r�r~zInvalid column index dr!)r�r[rzColumn index 3 out of bounds)r�r�zColumn index -2 out of bounds)r%r@r'rAs  r,�test_configure_displaycolumnsz*TreeviewTest.test_configure_displaycolumnss��������+��y������ 0�'�!0�	�	2�	2�	2����� 0�/�B�B�B����� 0�&�!*�	�	,�	,�	,����� 0�)�<�<�<����v�'7��&>�	�	@�	@�	@����v�'7��&D�	�	F�	F�	F����v�'7��&E�	�	G�	G�	G�	G�	Gr.c	��|���}|�|dddddd���|�|ddd	d���dS)
Nr�rSrVr�3cFr�rTrUr�rAs  r,rXz"TreeviewTest.test_configure_height"sW�����������f�h��T�1�d���O�O�O����f�h��u�5��I�I�I�I�Ir.c�`�|���}|�|dddd��dS)Nr~r�browse�extendedr�rAs  r,�test_configure_selectmodez&TreeviewTest.test_configure_selectmode's<�����������F�L�"�H�j�	:�	:�	:�	:�	:r.c� �|���}|�|ddd���|�|dd��|�|dd��|�|ddd���|�|ddd	���dS)
Nrz
tree headings)�tree�headingsr2)r�r�r�)r�r�)r�r?rAs  r,rz TreeviewTest.test_configure_show,s���������������!5�	�	7�	7�	7������(<�=�=�=������(<�=�=�=���������C�C�C������
�]��K�K�K�K�Kr.c��|j���|�|j�d��d��|j���|j�dd��}|j���}|�|��|j�|d��}|�|��dg|jd<|j�	dd���|j�|dd��}|j�	dd���}|j
st|��}|�|d|d|z��|j�|d��}|�|j�|��d��dS)	Nrr9r�testr|�2�rQ�#0)r�rWr&r&r^r;�get_childrenr�r%�columnr�r`)r)�item_id�childrenr&�bbox_column0�
root_widthr/s       r,r'zTreeviewTest.test_bbox5s~����������������b�)�)�2�.�.�.���������'�.�.��U�+�+���7�'�'�)�)������!�!�!��w�|�|�H�Q�K�(�(��� � ��&�&�&�%�X���	������v�R��(�(�(��w�|�|�H�Q�K��3�3���W�^�^�D��^�5�5�
���	)��Z���J�����a��$�q�'�J�*>�?�?�?�������/�/���������f�-�-�r�2�2�2�2�2r.c���|�|j���d��|j�dd��}|�|j���t
��|�|j���d|��|j�dd��}|j�dd��}|j�|||��|�|j�|��||f��|�tj	|jj||��|j�|��|�|j�|��d��|j�d��|�|j���d��dS)Nr>rr9r)
r&r�r�r;r��tuple�set_childrenrcrdr)r)r�r�r�s    r,�
test_childrenzTreeviewTest.test_childrenNs��������-�-�/�/��4�4�4��'�.�.��U�+�+�����d�g�2�2�4�4�e�<�<�<������-�-�/�/��2�G�<�<�<������E�*�*�������E�*�*������V�W�f�5�5�5������-�-�f�5�5���7H�I�I�I�	
���'�*��G� �&�&�	2�	2�	2�	
����V�$�$�$������-�-�f�5�5�r�:�:�:�	
����R� � � ������-�-�/�/��4�4�4�4�4r.c�"�|�|j�d��t��|jr5|�|j�dd���t
��|j�dd���|�|j�dd��|jrdnd��|�|j�dd���|jrdnd��|�tj	|jjdd���|�tj	|jjd��d	d
iddid
diddiddig}|D]&}|jtj	|jjdfi|���'dS)Nr�r�r�rQrv�X��idrD�unknown_optionz
some value�stretch�wrongr��minwidth)
r�r�r�r�r�r`r&rcrdr)r)�invalid_kwsrns   r,�test_columnzTreeviewTest.test_columnis������d�g�n�n�T�2�2�D�9�9�9���	I��!�!�$�'�.�.��T�.�"B�"B�C�H�H�H�����t�2��&�&�&���������g�6�6�#�/�9���T�	;�	;�	;���������D��9�9�#�/�9���T�	;�	;�	;�	
���'�*�D�G�N�D�S��I�I�I����'�*�D�G�N�I�F�F�F�
�|�,�	�7�/C�
�w��'�7�!3�j�'�5J�
���	�	�B��D��g�.�����
�
��
�
�
�
�	�	r.c��|�tj|jjd��|j�dd��}|j�|d��}|�|j���|f��|�|j�|��|f��|j�|��|�|j�����|�tj|jj	|dd��|j�dd��}|j�dd��}|�|j���||f��|j�||��|�|j�����dS)Nr�rr9)
rcrdrr�rEr;r&r�r��reattach)r)r��item2�item1s    r,�test_deletezTreeviewTest.test_delete�s������'�*�D�G�N�D�A�A�A��'�.�.��U�+�+������w��.�.�������-�-�/�/�'��=�=�=������-�-�g�6�6��	�B�B�B�����w���������-�-�/�/�0�0�0�	
���'�*��G��g�r�5�	2�	2�	2�����r�5�)�)������r�5�)�)�������-�-�/�/�%���@�@�@�����u�e�$�$�$������-�-�/�/�0�0�0�0�0r.c��|j�dd��}|j�|d��}|j���}|j���|�||j�����|�|j���|f��|�|j�|��|f��|j�|��|�|j�����|j�|dd��|�|j���|f��|�|j�|��|f��|j�|dd��|�|j���||f��|�|j�|��d��|�tj
|jjddd��|�tj
|jjd��|�tj
|jj|dd��|�tj
|jj|dd��|j�||��|�|j���d��|�|j�|��d��dS)Nrr9r>�nonexistent�otherparentrD)r�r;r��detachr&r�r��movercrdr)r)r�r��prevs    r,�test_detach_reattachz!TreeviewTest.test_detach_reattach�s����'�.�.��U�+�+������w��.�.���w�#�#�%�%�������������t�w�3�3�5�5�6�6�6������-�-�/�/�'��=�=�=������-�-�g�6�6��	�B�B�B�	
����w���������-�-�/�/�0�0�0�	
�����"�e�,�,�,������-�-�/�/�'��=�=�=������-�-�g�6�6��	�B�B�B�	
����U�B��&�&�&������-�-�/�/�'�5�1A�B�B�B������-�-�g�6�6��;�;�;�	
���'�*��G��m�R��	8�	8�	8����'�*��G�N�M�	+�	+�	+����'�*��G��e�]�E�	;�	;�	;����'�*��G��e�R��	4�	4�	4�	
����w��&�&�&������-�-�/�/��4�4�4������-�-�g�6�6��;�;�;�;�;r.c�p�|�|j�d��d��|�|j�d��d��|�|j�i��d��|�tj|jjd��dS)N�	somethingFrT)r&r��existsrcrdrres r,�test_existszTreeviewTest.test_exists�s�����������4�4�e�<�<�<���������+�+�T�2�2�2���������+�+�U�3�3�3�
	
���'�*�D�G�N�D�A�A�A�A�Ar.c��|�|j���d��|j�dd��}|j�|��|�|j���|��|j�|��|�|j���d��|�tj|jjd��dS)Nrr9rp)r&r�rr;rErcrdr)r)r�s  r,�
test_focuszTreeviewTest.test_focus�s������������"�-�-�-�����r�5�)�)����
�
�e�������������%�0�0�0�����u�������������"�-�-�-�	
���'�*�D�G�M�4�@�@�@�@�@r.c��|�|j�d��t��|j�dd���|�|j�dd��d��|�|j�dd���d��|�tj|jjdd���|�tj|jjdd���dS)Nr�rpr�rR)r�r�)r�)r�r��headingr�r&rcrdrres r,�test_headingzTreeviewTest.test_heading�s������d�g�o�o�d�3�3�T�:�:�:�	
�����4��(�(�(���������v�6�6��=�=�=���������D��9�9�4�@�@�@�	
���'�*�D�G�O�T��	�	�	�	�	
���'�*�D�G�O�T��	�	�	�	�	�	r.c	�x����fd�}g��j����j�d�fd�����j�dd����j���|dd���s��d��g��jjj}�j�dt�j�dd����������	|�jjj��|dd���s��d��dSdS)	Nc�6��tdkr]���j�|��d�����j�||��d��t�j||���j���dS)N)rrr�r�)r	r&r��identify_column�identify_regionrr^)r]r^r)s  �r,�simulate_heading_clickzBTreeviewTest.test_heading_callback.<locals>.simulate_heading_click�s�����f�$�
K�� � ���!8�!8��!;�!;�T�B�B�B�� � ���!8�!8��A�!>�!>�	�J�J�J� ���!�Q�/�/�/��G�N�N�����r.r�c�.����d��Sr,r�r�s�r,r�z4TreeviewTest.test_heading_callback.<locals>.<lambda>�s���g�n�n�T�.B�.B�r.r�rSr�r4z>The command associated to the treeview heading wasn't invoked.)
r�rWr�r�r^r8r��_tclCommandsr�r&)r)r��commandsr�s`  @r,�test_heading_callbackz"TreeviewTest.test_heading_callback�sc����	�	�	�	�	���������������&B�&B�&B�&B��C�C�C�����t�3��'�'�'��������	��q�!�$�$�$��	��I�I��
�
�
����7�>�.�������c�$�'�/�/�$��/�*M�*M�&N�&N��O�O�O�����4�7�>�#>�?�?�?���q�!�$�$�$��	��I�I��
�
�
�
�
�	�	r.c��|�tj|jjd��|�|j�d��d��|j�dd��}|j�dd��}|j�|d��}|j�|d��}|�|j�|��d��|�|j�|��d��|�|j�|��d��|�|j�|��d��|j�|dd��|�|j�|��d��|�|j�|��d��|j�|��|�|j�|��d��|j�|��|�|j�|��d��|j�	|��|�tj|jj|��dS)N�whatrrr9r�)
rcrdrr�r5r&r;r�r�rE)r)r�r��c1�c2s     r,rGzTreeviewTest.test_index
s6�����'�*�D�G�M�6�B�B�B��������r�*�*�A�.�.�.�����r�5�)�)������r�5�)�)��
�W�^�^�E�5�
)�
)��
�W�^�^�E�5�
)�
)���������u�-�-�q�1�1�1��������r�*�*�A�.�.�.��������r�*�*�A�.�.�.��������u�-�-�q�1�1�1�����U�B��"�"�"��������u�-�-�q�1�1�1��������u�-�-�q�1�1�1�	
����u�����������r�*�*�A�.�.�.�����r�����������r�*�*�A�.�.�.�	
����u�������'�*�D�G�M�2�>�>�>�>�>r.c	�n�|�tj|jjdd��|�tj|jjddd���|�tj|jjddd���|�|j�|j�ddd�������|�|j�|j�ddd�������|�tj|jjdd��|j�ddd	��}|�|d	��|�tj|jjddd	��|�tj|jjddtd	����d
}|j�dd|f���}|�|j�	|d��|j
r|fn|��|�|j�	|d���|j
r|fn|��|j�	||j�|j�	|d��������|�|j�	|d���|j
r|fn|��|�
|j�	|��t��|j�	|d���|�|j�	|d�����|j�ddd
d|g���}|�|j�	|d���|j
rdd|fnd|z��|j�	|g���|�|j�	|d�����|j�	|d���|�|j�	|d���|j
rdnd��|j�ddd|�d|��f���}|�|j�	|d���|j
r	d|�d|��fnd|�d|�d���|�|j�	|j�ddd���d���d��|�|j�	|j�dd|���d���|��|j�ddd��}|�|d��|j�ddd��}|�|d��|�tj|jjddd��|�tj|jjddd��dS) Nrr9r)�open�pleaseTF�middlez
first-itemuábar�rLr�r[��tagsr�r�z1 2 %s�r�r[)r�r�z1 2r�rz	{a b c} {�}z
Label herer�rr1gz0.0)rcrdrr�r;r�rEr&r�itemr�rV�	splitlistr�r�)r)�itemidr�r�s    r,�test_insert_itemzTreeviewTest.test_insert_item+s������'�*�D�G�N�F�E�J�J�J�	
���'�*�D�G�N�B���	�	�	�	����'�*�D�G�N�B���	�	�	�	������������r�5�t��(L�(L�M�M�N�N�N������������r�5�u��(M�(M�N�N�O�O�O�	
���'�*�D�G�N�B��I�I�I������E�<�8�8�������.�.�.����'�*�D�G�N�B���	�	�	����'�*�D�G�N�B���|�$�$�	&�	&�	&����w�~�~�b�%��	�~�:�:���������d�H�5�5�%)�%5�@�%���5�	B�	B�	B��������d�4��8�8�%)�%5�@�%���5�	B�	B�	B�	
����T�$�)�"5�"5�d�g�l�l�4�PT�l�6U�6U�"V�"V��W�W�W��������d�4��8�8�%)�%5�@�%���5�	B�	B�	B�	
���d�g�l�l�4�0�0�$�7�7�7�	
����T�"��%�%�%��������d�4��8�8�9�9�9��w�~�~�b�%�q�!�U�m�~�<�<���������d���6�6�.2�.>�*�#�s�E�*�*�!�E�)�	+�	+�	+�	
����T���#�#�#��������d���6�6�7�7�7�����T���'�'�'��������d���6�6�'+�'7�B���U�	D�	D�	D��w�~�~�b�%���u�u�e�e�$�1&�~�'�'���������d�4��8�8�37�3C�
/�W������.�/�/�
/�!&������.�	0�	0�	0�
	
��������G�N�N�2�u�<�N�8�8�t�&�E�E��	�	�	�	
��������G�N�N�2�u�5�N�1�1��&�>�>��	�	�	�
�����E�1�-�-�������%�%�%������E�3�/�/�������'�'�'����'�*�D�G�N�B��u�M�M�M����'�*�D�G�N�B��r�J�J�J�J�Jr.c�f�|�t|jjd��|�tj|jjd��|�tj|jjd��|�tj|jjd��|�tj|jj	d��|j�
dd��}|j�
dd��}|j�
|d��}|j�
|d��}|j�
|d��}|�|j���d��|j�||��|�|j���||f��|j�|��|�|j���|f��|j�||��|�|j���|||f��|j�|��|�|j���||||f��|j���|�|j���||||f��|j�||��|�|j���|||f��|j�|��|�|j���||f��|j���|�|j���||f��|j�	||��|�|j���||f��|j�	|��|�|j���|f��|j�	��|�|j���|f��|j�
ddd���|j�d��|�|j���d��|j�
ddd	���|j�d	��|�|j���d
��|j�
ddd���|j�d��|�|j���d��|j�
ddd
���|j�d
��|�|j���d��|j���|�|j���d��|j�||f��|�|j���||f��|j�||f��|�|j���|||f��|j�||f��|�|j���||f��|j�	||f��|�|j���||f��dS)Nr�rrr9r>�with spacesr�)r��{brace)r��
unicode€)r�sbytes€)ubytes€)rc�	TypeErrorr��	selectionrdr�
selection_set�
selection_add�selection_remove�selection_toggler;r&)r)r�r�r�r��c3s      r,�test_selectionzTreeviewTest.test_selectionws������)�T�W�%6��?�?�?����'�*�D�G�,A�6�J�J�J����'�*�D�G�,A�6�J�J�J����'�*�D�G�,D�f�M�M�M����'�*�D�G�,D�f�M�M�M�����r�5�)�)������r�5�)�)��
�W�^�^�E�5�
)�
)��
�W�^�^�E�5�
)�
)��
�W�^�^�E�5�
)�
)�������*�*�,�,�b�1�1�1�����b�%�(�(�(������*�*�,�,�r�5�k�:�:�:�����b�!�!�!������*�*�,�,�r�e�4�4�4�����b�%�(�(�(������*�*�,�,�r�2�u�o�>�>�>�����e�$�$�$������*�*�,�,�u�b�"�e�.D�E�E�E�������������*�*�,�,�u�b�"�e�.D�E�E�E��� � ���+�+�+������*�*�,�,�r�2�u�o�>�>�>��� � ��$�$�$������*�*�,�,�r�5�k�:�:�:��� � �"�"�"������*�*�,�,�r�5�k�:�:�:��� � ��R�(�(�(������*�*�,�,�r�5�k�:�:�:��� � ��'�'�'������*�*�,�,�r�e�4�4�4��� � �"�"�"������*�*�,�,�r�e�4�4�4�����r�5�]��3�3�3�����m�,�,�,������*�*�,�,�.>�?�?�?�����r�5�X��.�.�.�����h�'�'�'������*�*�,�,�k�:�:�:�����r�5�_��5�5�5�����o�.�.�.������*�*�,�,�.@�A�A�A�����r�5�%9��:�:�:�����2�3�3�3������*�*�,�,�.D�E�E�E�������������*�*�,�,�b�1�1�1�	
����r�5�k�*�*�*������*�*�,�,�r�5�k�:�:�:�����r�5�k�*�*�*������*�*�,�,�u�b�%�.@�A�A�A��� � �%���-�-�-������*�*�,�,�r�5�k�:�:�:��� � �"�b��*�*�*������*�*�,�,�r�5�k�:�:�:�:�:r.c��ddg|jd<|j�ddddg���}|�|j�|��ddd	���|j�|dd��|�|j�|d���|jrd
nd��dg|jd<|�|j�|��ddi��|j�|dd��|�|j�|d���d��|�|j�|d���|jrd
nd��|j�|dd��|�|j�|d��|jrdnd��|�|j�|d���|jrdnd��|�|j�|��|jrddinddi��|�tj|jj|d��|�tj|jj|dd��|�tj|jjd��dS)N�A�Br|rr9r4r�r�)r�r�)r4r4za a)r�)r�r4zb a�{�123)r�r4z123 a�notme)	r�r;r&r�r�r�rcrdr)r)r�s  r,rzTreeviewTest.test_set�s���!�3�Z���	���w�~�~�b�%��c�
�~�;�;���������T�*�*�#�C�,@�,@�A�A�A�����D�#�s�#�#�#��������d�4��8�8�'+�'7�B���U�	D�	D�	D�"�U���	���������T�*�*�S�#�J�7�7�7�����D�#�s�#�#�#��������T�#��6�6��<�<�<��������d�4��8�8�'+�'7�B���U�	D�	D�	D�	
����D�#�s�#�#�#��������T�3�/�/� $� 0�;���e�	=�	=�	=��������d�4��8�8�'+�'7�D���W�	F�	F�	F��������T�*�*�'+�'7�I�#�s���c�5�\�	K�	K�	K�	
���'�*�D�G�K��s�C�C�C����'�*�D�G�K��s�C�H�H�H�	
���'�*�D�G�K��A�A�A�A�Ar.c��	�g�	|j�dddg���}|j�dddg���}|j�dd�	fd���|j�dd�	fd���|j���|j���t��}t��}t
d	d
d��D]a}t|��dkrnK|j�|��}|r.||vr*|�	|��|�	|���b|�
t|��d��|D]}t|jd	|���|�
t�	��d
��t�	ddd��	ddd���D]}|�
|d���dS)Nrr9�callr�r[c�.����d��Sr�r��rg�eventss �r,r�z,TreeviewTest.test_tag_bind.<locals>.<lambda>������
�
�a�(�(�r.r_c�.����d��S)Nr[r�r�s �r,r�z,TreeviewTest.test_tag_bind.<locals>.<lambda>�r�r.rrSr�r[rhr�r�)
r�r;�tag_bindrWr^r�r7r��identify_rowr�r&r�zip)
r)r�r��pos_y�foundr:r�r^rgr�s
         @r,�
test_tag_bindzTreeviewTest.test_tag_bind�s����������r�5��x��8�8������r�5��x��8�8�������!2�(�(�(�(�	*�	*�	*������!4�(�(�(�(�	*�	*�	*�	
�����������������������q�#�r�"�"�	#�	#�A��5�z�z�Q��
����g�*�*�1�-�-�G��
#�7�%�/�
#��	�	�!�����	�	�'�"�"�"������U���Q�'�'�'��	0�	0�A� ���!�Q�/�/�/�/�	
����V���a�(�(�(��v�c�c��c�{�F�1�4�a�4�L�1�1�	*�	*�C����S�&�)�)�)�)�	*�	*r.c�:�|�t|jj��|�tj|jjdd���|j�dd���|�t|j�dd����d��|�t|j�dd�����d��|�|j�d��t��dS)Nr��blue)�sky)r�r�)
rcr�r��
tag_configurerdrr&r�r�r�res r,�test_tag_configurezTreeviewTest.test_tag_configure�s�����)�T�W�%:�;�;�;����'�*�D�G�,A���	�	 �	 �	 �����f���8�8�8�����T�W�2�2�6�<�H�H�I�I��	�	�	�����T�W�2�2�6�d�2�K�K�L�L��	�	�	����d�g�3�3�F�;�;�T�B�B�B�B�Br.c�Z�|j�ddddg���}|j�ddddg���}|�t|jj��|�t
|jjdd��|�|j�d|����|�|j�d|����|�|j�d|����|�|j�d|����|�|j�d	|����|�|j�d	|����|�|j�d��|f��|�|j�d��|f��|�|j�d	��d
��dS)Nrr9zItem 1�tag1)rRr�zItem 2�tag2znon-existing�tag3r>)	r�r;rcr��tag_hasrr�r�r&)r)r�r�s   r,�test_tag_haszTreeviewTest.test_tag_has	s�������r�5�x�v�h��G�G������r�5�x�v�h��G�G�����)�T�W�_�5�5�5����(�D�G�O�V�^�L�L�L����������6�6�7�7�7����������7�7�8�8�8����������7�7�8�8�8����������6�6�7�7�7����������7�7�8�8�8����������7�7�8�8�8���������0�0�5�(�;�;�;���������0�0�5�(�;�;�;���������0�0�"�5�5�5�5�5r.)rJrKrLr�rTr%r�r�rXr�rr'r�r�r�r�r�r�r�r�rGr�r�rr�r�rrxrys@r,r{r{�s���������G�)�)�)�)�)�1�1�1�/�/�/�G�G�G� J�J�J�
:�:�:�
L�L�L�3�3�3�25�5�5�6���21�1�1�.'<�'<�'<�RB�B�B�A�A�A���� ���F?�?�?�<JK�JK�JK�XD;�D;�D;�LB�B�B�@*�*�*�@
C�
C�
C�
6�
6�
6�
6�
6�
6�
6r.r{c��eZdZdZdZd�ZdS)�
SeparatorTest)rr�r�rDr�r�c�0�tj|jfi|��Srl)r�	SeparatorrVr�s  r,r%zSeparatorTest.create!r(r.Nr)r>r.r,rrs1�������G�"�N�2�2�2�2�2r.rc��eZdZdZd�ZdS)�SizegripTest)rr�rDr�c�0�tj|jfi|��Srl)r�SizegriprVr�s  r,r%zSizegripTest.create,rQr.Nr�r>r.r,r
r
%s*�������G�
1�1�1�1�1r.r
c��eZdZd�Zd�ZdS)�DefaultRootTestc�D�|�tj��dSrl)�_test_widgetrr�res r,�
test_framezDefaultRootTest.test_frame2������#�)�$�$�$�$�$r.c�D�|�tj��dSrl)rrr�res r,�
test_labelzDefaultRootTest.test_label5rr.N)rJrKrLrrr>r.r,rr0s2������%�%�%�%�%�%�%�%r.r�__main__)4�unittestrdrr�test.supportrrrG�test.test_ttk_textonlyr�tkinter.test.supportrr	r
rr�tkinter.test.widget_testsr
rrrrrr�TestCaserNr{r~r�r�r�r�r�rrJr�r�r�r�r�skipIfrHr%r+r[r{rr
r�	tests_guirJ�mainr>r.r,�<module>rs�����������!�!�!�!�!�!�!�!�-�-�-�-�-�-�-�-�
�
�
�
�-�-�-�-�-�-�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�����������������	������$
�$
�$
�$
�$
�2�$
�$
�$
�N5<�5<�5<�5<�5<���!2�5<�5<�5<�p�����-�~������-�.�.�.�.�.�.�.�$�h�&7�.�.�/�.�.���-�.�.������)�8�+<���/�.��28�8�8�8�8�*�8�8�8�B��-�.�.�O�O�O�O�O�!�8�#4�O�O�/�.�O�&��-�.�.�!�!�!�!�!�"�H�$5�!�!�/�.�!�,��-�.�.�-4�-4�-4�-4�-4�'��):�-4�-4�/�.�-4�`��&�(?�@�@�|1�|1�|1�|1�|1�"�H�$5�|1�|1�A�@�|1�~��&�(?�@�@�y�y�y�y�y�9�h�/�y�y�A�@�y�x��&�(?�@�@�~:�~:�~:�~:�~:�(�(�*;�~:�~:�A�@�~:�B��-�.�.�0H�0H�0H�0H�0H�'��):�0H�0H�/�.�0H�f�����&��(9����.��-�.�.�fB�fB�fB�fB�fB�"�H�$5�fB�fB�/�.�fB�R��-�.�.�)�)�)�)�)�(�(�*;�)�)�/�.�)�D������)�5�7�7���-�.�.�2�2�2�2�2�&��(9�2�2�/�.�7�7�2���&�(?�@�@�N=�N=�N=�N=�N=�%�x�'8�N=�N=�A�@�N=�b��&�(?�@�@�k�k�k�k�k�)�X�.�k�k�A�@�k�\��-�.�.�Y6�Y6�Y6�Y6�Y6�%�x�'8�Y6�Y6�/�.�Y6�x��-�.�.�2�2�2�2�2�&��(9�2�2�/�.�2���-�.�.�1�1�1�1�1�%�x�'8�1�1�/�.�1�%�%�%�%�%�-�x�/@�%�%�%�	�O�\�9��>�9�n��o����M�=��k�<��_�
�	��z����H�M�O�O�O�O�O��r.