Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib64/python3.6/tkinter/test/test_ttk/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/tkinter/test/test_ttk/__pycache__/test_widgets.cpython-36.pyc

3

� fK��@s�ddlZddlZddlmZmZddlmZddlZddlmZddl	m
Z
mZmZm
Z
ddlmZmZmZmZmZmZmZed�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��Zeee�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&ej'ej(d(kd)�ee�Gd*d+�d+eej���Z)eee�Gd,d-�d-eej��Z*ee�Gd.d/�d/eej��Z+ee�Gd0d1�d1eej��Z,ee�Gd2d3�d3eej��Z-eee!e eeee$e*e"e&e#e%e)e,e-e+efZ.e/d4k�r�ej0�dS)5�N)�ttk�TclError)�requires)�
MockTclObj)�AbstractTkTest�tcl_version�get_tk_patchlevel�simulate_mouse_click)�add_standard_options�noconv�AbstractWidgetTest�StandardOptionsTests�IntegerSizeTests�PixelSizeTests�setUpModuleZguic@s$eZdZdd�Zdd�Zdd�ZdS)�StandardTtkOptionsTestscCs\|j�}|j|dd�d}t�d
kr*d	}|j|dd
|d�|jd
d�}|j|dd
�dS)N�class�z"attempt to change read-only option��r�beta�z"Attempt to change read-only option�Foo)�errmsg)�class_)rrrrr)�create�assertEqualr�checkInvalidParam)�self�widgetr�widget2�r!�G/opt/alt/python36/lib64/python3.6/tkinter/test/test_ttk/test_widgets.py�
test_classs
z"StandardTtkOptionsTests.test_classcCs�|j�}|j|dddd�|j|dddd�|j|dddd�|j|dddd�|j|dddd�|j|dd�|j|dfdd�dS)N�paddingr�0)�expected��5r�6��7r�8�5p�6p�7p�8pr)r%)r()r'r)r(r))r'rr*)r(r)r+)r'rr*r)r(r)r+r,)r-r.r/r0)r�
checkParam)rrr!r!r"�test_paddings

z$StandardTtkOptionsTests.test_paddingcCsj|j�}|j|dd�d}t|d�r8dt|d�j�}|j|dd|d�|jdd�}|j|d	d�dS)
N�stylerzLayout Foo not found�default_orientzLayout %s.Foo not foundr)r)rr)rr�hasattr�getattr�titler)rrrr r!r!r"�
test_style)s

z"StandardTtkOptionsTests.test_styleN)�__name__�
__module__�__qualname__r#r2r8r!r!r!r"rs
rcs0eZdZdZ�fdd�Zdd�Zdd�Z�ZS)�
WidgetTestz,Tests methods available in every ttk widget.cs6t�j�tj|jddd�|_|jj�|jj�dS)NrZText)�width�text)�super�setUpr�Button�rootr�pack�wait_visibility)r)�	__class__r!r"r@;s

zWidgetTest.setUpcCs�|jj�|j|jjt|jj�d�t|jj�d��d�|j|jjdd�d�|jtj	|jjdd�|jtj	|jjdd�|jtj	|jjdd�dS)N��label�rr'���rI)
r�update_idletasksr�identify�int�winfo_width�winfo_height�assertRaises�tkinterr)rr!r!r"�
test_identifyBs

zWidgetTest.test_identifycCs>|j|jj�f�|j|jjdg�d�|j|jjdg�d�|j|jjdg�f�|j|jjddg�d
�|j|jjddg�f�|j|jjddg�f�dd�}|j|jjdg|dfd	d
i�dd	d
if�|jj�}|jtj|jjdg�|jtj|jjddg�|j||jj��|jjddg�|j|jj�d�dS)N�	!disabledT�disabled�active�!activec[s||fS)Nr!)Zarg1�kwr!r!r"�test_cb_sz-WidgetTest.test_widget_state.<locals>.test_cb�hi�msgZthereZbadstate)rR)rUrS)rT)rr�stateZinstaterOrPr)rrWZ	currstater!r!r"�test_widget_stateOs(

zWidgetTest.test_widget_state)r9r:r;�__doc__r@rQr[�
__classcell__r!r!)rEr"r<8s
r<c@seZdZeZdS)�AbstractToplevelTestN)r9r:r;r�_conv_pixelsr!r!r!r"r^ssr^c	@seZdZd
Zd
d�ZdS)�	FrameTest�borderwidthr�cursor�heightr$�reliefr3�	takefocusr=cKstj|jf|�S)N)rZFramerB)r�kwargsr!r!r"rszFrameTest.createN)	rarrbrcr$rdr3rer=)r9r:r;�OPTIONSrr!r!r!r"r`wsr`c
@s(eZdZdZdd�Zdd�Zdd�ZdS)�LabelFrameTestrarrbrc�labelanchor�labelwidgetr$rdr3rer>�	underliner=cKstj|jf|�S)N)rZ
LabelFramerB)rrfr!r!r"r�szLabelFrameTest.createcCsB|j�}|j|ddddddddd	d
ddd
dd�|j|dd�dS)Nri�eZenZes�n�neZnw�sZse�sw�wZwnZwsz!Bad label anchor specification {})r�center)r�checkEnumParamr)rrr!r!r"�test_labelanchor�s
zLabelFrameTest.test_labelanchorcCs8|j�}tj|jddd�}|j|d|dd�|j�dS)NZMuppZfoo)r>�namerjz.foo)r&)rr�LabelrBr1�destroy)rrrGr!r!r"�test_labelwidget�szLabelFrameTest.test_labelwidgetN)
rarrbrcrirjr$rdr3rer>rkr=)r9r:r;rgrrtrxr!r!r!r"rh�srhc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�AbstractLabelTestcCs�tj|jdd�}tj|jdd�}|j|||d
d�|j||ddd�|j|||fdd�|j|||d|fd
d�|j||ddd�|j||ddd	�dS)N�image1)�masterru�image2)r&rTzimage1 active image2�spamzimage "spam" doesn't exist)r)rz)rz)rz)rzrTr|)rzrTr|)rPZ
PhotoImagerBr1r)rrru�imager|r!r!r"�checkImageParam�s

z!AbstractLabelTest.checkImageParamcCs(|j�}|j|ddddddddd	�
dS)
N�compound�noner>r~rr�topZbottom�left�right)rrs)rrr!r!r"�
test_compound�szAbstractLabelTest.test_compoundcCs|j�}|j|dddd�dS)NrZrTrS�normal)r�checkParams)rrr!r!r"�
test_state�szAbstractLabelTest.test_statecCs|j�}|j|dddd�dS)Nr=i�rin���)rr�)rrr!r!r"�
test_width�szAbstractLabelTest.test_widthN)r9r:r;rr�r�r�r!r!r!r"ry�s
ryc@s$eZdZdZeZdd�Zdd�ZdS)�	LabelTest�anchor�
backgroundrarr�rb�font�
foregroundr~�justifyr$rdrZr3rer>�textvariablerkr=�
wraplengthcKstj|jf|�S)N)rrvrB)rrfr!r!r"r�szLabelTest.createcCs|j�}|j|dd�dS)Nr�z3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*)rr1)rrr!r!r"�	test_font�szLabelTest.test_fontN)r�r�rarr�rbr�r�r~r�r$rdrZr3rer>r�rkr=r�)r9r:r;rgrr_rr�r!r!r!r"r��sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)�
ButtonTestr�commandr�rb�defaultr~r$rZr3rer>r�rkr=cKstj|jf|�S)N)rrArB)rrfr!r!r"r�szButtonTest.createcCs|j�}|j|dddd�dS)Nr�r�rTrS)rrs)rrr!r!r"�test_default�szButtonTest.test_defaultcs2g�tj|j�fdd�d�}|j�|j��dS)Ncs
�jd�S)NrH)�appendr!)�successr!r"�<lambda>�sz(ButtonTest.test_invoke.<locals>.<lambda>)r�)rrArB�invoke�
assertTrue)rZbtnr!)r�r"�test_invoke�szButtonTest.test_invokeN)rr�r�rbr�r~r$rZr3rer>r�rkr=)r9r:r;rgrr�r�r!r!r!r"r��sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd�ZdS)�CheckbuttonTestrr�r�rbr~�offvalue�onvaluer$rZr3rer>r�rk�variabler=cKstj|jf|�S)N)r�CheckbuttonrB)rrfr!r!r"r�szCheckbuttonTest.createcCs |j�}|j|ddddd�dS)Nr�rHgffffff@rz
any string)rr�)rrr!r!r"�
test_offvalue�szCheckbuttonTest.test_offvaluecCs |j�}|j|ddddd�dS)Nr�rHgffffff@rz
any string)rr�)rrr!r!r"�test_onvalue�szCheckbuttonTest.test_onvaluecs�g��fdd�}tj|j|d�}|j|j�d�|jtj|jj	|d�|j
�}|j|d�|j|d|jj	|d��|j��d|d	<|j
�}|jt
|��|jt��d
�|j|d|jj	|d��dS)
Ncs�jd�dS)NrHzcb test called)r�r!)r�r!r"�cb_test�s
z,CheckbuttonTest.test_invoke.<locals>.cb_test)r��	alternater�zcb test calledr�rr�rHr�)r�)rr�rBrrZrOrPr�tk�globalgetvarr�r��assertFalse�str�assertLessEqual�len)rr��cbtn�resr!)r�r"r��s"



zCheckbuttonTest.test_invokeN)rr�r�rbr~r�r�r$rZr3rer>r�rkr�r=)r9r:r;rgrr�r�r�r!r!r!r"r��sr�csxeZdZd*Z�fdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z	dd�Z
d d!�Zd"d#�Zd$d%�Z
d&d'�Zd(d)�Z�ZS)+�	EntryTestr�rrb�exportselectionr�r��invalidcommandr��showrZr3rer��validate�validatecommandr=�xscrollcommandcst�j�|j�|_dS)N)r?r@r�entry)r)rEr!r"r@!s
zEntryTest.setUpcKstj|jf|�S)N)rZEntryrB)rrfr!r!r"r%szEntryTest.createcCs|j�}|j|d�dS)Nr�)r�checkCommandParam)rrr!r!r"�test_invalidcommand(szEntryTest.test_invalidcommandcCs6|j�}|j|dd�|j|dd�|j|dd�dS)Nr��*r� )rr1)rrr!r!r"�	test_show,szEntryTest.test_showcCs|j�}|j|dddd�dS)NrZrSr��readonly)rr�)rrr!r!r"r�2szEntryTest.test_statec	Cs$|j�}|j|ddddddd�dS)Nr��all�key�focusZfocusinZfocusoutr�)rrs)rrr!r!r"�
test_validate7szEntryTest.test_validatecCs|j�}|j|d�dS)Nr�)rr�)rrr!r!r"�test_validatecommand<szEntryTest.test_validatecommandcCs>|j|jjd��|jtj|jjd�|jtj|jjd�dS)NrZnoindex)�assertIsBoundingBoxr��bboxrOrPr)rr!r!r"�	test_bboxAszEntryTest.test_bboxcCs�|jj�|jj�|jj�tjdkr@|j|jjdd�d�n|j|jjdd�d�|j|jjdd	�d�|j	t
j|jjdd�|j	t
j|jjdd�|j	t
j|jjdd�dS)
N�darwinr'�textarea�Combobox.buttonrHr)r�r�rIrI)r�rCrDrJ�sys�platformZassertInrKrrOrPr)rr!r!r"rQGs



zEntryTest.test_identifycs�g��fdd�}d|jd<dd�|jd<||jd<|jj�|j��d|jd<|jj�|jt��d	�||jd<d
d�|jd<|jj�|jt��d	�d|jd<|jj�|jt��d	�d|jd<|jtj|jj�dS)Ncs
�jd�S)NT)r�r!)r�r!r"r�[sz3EntryTest.test_validation_options.<locals>.<lambda>r�r�cSsdS)NFr!r!r!r!r"r�^sr�r�rrHcSsdS)NTr!r!r!r!r"r�isT)r�r�r�rr�rOrPr)rZtest_invalidr!)r�r"�test_validation_optionsYs&










z!EntryTest.test_validation_optionscsrg��fdd�}d|jd<|jj|�df|jd<|jjdd�|jjdd	�|j�d
dg�|j|jj�d	�dS)Ncs8d|j�kodkns*�jd�dS�jd�dS)N�a�zFT)�lowerr�)Z	to_insert)�
validationr!r"r�ws


z+EntryTest.test_validation.<locals>.validater�r�z%Sr��endrHr�FT)r��register�insertr�get)rr�r!)r�r"�test_validationus
zEntryTest.test_validationcCs�dd�}|jj|�df|jd<|jjdd�|j|jj�d�|j|jj�f�|jjdd�|j|jj�d	�|jjdd
�|j|jj�d�|j|jj�d�|jjd
�|j|jj�d�|j|jj�f�dS)NcSs2x,|D]$}d|j�ko dknsdSqWdS)Nr�r�FT)r�)ZcontentZletterr!r!r"r��s
z-EntryTest.test_revalidation.<locals>.validatez%Pr�r�ZavocadoTrrZa1bF�invalidrH)r�)r�r�r�rr�rZ�deleter�)rr�r!r!r"�test_revalidation�szEntryTest.test_revalidation)r�rrbr�r�r�r�r�r�rZr3rer�r�r�r=r�)r9r:r;rgr@rr�r�r�r�r�r�rQr�r�r�r]r!r!)rEr"r�s"r�csPeZdZd#Z�fdd�Zdd�Zdd�Zdd�Zdd�Zdd �Z	d!d"�Z
�ZS)$�ComboboxTestr�rrbr�r�r�rcr�r��postcommandr�rZr3rer�r�r��valuesr=r�cst�j�|j�|_dS)N)r?r@r�combo)r)rEr!r"r@�s
zComboboxTest.setUpcKstj|jf|�S)N)r�ComboboxrB)rrfr!r!r"r�szComboboxTest.createc	Cs$|j�}|j|ddddddd�dS)Nrc�dg�����LY@gfffff�Y@rZ1ii����)rr�)rrr!r!r"�test_height�szComboboxTest.test_heightcCsD|jj�}|jjd|ddd�|jjd|ddd�|jj�dS)Nz<ButtonPress-1>r')�x�yz<ButtonRelease-1>)r�rM�event_generaterJ)rr=r!r!r"�_show_drop_down_listbox�s
z$ComboboxTest._show_drop_down_listboxcszg�dg|jd<|jjd�fdd��|jj�|jj�|jj�}|j�|jj�|jjd�|jj�|j��dS)NrHr�z<<ComboboxSelected>>cs
�jd�S)NT)r�)�evt)r�r!r"r��sz1ComboboxTest.test_virtual_event.<locals>.<lambda>z<Return>)	r��bindrCrDrNr��updater�r�)rrcr!)r�r"�test_virtual_event�s




zComboboxTest.test_virtual_eventcsbg��fdd�|jd<|jj�|jj�|j�|j��d|jd<|j�|jt��d�dS)Ncs
�jd�S)NT)r�r!)r�r!r"r��sz/ComboboxTest.test_postcommand.<locals>.<lambda>r�rrH)r�rCrDr�r�rr�)rr!)r�r"�test_postcommand�s



zComboboxTest.test_postcommandcs��fdd�}�j�jdtd%kr$fnd�|dd&��j�jddd'd
��j�jdd(��j�jdd)��j�jddt�d*kr�dnfd
�dddg�jd<�jjd�|dd��jjd�|dd��jjd�|dd+��jjd�d,�jd<|dd��jjdddgd��j�jd�j�r(d-nd�dddg�jd<�j�jd�j�rVd.nd�d d!d"g�jd<�j�jd�j�r�d/nd#��j	t
j�jjt�jd���j	t
j�jjd�t
j�jdddgd�}�j|d�j�r�d0nd$�|j�dS)1Ncs(�j�jj�|��j�jj�|�dS)N)rr�r��current)ZgetvalZcurrval)rr!r"�check_get_current�sz3ComboboxTest.test_values.<locals>.check_get_currentr�rr'rrHzmon tue wed thur�mon�tue�wed�thur)r&�*���Q�	@�
any string�
r��crFr�dr)r��1�2z1 {} 2�a b�a	b�a
bz{a b} {a	b} {a
b}�a\tb�"a"�} {za\\tb {"a"} \}\ \{z1 2 {})rr'rI)r�r�r�r�)r�r�r�r�)r�r�rr�)rr'r�rI)rHrFrr)r�rr�)r�r�r�)r�r�r�)r�r�r)rr�rr1r�setr��	configure�wantobjectsrOrPrr�rr�rBrw)rr�Zcombo2r!)rr"�test_values�sN






zComboboxTest.test_values)r�rrbr�r�r�rcr�r�r�r�rZr3rer�r�r�r�r=r�)r9r:r;rgr@rr�r�r�r�r�r]r!r!)rEr"r��sr�csXeZdZdZ�fdd	�Zd
d�Zdd
�Zdd�Zdd�Zdd�Z	dd�Z
dd�Z�ZS)�PanedWindowTestrrbrc�orientr3rer=cst�j�|j�|_dS)N)r?r@r�paned)r)rEr!r"r@%s
zPanedWindowTest.setUpcKstj|jf|�S)N)rZPanedWindowrB)rrfr!r!r"r)szPanedWindowTest.createcCsd|j�}|jt|d�d�d}t�d
kr.d	}|j|dd
|d�|jd
d�}|jt|d�d
�dS)Nr��verticalz"attempt to change read-only optionrrrrrz"Attempt to change read-only option�
horizontal)r)r�)rrrrr)rrr�rr)rrrr r!r!r"�test_orient,s

zPanedWindowTest.test_orientcCstj|j�}tj|�}|jtj|jj|�|j�|j�tj|j�}tj|�}|jtj|jj|�|j�|j�tj|j�}|jj|�|jtj|jj|�tj|j�}|jj|�|j	|jj
d�|jj
d��|jtj|jj
d�|j�|j�|jtj|jj
d�dS)NrrHrF)rrvrrOrPr�addrwrBr�pane)rrG�childZ
good_childZother_childr!r!r"�test_add7s(

zPanedWindowTest.test_addcCs`|jtj|jjd�|jtj|jjd�|jjtj|j��|jjd�|jtj|jjd�dS)Nr)	rOrPrr�forgetrrrvrB)rr!r!r"�test_forgetSs
zPanedWindowTest.test_forgetcCst|jtj|jjdd�|jtj|jjdd�|jtj|jjdd�tj|j�}tj|j�}tj|j�}|jtj|jjd|�|jjd|�|jjd|�|j|jj	�t
|�t
|�f�|jjd|�|j|jj	�t
|�t
|�f�|jjd|�|j|jj	�t
|�t
|�t
|�f�|jj	�}|jjd|�|j||jj	��|jj||�|j|jj	�t
|�t
|�t
|�f�dS)Nrr�)rOrPrrr�rrvrBr�panesr�)rr�child2�child3r
r!r!r"�test_insert\s*
zPanedWindowTest.test_insertcCs�|jtj|jjd�tj|j�}|jj|�|j	|jjd�t
�|j|jjddd�|jr\dnd�|j|jjdd�|jr|dnd�|j|jjd�|jjt
|���|jtj|jjddd�dS)Nr)�weightr%rZ	somevalue)Z	badoption)rOrPrrrrrvrBr�assertIsInstance�dictrr�r�)rrr!r!r"�	test_panes zPanedWindowTest.test_panecCs|jtj|jjd�|jtj|jjd�|jtj|jjd�tj|jdd�}|jj|dd�|jtj|jjd�tj|jdd�}|jj|�|jtj|jjd�|jjdd	d
�|jj	�|jjd�}|jjdd�|j
||jjd��|j|jjd�t�dS)Nrrr�)r>rH)r�bTZboth)�expandZfilli�)
rOrPrrZsashposrrvrrCrD�assertNotEqualrrL)rrrZcurr_posr!r!r"�test_sashpos�s
zPanedWindowTest.test_sashpos)rrbrcr�r3rer=)
r9r:r;rgr@rrrr	r
rrr]r!r!)rEr"r�s	#r�c@s(eZdZdZdd�Zdd�Zdd�ZdS)�RadiobuttonTestrr�r�rbr~r$rZr3rer>r�rk�valuer�r=cKstj|jf|�S)N)r�RadiobuttonrB)rrfr!r!r"r�szRadiobuttonTest.createcCs |j�}|j|ddddd�dS)NrrHgffffff@rz
any string)rr�)rrr!r!r"�
test_value�szRadiobuttonTest.test_valuecs6g��fdd�}tj|j�}tj|j||dd�}tj|j||dd�}|jrTdd�}nt}|j�}|j|d�|j||d	�|j	��|j|j	�||j
j|d
���|j��d|d<|j�}|jt
|�d�|jt��d�|j||d	�|j	��|j|j	�||j
j|d
���|jt
|d
�t
|d
��dS)
Ncs�jd�dS)NrHzcb test called)r�r!)r�r!r"r��s
z,RadiobuttonTest.test_invoke.<locals>.cb_testr)r�r�rrHcSs|S)Nr!)r�r!r!r"r��sz-RadiobuttonTest.test_invoke.<locals>.<lambda>zcb test calledrr�rr�)rPZIntVarrBrrr�rLr�rr�r�r�r�r�r�r�)rr�Zmyvarr�Zcbtn2�convr�r!)r�r"r��s0







zRadiobuttonTest.test_invokeN)rr�r�rbr~r$rZr3rer>r�rkrr�r=)r9r:r;rgrrr�r!r!r!r"r�src@s(eZdZdZdd�Zdd�Zdd�ZdS)�MenubuttonTestrr�rb�	directionr~�menur$rZr3rer>r�rkr=cKstj|jf|�S)N)rZ
MenubuttonrB)rrfr!r!r"r�szMenubuttonTest.createcCs"|j�}|j|dddddd�dS)NrZaboveZbelowr�r��flush)rrs)rrr!r!r"�test_direction�szMenubuttonTest.test_directioncCs4|j�}tj|dd�}|j|d|td�|j�dS)Nr)ru)r)rrPZMenur1r�rw)rrrr!r!r"�	test_menu�szMenubuttonTest.test_menuN)rr�rbrr~rr$rZr3rer>r�rkr=)r9r:r;rgrrr r!r!r!r"r�srcsheZdZdZeZdZ�fd
d�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Z�ZS) �	ScaleTestrr�rb�from�lengthr�r3re�torr�rcs,t�j�|j�|_|jj�|jj�dS)N)r?r@r�scalerCr�)r)rEr!r"r@�s


zScaleTest.setUpcKstj|jf|�S)N)rZScalerB)rrfr!r!r"r�szScaleTest.createcCs"|j�}|j|dddddd�dS)Nr"r�g������-@g333333.@F)r)r�checkFloatParam)rrr!r!r"�	test_fromszScaleTest.test_fromcCs |j�}|j|ddddd�dS)Nr#�gffffff`@g33333�`@Z5i)r�checkPixelsParam)rrr!r!r"�test_lengthszScaleTest.test_lengthc	Cs$|j�}|j|ddddddd�dS)	Nr$i,g������-@g333333.@r�F)ri����)rr&)rrr!r!r"�test_to
szScaleTest.test_toc	Cs$|j�}|j|ddddddd�dS)	Nri,g������-@g333333.@r�F)ri����)rr&)rrr!r!r"rszScaleTest.test_valuecs�dddg�|jjd�fdd��}d|jd<d|jd<d|jd	<|j��dddg�|jjd
dd�|jjd
dd�|jjdd�|j��dS)NrHz<<RangeChanged>>cs�j�S)N)�pop)r�)�failurer!r"r�sz-ScaleTest.test_custom_event.<locals>.<lambda>r�r"�from_rr$rFr')r.r$r)r$���)r%r�r�r�)rZfuncidr!)r-r"�test_custom_events





zScaleTest.test_custom_eventcCs�|jrdd�}nt}|jj�}|j|jj|d�|jd�|j||jjdd��||jd��|j|jj�|jd�d|jd<|j|jj�|jd�|jtj|jjdd�|jtj|jjdd�dS)	NcSs|S)Nr!)r�r!r!r"r�'sz$ScaleTest.test_get.<locals>.<lambda>rr$r"r�r)	r��floatr%rMrr�rOrPr)rrZscale_widthr!r!r"�test_get%s

$
zScaleTest.test_getcCst|jrdd�}nt}||jd�}|d}|jj|�|j||jj��|�||jd�}|jj|d�|j||jj��|�tj|j�}||jd<|j|d�|j||jj��|j��|j||jj��|d�~|d|jd	<|j||jj��|d�|j||jj��||jd	��|j||jjd
d
��|�|j||jj|jj	�d
��|�|j
tj|jjd�dS)NcSs|S)Nr!)r�r!r!r"r�9sz$ScaleTest.test_set.<locals>.<lambda>r$r�r"rHr�r'rr)r�r2r%r�rr�rPZ	DoubleVarrBrMrOr)rr�maxZnew_max�min�varr!r!r"�test_set7s,

  zScaleTest.test_set)rr�rbr"r#r�r3rer$rr�)r9r:r;rgrr_r4r@rr'r*r+rr0r3r7r]r!r!)rEr"r!�sr!c@sHeZdZdZeZdZd
d�Zdd�Zdd�Z	dd�Z
dd�Zdd�ZdS)�ProgressbarTestrrbr�r#�mode�maximum�phaser3rerr�rcKstj|jf|�S)N)rZProgressbarrB)rrfr!r!r"reszProgressbarTest.createcCs|j�}|j|dddd�dS)Nr#gfffffY@g�����YL@Z2i)rr))rrr!r!r"r*hszProgressbarTest.test_lengthc	Cs$|j�}|j|ddddddd�dS)	Nr:gfffff�b@g�����lS@rr�F)ri����)rr&)rrr!r!r"�test_maximumlszProgressbarTest.test_maximumcCs|j�}|j|ddd�dS)Nr9ZdeterminateZ
indeterminate)rrs)rrr!r!r"�	test_modepszProgressbarTest.test_modecCsdS)Nr!)rr!r!r"�
test_phasetszProgressbarTest.test_phasec	Cs$|j�}|j|ddddddd�dS)	Nrgfffff�b@g�����lS@rr�F)ri����)rr&)rrr!r!r"rxszProgressbarTest.test_valueN)rrbr�r#r9r:r;r3rerr�)
r9r:r;rgrr_r4rr*r<r=r>rr!r!r!r"r8[sr8r�z"ttk.Scrollbar is special on MacOSXc@seZdZdZdZdd	�Zd
S)�
ScrollbarTestrr�rbr�r3rercKstj|jf|�S)N)rZ	ScrollbarrB)rrfr!r!r"r�szScrollbarTest.createN)rr�rbr�r3re)r9r:r;rgr4rr!r!r!r"r?~sr?cspeZdZdZ�fdd	�Zd
d�Zdd
�Zdd�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�NotebookTestrrbrcr$r3rer=cs\t�j�|jdd�|_tj|j�|_tj|j�|_|jj	|jdd�|jj	|jdd�dS)Nr)r$r�)r>r)
r?r@r�nbrrvrB�child1rr)r)rEr!r"r@�s
zNotebookTest.setUpcKstj|jf|�S)N)rZNotebookrB)rrfr!r!r"r�szNotebookTest.createcCs:|jjd�|jj|j�|jtj|jj|j�|j	|jj
d�d�|jj|j�|j	|jj
d�d�|jj|j�|j
|jjd��|jj|jdd�|jj�|jj�tjdkr�d}nd	}|j	|jj|�|jjd��xXtd
dd
�D]>}y |jjd|dd�dk�rPWq�tjk
�r&Yq�Xq�W|jd
�dS)Nrr�rHr�r�)r>r�z@20,5z@5,5r'r�z@%d, 5zTab with text 'a' not found)rAr�hiderrOrPr�tabrBr�indexr�selectr�rCrDr�r��range�fail)rZtb_idx�ir!r!r"�test_tab_identifiers�s,



z!NotebookTest.test_tab_identifierscCsd|jtj|jjd�|jtj|jjd�|jtj|jjd�|jtj|jjd�|jtj|jjtj|j�dd�|jj	�}|jj|j
�|jj|j
�|j|jj	�|�tj|j�}|jj|dd�|jj	�}|jjd�}|jj|j
�}|jj|j
�|jj|j
�|j|jj	�|�|j|jj|j
�|�|jt|j
�|jj	�|�|j|jjd�|d�dS)	NrHrXZoption)�unknownr�)r>r�rI)rOrPrrArCrrrvrB�tabsrBrrErr�)rrLrZcurrZchild2_indexr!r!r"�test_add_and_hidden�s*

z NotebookTest.test_add_and_hiddencCs�|jtj|jjd�|jtj|jjd�|jtj|jjd�|jj�}|jj|j�}|jj|j�|jt	|j�|jj��|j
t|�dt|jj���|jj|j�|j
|jj|j�d�|j
||jj|j��dS)NrHrXrI)rOrPrrArrLrErBZassertNotInr�rr�rr)rrLZchild1_indexr!r!r"r	�s
zNotebookTest.test_forgetcCs�|jtj|jjd�|jtj|jjd�|j|jjd�t�|j|jj|j�d�|j|jj|j	�d�|j|jjd�d�dS)NrHr�rrFrI)
rOrPrrArErrLrrBr)rr!r!r"�
test_index�szNotebookTest.test_indexcCs�|jj�}|jjd|d�|j|jj�|d|df�|jj|j|j�|j|jj�|�|jjd|j�|j|jj�|d|df�|jjdd�|j|jj�|�|jtj|jjd|d�|jtj|jjd|d�t	j
|j�}|jjd|�|j|jj�|dt|�|df�|jj
|�|j|jj�|�|jj|j|�|j|jj�t|�f|�|jj
|�|jtj|jjd|�|jtj|jjd|�|jtj|jjdd�|jtj|jjdd�|jtj|jjdd�dS)NrHrr�rFrIrI)rArLr�rrBrrOrPrrrvrBr�r)rrLrr!r!r"r
�s0
$zNotebookTest.test_insertcs�|jj�|jj�g�g�|jjd�fdd��|jjd�fdd��|j|jj�t|j��|jj|j�|j	��|j|jj�t|j��|jj
�|j	��dS)Nz<Unmap>cs
�jd�S)NT)r�)r�)r�r!r"r�sz*NotebookTest.test_select.<locals>.<lambda>z<<NotebookTabChanged>>cs
�jd�S)NT)r�)r�)�tab_changedr!r"r�s)rArCrDrBr�rrFr�rr�r�)rr!)r�rOr"�test_selects



zNotebookTest.test_selectcCs�|jtj|jjd�|jtj|jjd�|jtj|jjd�|j|jj|j�t�|j|jj|jdd�d�|j|jj|jd�d�|jj|jdd�|j|jj|jdd�d�|j|jj|jd�d�dS)NrHZnotab)r>r�r>�abcrI)	rOrPrrArDrrBrr)rr!r!r"�test_tab'szNotebookTest.test_tabcCsH|jt|jj��d�|jj|j�|jj|j�|j|jj�f�dS)NrF)rr�rArLrrBr)rr!r!r"�	test_tabs5szNotebookTest.test_tabscCs0|jj�|jj�|jjd�t|jdd�|jj�|jjd�|j|jj�t|j	��|jj�|jjd�|j|jj�t|j
��|jj�|jjd�|j|jj�t|j	��|jj|j
ddd�|jj�|jj�t|jdd�t
jdk�r|jjd�n|jjd	�|j|jj�t|j
��dS)
Nrr'z
<Control-Tab>z<Shift-Control-Tab>r�)r>rkr�z
<Option-a>z<Alt-a>)rArCrDrFr	Zfocus_forcer�rr�rrBrDZenable_traversalr�r�)rr!r!r"�test_traversal>s*






zNotebookTest.test_traversal)rrbrcr$r3rer=)r9r:r;rgr@rrJrMr	rNr
rPrRrSrTr]r!r!)rEr"r@�s
!	r@cs�eZdZd;Z�fd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd �Z
d!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Z�ZS)<�TreeviewTestr�columnsrb�displaycolumnsrcr$�
selectmoder�r3rer��yscrollcommandcst�j�|jdd�|_dS)Nr)r$)r?r@r�tv)r)rEr!r"r@bs
zTreeviewTest.setUpcKstj|jf|�S)N)rZTreeviewrB)rrfr!r!r"rfszTreeviewTest.createcCsL|j�}|j|dddd�|j|dd�|j|dft�d
kr@d
nfd�dS)NrVza b cr�rr�)r&rr'r�r)r�rr�)r�rr�)rr'r�)rr1r)rrr!r!r"�test_columnsis

zTreeviewTest.test_columnscCs�|j�}d|d<|j|dddd�|j|dd�|j|dddd�|j|dd�|j|ddd
d�|j|dddd�|j|dddd�dS)Nr�rr�rVrWzb a c)r&�#allrFrHrr�zInvalid column index d)rrzColumn index 3 out of boundszColumn index -2 out of bounds)r�rr�)rr�r�)rr�r�)r\)rFrHr)r�rr�)rHrFrr/)rHr/)rr1r)rrr!r!r"�test_displaycolumnsqs




z TreeviewTest.test_displaycolumnsc	Cs8|j�}|j|ddd	dddd�|j|dddtd�dS)
Nrcr�rZ3cF)rg�����LY@gfffff�Y@i����)rr)r)rrr!r!r"r��szTreeviewTest.test_heightcCs|j�}|j|dddd�dS)NrXr�ZbrowseZextended)rrs)rrr!r!r"�test_selectmode�szTreeviewTest.test_selectmodecCs^|j�}|j|dddd�|j|dd�|j|dd�|j|ddd	d�|j|ddd
d�dS)Nr�z
tree headings�tree�headings)r&)r_r`)r_r`)r`r_)r_)r`)rr1)rrr!r!r"r��s
zTreeviewTest.test_showcCs�|jj�|j|jjd�d�|jj�|jj�|jjdd�}|jj�}|j|�|jj|d�}|j	|�dg|jd<|jj
ddd�|jj|dd�}|jj
ddd�}|js�t|�}|j|d|d|�|jj|d�}|j|jj|�d�dS)	Nrr�r�testrV�2)r=z#0)
rZrCrr�rDr�r��get_childrenr�r��columnr�rL)r�item_idZchildrenr�Zbbox_column0Z
root_widthrBr!r!r"r��s$





zTreeviewTest.test_bboxcCs�|j|jj�f�|jjdd�}|j|jj�t�|j|jj�d|�|jjdd�}|jjdd�}|jj|||�|j|jj|�||f�|jtj	|jj||�|jj|�|j|jj|�f�|jjd�|j|jj�f�dS)Nrr�r)
rrZrcr�r�tupleZset_childrenrOrPr)rrerrr!r!r"�
test_children�szTreeviewTest.test_childrencCs�|j|jjd�t�|jr2|j|jjddd�t�|jjddd�|j|jjdd�|jr\dnd�|j|jjddd�|jr~dnd�|jtj	|jjddd�|jtj	|jjd�d	d
iddid
diddiddig}x$|D]}|jtj	|jjdf|�q�WdS)Nz#0)r=r�r=Z10�X)�idr�Zunknown_optionz
some valueZstretchZwrongr�Zminwidth)
rrZrdrr�rLrrOrPr)rZinvalid_kwsrVr!r!r"�test_column�s
zTreeviewTest.test_columncCs�|jtj|jjd�|jjdd�}|jj|d�}|j|jj�|f�|j|jj|�|f�|jj|�|j|jj��|jtj|jj	|dd�|jjdd�}|jjdd�}|j|jj�||f�|jj||�|j|jj��dS)Nz#0rr�)
rOrPrrZr�r�rrcr��reattach)rre�item2�item1r!r!r"�test_delete�szTreeviewTest.test_deletecCs�|jjdd�}|jj|d�}|jj�}|jj�|j||jj��|j|jj�|f�|j|jj|�|f�|jj|�|j|jj��|jj|dd�|j|jj�|f�|j|jj|�|f�|jj|dd�|j|jj�||f�|j|jj|�f�|jt	j
|jjddd�|jt	j
|jjd�|jt	j
|jj|dd�|jt	j
|jj|dd�|jj||�|j|jj�f�|j|jj|�f�dS)Nrr�ZnonexistentZotherparentr�)rZr�rc�detachrr�rk�moverOrPr)rrerl�prevr!r!r"�test_detach_reattach�s4

z!TreeviewTest.test_detach_reattachcCsT|j|jjd�d�|j|jjd�d�|j|jji�d�|jtj|jjd�dS)NZ	somethingFrT)rrZ�existsrOrPr)rr!r!r"�test_exists'szTreeviewTest.test_existscCst|j|jj�d�|jjdd�}|jj|�|j|jj�|�|jj|�|j|jj�d�|jtj|jjd�dS)Nrr�rX)rrZr�r�r�rOrPr)rrmr!r!r"�
test_focus2szTreeviewTest.test_focuscCs�|j|jjd�t�|jjddd�|j|jjdd�d�|j|jjddd�d�|jtj|jjddd�|jtj|jjddd�dS)Nz#0rX)r>r>)r�rH)r�)rrZ�headingrrrOrPr)rr!r!r"�test_headingAszTreeviewTest.test_headingcs��fdd�}g��jj��jj��jjd�fdd�d��jjddd��jj�|d	d	��sn�jd
�g��jjj}�jjdt	�jjddd��d��j
|�jjj�|d	d	��sƈjd
�dS)Ncst�j||��jj�dS)N)r	rZr�)r�r�)rr!r"�simulate_heading_clickRszBTreeviewTest.test_heading_callback.<locals>.simulate_heading_clickz#0cs
�jd�S)NT)r�r!)r�r!r"r�Zsz4TreeviewTest.test_heading_callback.<locals>.<lambda>)r�r�)r=r'z>The command associated to the treeview heading wasn't invoked.)rZrCrDrvrdr�rHr{Z_tclCommandsr�r)rrxZcommandsr!)rr�r"�test_heading_callbackQs"





 
z"TreeviewTest.test_heading_callbackcCsL|jtj|jjd�|j|jjd�d�|jjdd�}|jjdd�}|jj|d�}|jj|d�}|j|jj|�d�|j|jj|�d�|j|jj|�d�|j|jj|�d�|jj|dd�|j|jj|�d�|j|jj|�d�|jj|�|j|jj|�d�|jj|�|j|jj|�d�|jj	|�|jtj|jj|�dS)NZwhatrrr�rH)
rOrPrrZrErr�rpror�)rrmrl�c1�c2r!r!r"rNss&zTreeviewTest.test_indexcCs�|jtj|jjdd�|jtj|jjdddd�|jtj|jjdddd�|j|jj|jjdddd���|j|jj|jjdddd���|jtj|jjdd�|jjddd	�}|j|d	�|jtj|jjddd	�|jtj|jjddtd	��d
}|jjdd|fd�}|j|jj	|d�|j
�r&|fn|�|j|jj	|dd�|j
�rL|fn|�|jj	||jj|jj	|dd��d�|j|jj	|dd�|j
�r�|fn|�|j
|jj	|�t�|jj	|dd�|j|jj	|dd��|jjddd
d|gd�}|j|jj	|dd�|j
�rdd|fnd|�|jj	|gd�|j|jj	|dd��|jj	|dd�|j|jj	|dd�|j
�rpdnd�|jjdddd||ffd�}|j|jj	|dd�|j
�r�dd||ffn
d||f�|j|jj	|jjdddd�dd�d�|j|jj	|jjdd|d�dd�|�|jjddd�}|j|d�|jjddd�}|j|d�|jtj|jjddd�|jtj|jjddd�dS)Nr�r�r)�openZpleaseTFZmiddlez
first-itemuába)r�r�rHrF)�tagsr�r�z1 2 %sz1 2za b cz%s %sz{a b c} {%s %s}z
Label here)r>rr%gz0.0)rHrF)r�r�)rOrPrrZr�r�r�rr�itemr�rBZ	splitlistrr)rZitemidrr~r!r!r"�test_insert_item�sh  
$


zTreeviewTest.test_insert_itemc'Cs|jt|jjd�|jtj|jjd�|jtj|jjd�|jtj|jjd�|jtj|jj	d�|jj
dd�}|jj
dd�}|jj
|d�}|jj
|d�}|jj
|d�}|j|jj�f�|jj||�|j|jj�||f�|jj|�|j|jj�|f�|jj||�|j|jj�|||f�|jj|�|j|jj�||||f�|jj�|j|jj�||||f�|jj||�|j|jj�|||f�|jj|�|j|jj�||f�|jj�|j|jj�||f�|jj	||�|j|jj�||f�|jj	|�|j|jj�|f�|jj	�|j|jj�|f�|jj
dddd�|jjd�|j|jj�d�|jj
dddd�|jjd�|j|jj�d�|jj
dddd�|jjd�|j|jj�d�|jj
ddd	d�|jjd	�|j|jj�d�|jj�|j|jj�f�|jj||f�|j|jj�||f�|jj||f�|j|jj�|||f�|jj||f�|j|jj�||f�|jj	||f�|j|jj�||f�tj
dk�r�d
dl}|jd�|jj�|j|jj�f�|jt��|jjd||f�WdQRX|j|jj�||f�|jt��|jjd||f�WdQRX|j|jj�|||f�|jt��|jjd||f�WdQRX|j|jj�||f�|jt��|jjd||f�WdQRX|j|jj�||f�|jt��|jjd�}WdQRX|j|||f�dS)Nr}r�rr��with spaces)ri�{brace�
unicode€sbytes€�bytes€rrrz8Deprecated API of Treeview.selection() should be removedr�r�removeZtoggle)r�)r�)r�)r�)rr)rO�	TypeErrorrZ�	selectionrPrZ
selection_setZ
selection_addZselection_removeZselection_toggler�rr��version_info�warnings�warnZassertWarns�DeprecationWarning)rrmrlrzr{Zc3r�r�r!r!r"�test_selection�s�




zTreeviewTest.test_selectioncCs�ddg|jd<|jjddddgd�}|j|jj|�ddd	��|jj|dd�|j|jj|dd�|jrjdnd
�dg|jd<|j|jj|�ddi�|jj|dd�|j|jj|dd�d�|j|jj|dd�|jr�dnd�|jj|dd
�|j|jj|d�|j�r
d
nd�|j|jj|dd�|j�r.dnd�|j|jj|�|j�rRdd
inddi�|jtj|jj|d�|jtj|jj|dd�|jtj|jjd�dS)N�A�BrVrr�r�r)r�)r�r�za a)rdzb a�{Z123z123 aZnotme)r�r�)rr�)r�r�)	rZr�rr�r~r�rOrPr)rr~r!r!r"r7;s,zTreeviewTest.test_setc	sLg�|jjdddgd�}|jjdddgd�}|jjdd�fdd��|jjdd�fd	d��|jj�|jj�|jj�t�}t�}xNtd
dd�D]>}t|�d
kr�P|jj	|�}|r�||kr�|j
|�|j
|�q�W|jt|�d
�x|D]}t|jd
|�q�W|jt��d�x4t
�ddd
��ddd
��D]}|j|d��q2WdS)Nrr�Zcall)r}z<ButtonPress-1>cs
�jd�S)NrH)r�)r�)�eventsr!r"r�asz,TreeviewTest.test_tag_bind.<locals>.<lambda>z<ButtonRelease-1>cs
�jd�S)NrF)r�)r�)r�r!r"r�csrr�r�rF�rH)rHrF)rZr�Ztag_bindrCrDr�r�rGr�Zidentify_rowrrr	�zip)	rrmrlZpos_y�foundrIrer�r�r!)r�r"�
test_tag_bind\s2






$zTreeviewTest.test_tag_bindcCs�|jt|jj�|jtj|jjddd�|jjddd�|jt|jjdd��d�|jt|jjddd��d�|j|jjd�t	�dS)NraZblue)Zsky)r�r�)
rOr�rZZ
tag_configurerPrrr�rr)rr!r!r"�test_tag_configure~s
zTreeviewTest.test_tag_configurecCs|jjddddgd�}|jjddddgd�}|jt|jj�|jt|jjdd�|j|jjd|��|j|jjd|��|j|jjd|��|j|jjd|��|j|jjd	|��|j|jjd	|��|j|jjd�|f�|j|jjd�|f�|j|jjd	�f�dS)
Nrr�zItem 1Ztag1)r>r}zItem 2Ztag2znon-existingZtag3)	rZr�rOr�Ztag_hasrr�r�r)rrmrlr!r!r"�test_tag_has�szTreeviewTest.test_tag_has)rrVrbrWrcr$rXr�r3rer�rY)r9r:r;rgr@rr[r]r�r^r�r�rgrjrnrrrtrurwryrNrr�r7r�r�r�r]r!r!)rEr"rUZs4	*"M\!"rUc@seZdZd
ZdZdd�Zd	S)�
SeparatorTestrrbr�r3rercKstj|jf|�S)N)rZ	SeparatorrB)rrfr!r!r"r�szSeparatorTest.createN)rrbr�r3re)r9r:r;rgr4rr!r!r!r"r��sr�c@seZdZdZdd�ZdS)	�SizegripTestrrbr3recKstj|jf|�S)N)rZSizegriprB)rrfr!r!r"r�szSizegripTest.createN)rrbr3re)r9r:r;rgrr!r!r!r"r��sr��__main__)1ZunittestrPrrZtest.supportrr�Z$tkinter.test.test_ttk.test_functionsrZtkinter.test.supportrrrr	Ztkinter.test.widget_testsr
rrr
rrrrZTestCaser<r^r`rhryr�r�r�r�r�r�rrr!r8ZskipIfr�r?r@rUr�r�Z	tests_guir9�mainr!r!r!r"�<module>sz$';0	}3j"
OC