Your IP : 216.73.216.213


Current Path : /opt/alt/python38/lib64/python3.8/tkinter/test/test_ttk/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/tkinter/test/test_ttk/__pycache__/test_widgets.cpython-38.pyc

U

i�f@
�@s0ddlZddlZddlmZmZddlmZddlZddlmZddl	m
Z
mZmZm
Z
mZddlmZmZmZmZmZmZmZed�Gdd	�d	e�ZGd
d�de
ej�ZGdd
�d
ee�Zee�Gdd�deej��Zee�Gdd�deej��ZGdd�de�Zee�Gdd�deej��Zee�Gdd�deej��Zee�Gdd�deej��Z eee�Gdd�deej��Z!eee�Gdd�de!ej��Z"eee�Gdd�deej��Z#ee�Gd d!�d!eej��Z$Gd"d#�d#eej�Z%ee�Gd$d%�d%eej��Z&ee�Gd&d'�d'eej��Z'e�(ej)d(kd)�ee�Gd*d+�d+eej���Z*eee�Gd,d-�d-eej��Z+eee�Gd.d/�d/e!ej��Z,ee�Gd0d1�d1eej��Z-ee�Gd2d3�d3eej��Z.ee�Gd4d5�d5eej��Z/Gd6d7�d7eej�Z0ee e"e!eeee%e+e#e'e$e&e*e.e/e,e-ee0fZ1e2d8k�r,e�3�dS)9�N)�ttk�TclError)�requires)�
MockTclObj)�AbstractTkTest�tcl_version�get_tk_patchlevel�simulate_mouse_click�AbstractDefaultRootTest)�add_standard_options�noconv�AbstractWidgetTest�StandardOptionsTests�IntegerSizeTests�PixelSizeTests�setUpModuleZguic@s$eZdZdd�Zdd�Zdd�ZdS)�StandardTtkOptionsTestscCs\|��}|�|dd�d}t�dkr*d}|j|dd|d�|jdd�}|�|dd�dS)	N�class��"attempt to change read-only option���rZbeta��"Attempt to change read-only option�Foo��errmsg�Zclass_)�create�assertEqualr�checkInvalidParam��self�widgetrZwidget2�r%�G/opt/alt/python38/lib64/python3.8/tkinter/test/test_ttk/test_widgets.py�test_configure_classs
z,StandardTtkOptionsTests.test_configure_classcCs�|��}|j|dddd�|j|dddd�|j|dddd�|j|dd	d
d�|j|dddd�|�|dd
�|j|dddd�dS)N�paddingr)�0�Zexpected�)�5)r+r)r,�6)r+r�)r,r-�7)r+rr.r)r,r-r/�8)Z5pZ6pZ7pZ8pr%r�r�
checkParam�r#r$r%r%r&�test_configure_paddings
�
�z.StandardTtkOptionsTests.test_configure_paddingcCsj|��}|�|dd�d}t|d�r8dt|d���}|j|dd|d�|jdd�}|�|d	d�dS)
N�stylerzLayout Foo not found�default_orientzLayout %s.Foo not foundrrrr)rr �hasattr�getattr�titler!r"r%r%r&�test_configure_style)s
�
�z,StandardTtkOptionsTests.test_configure_styleN)�__name__�
__module__�__qualname__r'r4r:r%r%r%r&rs
rcs0eZdZdZ�fdd�Zdd�Zdd�Z�ZS)�
WidgetTestz,Tests methods available in every ttk widget.cs,t���tj|jddd�|_|j��dS)NrZText)�width�text)�super�setUpr�Button�rootr$�pack�r#��	__class__r%r&rB;s
zWidgetTest.setUpcCs�|j��|�|j�t|j��d�t|j��d��d�|�|j�dd�d�|�tj	|jjdd�|�tj	|jjdd�|�tj	|jjdd�dS)N��label���rr+)
r$�updater �identify�int�winfo_width�winfo_height�assertRaises�tkinterrrFr%r%r&�
test_identifyAs

��zWidgetTest.test_identifycCs>|�|j��d�|�|j�dg�d�|�|j�dg�d�|�|j�dg�d�|�|j�ddg�d�|�|j�ddg�d�|�|j�ddg�d�dd	�}|�|jjdg|d
fddi�d
ddif�|j��}|�tj|jjd
g�|�tj|jjdd
g�|�||j���|j�ddg�|�|j��d�dS)Nr%�	!disabledT�disabled)rT�active)z!activerUc[s||fS�Nr%)Zarg1�kwr%r%r&�test_cb^sz-WidgetTest.test_widget_state.<locals>.test_cb�hi�msgZthereZbadstate)rV)r r$�stateZinstaterQrRr)r#rYZ	currstater%r%r&�test_widget_stateNs8���
�
��zWidgetTest.test_widget_state)r;r<r=�__doc__rBrSr]�
__classcell__r%r%rGr&r>8s
r>c@seZdZeZdS)�AbstractToplevelTestN)r;r<r=r�_conv_pixelsr%r%r%r&r`rsr`c@seZdZdZdd�ZdS)�	FrameTest)	�borderwidthr�cursor�heightr(�reliefr5�	takefocusr?cKstj|jf|�SrW)r�FramerD�r#�kwargsr%r%r&r~szFrameTest.createN�r;r<r=�OPTIONSrr%r%r%r&rbvsrbc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�LabelFrameTest)
rcrrdre�labelanchor�labelwidgetr(rfr5rgr@�	underliner?cKstj|jf|�SrW)rZ
LabelFramerDrir%r%r&r�szLabelFrameTest.createcCsB|��}|j|ddddddddd	d
ddd
dd�|�|dd�dS)Nrn�eZenZes�n�neZnw�sZse�sw�wZwnZwsz!Bad label anchor specification {}r�center)r�checkEnumParamr!r3r%r%r&�test_configure_labelanchor�s"�z)LabelFrameTest.test_configure_labelanchorcCs8|��}tj|jddd�}|j|d|dd�|��dS)NZMuppZfoo)r@�nameroz.foor*)rr�LabelrDr2�destroy)r#r$rJr%r%r&�test_configure_labelwidget�sz)LabelFrameTest.test_configure_labelwidgetN)r;r<r=rlrryr}r%r%r%r&rm�srmc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�AbstractLabelTestcCs�tj|jdd�}tj|jdd�}|j|||dd�|j||ddd�|j|||fdd�|j|||d|fdd�|j||ddd�|j||d	d
d�dS)N�image1)�masterrz�image2)rr*rV)rrVr�zimage1 active image2�spamzimage "spam" doesn't existr)rRZ
PhotoImagerDr2r!)r#r$rz�imager�r%r%r&�checkImageParam�s�
�
�z!AbstractLabelTest.checkImageParamcCsNd��}dd�|dd���d|d��}|��}|j|df|�d|i�dS)Nz,none text image center top bottom left rightzbad compound "{}": must be z, rKz, or �compoundr)�split�joinrrx)r#Zoptionsrr$r%r%r&�test_configure_compound�s
 �z)AbstractLabelTest.test_configure_compoundcCs|��}|�|dddd�dS)Nr\rVrU�normal�rZcheckParamsr3r%r%r&�test_configure_state�sz&AbstractLabelTest.test_configure_statecCs|��}|�|dddd�dS)Nr?i�in���rr�r3r%r%r&�test_configure_width�sz&AbstractLabelTest.test_configure_widthN)r;r<r=r�r�r�r�r%r%r%r&r~�s
	r~c@s$eZdZdZeZdd�Zdd�ZdS)�	LabelTest)�anchor�
backgroundrcrr�rd�font�
foregroundr��justifyr(rfr\r5rgr@�textvariablerpr?Z
wraplengthcKstj|jf|�SrW)rr{rDrir%r%r&r�szLabelTest.createcCs|��}|�|dd�dS)Nr�z3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*r1r3r%r%r&�test_configure_font�s�zLabelTest.test_configure_fontN)r;r<r=rlrrarr�r%r%r%r&r��sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
ButtonTest)r�commandr�rd�defaultr�r(r\r5rgr@r�rpr?cKstj|jf|�SrW)rrCrDrir%r%r&r�szButtonTest.createcCs|��}|�|dddd�dS)Nr�r�rVrU�rrxr3r%r%r&�test_configure_default�sz!ButtonTest.test_configure_defaultcs2g�tj|j�fdd�d�}|��|���dS)Ncs
��d�S�N���appendr%��successr%r&�<lambda>��z(ButtonTest.test_invoke.<locals>.<lambda>�r�)rrCrD�invoke�
assertTrue)r#Zbtnr%r�r&�test_invoke�szButtonTest.test_invokeN)r;r<r=rlrr�r�r%r%r%r&r��sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�CheckbuttonTest)rr�r�rdr��offvalue�onvaluer(r\r5rgr@r�rp�variabler?cKstj|jf|�SrW)r�CheckbuttonrDrir%r%r&r�szCheckbuttonTest.createcCs |��}|�|ddddd�dS)Nr�r��ffffff@r�
any stringr�r3r%r%r&�test_configure_offvalue�sz'CheckbuttonTest.test_configure_offvaluecCs |��}|�|ddddd�dS)Nr�r�r�rr�r�r3r%r%r&�test_configure_onvalue�sz&CheckbuttonTest.test_configure_onvaluecs�g��fdd�}tj|j|d�}|�|��d�|�tj|jj	|d�|�
�}|�|d�|�|d|j�	|d��|���d|d	<|�
�}|�t
|��|�t��d
�|�|d|j�	|d��dS)Ncs��d�dS�Nr��cb test calledr�r%r�r%r&�cb_tests
z,CheckbuttonTest.test_invoke.<locals>.cb_testr�)Z	alternater�r�r�rr�r�r�)rr�rDr r\rQrRr�tk�globalgetvarr�r��assertFalse�str�assertLessEqual�len)r#r��cbtn�resr%r�r&r��s(�
�

�zCheckbuttonTest.test_invokeN)r;r<r=rlrr�r�r�r%r%r%r&r��s
	r�csxeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Z�ZS)�	EntryTest)r�rrd�exportselectionr�r��invalidcommandr��showr\r5rgr��validate�validatecommandr?�xscrollcommandcst���|��|_dSrW)rArBr�entryrFrGr%r&rB#s
zEntryTest.setUpcKstj|jf|�SrW)rZEntryrDrir%r%r&r'szEntryTest.createcCs|��}|�|d�dS)Nr��rZcheckCommandParamr3r%r%r&�test_configure_invalidcommand*sz'EntryTest.test_configure_invalidcommandcCs6|��}|�|dd�|�|dd�|�|dd�dS)Nr��*r� r1r3r%r%r&�test_configure_show.szEntryTest.test_configure_showcCs|��}|�|dddd�dS)Nr\rUr��readonlyr�r3r%r%r&r�4s�zEntryTest.test_configure_statec
Cs$|��}|�|ddddddd�dS)Nr��all�key�focusZfocusinZfocusout�noner�r3r%r%r&�test_configure_validate9s�z!EntryTest.test_configure_validatecCs|��}|�|d�dS)Nr�r�r3r%r%r&�test_configure_validatecommand>sz(EntryTest.test_configure_validatecommandcCs>|�|j�d��|�tj|jjd�|�tj|jjd�dS)NrZnoindex)�assertIsBoundingBoxr��bboxrQrRrrFr%r%r&�	test_bboxCszEntryTest.test_bboxcCs�|j��|j��tjdkr6|�|j�dd�d�n|�|j�dd�d�|�|j�dd�d�|�t	j
|jjdd�|�t	j
|jjdd�|�t	j
|jjdd�dS)N�darwinr+)�textareazCombobox.buttonr�rKr)r�rErL�sys�platformZassertInrMr rQrRrrFr%r%r&rSIs


�zEntryTest.test_identifycs�g��fdd�}d|jd<dd�|jd<||jd<|j��|���d|jd<|j��|�t��d	�||jd<d
d�|jd<|j��|�t��d	�d|jd<|j��|�t��d	�d|jd<|�tj|jj�dS)Ncs
��d�S�NTr�r%r�r%r&r�\r�z3EntryTest.test_validation_options.<locals>.<lambda>r�r�cSsdS)NFr%r%r%r%r&r�_r�r�r�rr�cSsdSr�r%r%r%r%r&r�jr�T)r�r�r�r r�rQrRr)r#Ztest_invalidr%r�r&�test_validation_optionsZs&










z!EntryTest.test_validation_optionscsrg��fdd�}d|jd<|j�|�df|jd<|j�dd�|j�dd	�|��d
dg�|�|j��d	�dS)Ncs6d|��krdks(n��d�dS��d�dS�N�a�zFT)�lowerr�)Z	to_insert�Z
validationr%r&r�xs


z+EntryTest.test_validation.<locals>.validater�r�z%Sr��endr�r�FT)r��register�insertr �get�r#r�r%r�r&�test_validationvs
zEntryTest.test_validationcCs�dd�}|j�|�df|jd<|j�dd�|�|j��d�|�|j��d�|j�d	d�|�|j��d
�|j�dd�|�|j��d�|�|j��d
�|j�d�|�|j��d�|�|j��d�dS)NcSs.|D]$}d|��kr dksndSqdSr�)r�)ZcontentZletterr%r%r&r��sz-EntryTest.test_revalidation.<locals>.validatez%Pr�r�ZavocadoTr%rrZa1bF)�invalidr�)r�r�r�r r�r\�deleter�r�r%r%r&�test_revalidation�szEntryTest.test_revalidation)r;r<r=rlrBrr�r�r�r�r�r�rSr�r�r�r_r%r%rGr&r�sr�csPeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
�ZS)�ComboboxTest)r�rrdr�r�r�rer�r��postcommandr�r\r5rgr�r�r��valuesr?r�cst���|��|_dSrW)rArBr�comborFrGr%r&rB�s
zComboboxTest.setUpcKstj|jf|�SrW)r�ComboboxrDrir%r%r&r�szComboboxTest.createc
Cs$|��}|�|ddddddd�dS)Nre�d������LY@�fffff�Y@���rZ1ir�r3r%r%r&�test_configure_height�sz"ComboboxTest.test_configure_heightcCs`|j��}|dd}}|�|j�||�d�|jjd||d�|jjd||d�|j��dS)Nr+�
.*downarrow\Z�<ButtonPress-1>��x�y�<ButtonRelease-1>)r�rO�assertRegexrM�event_generate�update_idletasks)r#r?r�r�r%r%r&�_show_drop_down_listbox�s
z$ComboboxTest._show_drop_down_listboxcszg�dg|jd<|j�d�fdd��|j��|j��|j��}|��|j��|j�d�|j��|���dS)Nr�r�z<<ComboboxSelected>>cs
��d�Sr�r���evtr�r%r&r��r�z1ComboboxTest.test_virtual_event.<locals>.<lambda>z<Return>)r��bindrErLrPr�r�r�)r#rer%r�r&�test_virtual_event�s
�




zComboboxTest.test_virtual_eventcsbg��fdd�|jd<|j��|j��|��|���d|jd<|��|�t��d�dS)Ncs
��d�Sr�r�r%r�r%r&r��r�z9ComboboxTest.test_configure_postcommand.<locals>.<lambda>r�rr�)r�rErLr�r�r r�rFr%r�r&�test_configure_postcommand�s



z'ComboboxTest.test_configure_postcommandcs��fdd�}���jdtdkr$dnd�|dd��j�jddd	d
����jdd	����jdd����jdd�dd
dg�jd<�j�d�|dd��j�d�|dd��j�d�|dd��j�d�d�jd<|dd��jjd
ddgd����jd�j�rdnd�dddg�jd<���jd�j�rDdnd�dddg�jd<���jd�j�rrdnd���t	j
�jjt�jd����t	j
�jjd�tj
�jd
ddgd�}��|d�j�r�d nd!�|��dS)"Ncs(���j��|����j��|�dSrW)r r�r��current)ZgetvalZcurrvalrFr%r&�check_get_current�sz=ComboboxTest.test_configure_values.<locals>.check_get_currentr��rr+r%rrK�mon tue wed thur�ZmonZtueZwedZthurr*��*g��Q�	@rr�r�r��crIr�d)r�rIrr�r���1r�2�1 {} 2�a b�a	b�a
b�rr
r�{a b} {a	b} {a
b}�a\tb�"a"�} {�rrr�a\\tb {"a"} \}\ \{�r	r
r�1 2 {})r r�rr2�setr��	configure�wantobjectsrQrRrr�rr�rDr|)r#r�Zcombo2r%rFr&�test_configure_values�sZ�
�




����
�z"ComboboxTest.test_configure_values)r;r<r=rlrBrr�r�r�r�rr_r%r%rGr&r��s	r�csXeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Z�ZS)�PanedWindowTest)rrdre�orientr5rgr?cst���|��|_dSrW)rArBr�panedrFrGr%r&rB&s
zPanedWindowTest.setUpcKstj|jf|�SrW)rZPanedWindowrDrir%r%r&r*szPanedWindowTest.createcCsd|��}|�t|d�d�d}t�dkr.d}|j|dd|d�|jdd�}|�t|d�d�dS)	Nr�verticalrrr�
horizontalr)r)rr r�rr!r"r%r%r&�test_configure_orient-s

�z%PanedWindowTest.test_configure_orientcCst�|j�}t�|�}|�tj|jj|�|��|��t�|j�}t�|�}|�tj|jj|�|��|��t�|j�}|j�|�|�tj|jj|�t�|j�}|j�|�|�	|j�
d�|j�
d��|�tj|jj
d�|��|��|�tj|jj
d�dS)Nrr�rI)rr{rrQrRr�addr|rDr �pane)r#rJ�childZ
good_childZother_childr%r%r&�test_add8s(

zPanedWindowTest.test_addcCs`|�tj|jjd�|�tj|jjd�|j�t�|j��|j�d�|�tj|jjd�dS)Nr)	rQrRrr�forgetr"rr{rDrFr%r%r&�test_forgetTs
zPanedWindowTest.test_forgetcCst|�tj|jjdd�|�tj|jjdd�|�tj|jjdd�t�|j�}t�|j�}t�|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)Nrr�)rQrRrrr�rr{rDr �panesr�)r#r$�child2�child3r(r%r%r&�test_insert]s.�
�zPanedWindowTest.test_insertcCs�|�tj|jjd�t�|j�}|j�|�|�	|j�d�t
�|�|jjddd�|jr\dnd�|�|j�dd�|jr|dnd�|�|j�d�|j�t
|���|jtj|jjddd�dS)Nr��weightr)r-Z	somevalue)Z	badoption)rQrRrrr#rr{rDr"�assertIsInstance�dictr rr�)r#r$r%r%r&�	test_pane�s�� �zPanedWindowTest.test_panecCs�|�tj|jjd�|�tj|jjd�|�tj|jjd�tj|jdd�}|jj|dd�|�tj|jjd�tj|jdd�}|j�|�|�tj|jjd�|jjdd	d
�|j�d�}|j�dd�|�	||j�d��|�
|j�d�t�dS)Nrrr��r@r�r,�bTZboth)�expandZfilli�)rQrRrrZsashposrr{r"rE�assertNotEqualr.rN)r#r$r)Zcurr_posr%r%r&�test_sashpos�szPanedWindowTest.test_sashpos)
r;r<r=rlrBrr!r%r'r+r0r5r_r%r%rGr&rs	#rc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�RadiobuttonTest)rr�r�rdr�r(r\r5rgr@r�rp�valuer�r?cKstj|jf|�SrW)r�RadiobuttonrDrir%r%r&r�szRadiobuttonTest.createcCs |��}|�|ddddd�dS)Nr7r�r�rr�r�r3r%r%r&�test_configure_value�sz$RadiobuttonTest.test_configure_valuecs6g��fdd�}t�|j�}tj|j||dd�}tj|j||dd�}|jrTdd�}nt}|��}|�|d�|�||d	�|�	��|�|�	�||j
�|d
���|���d|d<|��}|�t
|�d�|�t��d�|�||d	�|�	��|�|�	�||j
�|d
���|�t
|d
�t
|d
��dS)
Ncs��d�dSr�r�r%r�r%r&r��s
z6RadiobuttonTest.test_configure_invoke.<locals>.cb_testr)r�r�r7r�cSs|SrWr%�r�r%r%r&r��r�z7RadiobuttonTest.test_configure_invoke.<locals>.<lambda>r�r7r�rr�)rRZIntVarrDrr8rrNr�r r�r�r�r�r�r�r�)r#r�Zmyvarr�Zcbtn2�convr�r%r�r&�test_configure_invoke�s<
�
�

�

�z%RadiobuttonTest.test_configure_invokeN)r;r<r=rlrr9r<r%r%r%r&r6�sr6c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�MenubuttonTest)rr�rd�	directionr��menur(r\r5rgr@r�rpr?cKstj|jf|�SrW)rZ
MenubuttonrDrir%r%r&r�szMenubuttonTest.createc	Cs"|��}|�|dddddd�dS)Nr>ZaboveZbelow�left�right�flushr�r3r%r%r&�test_direction�s�zMenubuttonTest.test_directioncCs4|��}tj|dd�}|j|d|td�|��dS)Nr?)rz�r;)rrRZMenur2r�r|)r#r$r?r%r%r&�test_configure_menu�sz"MenubuttonTest.test_configure_menuN)r;r<r=rlrrCrEr%r%r%r&r=�sr=csheZdZdZeZdZ�fdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Z�ZS)�	ScaleTest)rr�rd�from�lengthrr5rg�tor7r�r cs,t���|��|_|j��|j��dSrW)rArBr�scalerErLrFrGr%r&rB�s


zScaleTest.setUpcKstj|jf|�SrW)rZScalerDrir%r%r&r�szScaleTest.createcCs"|��}|j|dddddd�dS)NrGr��������-@�333333.@FrD�rZcheckFloatParamr3r%r%r&�test_configure_fromszScaleTest.test_configure_fromcCs |��}|�|ddddd�dS)NrH�gffffff`@g33333�`@Z5i�r�checkPixelsParamr3r%r%r&�test_configure_lengthszScaleTest.test_configure_lengthc	Cs$|��}|j|ddddddd�dS)NrI�,rKrL���FrDrMr3r%r%r&�test_configure_to
szScaleTest.test_configure_toc	Cs$|��}|j|ddddddd�dS)Nr7rSrKrLrTFrDrMr3r%r%r&r9szScaleTest.test_configure_valuecs�dddg�|j�d�fdd��}d|jd<d|jd<d|jd	<|���dddg�|jjd
dd�|jjd
dd�|jjdd�|���dS)Nr�z<<RangeChanged>>cs���SrW)�popr��Zfailurer%r&r�r�z-ScaleTest.test_custom_event.<locals>.<lambda>�
rG�from_rrIrIr+)rYrIr���)rI)rJr�r�r)r#Zfuncidr%rWr&�test_custom_events





zScaleTest.test_custom_eventcCs�|jrdd�}nt}|j��}|�|j�|d�|jd�|�||j�dd��||jd��|�|j��|jd�d|jd<|�|j��|jd�|�tj|jjdd�|�tj|jjdd�dS)	NcSs|SrWr%r:r%r%r&r�'r�z$ScaleTest.test_get.<locals>.<lambda>rrIrGr7�r)	r�floatrJrOr r�rQrRr)r#r;Zscale_widthr%r%r&�test_get%s

$
zScaleTest.test_getcCst|jrdd�}nt}||jd�}|d}|j�|�|�||j���|�||jd�}|j�|d�|�||j���|�t�|j�}||jd<|�|d�|�||j���|���|�||j���|d�~|d|jd	<|�||j���|d�|�||j���||jd	��|�||j�d
d
��|�|�||j�|j�	�d
��|�|�
tj|jjd�dS)NcSs|SrWr%r:r%r%r&r�9r�z$ScaleTest.test_set.<locals>.<lambda>rIrXrGr�r�r+r7r)rr]rJrr r�rRZ	DoubleVarrDrOrQr)r#r;�maxZnew_max�min�varr%r%r&�test_set7s,

  zScaleTest.test_set)r;r<r=rlrrar6rBrrNrRrUr9r[r^rbr_r%r%rGr&rF�srFc@sHeZdZdZeZdZdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�ZdS)�ProgressbarTest)rrdrrH�mode�maximumZphaser5rgr7r�r cKstj|jf|�SrW)rZProgressbarrDrir%r%r&reszProgressbarTest.createcCs|��}|�|dddd�dS)NrHgfffffY@g�����YL@Z2irPr3r%r%r&rRhsz%ProgressbarTest.test_configure_lengthc	Cs$|��}|j|ddddddd�dS)Nre�fffff�b@������lS@rrTFrDrMr3r%r%r&�test_configure_maximumlsz&ProgressbarTest.test_configure_maximumcCs|��}|�|ddd�dS)NrdZdeterminateZ
indeterminater�r3r%r%r&�test_configure_modepsz#ProgressbarTest.test_configure_modecCsdSrWr%rFr%r%r&�test_configure_phasetsz$ProgressbarTest.test_configure_phasec	Cs$|��}|j|ddddddd�dS)Nr7rfrgrrTFrDrMr3r%r%r&r9xs�z$ProgressbarTest.test_configure_valueN)
r;r<r=rlrrar6rrRrhrirjr9r%r%r%r&rc[srcr�z"ttk.Scrollbar is special on MacOSXc@seZdZdZdZdd�ZdS)�
ScrollbarTest)rr�rdrr5rgrcKstj|jf|�SrW)rZ	ScrollbarrDrir%r%r&r�szScrollbarTest.createN�r;r<r=rlr6rr%r%r%r&rk~srkcspeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�NotebookTest)rrdrer(r5rgr?cs\t���|jdd�|_t�|j�|_t�|j�|_|jj	|jdd�|jj	|jdd�dS)Nr�r(r�r1r2)
rArBr�nbrr{rD�child1r)r"rFrGr%r&rB�s
zNotebookTest.setUpcKstj|jf|�SrW)rZNotebookrDrir%r%r&r�szNotebookTest.createc	Cs<|j�d�|j�|j�|�tj|jj|j�|�	|j�
d�d�|j�|j�|�	|j�
d�d�|j�|j�|�
|j�d��|jj|jdd�|j��|j��tjdkr�d}nd	}|�	|j�|�|j�d��td
dd
�D]D}z&|jjd|dd�dk�rW�q8Wq�tjk
�r*Yq�Xq�|�d
�dS)Nrr�r�r�r�r1r�z@20,5z@5,5r+r�z@%d, 5zTab with text 'a' not found)ror&�hider)rQrRr�tabrpr �indexr"�selectr�rErLr�r��range�fail)r#Ztb_idx�ir%r%r&�test_tab_identifiers�s,


z!NotebookTest.test_tab_identifierscCsd|�tj|jjd�|�tj|jjd�|�tj|jjd�|�tj|jjd�|jtj|jjt�|j�dd�|j�	�}|j�|j
�|j�|j
�|�|j�	�|�t�|j�}|jj|dd�|j�	�}|j�d�}|j�|j
�}|j�|j
�|j�|j
�|�|j�	�|�|�|j�|j
�|�|�t|j
�|j�	�|�|�|j�d�|d�dS)	NrKrZZoption)�unknownrr1r�r�)rQrRrrorqr"rr{rD�tabsrpr rsr)r�)r#rzr$ZcurrZchild2_indexr%r%r&�test_add_and_hidden�s,�

z NotebookTest.test_add_and_hiddencCs�|�tj|jjd�|�tj|jjd�|�tj|jjd�|j��}|j�|j�}|j�|j�|�t	|j�|j���|�
t|�dt|j����|j�|j�|�
|j�|j�d�|�
||j�|j��dS)NrKrZr�)rQrRrror&rzrsrpZassertNotInr�r r�r"r4)r#rzZchild1_indexr%r%r&r'�s
zNotebookTest.test_forgetcCs�|�tj|jjd�|�tj|jjd�|�|j�d�t�|�|j�|j�d�|�|j�|j	�d�|�|j�d�d�dS)NrKr�rr�rI)
rQrRrrorsr.rNr rpr)rFr%r%r&�
test_index�szNotebookTest.test_indexcCs�|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�t	�
|j�}|j�d|�|�|j��|dt|�|df�|j�
|�|�|j��|�|j�|j|�|�|j��t|�f|�|j�
|�|�tj|jjd|�|�tj|jjd|�|�tj|jjdd�|�tj|jjdd�|�tj|jjdd�dS)Nr�rr�rIrK)rorzr�r rpr)rQrRrrr{rDr�r&)r#rzr*r%r%r&r+�s0
$zNotebookTest.test_insertcs�|j��|j��g�g�|j�d�fdd��|j�d�fdd��|�|j��t|j��|j�|j�|�	��|�|j��t|j��|j��|�	��dS)Nz<Unmap>cs
��d�Sr�r�r�r�r%r&r�r�z*NotebookTest.test_select.<locals>.<lambda>z<<NotebookTabChanged>>cs
��d�Sr�r�r�)�tab_changedr%r&r�r�)
rorErLrpr�r rtr�r)r�rFr%)r�r}r&�test_selects


�

zNotebookTest.test_selectcCs�|�tj|jjd�|�tj|jjd�|�tj|jjd�|�|j�|j�t�|�|jj|jdd�d�|�|j�|jd�d�|jj|jdd�|�|jj|jdd�d�|�|j�|jd�d�dS)NrKZnotabr1r�r@�abc)	rQrRrrorrr.rpr/r rFr%r%r&�test_tab'szNotebookTest.test_tabcCsH|�t|j���d�|j�|j�|j�|j�|�|j��d�dS)NrIr%)r r�rorzr&rpr)rFr%r%r&�test_configure_tabs5sz NotebookTest.test_configure_tabscCs\|j��|j��|j�d�|�|j�dd�d�t|jdd�|j��|j�d�|�|j��t	|j
��|j��|j�d�|�|j��t	|j��|j��|j�d�|�|j��t	|j
��|jj|jddd�|j�
�|j��|�|j�dd�d�t|jdd�tjdk�r4|j�d	�n|j�d
�|�|j��t	|j��dS)Nrr+r�z
<Control-Tab>z<Shift-Control-Tab>r�)r@rpr�z
<Option-a>z<Alt-a>)rorErLrtr rMr	Zfocus_forcer�r�r)rprrZenable_traversalr�r�rFr%r%r&�test_traversal>s.






zNotebookTest.test_traversal)r;r<r=rlrBrrxr{r'r|r+r~r�r�r�r_r%r%rGr&rm�s
!	rmcspeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�SpinboxTest)r�rr�rdr�r�r��formatrG�	incrementr�r�r�r\r5rgr�rIr�r�r�r?�wrapr�cs"t���|��|_|j��dSrW)rArBr�spinrErFrGr%r&rBes

zSpinboxTest.setUpcKstj|jf|�SrW)r�SpinboxrDrir%r%r&rjszSpinboxTest.createcCsp|j��}|j��}|d}|dd}|�|j�||�d�|jjd||d�|jjd||d�|j��dS)Nr+rIz.*uparrow\Zr�r�r��r�rOrPr�rMr�r��r#r?rer�r�r%r%r&�_click_increment_arrowms

z"SpinboxTest._click_increment_arrowcCsp|j��}|j��}|d}|dd}|�|j�||�d�|jjd||d�|jjd||d�|j��dS)Nr+rI�r�r�r�r�r�r�r%r%r&�_click_decrement_arrowws

z"SpinboxTest._click_decrement_arrowcs�g��fdd�|jd<|j��|��|j��|���|��|�t��d�d|jd<|j��|��|��|j��|�t��d�dS)Ncs
��d�Sr�r�r%r�r%r&r��r�z4SpinboxTest.test_configure_command.<locals>.<lambda>r�rIr)r�rLr�r�r�r r�r�rFr%r�r&�test_configure_command�s





z"SpinboxTest.test_configure_commandcCsbd|jd<d|jd<|j�d�|j��|��|�|j��d�|��|�|j��d�dS)NrrGr+rIr�r,)r�rrLr�r r�rFr%r%r&rU�s


zSpinboxTest.test_configure_tocCsbd|jd<d|jd<|j�d�|j��|��|�|j��d�|��|�|j��d�dS)Nr�rGrXrIrIr	)r�rrLr�r r�rFr%r%r&rN�s


zSpinboxTest.test_configure_fromcCs�d|jd<d|jd<d|jd<|j�d�|j��|��|�|j��d�d	|jd<|j��|��|�|j��d
�dS)NrrGrXrIr�r�r�r,rI�3)r�rrLr�r r�r�rFr%r%r&�test_configure_increment�s





z$SpinboxTest.test_configure_incrementcCs�|j�d�d|jd<|j��|��|j��}|�t|�d�|�|�d�d�d|jd<|j��|��|j��}|�d|k�|�t|�d�dS)Nr�z%10.3fr�rX�.rr)	r�rrLr�r�r r�rsr�)r#r7r%r%r&�test_configure_format�s





z!SpinboxTest.test_configure_formatcCs�d|jd<d|jd<|j�d�d|jd<|j��|��|�|j��d�|��|�|j��d�d	|jd<|j��|��|�|j��d�dS)
NrXrIr�rGTr��10r	F)r�rrLr�r r�r�rFr%r%r&�test_configure_wrap�s





zSpinboxTest.test_configure_wrapcCs�|�|jdtdkrdnd�|j|jdddd�|�|jdd�|�|jdd�|�|jdd�d	d
dg|jd<|j�d	�|j��|��|�|j��d�|��|�|j��d	�|jj	d
dd
gd�|�|jd|j
r�dnd�dddg|jd<|�|jd|j
�rdnd�dddg|jd<|�|jd|j
�rBdnd�tj|j
d
d
dgd�}|�|d|j
�rtdnd�|��dS)Nr�rr%rrrr*rr�r�rr	rIrrrrr
rrrrrrrrrr)r r�rr2rrLr�r�r�rrrr�rDr|)r#Zspin2r%r%r&r�sH��

���
�z!SpinboxTest.test_configure_values)r;r<r=rlrBrr�r�r�rUrNr�r�r�rr_r%r%rGr&r�[s


r�cs�eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Z�ZS)0�TreeviewTest)r�columnsrd�displaycolumnsrer(�
selectmoder�r5rgr�Zyscrollcommandcst���|jdd�|_dS)Nrrn)rArBr�tvrFrGr%r&rBs
zTreeviewTest.setUpcKstj|jf|�SrW)rZTreeviewrDrir%r%r&rszTreeviewTest.createcCs:|��}|j|dddd�|�|dd�|�|dd�dS)Nr��a b c�r�r2rr*rr1r3r%r%r&�test_configure_columnss
�z#TreeviewTest.test_configure_columnscCs�|��}d|d<|j|dddd�|�|dd�|j|dddd�|�|dd	�|j|dd
dd�|j|dd
dd�|j|dddd�dS)Nr�r�r�zb a c)r2r�rr*�#all)r�)rIr�r)r�r2rzInvalid column index dr)r�rIrzColumn index 3 out of bounds)r�rZzColumn index -2 out of bounds)rr2r!r3r%r%r&�test_configure_displaycolumns s&
�
�
�
�
�z*TreeviewTest.test_configure_displaycolumnsc	Cs8|��}|j|ddddddd�|j|ddd	td�dS)
Nrer�r�rZ3cFrDr�r�)rrQrr3r%r%r&r�0sz"TreeviewTest.test_configure_heightcCs|��}|�|dddd�dS)Nr�r�ZbrowseZextendedr�r3r%r%r&�test_configure_selectmode5s�z&TreeviewTest.test_configure_selectmodecCs^|��}|j|dddd�|�|dd�|�|dd�|j|dddd�|j|ddd	d�dS)
Nr�z
tree headings)�tree�headingsr*)r�r�r�)r�r�)r�r1r3r%r%r&r�:s
�z TreeviewTest.test_configure_showcCs�|j��|�|j�d�d�|j��|j�dd�}|j��}|�|�|j�|d�}|�|�dg|jd<|jj	ddd�|j�|dd�}|jj	ddd�}|j
s�t|�}|�|d|d|�|j�|d�}|�|j�|�d�dS)	Nrr�r�testr��2�r?�#0)r�rEr r�rLr��get_childrenr�r��columnrrN)r#�item_idZchildrenr�Zbbox_column0Z
root_widthrpr%r%r&r�Cs"




zTreeviewTest.test_bboxcCs�|�|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%rr�r)
r r�r�r�r.�tupleZset_childrenrQrRr)r#r�r)r*r%r%r&�
test_children]s"�zTreeviewTest.test_childrencCs�|�|j�d�t�|jr2|�|jjddd�t�|jjddd�|�|j�dd�|jr\dnd�|�|jjddd�|jr~dnd�|jtj	|jjddd�|�tj	|jjd�d	d
iddid
diddiddig}|D]}|jtj	|jjdf|�q�dS)Nr�r�rXr?r��X��idr�Zunknown_optionz
some valueZstretchZwrongr�Zminwidth)
r.r�r�r/rrNr rQrRr)r#Zinvalid_kwsrXr%r%r&�test_columnys,����zTreeviewTest.test_columncCs�|�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�rr�)
rQrRrr�r�r�r r�r��reattach)r#r��item2�item1r%r%r&�test_delete�s$�zTreeviewTest.test_deletecCs�|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�|�t	j
|jjddd�|�t	j
|jjd�|�t	j
|jj|dd�|�t	j
|jj|dd�|j�||�|�|j��d�|�|j�|�d�dS)Nrr�r%ZnonexistentZotherparentr�)r�r�r��detachr r�r��moverQrRr)r#r�r��prevr%r%r&�test_detach_reattach�sP

����z!TreeviewTest.test_detach_reattachcCsT|�|j�d�d�|�|j�d�d�|�|j�i�d�|�tj|jjd�dS)NZ	somethingFrT)r r��existsrQrRrrFr%r%r&�test_exists�szTreeviewTest.test_existscCst|�|j��d�|j�dd�}|j�|�|�|j��|�|j�|�|�|j��d�|�tj|jjd�dS)Nrr�rZ)r r�r�r�r�rQrRr)r#r�r%r%r&�
test_focus�szTreeviewTest.test_focuscCs�|�|j�d�t�|jjddd�|�|j�dd�d�|�|jjddd�d�|jtj|jjddd�|jtj|jjddd�dS)Nr�rZr1r@)r�r�)r�)r.r��headingr/r rQrRrrFr%r%r&�test_heading�s��zTreeviewTest.test_headingcs��fdd�}g��j���jjd�fdd�d��jjddd��j��|d	d	��sd��d
�g��jjj}�jjdt�jjddd��d���	|�jjj�|d	d	��s���d
�dS)NcsNtdkr2���j�|�d����j�||�d�t�j||��j��dS)N)rrr�r�)rr r�Zidentify_columnZidentify_regionr	rLr�rFr%r&�simulate_heading_clicks
zBTreeviewTest.test_heading_callback.<locals>.simulate_heading_clickr�cs
��d�Sr�r�r%r�r%r&r�
r�z4TreeviewTest.test_heading_callback.<locals>.<lambda>r�r�r�r+z>The command associated to the treeview heading wasn't invoked.)
r�rEr�r�rLrvr�Z_tclCommandsr�r )r#r�Zcommandsr%)r#r�r&�test_heading_callback�s 




 
z"TreeviewTest.test_heading_callbackcCsL|�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)NZwhatrrr�r�)
rQrRrr�rsr r�r�r�r�)r#r�r��c1�c2r%r%r&r|#s&zTreeviewTest.test_indexc	Cs�|�tj|jjdd�|jtj|jjdddd�|jtj|jjdddd�|�|j�|jjdddd���|�|j�|jjdddd���|�tj|jjdd�|j�ddd	�}|�|d	�|�tj|jjddd	�|�tj|jjddtd	��d
}|jjdd|fd�}|�|j�	|d�|j
�r&|fn|�|�|jj	|dd�|j
�rL|fn|�|jj	||j�|jj	|dd��d�|�|jj	|dd�|j
�r�|fn|�|�
|j�	|�t�|jj	|dd�|�|jj	|dd��|jjddd
d|gd�}|�|jj	|dd�|j
�rdd|fnd|�|jj	|gd�|�|jj	|dd��|jj	|dd�|�|jj	|dd�|j
�rpdnd�|jjdddd||ffd�}|�|jj	|dd�|j
�r�dd||ffn
d||f�|�|jj	|jjdddd�dd�d�|�|jj	|jjdd|d�dd�|�|j�ddd�}|�|d�|j�ddd�}|�|d�|�tj|jjddd�|�tj|jjddd�dS)Nr�r�r)�openZpleaseTFZmiddlez
first-itemuábarr�r�rI��tagsr	r
z1 2 %s�r�rI)r	r
z1 2r�z%s %sz{a b c} {%s %s}z
Label herer1rr)gz0.0)rQrRrr�r�r�r�r r�itemrrDZ	splitlistr.r/)r#Zitemidr7r�r%r%r&�test_insert_itemBs���  ����$���
�
�
��
��zTreeviewTest.test_insert_itemcCs�|�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�|jj
dddd�|j�d�|�|j��d�|jj
ddd	d�|j�d	�|�|j��d
�|jj
dddd�|j�d�|�|j��d�|jj
ddd
d�|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�r�rr�r%�with spacesr�)r��{brace)r��
unicode€)r�sbytes€)ubytes€)rQ�	TypeErrorr�Z	selectionrRrZ
selection_setZ
selection_addZselection_removeZselection_toggler�r )r#r�r�r�r�Zc3r%r%r&�test_selection�sn



zTreeviewTest.test_selectioncCs�ddg|jd<|jjddddgd�}|�|j�|�ddd	��|j�|dd�|�|jj|dd�|jrjd
nd�dg|jd<|�|j�|�ddi�|j�|dd�|�|jj|dd�d�|�|jj|dd�|jr�d
nd�|j�|dd�|�|j�|d�|j�r
dnd�|�|jj|dd�|j�r.dnd�|�|j�|�|j�rRddinddi�|�tj|jj|d�|�tj|jj|dd�|�tj|jjd�dS)N�A�Br�rr�r�r2r)r�r�)r�r�za a)r�)r2r�zb a�{Z123)r�r�z123 aZnotme)	r�r�r rr�rrQrRr)r#r�r%r%r&rb�s6�����zTreeviewTest.test_setc	s8g�|jjdddgd�}|jjdddgd�}|j�dd�fdd��|j�dd�fd	d��|j��|j��t�}t�}td
dd�D]@}t|�d
kr�q�|j�|�}|r�||kr�|�	|�|�	|�q�|�
t|�d
�|D]}t|jd
|�q�|�
t��d�t�ddd
��ddd
��D]}|�
|d��q dS)Nrr�Zcallr�r�cs
��d�Sr�r�r��Zeventsr%r&r��r�z,TreeviewTest.test_tag_bind.<locals>.<lambda>r�cs
��d�S)NrIr�r�r�r%r&r��r�rr�rXrIr�r�r�)
r�r�Ztag_bindrErLrrur�Zidentify_rowr"r r	�zip)	r#r�r�Zpos_y�foundrwr�r�r�r%r�r&�
test_tag_bind�s4

�

�


"zTreeviewTest.test_tag_bindcCs�|�t|jj�|jtj|jjddd�|jjddd�|�t|j�dd��d�|�t|jjddd��d�|�|j�d�t	�dS)Nr�Zblue)Zsky)r�r�)
rQr�r�Z
tag_configurerRrr r�r.r/rFr%r%r&�test_tag_configures���zTreeviewTest.test_tag_configurecCs|jjddddgd�}|jjddddgd�}|�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)Nrr�zItem 1Ztag1)r@r�zItem 2Ztag2znon-existingZtag3r%)	r�r�rQr�Ztag_hasrr�r�r )r#r�r�r%r%r&�test_tag_has$szTreeviewTest.test_tag_has)r;r<r=rlrBrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r|r�r�rbr�r�r�r_r%r%rGr&r�
s0	*$MG!!r�c@seZdZdZdZdd�ZdS)�
SeparatorTest)rrdrr5rgr cKstj|jf|�SrW)rZ	SeparatorrDrir%r%r&r<szSeparatorTest.createNrlr%r%r%r&r�4sr�c@seZdZdZdd�ZdS)�SizegripTest)rrdr5rgcKstj|jf|�SrW)rZSizegriprDrir%r%r&rGszSizegripTest.createNrkr%r%r%r&r�@sr�c@seZdZdd�Zdd�ZdS)�DefaultRootTestcCs|�tj�dSrW)�_test_widgetrrhrFr%r%r&�
test_frameMszDefaultRootTest.test_framecCs|�tj�dSrW)r�rr{rFr%r%r&�
test_labelPszDefaultRootTest.test_labelN)r;r<r=r�r�r%r%r%r&r�Ksr��__main__)4ZunittestrRrrZtest.supportrr�Z$tkinter.test.test_ttk.test_functionsrZtkinter.test.supportrrrr	r
Ztkinter.test.widget_testsrrr
rrrrrZTestCaser>r`rbrmr~r�r�r�r�r�rr6r=rFrcZskipIfr�rkrmr�r�r�r�r�Z	tests_guir;�mainr%r%r%r&�<module>s�$':!0}3j"�
P/-

�