a
    ¼3j(Ê  ã                   @   s  d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZ edƒ dd„ ZG d	d
„ d
eeƒZeeƒG dd„ dee jƒƒZeeƒG dd„ dee jƒƒZeeƒG dd„ dee jƒƒZG dd„ deeƒZeeƒG dd„ dee jƒƒZeeƒG dd„ dee jƒƒZeeƒG dd„ dee jƒƒZeeƒG dd„ dee jƒƒZeeƒG dd„ dee jƒƒZ G dd„ de e jƒZ!eeeƒG dd „ d ee jƒƒZ"eeƒG d!d"„ d"e"e jƒƒZ#eeƒG d#d$„ d$ee jƒƒZ$eeeƒG d%d&„ d&ee jƒƒZ%eeeƒG d'd(„ d(ee jƒƒZ&eeeƒG d)d*„ d*ee jƒƒZ'eeeƒG d+d,„ d,ee jƒƒZ(eeƒG d-d.„ d.ee jƒƒZ)eeƒG d/d0„ d0ee jƒƒZ*eeeƒG d1d2„ d2ee jƒƒZ+G d3d4„ d4ee jƒZ,ee%ee"eeee&e e*e+e!e)ee'e(e#e$ee,fZ-e.d5kre  /¡  dS )6é    N)ÚTclError)Úrequires)Útcl_versionÚrequires_tclÚget_tk_patchlevelÚ	widget_eqÚAbstractDefaultRootTest)Úadd_standard_optionsÚnoconvÚpixels_roundÚAbstractWidgetTestÚStandardOptionsTestsÚIntegerSizeTestsÚPixelSizeTestsÚsetUpModuleZguic                 C   s   t t| ƒƒS ©N)ÚfloatÚround©Úx© r   úb/www/server/python_manager/versions/3.9.10/lib/python3.9/tkinter/test/test_tkinter/test_widgets.pyÚfloat_round   s    r   c                   @   s0   e Zd ZeZdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚAbstractToplevelTestc                 C   sR   |   ¡ }|  |d |jj ¡ ¡ | j|dddd | j dd}|  |d d¡ d S )NÚclassZFooz2can't modify -class option after widget is created©Úerrmsg)Úclass_)ÚcreateÚassertEqualÚ	__class__Ú__name__ÚtitleÚcheckInvalidParam©ÚselfÚwidgetÚwidget2r   r   r   Útest_configure_class   s    

ÿ
ÿz)AbstractToplevelTest.test_configure_classc                 C   sJ   |   ¡ }|  |d d¡ | j|dddd | j dd}|  |d d¡ d S )NÚcolormapÚ Únewz5can't modify -colormap option after widget is createdr   )r)   ©r   r   r#   r$   r   r   r   Útest_configure_colormap"   s    
ÿz,AbstractToplevelTest.test_configure_colormapc                 C   s^   |   ¡ }|  |d | jrdnd¡ | j|dddd | j dd}|  |d | jrTdnd	¡ d S )
NÚ	containerr   Ú0é   z6can't modify -container option after widget is createdr   T©r.   Ú1)r   r   Úwantobjectsr#   r$   r   r   r   Útest_configure_container*   s    
ÿz-AbstractToplevelTest.test_configure_containerc                 C   sJ   |   ¡ }|  |d d¡ | j|dddd | j dd}|  |d d¡ d S )NÚvisualr*   Údefaultz3can't modify -visual option after widget is createdr   )r5   r,   r$   r   r   r   Útest_configure_visual2   s    
ÿz*AbstractToplevelTest.test_configure_visualN)	r!   Ú
__module__Ú__qualname__r
   Ú_conv_pad_pixelsr(   r-   r4   r7   r   r   r   r   r      s
   	r   c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚToplevelTest)Ú
backgroundÚborderwidthr   r)   r.   ÚcursorÚheightÚhighlightbackgroundÚhighlightcolorÚhighlightthicknessÚmenuÚpadxÚpadyÚreliefÚscreenÚ	takefocusÚuser5   Úwidthc                 K   s   t j| jfi |¤ŽS r   )ÚtkinterZToplevelÚroot©r%   Úkwargsr   r   r   r   E   s    zToplevelTest.createc                 C   s8   |   ¡ }t | j¡}| j|d|td |  |dd¡ d S )NrC   ©Úeqr*   )r   rK   ÚMenurL   Ú
checkParamr   ©r%   r&   rC   r   r   r   Útest_configure_menuH   s    z ToplevelTest.test_configure_menuc                 C   sv   |   ¡ }|  |d d¡ ztjd }W n tyB   |  d¡ Y n0 | j|d|dd | j |d}|  |d |¡ d S )NrG   r*   ZDISPLAYzNo $DISPLAY set.z3can't modify -screen option after widget is createdr   )rG   )r   r   ÚosÚenvironÚKeyErrorZskipTestr#   )r%   r&   Zdisplayr'   r   r   r   Útest_configure_screenN   s    
ÿz"ToplevelTest.test_configure_screenc                 C   s|   |   ¡ }|  |d d¡ | j dd}t| ¡ ƒ}| j|d, | j |d}|  |d |¡ W d   ƒ n1 sn0    Y  d S )NrI   r*   Tr1   )Úwid)rI   )r   r   ÚhexZwinfo_idZsubTest)r%   r&   ÚparentrY   r'   r   r   r   Útest_configure_useZ   s    zToplevelTest.test_configure_useN)r!   r8   r9   ÚOPTIONSr   rT   rX   r\   r   r   r   r   r;   ;   s
   r;   c                   @   s   e Zd ZdZdd„ ZdS )Ú	FrameTest)r<   r=   r   r)   r.   r>   r?   r@   rA   rB   rD   rE   rF   rH   r5   rJ   c                 K   s   t j| jfi |¤ŽS r   )rK   ÚFramerL   rM   r   r   r   r   m   s    zFrameTest.createN©r!   r8   r9   r]   r   r   r   r   r   r^   d   s   r^   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚLabelFrameTest)r<   r=   r   r)   r.   r>   ÚfontÚ
foregroundr?   r@   rA   rB   ÚlabelanchorÚlabelwidgetrD   rE   rF   rH   Útextr5   rJ   c                 K   s   t j| jfi |¤ŽS r   )rK   Z
LabelFramerL   rM   r   r   r   r   |   s    zLabelFrameTest.createc                 C   s>   |   ¡ }|  |ddddddddd	d
ddd¡ |  |dd¡ d S )Nrd   ÚeÚenÚesÚnÚneÚnwÚsÚseÚswÚwZwnÚwsÚcenter)r   ÚcheckEnumParamr#   ©r%   r&   r   r   r   Útest_configure_labelanchor   s    þz)LabelFrameTest.test_configure_labelanchorc                 C   s8   |   ¡ }tj| jddd}| j|d|dd | ¡  d S )NZMuppÚfoo)rf   Únamere   z.foo©Úexpected)r   rK   ÚLabelrL   rR   Údestroy)r%   r&   Úlabelr   r   r   Útest_configure_labelwidget†   s    z)LabelFrameTest.test_configure_labelwidgetN)r!   r8   r9   r]   r   ru   r}   r   r   r   r   ra   q   s   	ra   c                   @   s   e Zd ZeZdd„ ZdS )ÚAbstractLabelTestc              
   C   s$   |   ¡ }|  |ddddddd¡ d S )NrB   r   çÍÌÌÌÌÌô?çÍÌÌÌÌÌ@é   éþÿÿÿÚ10p©r   ÚcheckPixelsParamrt   r   r   r   Ú!test_configure_highlightthickness   s    ÿz3AbstractLabelTest.test_configure_highlightthicknessN)r!   r8   r9   r
   Ú_conv_pixelsr†   r   r   r   r   r~      s   r~   c                   @   s   e Zd ZdZdd„ ZdS )Ú	LabelTest)ÚactivebackgroundÚactiveforegroundÚanchorr<   Úbitmapr=   Úcompoundr>   Údisabledforegroundrb   rc   r?   r@   rA   rB   ÚimageÚjustifyrD   rE   rF   ÚstaterH   rf   ÚtextvariableÚ	underlinerJ   Ú
wraplengthc                 K   s   t j| jfi |¤ŽS r   )rK   rz   rL   rM   r   r   r   r   ¢   s    zLabelTest.createNr`   r   r   r   r   rˆ   –   s   
rˆ   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú
ButtonTest) r‰   rŠ   r‹   r<   rŒ   r=   Úcommandr   r>   r6   rŽ   rb   rc   r?   r@   rA   rB   r   r   Ú
overreliefrD   rE   rF   ÚrepeatdelayÚrepeatintervalr‘   rH   rf   r’   r“   rJ   r”   c                 K   s   t j| jfi |¤ŽS r   )rK   ÚButtonrL   rM   r   r   r   r   ³   s    zButtonTest.createc                 C   s   |   ¡ }|  |dddd¡ d S )Nr6   ZactiveÚdisabledÚnormal©r   rs   rt   r   r   r   Útest_configure_default¶   s    z!ButtonTest.test_configure_defaultN)r!   r8   r9   r]   r   rž   r   r   r   r   r•   ¦   s   r•   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚCheckbuttonTest)&r‰   rŠ   r‹   r<   rŒ   r=   r–   r   r>   rŽ   rb   rc   r?   r@   rA   rB   r   Úindicatoronr   Ú	offreliefÚoffvalueÚonvaluer—   rD   rE   rF   ÚselectcolorÚselectimager‘   rH   rf   r’   ÚtristateimageÚtristatevaluer“   ÚvariablerJ   r”   c                 K   s   t j| jfi |¤ŽS r   )rK   ZCheckbuttonrL   rM   r   r   r   r   Ë   s    zCheckbuttonTest.createc                 C   s    |   ¡ }|  |ddddd¡ d S )Nr¢   r0   çffffff@r*   ú
any string©r   ÚcheckParamsrt   r   r   r   Útest_configure_offvalueÏ   s    z'CheckbuttonTest.test_configure_offvaluec                 C   s    |   ¡ }|  |ddddd¡ d S )Nr£   r0   r©   r*   rª   r«   rt   r   r   r   Útest_configure_onvalueÓ   s    z&CheckbuttonTest.test_configure_onvalueN)r!   r8   r9   r]   r   r­   r®   r   r   r   r   rŸ   »   s   rŸ   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚRadiobuttonTest)%r‰   rŠ   r‹   r<   rŒ   r=   r–   r   r>   rŽ   rb   rc   r?   r@   rA   rB   r   r    r   r¡   r—   rD   rE   rF   r¤   r¥   r‘   rH   rf   r’   r¦   r§   r“   Úvaluer¨   rJ   r”   c                 K   s   t j| jfi |¤ŽS r   )rK   ZRadiobuttonrL   rM   r   r   r   r   ç   s    zRadiobuttonTest.createc                 C   s    |   ¡ }|  |ddddd¡ d S )Nr°   r0   r©   r*   rª   r«   rt   r   r   r   Útest_configure_valueê   s    z$RadiobuttonTest.test_configure_valueN)r!   r8   r9   r]   r   r±   r   r   r   r   r¯   Ø   s   r¯   c                   @   s^   e Zd ZdZeeƒZdd„ Zdd„ Zdd„ Z	e
jZdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ ZdS )ÚMenubuttonTest)r‰   rŠ   r‹   r<   rŒ   r=   r   r>   Ú	directionrŽ   rb   rc   r?   r@   rA   rB   r   r    r   rC   rD   rE   rF   r‘   rH   rf   r’   r“   rJ   r”   c                 K   s   t j| jfi |¤ŽS r   )rK   Z
MenubuttonrL   rM   r   r   r   r   þ   s    zMenubuttonTest.createc              	   C   s"   |   ¡ }|  |dddddd¡ d S )Nr³   ZaboveZbelowÚflushÚleftÚrightr   rt   r   r   r   Útest_configure_direction  s    
ÿz'MenubuttonTest.test_configure_directionc                 C   s"   |   ¡ }| j|ddddtd d S )Nr?   éd   éœÿÿÿr   ©Úconv©r   ÚcheckIntegerParamÚstrrt   r   r   r   Útest_configure_height  s    z$MenubuttonTest.test_configure_heightc                 C   sÔ   |   ¡ }tj| jdd}| j|d|td d}|  tj¡}d|d< W d   ƒ n1 sX0    Y  |d ur||  t|j	ƒ|¡ |  tj¡}| 
ddi¡ W d   ƒ n1 s¬0    Y  |d urÐ|  t|j	ƒ|¡ d S )NZimage1)Zmasterrw   r   rº   zimage "spam" doesn't existÚspam)r   rK   Z
PhotoImagerL   rR   r¾   ÚassertRaisesr   r   Ú	exceptionZ	configure)r%   r&   r   r   Úcmr   r   r   Útest_configure_image  s    &,z#MenubuttonTest.test_configure_imagec                 C   s4   |   ¡ }tj|dd}| j|d|td | ¡  d S )NrC   )rw   rO   )r   rK   rQ   rR   r   r{   rS   r   r   r   rT     s    z"MenubuttonTest.test_configure_menuc                 C   s2   |   ¡ }|  |ddddd¡ | j|dddd d S )	NrD   é   çš™™™™™@çffffff@Ú12mr‚   r   rx   ©r   r…   rR   rt   r   r   r   Útest_configure_padx!  s    z"MenubuttonTest.test_configure_padxc                 C   s2   |   ¡ }|  |ddddd¡ | j|dddd d S )	NrE   rÅ   rÆ   rÇ   rÈ   r‚   r   rx   rÉ   rt   r   r   r   Útest_configure_pady&  s    z"MenubuttonTest.test_configure_padyc                 C   s"   |   ¡ }| j|ddddtd d S )NrJ   é’  énþÿÿr   rº   r¼   rt   r   r   r   Útest_configure_width+  s    z#MenubuttonTest.test_configure_widthN)r!   r8   r9   r]   Ústaticmethodr   r‡   r   r·   r¿   r   r†   rÄ   rT   rÊ   rË   rÎ   r   r   r   r   r²   ï   s   ÿr²   c                   @   s   e Zd Zddd„Zdd„ ZdS )	ÚOptionMenuTestÚb©ÚarÑ   Úcc                 K   s   t j| jd |g|¢R i |¤ŽS r   )rK   Ú
OptionMenurL   )r%   r6   ÚvaluesrN   r   r   r   r   2  s    zOptionMenuTest.createc                 C   sD   |   td¡$ tj| jd ddd W d   ƒ n1 s60    Y  d S )Nz^unknown option -image$rÑ   r*   )r   )ÚassertRaisesRegexr   rK   rÕ   rL   ©r%   r   r   r   Útest_bad_kwarg5  s    zOptionMenuTest.test_bad_kwargN)rÑ   rÒ   )r!   r8   r9   r   rÙ   r   r   r   r   rÐ   0  s   
rÐ   c                   @   sh   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )Ú	EntryTest)r<   r=   r>   ÚdisabledbackgroundrŽ   Úexportselectionrb   rc   r@   rA   rB   ÚinsertbackgroundÚinsertborderwidthÚinsertofftimeÚinsertontimeÚinsertwidthÚinvalidcommandr   ÚreadonlybackgroundrF   ÚselectbackgroundÚselectborderwidthÚselectforegroundÚshowr‘   rH   r’   ÚvalidateÚvalidatecommandrJ   Úxscrollcommandc                 K   s   t j| jfi |¤ŽS r   )rK   ZEntryrL   rM   r   r   r   r   I  s    zEntryTest.createc                 C   s   |   ¡ }|  |d¡ d S )NrÛ   ©r   ZcheckColorParamrt   r   r   r   Ú!test_configure_disabledbackgroundL  s    z+EntryTest.test_configure_disabledbackgroundc              
   C   s:   | j dd}|  |ddddddd	¡ | j|dd
dd d S )Nr¸   )rá   rÞ   r   r   r€   r   r‚   rƒ   é<   é2   rx   rÉ   rt   r   r   r   Ú test_configure_insertborderwidthP  s
    ÿz*EntryTest.test_configure_insertborderwidthc                 C   st   |   ¡ }|  |dddd¡ | j|dddd | j|dddd td	ƒd
kr^| j|dd	dd n| j|dd	dd d S )Nrá   r   çÍÌÌÌÌÌ@rƒ   gš™™™™™¹?é   rx   r‚   gÍÌÌÌÌÌì?r   r0   )r   r…   rR   r   rt   r   r   r   Útest_configure_insertwidthW  s    z$EntryTest.test_configure_insertwidthc                 C   s$   |   ¡ }|  |d¡ |  |d¡ d S )Nrâ   Zinvcmd©r   ZcheckCommandParamrt   r   r   r   Útest_configure_invalidcommanda  s    z'EntryTest.test_configure_invalidcommandc                 C   s   |   ¡ }|  |d¡ d S )Nrã   rë   rt   r   r   r   Ú!test_configure_readonlybackgroundf  s    z+EntryTest.test_configure_readonlybackgroundc                 C   s6   |   ¡ }|  |dd¡ |  |dd¡ |  |dd¡ d S )Nrç   Ú*r*   ú ©r   rR   rt   r   r   r   Útest_configure_showj  s    zEntryTest.test_configure_showc                 C   s   |   ¡ }|  |dddd¡ d S )Nr‘   r›   rœ   Úreadonlyr   rt   r   r   r   Útest_configure_statep  s    ÿzEntryTest.test_configure_statec              
   C   s$   |   ¡ }|  |ddddddd¡ d S )Nrè   ÚallÚkeyZfocusZfocusinZfocusoutÚnoner   rt   r   r   r   Útest_configure_validateu  s    ÿz!EntryTest.test_configure_validatec                 C   s$   |   ¡ }|  |d¡ |  |d¡ d S )Nré   Zvcmdró   rt   r   r   r   Útest_configure_validatecommandz  s    z(EntryTest.test_configure_validatecommandc                 C   s$  |   ¡ }| dd¡ |  | ¡ ¡ | dd¡ |  | ¡ d¡ |  | ¡ ¡ | d¡ | 	d¡ |  | ¡ d¡ | dd¡ |  | ¡ d	¡ | 
¡  |  | ¡ ¡ | dd¡ | d¡ |  | ¡ d
¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ d S ©Nr   Z12345Úendr0   rñ   Ú2rÅ   é   Ú4Z1234Z234é   Z2345©r   ÚinsertZassertFalseZselection_presentZselection_ranger   Zselection_getZ
assertTrueZselection_fromZselection_toÚselection_clearZselection_adjustrt   r   r   r   Útest_selection_methods  s.    





z EntryTest.test_selection_methodsN)r!   r8   r9   r]   r   rì   rï   rò   rô   rõ   rù   rû   rÿ   r   r
  r   r   r   r   rÚ   :  s   
rÚ   c                   @   s„   e Zd ZdZdd„ ZdZdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚSpinboxTest),r‰   r<   r=   ÚbuttonbackgroundÚbuttoncursorÚbuttondownreliefÚbuttonupreliefr–   r>   rÛ   rŽ   rÜ   rb   rc   ÚformatÚfromr@   rA   rB   Ú	incrementrÝ   rÞ   rß   rà   rá   râ   r   rF   rã   r˜   r™   rä   rå   ræ   r‘   rH   r’   Útorè   ré   rÖ   rJ   Úwraprê   c                 K   s   t j| jfi |¤ŽS r   )rK   ZSpinboxrL   rM   r   r   r   r   ¬  s    zSpinboxTest.createNc                 C   s   |   ¡ }|  |d¡ d S )Nr  rë   rt   r   r   r   Útest_configure_buttonbackground±  s    z+SpinboxTest.test_configure_buttonbackgroundc                 C   s   |   ¡ }|  |d¡ d S )Nr  ©r   ZcheckCursorParamrt   r   r   r   Útest_configure_buttoncursorµ  s    z'SpinboxTest.test_configure_buttoncursorc                 C   s   |   ¡ }|  |d¡ d S )Nr  ©r   ZcheckReliefParamrt   r   r   r   Útest_configure_buttondownrelief¹  s    z+SpinboxTest.test_configure_buttondownreliefc                 C   s   |   ¡ }|  |d¡ d S )Nr  r  rt   r   r   r   Útest_configure_buttonuprelief½  s    z)SpinboxTest.test_configure_buttonupreliefc                 C   s´   |   ¡ }|  |dd¡ |  |dd¡ |  |dd¡ |  |dd¡ |  |dd¡ |  |dd¡ |  |dd¡ |  |dd	¡ |  |dd
¡ |  |dd¡ |  |dd¡ |  |dd¡ d S )Nr  z%2fz%2.2fz%.2fz%2.fz%2e-1fz2.2z%2.-2fz%-2.02fz% 2.02fz	% -2.200fz%09.200fz%d©r   rR   r#   rt   r   r   r   Útest_configure_formatÁ  s    z!SpinboxTest.test_configure_formatc                 C   s>   |   ¡ }|  |dd¡ |  |dddd¡ | j|dddd	 d S )
Nr  g      Y@r  éöÿÿÿçffffff$@çffffff'@éÈ   ú*-to value must be greater than -from valuer   ©r   rR   ÚcheckFloatParamr#   rt   r   r   r   Útest_configure_fromÐ  s    
ÿzSpinboxTest.test_configure_fromc              	   C   s"   |   ¡ }|  |dddddd¡ d S )Nr  éÿÿÿÿr0   r  gš™™™™™)@r   ©r   r#  rt   r   r   r   Útest_configure_increment×  s    z$SpinboxTest.test_configure_incrementc                 C   s>   |   ¡ }|  |dd¡ |  |dddd¡ | j|dddd	 d S )
Nr  g      YÀr  r  r  r  i8ÿÿÿr!  r   r"  rt   r   r   r   Útest_configure_toÛ  s    
ÿzSpinboxTest.test_configure_toc                 C   s\   |   ¡ }|  |d d¡ |  |dd¡ | j|dddd | j|dddd |  |dd¡ d S )NrÖ   r*   zmon tue wed thur)ZmonZtueZwedZthurrx   )é*   g…ëQ¸	@r*   rª   z42 3.14 {} {any string})r   r   rR   rt   r   r   r   Útest_configure_valuesâ  s    
ÿ
ÿz!SpinboxTest.test_configure_valuesc                 C   s   |   ¡ }|  |d¡ d S )Nr  ©r   ZcheckBooleanParamrt   r   r   r   Útest_configure_wrapí  s    zSpinboxTest.test_configure_wrapc                 C   s`   |   ¡ }|  | d¡¡ |  tj|jd¡ |  tj|jd ¡ |  t|j¡ |  t|jdd¡ d S )Nr   Únoindexr0   )r   ÚassertIsBoundingBoxÚbboxrÁ   rK   r   Ú	TypeErrorrt   r   r   r   Ú	test_bboxñ  s    zSpinboxTest.test_bboxc                 C   s  |   ¡ }| dd¡ |  | ¡ ¡ | dd¡ |  | ¡ d¡ |  | ¡ ¡ | d¡ | 	d¡ |  | ¡ d¡ | dd¡ |  | ¡ d	¡ | 
¡  |  | ¡ ¡ | dd¡ | d¡ |  | ¡ d
¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S r  r  rt   r   r   r   r
  ù  s,    





z"SpinboxTest.test_selection_methodsc                 C   sP   |   ¡ }|  | ¡ d¡ | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ d S )Nrþ   ZbuttonupZ
buttondown)r   r   Zselection_elementrt   r   r   r   Útest_selection_element  s    

z"SpinboxTest.test_selection_element)r!   r8   r9   r]   r   rù   r  r  r  r  r  r$  r'  r(  r*  r,  r1  r
  r2  r   r   r   r   r  ™  s    r  c                   @   sø   e Zd ZdZedk rdZdd„ Zdd„ Zedd	ƒd
d„ ƒZ	edd	ƒdd„ ƒZ
dd„ Zdd„ Zedd	ƒdd„ ƒZeddƒdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zedd	ƒdd „ ƒZd!d"„ Zd#d$„ Zedd	ƒd%d&„ ƒZd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/S )0ÚTextTest))Úautoseparatorsr<   Úblockcursorr=   r>   ÚendlinerÜ   rb   rc   r?   r@   rA   rB   ÚinactiveselectbackgroundrÝ   rÞ   rß   rà   Úinsertunfocussedrá   ÚmaxundorD   rE   rF   rä   rå   ræ   ÚsetgridÚspacing1Úspacing2Úspacing3Ú	startliner‘   ÚtabsÚtabstylerH   ÚundorJ   r  rê   Úyscrollcommand©é   r  Tc                 K   s   t j| jfi |¤ŽS r   )rK   ÚTextrL   rM   r   r   r   r   ,  s    zTextTest.createc                 C   s   |   ¡ }|  |d¡ d S )Nr4  r+  rt   r   r   r   Útest_configure_autoseparators/  s    z&TextTest.test_configure_autoseparatorsrD  r  c                 C   s   |   ¡ }|  |d¡ d S )Nr5  r+  rt   r   r   r   Útest_configure_blockcursor3  s    z#TextTest.test_configure_blockcursorc                 C   s”   |   ¡ }d dd„ tdƒD ƒ¡}| d|¡ | j|dddd	 | j|dd
dd	 | j|dddd |  |dd¡ |  |dd¡ | j|dddd d S )NÚ
c                 s   s   | ]
}d V  qdS ©zLine %dNr   ©Ú.0Úir   r   r   Ú	<genexpr>;  ó    z2TextTest.test_configure_endline.<locals>.<genexpr>r¸   r  r6  r   r*   rx   r  rÀ   úexpected integer but got "spam"r   rî   r>  é   é
   ú1-startline must be less than or equal to -endline©r   ÚjoinÚranger  rR   r#   ©r%   r&   rf   r   r   r   Útest_configure_endline8  s    
ÿ
ÿzTextTest.test_configure_endlinec                 C   sD   |   ¡ }|  |ddddd¡ | j|dddd | j|dd	dd d S )
Nr?   r¸   çÍÌÌÌÌLY@çfffff¦Y@Z3cr¹   r0   rx   r   rÉ   rt   r   r   r   r¿   F  s    zTextTest.test_configure_heightc                 C   s   |   ¡ }|  |dddd¡ d S )Nr9  r   r  r%  ©r   r½   rt   r   r   r   Útest_configure_maxundoL  s    zTextTest.test_configure_maxundoc                 C   s   |   ¡ }|  |d¡ d S )Nr7  rë   rt   r   r   r   Ú'test_configure_inactiveselectbackgroundP  s    z0TextTest.test_configure_inactiveselectbackgroundr   c                 C   s   |   ¡ }|  |dddd¡ d S )Nr8  Zhollowrþ   Zsolidr   rt   r   r   r   Útest_configure_insertunfocussedU  s    ÿz(TextTest.test_configure_insertunfocussedc              
   C   s*   |   ¡ }| j|dddddttdkd d S )Nrå   r   r€   r‚   rƒ   rC  )r»   Ú	keep_orig)r   r…   r
   r   rt   r   r   r   Ú test_configure_selectborderwidth[  s
    
þz)TextTest.test_configure_selectborderwidthc                 C   s2   |   ¡ }|  |ddddd¡ | j|dddd d S )	Nr;  é   çffffff5@çš™™™™™6@ú0.5céûÿÿÿr   rx   rÉ   rt   r   r   r   Útest_configure_spacing1a  s    z TextTest.test_configure_spacing1c                 C   s2   |   ¡ }|  |ddddd¡ | j|dddd d S )	Nr<  r  çš™™™™™@çffffff@z0.1cr%  r   rx   rÉ   rt   r   r   r   Útest_configure_spacing2f  s    z TextTest.test_configure_spacing2c                 C   s2   |   ¡ }|  |ddddd¡ | j|dddd d S )	Nr=  r`  ra  rb  rc  r  r   rx   rÉ   rt   r   r   r   Útest_configure_spacing3k  s    z TextTest.test_configure_spacing3c                 C   s”   |   ¡ }d dd„ tdƒD ƒ¡}| d|¡ | j|dddd	 | j|dd
dd	 | j|dddd |  |dd¡ |  |dd¡ | j|dddd d S )NrH  c                 s   s   | ]
}d V  qdS rI  r   rJ  r   r   r   rM  s  rN  z4TextTest.test_configure_startline.<locals>.<genexpr>r¸   r  r>  r   r*   rx   r  rÀ   rO  r   rQ  r6  rî   éF   rR  rS  rV  r   r   r   Útest_configure_startlinep  s    
ÿ
ÿz!TextTest.test_configure_startlinec                 C   s6   |   ¡ }tdk r"|  |ddd¡ n|  |ddd¡ d S )NrC  r‘   r›   rœ   ©r   r   r¬   rs   rt   r   r   r   rû   ~  s    zTextTest.test_configure_statec                 C   st   |   ¡ }tƒ dk r&| j|dddd n|  |dd¡ | j|dddd | j|dddd | j|dd	d
tdkd d S )N©rD  r  é   r?  )r  g33333³4@Ú1iÚ2i)z10.2z20.7ro  rp  rx   z10.2 20.7 1i 2iz2c left 4c 6c center)Z2crµ   Z4cZ6crr   rÀ   zbad screen distance "spam"rC  )r   r^  )r   r   rR   r#   r   rt   r   r   r   Útest_configure_tabs…  s     

ÿ
ÿ
ÿ
þzTextTest.test_configure_tabsc                 C   s   |   ¡ }|  |ddd¡ d S )Nr@  ZtabularZwordprocessorr   rt   r   r   r   Útest_configure_tabstyle”  s    z TextTest.test_configure_tabstylec                 C   s   |   ¡ }|  |d¡ d S )NrA  r+  rt   r   r   r   Útest_configure_undo™  s    zTextTest.test_configure_undoc                 C   s>   |   ¡ }|  |dd¡ | j|dddd | j|dddd d S )NrJ   rÌ   rÍ   r0   rx   r   )r   r½   rR   rt   r   r   r   rÎ     s    zTextTest.test_configure_widthc                 C   s:   |   ¡ }tdk r$|  |dddd¡ n|  |dddd¡ d S )NrC  r  Úcharrþ   Zwordrl  rt   r   r   r   r,  £  s    zTextTest.test_configure_wrapc                 C   sp   |   ¡ }|  | d¡¡ |  | d¡¡ |  tj|jd¡ |  tj|jd ¡ |  t|j¡ |  t|jdd¡ d S )Nz1.1r  r-  )r   r.  r/  ÚassertIsNonerÁ   rK   r   r0  rt   r   r   r   r1  ª  s    zTextTest.test_bboxN)r!   r8   r9   r]   r   Ú
_stringifyr   rF  r   rG  rW  r¿   r[  r\  r]  r_  re  rh  ri  rk  rû   rq  rr  rs  rÎ   r,  r1  r   r   r   r   r3    s:   





r3  c                   @   sj   e Zd ZdZeZdZdd„ Zdd„ Zdd„ Z	d	d
„ Z
dd„ Zdd„ Zdd„ Zdd„ Zeddƒdd„ ƒZdS )Ú
CanvasTest)r<   r=   ÚcloseenoughÚconfiner>   r?   r@   rA   rB   rÝ   rÞ   rß   rà   rá   ÚoffsetrF   Úscrollregionrä   rå   ræ   r‘   rH   rê   ÚxscrollincrementrB  ÚyscrollincrementrJ   Tc                 K   s   t j| jfi |¤ŽS r   )rK   ZCanvasrL   rM   r   r   r   r   Æ  s    zCanvasTest.createc              	   C   s$   |   ¡ }| j|dddddtd d S )Nrx  é   ç333333@rð   éýÿÿÿrº   )r   r#  r   rt   r   r   r   Útest_configure_closeenoughÉ  s    ÿz%CanvasTest.test_configure_closeenoughc                 C   s   |   ¡ }|  |d¡ d S )Nry  r+  rt   r   r   r   Útest_configure_confineÎ  s    z!CanvasTest.test_configure_confinec                 C   sd   |   ¡ }|  |d d¡ |  |dddddddd	d
d¡ |  |dd¡ |  |dd¡ |  |dd¡ d S )Nrz  z0,0rj   rk   rg   rn   rm   ro   rp   rl   rr   z10,20z#5,6rÀ   )r   r   r¬   rR   r#   rt   r   r   r   Útest_configure_offsetÒ  s    ÿz CanvasTest.test_configure_offsetc                 C   sv   |   ¡ }|  |dd¡ | j|dddd |  |dd¡ | j|dddd |  |dd	¡ |  |dd
¡ |  |dd¡ d S )Nr{  z0 0 200 150)r   r   r   é–   rx   r*   rÀ   zbad scrollRegion "spam"r   )r   r   r   rÀ   )r   r   r   )r   r   r   r„  r   r  rt   r   r   r   Útest_configure_scrollregionÛ  s    
ÿ
ÿz&CanvasTest.test_configure_scrollregionc                 C   s    |   ¡ }| j|ddddd d S )Nr‘   r›   rœ   z0bad state value "{}": must be normal or disabledr   r   rt   r   r   r   rû   ç  s    ÿzCanvasTest.test_configure_statec              
   C   s$   |   ¡ }|  |ddddddd¡ d S )Nr|  é(   r   gš™™™™™D@gÍÌÌÌÌÌE@iØÿÿÿz0.5ir„   rt   r   r   r   Útest_configure_xscrollincrementì  s    ÿz*CanvasTest.test_configure_xscrollincrementc              
   C   s$   |   ¡ }|  |ddddddd¡ d S )Nr}  rQ  r   çffffff&@g333333+@r  z0.1ir„   rt   r   r   r   Útest_configure_yscrollincrementñ  s    ÿz*CanvasTest.test_configure_yscrollincrementrD  r   c                 C   sH  |   ¡ }|jdddddd}|jdddddd}| |¡\}}}}| |¡\}}}}| ddd	¡ | |¡\}	}
}}| |¡\}}}}|  |	d¡ |  |
d	¡ |  || ||	 ¡ |  || ||
 ¡ | ||¡ |jddd
 | |¡\}}}}| |¡\}}}}|  |d¡ |  ||¡ |  ||	 || ¡ |  ||
 || ¡ d S )Nr0   r`  Úgroup)Útagsé   rî   rj  r   r¸   )Úy)r   Zcreate_rectangler/  Zmovetor   Z	tag_lower)r%   r&   Zi1Zi2Zx1Zy1Ú_Zx2Zy2Zx1_2Zy1_2Zx2_2Zy2_2Zx1_3Zy1_3Zx2_3Zy2_3r   r   r   Útest_movetoö  s(    zCanvasTest.test_movetoN)r!   r8   r9   r]   r   r‡   rv  r   r  r‚  rƒ  r…  rû   r‡  r‰  r   r  r   r   r   r   rw  ´  s   	rw  c                   @   s¢   e Zd ZdZdd„ Zdd„ ZedddƒejƒZ	d	d
„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%S )&ÚListboxTest)Úactivestyler<   r=   r>   rŽ   rÜ   rb   rc   r?   r@   rA   rB   r   ÚlistvariablerF   rä   rå   ræ   Ú
selectmoder:  r‘   rH   rJ   rê   rB  c                 K   s   t j| jfi |¤ŽS r   )rK   ZListboxrL   rM   r   r   r   r     s    zListboxTest.createc                 C   s   |   ¡ }|  |dddd¡ d S )Nr‘  Zdotboxrþ   r“   r   rt   r   r   r   Útest_configure_activestyle  s    ÿz&ListboxTest.test_configure_activestylerD  r   r  c                 C   s&   |   ¡ }t | j¡}|  |d|¡ d S )Nr’  )r   rK   Z	DoubleVarrL   ZcheckVariableParam)r%   r&   Úvarr   r   r   Útest_configure_listvariable%  s    z'ListboxTest.test_configure_listvariablec                 C   sD   |   ¡ }|  |dd¡ |  |dd¡ |  |dd¡ |  |dd¡ d S )Nr“  ZsingleZbrowseZmultipleZextendedrø   rt   r   r   r   Útest_configure_selectmode*  s
    z%ListboxTest.test_configure_selectmodec                 C   s   |   ¡ }|  |ddd¡ d S )Nr‘   r›   rœ   r   rt   r   r   r   rû   1  s    z ListboxTest.test_configure_statec                 C   s”  |   ¡ }|  td¡ | d¡ W d   ƒ n1 s40    Y  d ¡ }|jdg|¢R Ž  t|ƒD ]\}}|j||d q`|  t¡ | ¡  W d   ƒ n1 s 0    Y  |  td¡ | d¡ W d   ƒ n1 sÖ0    Y  |  	| dd¡d	¡ |  	| dd¡d
¡ |  	| dd¡d	¡ | d¡}|  
|t¡ | ¡ D ]T\}}|  t|ƒd¡ t|ƒdkr:|  	|| d|¡¡ |  	|d | d|¡¡ q:d S )Nzitem number "0" out of ranger   z)red orange yellow green blue white violetr  )r<   zbad listbox index "red"Úredr<   )r<   r<   Ú
Backgroundr*   r˜  )r<   r<   r™  r*   Zvioletz@0,0)rñ   r  r  r  )r   r×   r   ÚitemconfigureÚsplitr  Ú	enumeraterÁ   r0  r   ÚassertIsInstanceÚdictÚitemsZassertInÚlenÚitemcget)r%   r&   ZcolorsrL  ZcolorÚdÚkÚvr   r   r   Útest_itemconfigure5  s6    (&(ÿÿÿ
zListboxTest.test_itemconfigurec                 C   sž   |   ¡ }| ddddd¡ |jd
i ||i¤Ž |  | d|¡d |¡ |  | d|¡|¡ |  td¡$ |jdi |d	i¤Ž W d   ƒ n1 s0    Y  d S )Nr  rÓ   rÑ   rÔ   r¢  r   r  zunknown color name "spam"rÀ   )r   )r   )r   r  rš  r   r¡  r×   r   )r%   rw   r°   r&   r   r   r   Úcheck_itemconfigureP  s    zListboxTest.check_itemconfigurec                 C   s   |   dd¡ d S )Nr<   ú#ff0000©r¦  rØ   r   r   r   Útest_itemconfigure_backgroundY  s    z)ListboxTest.test_itemconfigure_backgroundc                 C   s   |   dd¡ d S )NÚbgr§  r¨  rØ   r   r   r   Útest_itemconfigure_bg\  s    z!ListboxTest.test_itemconfigure_bgc                 C   s   |   dd¡ d S )NZfgú#110022r¨  rØ   r   r   r   Útest_itemconfigure_fg_  s    z!ListboxTest.test_itemconfigure_fgc                 C   s   |   dd¡ d S )Nrc   r¬  r¨  rØ   r   r   r   Útest_itemconfigure_foregroundb  s    z)ListboxTest.test_itemconfigure_foregroundc                 C   s   |   dd¡ d S )Nrä   r¬  r¨  rØ   r   r   r   Ú#test_itemconfigure_selectbackgrounde  s    z/ListboxTest.test_itemconfigure_selectbackgroundc                 C   s   |   dd¡ d S )Nræ   z#654321r¨  rØ   r   r   r   Ú#test_itemconfigure_selectforegroundh  s    z/ListboxTest.test_itemconfigure_selectforegroundc                 C   s¤   |   ¡ }|jdgdd„ tdƒD ƒ¢R Ž  | ¡  |  | d¡¡ |  | d¡¡ |  | d¡¡ |  t|jd¡ |  t|jd ¡ |  t	|j¡ |  t	|jdd¡ d S )	Nr   c                 s   s   | ]}d | V  qdS ©zel%dNr   rJ  r   r   r   rM  m  rN  z'ListboxTest.test_box.<locals>.<genexpr>rD  r%  rQ  r-  r0   )
r   r  rU  Úpackr.  r/  ru  rÁ   r   r0  ©r%   Zlbr   r   r   Útest_boxk  s     zListboxTest.test_boxc                 C   sp   |   ¡ }|jdgdd„ tdƒD ƒ¢R Ž  | dtj¡ | dd¡ | d¡ |  | ¡ d¡ |  	t
|jd¡ d S )	Nr   c                 s   s   | ]}d | V  qdS r±  r   rJ  r   r   r   rM  y  rN  z0ListboxTest.test_curselection.<locals>.<genexpr>rD  rñ   r  r   )rñ   rÅ   r  r   )r   r  rU  r	  rK   ZENDZselection_setr   ZcurselectionrÁ   r0  r³  r   r   r   Útest_curselectionw  s     
zListboxTest.test_curselectionc                 C   s:  |   ¡ }|jdgdd„ tdƒD ƒ¢R Ž  |  | d¡d¡ |  | d¡d¡ |  | d¡d	¡ |  | d¡d
¡ |  | d¡d
¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  t|jd¡ |  t|jd ¡ |  t|j¡ |  t|jdd¡ |  t|jddd¡ |  t|jd¡ d S )Nr   c                 s   s   | ]}d | V  qdS r±  r   rJ  r   r   r   rM  ‚  rN  z'ListboxTest.test_get.<locals>.<genexpr>rD  Úel0rÅ   Úel3r  Úel7r*   r%  r  )r·  Zel4Úel5)r¹  Zel6r¸  r   )r¶  r-  r0   rñ   r  )r   r  rU  r   ÚgetrÁ   r   r0  r³  r   r   r   Útest_get€  s"     zListboxTest.test_getN)r!   r8   r9   r]   r   r”  r   r   Ztest_configure_justifyZtest_justifyr–  r—  rû   r¥  r¦  r©  r«  r­  r®  r¯  r°  r´  rµ  r»  r   r   r   r   r    s$   		r  c                   @   st   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú	ScaleTest)r‰   r<   Úbigincrementr=   r–   r>   Údigitsrb   rc   r  r@   rA   rB   r|   ÚlengthÚorientrF   r˜   r™   Ú
resolutionÚ	showvalueÚsliderlengthÚsliderreliefr‘   rH   Útickintervalr  Útroughcolorr¨   rJ   Úverticalc                 K   s   t j| jfi |¤ŽS r   )rK   ZScalerL   rM   r   r   r   r   ¡  s    zScaleTest.createc                 C   s   |   ¡ }|  |dddd¡ d S )Nr½  gÍÌÌÌÌÌ(@gš™™™™™7@rd  r&  rt   r   r   r   Útest_configure_bigincrement¤  s    z%ScaleTest.test_configure_bigincrementc                 C   s   |   ¡ }|  |ddd¡ d S )Nr¾  r  r   rZ  rt   r   r   r   Útest_configure_digits¨  s    zScaleTest.test_configure_digitsc                 C   s4   |   ¡ }tƒ dkrdnt}| j|dddd|d d S )N)rD  r   rQ  Fr  r¸   çÍÌÌÌÌÌ-@ç333333.@rº   )r   r   r   r#  )r%   r&   r»   r   r   r   r$  ¬  s    zScaleTest.test_configure_fromc                 C   s(   |   ¡ }|  |dd¡ |  |dd¡ d S )Nr|   rª   r*   rø   rt   r   r   r   Útest_configure_label±  s    zScaleTest.test_configure_labelc                 C   s    |   ¡ }|  |ddddd¡ d S )Nr¿  é‚   gffffff`@g33333ó`@Ú5ir„   rt   r   r   r   Útest_configure_length¶  s    zScaleTest.test_configure_lengthc                 C   s    |   ¡ }|  |ddddd¡ d S )NrÁ  gÍÌÌÌÌÌ@r   gÍÌÌÌÌÌ@r‚   r&  rt   r   r   r   Útest_configure_resolutionº  s    z#ScaleTest.test_configure_resolutionc                 C   s   |   ¡ }|  |d¡ d S )NrÂ  r+  rt   r   r   r   Útest_configure_showvalue¾  s    z"ScaleTest.test_configure_showvaluec              	   C   s"   |   ¡ }|  |dddddd¡ d S )NrÃ  rQ  rˆ  ç333333/@r€  Z3mr„   rt   r   r   r   Útest_configure_sliderlengthÂ  s    
ÿz%ScaleTest.test_configure_sliderlengthc                 C   s   |   ¡ }|  |d¡ d S )NrÄ  r  rt   r   r   r   Útest_configure_sliderreliefÇ  s    z%ScaleTest.test_configure_sliderreliefc              	   C   s8   |   ¡ }| j|dddddtd | j|dddtd	 d S )
NrÅ  r0   ç333333@rg  r   rº   r‚   rñ   )ry   r»   )r   r#  r   rR   rt   r   r   r   Útest_configure_tickintervalË  s    ÿÿz%ScaleTest.test_configure_tickintervalc              	   C   s$   |   ¡ }| j|dddddtd d S )Nr  i,  rÊ  rË  r  rº   )r   r#  r   rt   r   r   r   r(  Ò  s    ÿzScaleTest.test_configure_toN)r!   r8   r9   r]   Údefault_orientr   rÈ  rÉ  r$  rÌ  rÏ  rÐ  rÑ  rÓ  rÔ  rÖ  r(  r   r   r   r   r¼  ”  s   	r¼  c                   @   sL   e Zd ZdZeZdZdZdd„ Zdd„ Z	dd	„ Z
d
d„ Zdd„ Zdd„ ZdS )ÚScrollbarTest)r‰   Úactivereliefr<   r=   r–   r>   Úelementborderwidthr@   rA   rB   ZjumprÀ  rF   r˜   r™   rH   rÆ  rJ   TrÇ  c                 K   s   t j| jfi |¤ŽS r   )rK   Z	ScrollbarrL   rM   r   r   r   r   ç  s    zScrollbarTest.createc                 C   s   |   ¡ }|  |d¡ d S )NrÙ  r  rt   r   r   r   Útest_configure_activereliefê  s    z)ScrollbarTest.test_configure_activereliefc                 C   s    |   ¡ }|  |ddddd¡ d S )NrÚ  rÕ  rÇ   r‚   Ú1mr„   rt   r   r   r   Ú!test_configure_elementborderwidthî  s    z/ScrollbarTest.test_configure_elementborderwidthc                 C   s    |   ¡ }| j|ddddd d S )NrÀ  rÇ  Ú
horizontalz4bad orientation "{}": must be vertical or horizontalr   r   rt   r   r   r   Útest_configure_orientò  s    ÿz#ScrollbarTest.test_configure_orientc                 C   sZ   |   ¡ }dD ]}| |¡ |  | ¡ |¡ q| d¡ |  | ¡ ¡ |  t|jdd¡ d S )N)Úarrow1ZsliderÚarrow2r*   rà  rá  )r   Zactivater   ru  rÁ   r0  )r%   Úsbrg   r   r   r   Útest_activate÷  s    

zScrollbarTest.test_activatec                 C   s‚   |   ¡ }| dd¡ |  | ¡ d¡ |  t|jdd¡ |  t|jdd¡ |  t|jdd ¡ |  t|jd¡ |  t|jddd¡ d S )	Nçš™™™™™É?çš™™™™™Ù?)rä  rå  ÚabcÚdefg333333ã?gffffffæ?gš™™™™™é?)r   Úsetr   rº  rÁ   r   r0  )r%   râ  r   r   r   Útest_set   s    zScrollbarTest.test_setN)r!   r8   r9   r]   r   r‡   rv  r×  r   rÛ  rÝ  rß  rã  ré  r   r   r   r   rØ  Ø  s   		rØ  c                   @   s.  e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	e
dddƒdd„ ƒZe
dddƒdd„ ƒZe
dddƒdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd@d'd(„Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Ze
ddƒd1d2„ ƒZd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Ze
ddƒd;d<„ ƒZ d=d>„ Z!d?S )AÚPanedWindowTest)r<   r=   r>   Ú	handlepadÚ
handlesizer?   ÚopaqueresizerÀ  ÚproxybackgroundÚproxyborderwidthÚproxyreliefrF   Ú
sashcursorÚsashpadÚ
sashreliefÚ	sashwidthÚ
showhandlerJ   rÞ  c                 K   s   t j| jfi |¤ŽS r   )rK   ZPanedWindowrL   rM   r   r   r   r     s    zPanedWindowTest.createc              	   C   s"   |   ¡ }|  |dddddd¡ d S )Nrë  r  rf  rg  r€  rÜ  r„   rt   r   r   r   Útest_configure_handlepad  s    z(PanedWindowTest.test_configure_handlepadc              
   C   s&   |   ¡ }| j|ddddddtd d S )Nrì  rD  gÍÌÌÌÌÌ"@g333333%@r€  Ú2mrº   ©r   r…   r
   rt   r   r   r   Útest_configure_handlesize  s    ÿz)PanedWindowTest.test_configure_handlesizec                 C   s(   |   ¡ }| j|dddddddtd	 d S )	Nr?   r¸   rX  rY  r¹   r   ro  rº   rø  rt   r   r   r   r¿   $  s    ÿz%PanedWindowTest.test_configure_heightc                 C   s   |   ¡ }|  |d¡ d S )Nrí  r+  rt   r   r   r   Útest_configure_opaqueresize)  s    z+PanedWindowTest.test_configure_opaqueresizerD  r   r  c                 C   s   |   ¡ }|  |d¡ d S )Nrî  rë   rt   r   r   r   Útest_configure_proxybackground-  s    z.PanedWindowTest.test_configure_proxybackgroundc                 C   s(   |   ¡ }| j|dddddddtd	 d S )	Nrï  r   r   g333333@r   r‚   rƒ   rº   rø  rt   r   r   r   Útest_configure_proxyborderwidth2  s
    þz/PanedWindowTest.test_configure_proxyborderwidthc                 C   s   |   ¡ }|  |d¡ d S )Nrð  r  rt   r   r   r   Útest_configure_proxyrelief9  s    z*PanedWindowTest.test_configure_proxyreliefc                 C   s   |   ¡ }|  |d¡ d S )Nrñ  r  rt   r   r   r   Útest_configure_sashcursor>  s    z)PanedWindowTest.test_configure_sashcursorc              	   C   s"   |   ¡ }|  |dddddd¡ d S )Nrò  rD  r   r€   r‚   r÷  r„   rt   r   r   r   Útest_configure_sashpadB  s    z&PanedWindowTest.test_configure_sashpadc                 C   s   |   ¡ }|  |d¡ d S )Nró  r  rt   r   r   r   Útest_configure_sashreliefF  s    z)PanedWindowTest.test_configure_sashreliefc              
   C   s&   |   ¡ }| j|ddddddtd d S )Nrô  rQ  g333333&@rÒ  r€  rÜ  rº   rø  rt   r   r   r   Útest_configure_sashwidthJ  s    ÿz(PanedWindowTest.test_configure_sashwidthc                 C   s   |   ¡ }|  |d¡ d S )Nrõ  r+  rt   r   r   r   Útest_configure_showhandleO  s    z)PanedWindowTest.test_configure_showhandlec                 C   s(   |   ¡ }| j|dddddddtd	 d S )	NrJ   rÌ   gfffff6y@gš™™™™Iy@rÍ   r   rÎ  rº   rø  rt   r   r   r   rÎ   S  s    ÿz$PanedWindowTest.test_configure_widthc                 C   s:   |   ¡ }t |¡}t |¡}| |¡ | |¡ |||fS r   )r   rK   rš   Úadd©r%   ÚprÑ   rÔ   r   r   r   Úcreate2X  s    



zPanedWindowTest.create2c                 C   s„   |   ¡ \}}}|  t|j¡ | |¡}|  |t¡ | ¡ D ]D\}}|  t|ƒd¡ |  || ||¡¡ |  |d | 	||¡¡ q:d S )Nr  r  )
r  rÁ   r0  Úpaneconfigurer  rž  rŸ  r   r   Úpanecget)r%   r  rÑ   rÔ   r¢  r£  r¤  r   r   r   Útest_paneconfigure`  s    
z"PanedWindowTest.test_paneconfigureFc                 C   sv   dd„ }| j r|rt|ƒ}| j r(|r(t}|j|fi ||i¤Ž |  || ||¡d ƒ|¡ |  || ||¡ƒ|¡ d S )Nc                 S   s   | S r   r   r   r   r   r   Ú<lambda>k  rN  z5PanedWindowTest.check_paneconfigure.<locals>.<lambda>r  )r3   r¾   r  r   r  )r%   r  rÑ   rw   r°   ry   Ú	stringifyr»   r   r   r   Úcheck_paneconfigurej  s    

z#PanedWindowTest.check_paneconfigurec                 C   sF   |   t|¡& |j|fi |di¤Ž W d   ƒ n1 s80    Y  d S )NZbadValue)r×   r   r  )r%   r  rÑ   rw   Úmsgr   r   r   Úcheck_paneconfigure_badt  s    z'PanedWindowTest.check_paneconfigure_badc                 C   s8   |   ¡ \}}}|  ||d|t|ƒ¡ |  ||dd¡ d S )NZafterúbad window path name "badValue"©r  r  r¾   r  r  r   r   r   Útest_paneconfigure_afterx  s
    
ÿz(PanedWindowTest.test_paneconfigure_afterc                 C   s8   |   ¡ \}}}|  ||d|t|ƒ¡ |  ||dd¡ d S )NÚbeforer  r  r  r   r   r   Útest_paneconfigure_before~  s
    
ÿz)PanedWindowTest.test_paneconfigure_beforec                 C   s>   |   ¡ \}}}| j||dddtƒ dk d |  ||dd¡ d S )Nr?   rQ  rm  ©r  úbad screen distance "badValue"©r  r  r   r  r  r   r   r   Útest_paneconfigure_height„  s    ÿ
ÿz)PanedWindowTest.test_paneconfigure_heightc                 C   s4   |   ¡ \}}}|  ||ddd¡ |  ||dd¡ d S )NÚhideFr   z)expected boolean value but got "badValue"©r  r  r  r  r   r   r   Útest_paneconfigure_hide‹  s
    
ÿz'PanedWindowTest.test_paneconfigure_hidec                 C   s4   |   ¡ \}}}|  ||ddd¡ |  ||dd¡ d S )NZminsizerQ  r  r  r  r   r   r   Útest_paneconfigure_minsize’  s
    
ÿz*PanedWindowTest.test_paneconfigure_minsizec                 C   s4   |   ¡ \}}}|  ||ddd¡ |  ||dd¡ d S )NrD   r   r0   r  r  r  r   r   r   Útest_paneconfigure_padx˜  s
    
ÿz'PanedWindowTest.test_paneconfigure_padxc                 C   s4   |   ¡ \}}}|  ||ddd¡ |  ||dd¡ d S )NrE   r   r0   r  r  r  r   r   r   Útest_paneconfigure_padyž  s
    
ÿz'PanedWindowTest.test_paneconfigure_padyc                 C   s4   |   ¡ \}}}|  ||ddd¡ |  ||dd¡ d S )NZstickyZnsewZneswz[bad stickyness value "badValue": must be a string containing zero or more of n, e, s, and wr  r  r   r   r   Útest_paneconfigure_sticky¤  s
    
ÿz)PanedWindowTest.test_paneconfigure_stickyc                 C   s4   |   ¡ \}}}|  ||ddd¡ |  ||dd¡ d S )NZstretchZalwÚalwayszEbad stretch "badValue": must be always, first, last, middle, or neverr  r  r   r   r   Útest_paneconfigure_stretch¬  s
    
ÿz*PanedWindowTest.test_paneconfigure_stretchc                 C   s>   |   ¡ \}}}| j||dddtƒ dk d |  ||dd¡ d S )NrJ   rQ  rm  r  r  r  r  r   r   r   Útest_paneconfigure_width´  s    ÿ
ÿz(PanedWindowTest.test_paneconfigure_widthN)F)"r!   r8   r9   r]   r×  r   rö  rù  r¿   rú  r   rû  rü  rý  rþ  rÿ  r   r  r  rÎ   r  r	  r  r  r  r  r  r  r  r  r  r  r   r!  r   r   r   r   rê    sF   	










rê  c                   @   s\   e Zd ZdZeZdd„ Zdd„ Zdd„ Zdd	„ Z	d
d„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚMenuTest)r‰   ZactiveborderwidthrŠ   r<   r=   r>   rŽ   rb   rc   ÚpostcommandrF   r¤   rH   ÚtearoffÚtearoffcommandr"   Útypec                 K   s   t j| jfi |¤ŽS r   )rK   rQ   rL   rM   r   r   r   r   Ç  s    zMenuTest.createc                 C   s   |   ¡ }|  |d¡ d S )Nr#  ró   rt   r   r   r   Útest_configure_postcommandÊ  s    z#MenuTest.test_configure_postcommandc                 C   s   |   ¡ }|  |d¡ d S )Nr$  r+  rt   r   r   r   Útest_configure_tearoffÎ  s    zMenuTest.test_configure_tearoffc                 C   s   |   ¡ }|  |d¡ d S )Nr%  ró   rt   r   r   r   Útest_configure_tearoffcommandÒ  s    z&MenuTest.test_configure_tearoffcommandc                 C   s   |   ¡ }|  |dd¡ d S )Nr"   rª   rø   rt   r   r   r   Útest_configure_titleÖ  s    zMenuTest.test_configure_titlec                 C   s"   |   ¡ }| j|dddddd d S )Nr&  rœ   r$  Zmenubarz2bad type "{}": must be normal, tearoff, or menubarr   r   rt   r   r   r   Útest_configure_typeÚ  s    ýzMenuTest.test_configure_typec                 C   sÜ   |   ¡ }|jdd |  t|j¡ |  td¡ | d¡ W d   ƒ n1 sN0    Y  | d¡}|  |t¡ | 	¡ D ]X\}}|  |t
¡ |  |t¡ |  t|ƒd¡ |  |d |¡ |  | d|¡|d ¡ qv| ¡  d S )	NÚtest©r|   zbad menu entry index "foo"rv   r0   r  r   r  )r   Úadd_commandrÁ   r0  Úentryconfigurer×   r   r  rž  rŸ  r¾   Útupler   r   Ú	entrycgetr{   )r%   Úm1r¢  r£  r¤  r   r   r   Útest_entryconfigureâ  s    (
zMenuTest.test_entryconfigurec                 C   sN   |   ¡ }|jdd |  | dd¡d¡ |jddd |  | dd¡d¡ d S )Nr,  r-  r0   r|   Úchanged)r   r.  r   r1  r/  )r%   r2  r   r   r   Útest_entryconfigure_labelò  s
    z"MenuTest.test_entryconfigure_labelc                 C   s|   |   ¡ }t | j¡}t | j¡}|j|dddd |  t| dd¡ƒt|ƒ¡ |jd|d |  t| dd¡ƒt|ƒ¡ d S )NTFZNonsense)r¨   r£   r¢   r|   r0   r¨   )r¨   )	r   rK   Z
BooleanVarrL   Zadd_checkbuttonr   r¾   r1  r/  )r%   r2  Zv1Zv2r   r   r   Útest_entryconfigure_variableù  s    
ÿz%MenuTest.test_entryconfigure_variableN)r!   r8   r9   r]   r
   r‡   r   r'  r(  r)  r*  r+  r3  r5  r6  r   r   r   r   r"  ¼  s   r"  c                   @   s$   e Zd ZdZeZdd„ Zdd„ ZdS )ÚMessageTest)r‹   Úaspectr<   r=   r>   rb   rc   r@   rA   rB   r   rD   rE   rF   rH   rf   r’   rJ   c                 K   s   t j| jfi |¤ŽS r   )rK   ZMessagerL   rM   r   r   r   r     s    zMessageTest.createc                 C   s   |   ¡ }|  |dddd¡ d S )Nr8  éú   r   iÔþÿÿrZ  rt   r   r   r   Útest_configure_aspect  s    z!MessageTest.test_configure_aspectN)r!   r8   r9   r]   r
   r:   r   r:  r   r   r   r   r7    s   r7  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚDefaultRootTestc                 C   s   |   tj¡ d S r   )Ú_test_widgetrK   r_   rØ   r   r   r   Ú
test_frame  s    zDefaultRootTest.test_framec                 C   s   |   tj¡ d S r   )r<  rK   rz   rØ   r   r   r   Ú
test_label  s    zDefaultRootTest.test_labelN)r!   r8   r9   r=  r>  r   r   r   r   r;    s   r;  Ú__main__)0ZunittestrK   r   rU   Ztest.supportr   Ztkinter.test.supportr   r   r   r   r   Ztkinter.test.widget_testsr	   r
   r   r   r   r   r   r   r   r   ZTestCaser;   r^   ra   r~   rˆ   r•   rŸ   r¯   r²   rÐ   rÚ   r  r3  rw  r  r¼  rØ  rê  r"  r7  r;  Z	tests_guir!   Úmainr   r   r   r   Ú<module>   sx   (%(	@
^  Y C2 1G
û
