a
    ¼3j’ ã                   @   s4  d dl Z d dlZd dlmZmZ d dlmZ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 edƒ G dd	„ d	eƒZ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G dd„ d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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%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j*d(kd)¡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 d0d1„ d1ee jƒƒZ.eeƒG d2d3„ d3ee jƒƒZ/eeƒG d4d5„ d5ee jƒƒZ0G d6d7„ d7ee jƒZ1e e!e#e"eeee&e,e$e(e%e'e+e/e0e-e.ee1fZ2e3d8kr0e  4¡  dS )9é    N)ÚttkÚTclError)ÚrequiresÚ
gc_collect)Ú
MockTclObj)ÚAbstractTkTestÚtcl_versionÚget_tk_patchlevelÚsimulate_mouse_clickÚAbstractDefaultRootTest)Úadd_standard_optionsÚnoconvÚAbstractWidgetTestÚStandardOptionsTestsÚIntegerSizeTestsÚPixelSizeTestsÚsetUpModuleZguic                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚStandardTtkOptionsTestsc                 C   s\   |   ¡ }|  |d d¡ d}tƒ dk r*d}| j|dd|d | j dd}|  |d d¡ d S )	NÚclassÚ ú"attempt to change read-only option©é   é   r   Úbetaé   ú"Attempt to change read-only optionÚFoo©Úerrmsg©Úclass_)ÚcreateÚassertEqualr	   ÚcheckInvalidParam©ÚselfÚwidgetr   Zwidget2© r(   ú^/www/server/python_manager/versions/3.9.10/lib/python3.9/tkinter/test/test_ttk/test_widgets.pyÚtest_configure_class   s    
z,StandardTtkOptionsTests.test_configure_classc                 C   s†   |   ¡ }| j|dddd | j|dddd | j|dddd | j|dd	d
d | j|dddd |  |dd¡ | j|dddd d S )NÚpaddingr   )Ú0©Zexpectedé   )Ú5)r.   r   )r/   Ú6)r.   r   é   )r/   r0   Ú7)r.   r   r1   r   )r/   r0   r2   Ú8)Z5pZ6pZ7pZ8pr(   r   ©r"   Ú
checkParam©r&   r'   r(   r(   r)   Útest_configure_padding   s    
ÿ
ÿz.StandardTtkOptionsTests.test_configure_paddingc                 C   sj   |   ¡ }|  |d d¡ d}t| dƒr8dt| dƒ ¡  }| j|dd|d | j dd}|  |d	 d¡ d S )
NÚstyler   zLayout Foo not foundÚdefault_orientzLayout %s.Foo not foundr   r   r    r   )r"   r#   ÚhasattrÚgetattrÚtitler$   r%   r(   r(   r)   Útest_configure_style)   s    
ÿ
ÿz,StandardTtkOptionsTests.test_configure_styleN)Ú__name__Ú
__module__Ú__qualname__r*   r7   r=   r(   r(   r(   r)   r      s   
r   c                       s,   e Zd Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )Ú
WidgetTestc                    s,   t ƒ  ¡  tj| jddd| _| j ¡  d S )Nr   ÚText)ÚwidthÚtext)ÚsuperÚsetUpr   ÚButtonÚrootr'   Úpack©r&   ©Ú	__class__r(   r)   rF   ;   s    
zWidgetTest.setUpc                 C   s˜   | j  ¡  |  | j  t| j  ¡ d ƒt| j  ¡ d ƒ¡d¡ |  | j  dd¡d¡ |  tj	| j jd d¡ |  tj	| j jdd ¡ |  tj	| j jdd¡ d S )Né   Úlabeléÿÿÿÿr   r.   )
r'   Úupdater#   ÚidentifyÚintÚwinfo_widthÚwinfo_heightÚassertRaisesÚtkinterr   rJ   r(   r(   r)   Útest_identify@   s    

þýzWidgetTest.test_identifyc                 C   sB  |   | j ¡ d¡ |   | j dg¡d¡ |   | j dg¡d¡ |   | j dg¡d¡ |   | j ddg¡d¡ |   | j ddg¡d¡ |   | j ddg¡d¡ dd	„ }|   | jjdg|d
fi ddi¤Žd
ddif¡ | j ¡ }|  tj| jjdg¡ |  tj| jjddg¡ |   || j ¡ ¡ | j ddg¡ |   | j ¡ d¡ d S )Nr(   ú	!disabledTÚdisabled)rX   Úactive)z!activerY   c                 [   s   | |fS ©Nr(   )Zarg1Úkwr(   r(   r)   Útest_cb\   s    z-WidgetTest.test_widget_state.<locals>.test_cbÚhiÚmsgZthereZbadstate)rZ   )r#   r'   ÚstateZinstaterU   rV   r   )r&   r]   Z	currstater(   r(   r)   Útest_widget_stateL   s6    ÿÿÿ
þ
ÿÿzWidgetTest.test_widget_state)r>   r?   r@   rF   rW   ra   Ú__classcell__r(   r(   rK   r)   rA   8   s   rA   c                   @   s   e Zd ZeZdS )ÚAbstractToplevelTestN)r>   r?   r@   r   Ú_conv_pixelsr(   r(   r(   r)   rc   p   s   rc   c                   @   s   e Zd ZdZdd„ ZdS )Ú	FrameTest)	Úborderwidthr   ÚcursorÚheightr+   Úreliefr8   Ú	takefocusrC   c                 K   s   t j| jfi |¤ŽS r[   )r   ÚFramerH   ©r&   Úkwargsr(   r(   r)   r"   |   s    zFrameTest.createN©r>   r?   r@   ÚOPTIONSr"   r(   r(   r(   r)   re   t   s   re   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚLabelFrameTest)rf   r   rg   rh   ÚlabelanchorÚlabelwidgetr+   ri   r8   rj   rD   Ú	underlinerC   c                 K   s   t j| jfi |¤ŽS r[   )r   Z
LabelFramerH   rl   r(   r(   r)   r"   ‰   s    zLabelFrameTest.createc                 C   sB   |   ¡ }| j|ddddddddd	d
ddddd |  |dd¡ d S )Nrq   ÚeÚenÚesÚnÚneZnwÚsZseÚswÚwZwnÚwsz!Bad label anchor specification {}r   Úcenter)r"   ÚcheckEnumParamr$   r6   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MuppZfoo)rD   Únamerr   z.foor-   )r"   r   ÚLabelrH   r5   Údestroy)r&   r'   rN   r(   r(   r)   Útest_configure_labelwidget“   s    z)LabelFrameTest.test_configure_labelwidgetN)r>   r?   r@   ro   r"   r   rƒ   r(   r(   r(   r)   rp   €   s   rp   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚAbstractLabelTestc                 C   s˜   t j| jdd}t j| jdd}| j|||dd | j||ddd | j|||fdd | j|||d|fdd | j||ddd | j||d	d
d d S )NÚimage1)Úmasterr€   Úimage2)r…   r-   rZ   )r…   rZ   r‡   zimage1 active image2Úspamzimage "spam" doesn't existr   )rV   Z
PhotoImagerH   r5   r$   )r&   r'   r€   Úimager‡   r(   r(   r)   ÚcheckImageParamœ   s    ÿ
ÿ
ÿz!AbstractLabelTest.checkImageParamc                 C   sP   d  ¡ }dd |d d… ¡› d|d › }|  ¡ }| j|dg|¢R d|iŽ d S )Nz,none text image center top bottom left rightzbad compound "{}": must be z, rO   z, or Úcompoundr   )ÚsplitÚjoinr"   r~   )r&   Úoptionsr   r'   r(   r(   r)   Útest_configure_compound©   s    ÿÿÿz)AbstractLabelTest.test_configure_compoundc                 C   s   |   ¡ }|  |dddd¡ d S )Nr`   rZ   rY   Únormal©r"   ZcheckParamsr6   r(   r(   r)   Útest_configure_state²   s    z&AbstractLabelTest.test_configure_statec                 C   s   |   ¡ }|  |dddd¡ d S )NrC   i’  inþÿÿr   r‘   r6   r(   r(   r)   Útest_configure_width¶   s    z&AbstractLabelTest.test_configure_widthN)r>   r?   r@   rŠ   r   r’   r“   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 )Ú	LabelTest)ÚanchorÚ
backgroundrf   r   r‹   rg   ÚfontÚ
foregroundr‰   Újustifyr+   ri   r`   r8   rj   rD   Útextvariablers   rC   Z
wraplengthc                 K   s   t j| jfi |¤ŽS r[   )r   r   rH   rl   r(   r(   r)   r"   Æ   s    zLabelTest.createc                 C   s   |   ¡ }|  |dd¡ d S )Nr—   z3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*r4   r6   r(   r(   r)   Útest_configure_fontÉ   s    ÿzLabelTest.test_configure_fontN)r>   r?   r@   ro   r   rd   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 )	Ú
ButtonTest)r   Úcommandr‹   rg   Údefaultr‰   r+   r`   r8   rj   rD   rš   rs   rC   c                 K   s   t j| jfi |¤ŽS r[   )r   rG   rH   rl   r(   r(   r)   r"   Ø   s    zButtonTest.createc                 C   s   |   ¡ }|  |dddd¡ d S )Nrž   r   rZ   rY   ©r"   r~   r6   r(   r(   r)   Útest_configure_defaultÛ   s    z!ButtonTest.test_configure_defaultc                    s2   g ‰ t j| j‡ fdd„d}| ¡  |  ˆ ¡ d S )Nc                      s
   ˆ   d¡S ©Né   ©Úappendr(   ©Úsuccessr(   r)   Ú<lambda>á   ó    z(ButtonTest.test_invoke.<locals>.<lambda>©r   )r   rG   rH   ÚinvokeÚ
assertTrue)r&   Zbtnr(   r¥   r)   Útest_invokeß   s    zButtonTest.test_invokeN)r>   r?   r@   ro   r"   r    r¬   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 )ÚCheckbuttonTest)r   r   r‹   rg   r‰   ÚoffvalueÚonvaluer+   r`   r8   rj   rD   rš   rs   ÚvariablerC   c                 K   s   t j| jfi |¤ŽS r[   )r   ÚCheckbuttonrH   rl   r(   r(   r)   r"   ñ   s    zCheckbuttonTest.createc                 C   s    |   ¡ }|  |ddddd¡ d S )Nr®   r¢   çffffff@r   ú
any stringr‘   r6   r(   r(   r)   Útest_configure_offvalueô   s    z'CheckbuttonTest.test_configure_offvaluec                 C   s    |   ¡ }|  |ddddd¡ d S )Nr¯   r¢   r²   r   r³   r‘   r6   r(   r(   r)   Útest_configure_onvalueø   s    z&CheckbuttonTest.test_configure_onvaluec                    sÐ   g ‰ ‡ fdd„}t j| j|d}|  | ¡ d¡ |  tj|jj	|d ¡ | 
¡ }|  |d¡ |  |d |j 	|d ¡¡ |  ˆ ¡ d|d	< | 
¡ }|  t|ƒ¡ |  tˆ ƒd
¡ |  |d |j 	|d ¡¡ d S )Nc                      s   ˆ   d¡ dS ©Nr¢   úcb test calledr£   r(   r¥   r(   r)   Úcb_testþ   s    
z,CheckbuttonTest.test_invoke.<locals>.cb_testr©   )Z	alternater°   r·   r¯   r   r   r¢   r®   )r   r±   rH   r#   r`   rU   rV   r   ÚtkÚglobalgetvarrª   r«   ÚassertFalseÚstrÚassertLessEqualÚlen)r&   r¸   ÚcbtnÚresr(   r¥   r)   r¬   ü   s(    ÿ
ÿ

ÿzCheckbuttonTest.test_invokeN)r>   r?   r@   ro   r"   r´   rµ   r¬   r(   r(   r(   r)   r­   æ   s
   	r­   c                       sŠ   e Zd ZdZejdkrdndZ‡ f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‡  ZS )Ú	EntryTest)r–   r   rg   Úexportselectionr—   r˜   Úinvalidcommandr™   Úshowr`   r8   rj   rš   ÚvalidateÚvalidatecommandrC   ÚxscrollcommandÚdarwinzEntry.fieldÚtextareac                    s   t ƒ  ¡  |  ¡ | _d S r[   )rE   rF   r"   ÚentryrJ   rK   r(   r)   rF   "  s    
zEntryTest.setUpc                 K   s   t j| jfi |¤ŽS r[   )r   ZEntryrH   rl   r(   r(   r)   r"   &  s    zEntryTest.createc                 C   s   |   ¡ }|  |d¡ d S )NrÃ   ©r"   ZcheckCommandParamr6   r(   r(   r)   Útest_configure_invalidcommand)  s    z'EntryTest.test_configure_invalidcommandc                 C   s6   |   ¡ }|  |dd¡ |  |dd¡ |  |dd¡ d S )NrÄ   Ú*r   ú r4   r6   r(   r(   r)   Útest_configure_show-  s    zEntryTest.test_configure_showc                 C   s   |   ¡ }|  |dddd¡ d S )Nr`   rY   r   Úreadonlyr‘   r6   r(   r(   r)   r’   3  s    ÿzEntryTest.test_configure_statec              
   C   s$   |   ¡ }|  |ddddddd¡ d S )NrÅ   ÚallÚkeyÚfocusZfocusinZfocusoutÚnonerŸ   r6   r(   r(   r)   Útest_configure_validate8  s    ÿz!EntryTest.test_configure_validatec                 C   s   |   ¡ }|  |d¡ d S )NrÆ   rË   r6   r(   r(   r)   Útest_configure_validatecommand=  s    z(EntryTest.test_configure_validatecommandc                 C   s>   |   | j d¡¡ |  tj| jjd¡ |  tj| jjd ¡ d S )Nr   Znoindex)ÚassertIsBoundingBoxrÊ   ÚbboxrU   rV   r   rJ   r(   r(   r)   Ú	test_bboxA  s    zEntryTest.test_bboxc                 C   sˆ   | j  ¡  | j  ¡  |  | j  dd¡| j¡ |  | j  dd¡d¡ |  tj| j jd d¡ |  tj| j jdd ¡ |  tj| j jdd¡ d S )Nr.   rO   r   )	rÊ   rI   rP   r#   rQ   ÚIDENTIFY_ASrU   rV   r   rJ   r(   r(   r)   rW   F  s    

zEntryTest.test_identifyc                    sà   g ‰ ‡ fdd„}d| j d< dd„ | j d< || j d< | j  ¡  |  ˆ ¡ d| j d< | j  ¡  |  tˆ ƒd	¡ || j d< d
d„ | j d< | j  ¡  |  tˆ ƒd	¡ d| j d< | j  ¡  |  tˆ ƒd	¡ d| j d< |  tj| j j¡ d S )Nc                      s
   ˆ   d¡S ©NTr£   r(   r¥   r(   r)   r§   T  r¨   z3EntryTest.test_validation_options.<locals>.<lambda>rÔ   rÅ   c                   S   s   dS )NFr(   r(   r(   r(   r)   r§   W  r¨   rÆ   rÃ   r   r¢   c                   S   s   dS rÛ   r(   r(   r(   r(   r)   r§   b  r¨   T)rÊ   rÅ   r«   r#   r¾   rU   rV   r   )r&   Ztest_invalidr(   r¥   r)   Útest_validation_optionsR  s&    










z!EntryTest.test_validation_optionsc                    sr   g ‰ ‡ fdd„}d| j d< | j  |¡df| j d< | j  dd¡ | j  dd	¡ |  ˆ d
dg¡ |  | j  ¡ d	¡ d S )Nc                    s6   d|   ¡   krdks(n ˆ  d¡ dS ˆ  d¡ dS ©NÚaÚzFT)Úlowerr¤   )Z	to_insert©Z
validationr(   r)   rÅ   o  s
    

z+EntryTest.test_validation.<locals>.validaterÒ   rÅ   z%SrÆ   Úendr¢   rÞ   FT)rÊ   ÚregisterÚinsertr#   Úget©r&   rÅ   r(   rá   r)   Útest_validationm  s    
zEntryTest.test_validationc                 C   sÖ   dd„ }| j  |¡df| j d< | j  dd¡ |  | j  ¡ d¡ |  | j  ¡ d¡ | j  d	d¡ |  | j  ¡ d
¡ | j  dd¡ |  | j  ¡ d¡ |  | j  ¡ d¡ | j  d¡ |  | j  ¡ d¡ |  | j  ¡ d¡ d S )Nc                 S   s.   | D ]$}d|  ¡   kr dksn  dS qdS rÝ   )rà   )ZcontentZletterr(   r(   r)   rÅ     s    z-EntryTest.test_revalidation.<locals>.validatez%PrÆ   râ   ZavocadoTr(   r   r   Za1bF)Úinvalidr¢   )rÊ   rã   rä   r#   rÅ   r`   Údeleterå   ræ   r(   r(   r)   Útest_revalidation~  s    zEntryTest.test_revalidation)r>   r?   r@   ro   ÚsysÚplatformrÚ   rF   r"   rÌ   rÏ   r’   rÕ   rÖ   rÙ   rW   rÜ   rç   rê   rb   r(   r(   rK   r)   rÁ     s   rÁ   c                       sb   e Zd ZdZejdkrdndZ‡ fdd„Zdd„ Zd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ Z‡  ZS )ÚComboboxTest)r–   r   rg   rÂ   r—   r˜   rh   rÃ   r™   ÚpostcommandrÄ   r`   r8   rj   rš   rÅ   rÆ   ÚvaluesrC   rÇ   rÈ   zCombobox.buttonrÉ   c                    s   t ƒ  ¡  |  ¡ | _d S r[   )rE   rF   r"   ÚcomborJ   rK   r(   r)   rF   £  s    
zComboboxTest.setUpc                 K   s   t j| jfi |¤ŽS r[   )r   ÚComboboxrH   rl   r(   r(   r)   r"   §  s    zComboboxTest.createc              
   C   s$   |   ¡ }|  |ddddddd¡ d S )Nrh   éd   çÍÌÌÌÌLY@çfffff¦Y@éœÿÿÿr   Z1ir‘   r6   r(   r(   r)   Útest_configure_heightª  s    z"ComboboxTest.test_configure_heightc                 C   sj   | j  ¡ }|d d }}tjdkr8|  | j  ||¡d¡ | j jd||d | j jd||d | j  ¡  d S )Nr.   rÈ   ú.*downarrow\Zú<ButtonPress-1>©ÚxÚyú<ButtonRelease-1>)rð   rS   rë   rì   ÚassertRegexrQ   Úevent_generateÚupdate_idletasks)r&   rC   rú   rû   r(   r(   r)   Ú_show_drop_down_listbox®  s    

z$ComboboxTest._show_drop_down_listboxc                    sz   g ‰ dg| j d< | j  d‡ fdd„¡ | j  ¡  | j  ¡  | j  ¡ }|  ¡  | j  ¡  | j  d¡ | j  ¡  |  ˆ ¡ d S )Nr¢   rï   z<<ComboboxSelected>>c                    s
   ˆ   d¡S rÛ   r£   ©Úevtr¥   r(   r)   r§   ¼  r¨   z1ComboboxTest.test_virtual_event.<locals>.<lambda>z<Return>)rð   ÚbindrI   rP   rT   r   rþ   r«   )r&   rh   r(   r¥   r)   Útest_virtual_event·  s    
ÿ




zComboboxTest.test_virtual_eventc                    sb   g ‰ ‡ fdd„| j d< | j  ¡  | j  ¡  |  ¡  |  ˆ ¡ d| j d< |  ¡  |  tˆ ƒd¡ d S )Nc                      s
   ˆ   d¡S rÛ   r£   r(   r¥   r(   r)   r§   Ë  r¨   z9ComboboxTest.test_configure_postcommand.<locals>.<lambda>rî   r   r¢   )rð   rI   rP   r   r«   r#   r¾   rJ   r(   r¥   r)   Útest_configure_postcommandÈ  s    



z'ComboboxTest.test_configure_postcommandc                    sÞ  ‡ fdd„}ˆ   ˆ jd tdk r$dnd¡ |ddƒ ˆ jˆ jddd	d
 ˆ  ˆ jdd	¡ ˆ  ˆ jdd¡ ˆ  ˆ jdd¡ g d¢ˆ jd< ˆ j d¡ |ddƒ ˆ j d¡ |ddƒ ˆ j d¡ |ddƒ ˆ j d¡ dˆ jd< |ddƒ ˆ jjg d¢d ˆ   ˆ jd ˆ jrdnd¡ g d¢ˆ jd< ˆ   ˆ jd ˆ jr>dnd¡ g d¢ˆ jd< ˆ   ˆ jd ˆ jrjdnd¡ ˆ  t	j
ˆ jjtˆ jd ƒ¡ ˆ  t	j
ˆ jjd¡ tjˆ jg d¢d}ˆ   |d ˆ jrÌdnd¡ | ¡  d S )Nc                    s(   ˆ   ˆ j ¡ | ¡ ˆ   ˆ j ¡ |¡ d S r[   )r#   rð   rå   Úcurrent)ZgetvalZcurrvalrJ   r(   r)   Úcheck_get_currentØ  s    z=ComboboxTest.test_configure_values.<locals>.check_get_currentrï   ©r   r.   r(   r   rO   úmon tue wed thur©ZmonZtueZwedZthurr-   ©é*   g…ëQ¸	@r   r³   ©rÞ   r¢   Úcr  rM   r   rÞ   Úd)r¢   rM   r   r   ©r¢   r   rM   ©rï   ©Ú1r   Ú2ú1 {} 2©za bza	bza
bú{a b} {a	b} {a
b}©za\tbz"a"z} {úa\\tb {"a"} \}\ \{©r¢   rM   r   ©r  r  r   ú1 2 {})r#   rð   r   r5   Úsetr  Ú	configureÚwantobjectsrU   rV   r   r¾   r   rñ   rH   r‚   )r&   r  Zcombo2r(   rJ   r)   Útest_configure_values×  sZ    ÿ
ÿ




þþþÿ
ÿz"ComboboxTest.test_configure_values)r>   r?   r@   ro   rë   rì   rÚ   rF   r"   rö   r   r  r  r   rb   r(   r(   rK   r)   rí   —  s   	rí   c                       sX   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Z‡  ZS )ÚPanedWindowTest)r   rg   rh   Úorientr8   rj   rC   c                    s   t ƒ  ¡  |  ¡ | _d S r[   )rE   rF   r"   ÚpanedrJ   rK   r(   r)   rF     s    
zPanedWindowTest.setUpc                 K   s   t j| jfi |¤ŽS r[   )r   ZPanedWindowrH   rl   r(   r(   r)   r"      s    zPanedWindowTest.createc                 C   sd   |   ¡ }|  t|d ƒd¡ d}tƒ dk r.d}| j|dd|d | j dd}|  t|d ƒd¡ d S )	Nr"  Úverticalr   r   r   Ú
horizontalr   )r"  )r"   r#   r¼   r	   r$   r%   r(   r(   r)   Útest_configure_orient#  s    

ÿz%PanedWindowTest.test_configure_orientc                 C   s  t  | j¡}t  |¡}|  tj| jj|¡ | ¡  | ¡  t  | j¡}t  |¡}|  tj| jj|¡ | ¡  | ¡  t  | j¡}| j |¡ |  tj| jj|¡ t  | j¡}| j |¡ |  	| j 
d¡| j 
d¡¡ |  tj| jj
d¡ | ¡  | ¡  |  tj| jj
d¡ d S )Nr   r¢   rM   )r   r   r#  rU   rV   r   Úaddr‚   rH   r#   Úpane)r&   rN   ÚchildZ
good_childZother_childr(   r(   r)   Útest_add.  s(    

zPanedWindowTest.test_addc                 C   s`   |   tj| jjd ¡ |   tj| jjd¡ | j t | j¡¡ | j d¡ |   tj| jjd¡ d S )Nr   )	rU   rV   r   r#  Úforgetr'  r   r   rH   rJ   r(   r(   r)   Útest_forgetI  s
    zPanedWindowTest.test_forgetc                 C   st  |   tj| jjd d¡ |   tj| jjdd ¡ |   tj| jjdd¡ t | j¡}t | j¡}t | j¡}|   tj| jjd|¡ | 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¡ d S )Nr   râ   )rU   rV   r   r#  rä   r   r   rH   r#   Úpanesr¼   )r&   r)  Úchild2Úchild3r-  r(   r(   r)   Útest_insertQ  s.    ÿ
ÿzPanedWindowTest.test_insertc                 C   s¾   |   tj| jjd¡ t | j¡}| j |¡ |  	| j d¡t
¡ |  | jjdd d| jr\dnd¡ |  | j dd¡| jr|dnd¡ |  | j d¡| j t|ƒ¡¡ | j tj| jjddd d S )Nr   ©Úweightr,   r2  Z	somevalue)Z	badoption)rU   rV   r   r#  r(  r   r   rH   r'  ÚassertIsInstanceÚdictr#   r  r¼   )r&   r)  r(   r(   r)   Ú	test_panes  s    ÿÿ ÿzPanedWindowTest.test_panec                 C   sö   |   tj| jjd ¡ |   tj| jjd¡ |   tj| jjd¡ tj| jdd}| jj|dd |   tj| jjd¡ tj| jdd}| j |¡ |   tj| jjd¡ | jjdd	d
 | j d¡}| j dd¡ |  	|| j d¡¡ |  
| j d¡t¡ d S )Nr   r   rÞ   ©rD   r¢   r1  ÚbTZboth)ÚexpandÚfilliè  )rU   rV   r   r#  Zsashposr   r   r'  rI   ÚassertNotEqualr3  rR   )r&   r)  r.  Zcurr_posr(   r(   r)   Útest_sashposƒ  s    zPanedWindowTest.test_sashpos)r>   r?   r@   ro   rF   r"   r&  r*  r,  r0  r5  r;  rb   r(   r(   rK   r)   r!    s   "r!  c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚRadiobuttonTest)r   r   r‹   rg   r‰   r+   r`   r8   rj   rD   rš   rs   Úvaluer°   rC   c                 K   s   t j| jfi |¤ŽS r[   )r   ÚRadiobuttonrH   rl   r(   r(   r)   r"   ¡  s    zRadiobuttonTest.createc                 C   s    |   ¡ }|  |ddddd¡ d S )Nr=  r¢   r²   r   r³   r‘   r6   r(   r(   r)   Útest_configure_value¤  s    z$RadiobuttonTest.test_configure_valuec                    s6  g ‰ ‡ fdd„}t  | j¡}tj| j||dd}tj| j||dd}| jrTdd„ }nt}| ¡ }|  |d¡ |  ||d	 ƒ| 	¡ ¡ |  | 	¡ ||j
 |d
 ¡ƒ¡ |  ˆ ¡ d|d< | ¡ }|  t|ƒd¡ |  tˆ ƒd¡ |  ||d	 ƒ| 	¡ ¡ |  | 	¡ ||j
 |d
 ¡ƒ¡ |  t|d
 ƒt|d
 ƒ¡ d S )Nc                      s   ˆ   d¡ dS r¶   r£   r(   r¥   r(   r)   r¸   ª  s    
z6RadiobuttonTest.test_configure_invoke.<locals>.cb_testr   )r   r°   r=  r¢   c                 S   s   | S r[   r(   ©rú   r(   r(   r)   r§   µ  r¨   z7RadiobuttonTest.test_configure_invoke.<locals>.<lambda>r·   r=  r°   r   r   )rV   ZIntVarrH   r   r>  r  rR   rª   r#   rå   r¹   rº   r«   r¼   r½   r¾   )r&   r¸   Zmyvarr¿   Zcbtn2ÚconvrÀ   r(   r¥   r)   Útest_configure_invoke¨  s8    
ÿ
ÿ

ÿ

ÿz%RadiobuttonTest.test_configure_invokeN)r>   r?   r@   ro   r"   r?  rB  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 )	ÚMenubuttonTest)r   r‹   rg   Ú	directionr‰   Úmenur+   r`   r8   rj   rD   rš   rs   rC   c                 K   s   t j| jfi |¤ŽS r[   )r   Z
MenubuttonrH   rl   r(   r(   r)   r"   Ó  s    zMenubuttonTest.createc              	   C   s"   |   ¡ }|  |dddddd¡ d S )NrD  ZaboveZbelowÚleftÚrightÚflushrŸ   r6   r(   r(   r)   Útest_directionÖ  s    
ÿzMenubuttonTest.test_directionc                 C   s4   |   ¡ }tj|dd}| j|d|td | ¡  d S )NrE  )r€   ©rA  )r"   rV   ZMenur5   r¼   r‚   )r&   r'   rE  r(   r(   r)   Útest_configure_menuÛ  s    z"MenubuttonTest.test_configure_menuN)r>   r?   r@   ro   r"   rI  rK  r(   r(   r(   r)   rC  Ë  s   rC  c                       sh   e Zd ZdZeZdZ‡ f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‡  ZS )Ú	ScaleTest)r   r   rg   ÚfromÚlengthr"  r8   rj   Útor=  r°   r%  c                    s,   t ƒ  ¡  |  ¡ | _| j ¡  | j ¡  d S r[   )rE   rF   r"   ÚscalerI   rP   rJ   rK   r(   r)   rF   ë  s    


zScaleTest.setUpc                 K   s   t j| jfi |¤ŽS r[   )r   ZScalerH   rl   r(   r(   r)   r"   ñ  s    zScaleTest.createc                 C   s"   |   ¡ }| j|dddddd d S )NrM  rò   çÍÌÌÌÌÌ-@ç333333.@FrJ  ©r"   ZcheckFloatParamr6   r(   r(   r)   Útest_configure_fromô  s    zScaleTest.test_configure_fromc                 C   s    |   ¡ }|  |ddddd¡ d S )NrN  é‚   gffffff`@g33333ó`@Z5i©r"   ÚcheckPixelsParamr6   r(   r(   r)   Útest_configure_lengthø  s    zScaleTest.test_configure_lengthc              	   C   s$   |   ¡ }| j|ddddddd d S )NrO  é,  rQ  rR  éöÿÿÿFrJ  rS  r6   r(   r(   r)   Útest_configure_toü  s    zScaleTest.test_configure_toc              	   C   s$   |   ¡ }| j|ddddddd d S )Nr=  rY  rQ  rR  rZ  FrJ  rS  r6   r(   r(   r)   r?     s    zScaleTest.test_configure_valuec                    sŠ   g d¢‰ | j  d‡ fdd„¡}d| j d< d| j d< d| j d	< |  ˆ ¡ g d¢‰ | j jd
dd | j jddd | j jdd |  ˆ ¡ d S )N)r¢   r¢   r¢   z<<RangeChanged>>c                    s   ˆ   ¡ S r[   )Úpopr  ©Zfailurer(   r)   r§     r¨   z-ScaleTest.test_custom_event.<locals>.<lambda>é
   rM  Úfrom_r   rO  rM   r.   )r_  rO  r   éþÿÿÿ)rO  )rP  r  r»   r  )r&   Zfuncidr(   r]  r)   Útest_custom_event  s    



zScaleTest.test_custom_eventc                 C   sÈ   | j rdd„ }nt}| j ¡ }|  | j |d¡| jd ¡ |  || j dd¡ƒ|| jd ƒ¡ |  | j ¡ | jd ¡ d| jd< |  | j ¡ | jd ¡ |  tj| jjdd¡ |  tj| jjdd¡ d S )	Nc                 S   s   | S r[   r(   r@  r(   r(   r)   r§     r¨   z$ScaleTest.test_get.<locals>.<lambda>r   rO  rM  r=  é   r   )	r  ÚfloatrP  rS   r#   rå   rU   rV   r   )r&   rA  Zscale_widthr(   r(   r)   Útest_get  s    

$
zScaleTest.test_getc                 C   sz  | j rdd„ }nt}|| jd ƒ}|d }| j |¡ |  || j ¡ ƒ|¡ || jd ƒ}| j |d ¡ |  || j ¡ ƒ|¡ t | j¡}|| jd< | |d ¡ |  || j ¡ ƒ| ¡ ¡ |  || j ¡ ƒ|d ¡ ~t	ƒ  |d | jd	< |  || j ¡ ƒ|d ¡ |  || j ¡ ƒ|| jd	 ƒ¡ |  || j d
d
¡ƒ|¡ |  || j | j 
¡ d
¡ƒ|¡ |  tj| jjd ¡ d S )Nc                 S   s   | S r[   r(   r@  r(   r(   r)   r§   )  r¨   z$ScaleTest.test_set.<locals>.<lambda>rO  r^  rM  r¢   r°   r.   r=  r   )r  rc  rP  r  r#   rå   rV   Z	DoubleVarrH   r   rS   rU   r   )r&   rA  ÚmaxZnew_maxÚminÚvarr(   r(   r)   Útest_set'  s.    

  zScaleTest.test_set)r>   r?   r@   ro   r   rd   r9   rF   r"   rT  rX  r[  r?  ra  rd  rh  rb   r(   r(   rK   r)   rL  â  s   rL  c                   @   sH   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S )ÚProgressbarTest)r   rg   r"  rN  ÚmodeÚmaximumZphaser8   rj   r=  r°   r%  c                 K   s   t j| jfi |¤ŽS r[   )r   ZProgressbarrH   rl   r(   r(   r)   r"   V  s    zProgressbarTest.createc                 C   s   |   ¡ }|  |dddd¡ d S )NrN  gfffffY@gš™™™™YL@Z2irV  r6   r(   r(   r)   rX  Y  s    z%ProgressbarTest.test_configure_lengthc              	   C   s$   |   ¡ }| j|ddddddd d S )Nrk  çfffffÆb@çÍÌÌÌÌlS@r   rZ  FrJ  rS  r6   r(   r(   r)   Útest_configure_maximum]  s    z&ProgressbarTest.test_configure_maximumc                 C   s   |   ¡ }|  |ddd¡ d S )Nrj  ZdeterminateZindeterminaterŸ   r6   r(   r(   r)   Útest_configure_modea  s    z#ProgressbarTest.test_configure_modec                 C   s   d S r[   r(   rJ   r(   r(   r)   Útest_configure_phasee  s    z$ProgressbarTest.test_configure_phasec              	   C   s$   |   ¡ }| j|ddddddd d S )Nr=  rl  rm  r   rZ  FrJ  rS  r6   r(   r(   r)   r?  i  s    ÿz$ProgressbarTest.test_configure_valueN)r>   r?   r@   ro   r   rd   r9   r"   rX  rn  ro  rp  r?  r(   r(   r(   r)   ri  L  s   ri  rÈ   z"ttk.Scrollbar is special on MacOSXc                   @   s   e Zd ZdZdZdd„ ZdS )ÚScrollbarTest)r   r   rg   r"  r8   rj   r$  c                 K   s   t j| jfi |¤ŽS r[   )r   Z	ScrollbarrH   rl   r(   r(   r)   r"   x  s    zScrollbarTest.createN©r>   r?   r@   ro   r9   r"   r(   r(   r(   r)   rq  o  s   rq  c                       sp   e Zd ZdZ‡ f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‡  ZS )ÚNotebookTest)r   rg   rh   r+   r8   rj   rC   c                    s\   t ƒ  ¡  | jdd| _t | j¡| _t | j¡| _| jj	| jdd | jj	| jdd d S )Nr   ©r+   rÞ   r6  r7  )
rE   rF   r"   Únbr   r   rH   Úchild1r.  r'  rJ   rK   r(   r)   rF   ‚  s    
zNotebookTest.setUpc                 K   s   t j| jfi |¤ŽS r[   )r   ZNotebookrH   rl   r(   r(   r)   r"   Š  s    zNotebookTest.createc              	   C   s:  | j  d¡ | j  | j¡ |  tj| j j| j¡ |  	| j  
d¡d¡ | j  | j¡ |  	| j  
d¡d¡ | j  | j¡ |  | j  d¡¡ | j j| jdd | j  ¡  | j  ¡  tjdkr¼d}nd	}|  	| j  |¡| j  d¡¡ td
dd
ƒD ]B}z&| j jd| d ddkrW  q6W qè tjy(   Y qè0 qè|  d¡ d S )Nr   râ   r¢   r  rÞ   r6  rÈ   z@20,5z@5,5r.   rò   z@%d, 5zTab with text 'a' not found)ru  r+  Úhider.  rU   rV   r   Útabrv  r#   Úindexr'  Úselectr«   rI   rP   rë   rì   ÚrangeÚfail)r&   Ztb_idxÚir(   r(   r)   Útest_tab_identifiers  s,    


z!NotebookTest.test_tab_identifiersc                 C   sd  |   tj| jjd¡ |   tj| jjd¡ |   tj| jjd ¡ |   tj| jjd ¡ | j tj| jjt | j¡dd | j 	¡ }| j | j
¡ | j | j
¡ |  | j 	¡ |¡ t | j¡}| jj|dd | j 	¡ }| j d¡}| j | j¡}| j | j¡ | j | j¡ |  | j 	¡ |¡ |  | j | j¡|¡ |  t| jƒ| j 	¡ | ¡ |  | j d¡|d ¡ d S )	NrO   r^   Úoption)Úunknownr  r6  r  r¢   )rU   rV   r   ru  rw  r'  r   r   rH   Útabsrv  r#   ry  r.  r¼   )r&   r  r)  ZcurrZchild2_indexr(   r(   r)   Útest_add_and_hidden«  s,    ÿ

z NotebookTest.test_add_and_hiddenc                 C   sÖ   |   tj| jjd¡ |   tj| jjd¡ |   tj| jjd ¡ | j ¡ }| j | j¡}| j | j¡ |  t	| jƒ| j ¡ ¡ |  
t|ƒd t| j ¡ ƒ¡ | j | j¡ |  
| j | j¡d¡ |  || j | j¡¡ d S )NrO   r^   r¢   )rU   rV   r   ru  r+  r  ry  rv  ZassertNotInr¼   r#   r¾   r'  r:  )r&   r  Zchild1_indexr(   r(   r)   r,  Ç  s    
zNotebookTest.test_forgetc                 C   s€   |   tj| jjd¡ |   tj| jjd ¡ |  | j d¡t¡ |  | j | j¡d¡ |  | j | j	¡d¡ |  | j d¡d¡ d S )NrO   râ   r   r¢   rM   )
rU   rV   r   ru  ry  r3  rR   r#   rv  r.  rJ   r(   r(   r)   Ú
test_indexÖ  s    zNotebookTest.test_indexc                 C   sæ  | j  ¡ }| j  d|d ¡ |  | j  ¡ |d |d f¡ | j  | j| j¡ |  | j  ¡ |¡ | j  d| j¡ |  | j  ¡ |d |d f¡ | j  dd¡ |  | j  ¡ |¡ |  tj| j jd|d ¡ |  tj| j jd|d ¡ t	 
| j¡}| j  d|¡ |  | j  ¡ |d t|ƒ|d f¡ | j  |¡ |  | j  ¡ |¡ | j  | j|¡ |  | j  ¡ t|ƒf| ¡ | j  |¡ |  tj| j jd|¡ |  tj| j jd|¡ |  tj| j jdd ¡ |  tj| j jd d¡ |  tj| j jd d ¡ d S )Nr¢   r   râ   rM   rO   )ru  r  rä   r#   rv  r.  rU   rV   r   r   r   rH   r¼   r+  )r&   r  r/  r(   r(   r)   r0  ß  s0    
$zNotebookTest.test_insertc                    s¨   | j  ¡  | j  ¡  g ‰ g ‰| j d‡ fdd„¡ | j  d‡fdd„¡ |  | j  ¡ t| jƒ¡ | j  | j¡ |  	ˆ ¡ |  | j  ¡ t| jƒ¡ | j  ¡  |  	ˆ¡ d S )Nz<Unmap>c                    s
   ˆ   d¡S rÛ   r£   r  r¥   r(   r)   r§     r¨   z*NotebookTest.test_select.<locals>.<lambda>z<<NotebookTabChanged>>c                    s
   ˆ   d¡S rÛ   r£   r  )Útab_changedr(   r)   r§     r¨   )
ru  rI   rP   rv  r  r#   rz  r¼   r.  r«   rJ   r(   )r¦   r„  r)   Útest_selectÿ  s    


ÿ

zNotebookTest.test_selectc                 C   sÌ   |   tj| jjd¡ |   tj| jjd¡ |   tj| jjd ¡ |  | j | j¡t¡ |  | jj| jd dd¡ |  | j | jd¡d¡ | jj| jdd |  | jj| jd dd¡ |  | j | jd¡d¡ d S )NrO   Znotabr6  rÞ   rD   Úabc)	rU   rV   r   ru  rx  r3  rv  r4  r#   rJ   r(   r(   r)   Útest_tab  s    zNotebookTest.test_tabc                 C   sH   |   t| j ¡ ƒd¡ | j | j¡ | j | j¡ |   | j ¡ d¡ d S )NrM   r(   )r#   r¾   ru  r  r+  rv  r.  rJ   r(   r(   r)   Útest_configure_tabs  s    z NotebookTest.test_configure_tabsc                 C   sª  | j  ¡  | j  ¡  | j  d¡ tjdkr.dnd}|  | j  dd¡|¡ t| j ddƒ | j  	¡  | j  
d¡ |  | j  ¡ t| jƒ¡ | j  	¡  | j  
d¡ |  | j  ¡ t| jƒ¡ | j  	¡  | j  
d¡ |  | j  ¡ t| jƒ¡ | j j| jddd	 | j j| jd
dd	 | j  ¡  | j  	¡  |  | j  dd¡|¡ t| j ddƒ tjdkrVd}d}nd}d}| j  
|¡ |  | j  ¡ t| jƒ¡ | j  
|¡ |  | j  ¡ t| jƒ¡ d S )Nr   rÈ   rÓ   r   r.   z<Control-Tab>z<Shift-Control-Tab>rÞ   )rD   rs   rt   z<Left>z<Right>z<Alt-a>z<Alt-e>)ru  rI   rP   rz  rë   rì   r#   rQ   r
   Zfocus_forcerþ   r¼   r.  rv  rx  Zenable_traversal)r&   Zfocus_identify_asZbeginrâ   r(   r(   r)   Útest_traversal'  s<    






zNotebookTest.test_traversal)r>   r?   r@   ro   rF   r"   r~  r‚  r,  rƒ  r0  r…  r‡  rˆ  r‰  rb   r(   r(   rK   r)   rs  |  s   	 rs  c                       s‚   e Zd ZdZejdkrdndZ‡ f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‡  ZS )ÚSpinboxTest)r–   r   r   rg   rÂ   r—   r˜   ÚformatrM  Ú	incrementrÃ   r™   rÄ   r`   r8   rj   rš   rO  rÅ   rÆ   rï   rC   ÚwraprÇ   rÈ   zSpinbox.fieldrÉ   c                    s"   t ƒ  ¡  |  ¡ | _| j ¡  d S r[   )rE   rF   r"   ÚspinrI   rJ   rK   r(   r)   rF   Y  s    

zSpinboxTest.setUpc                 K   s   t j| jfi |¤ŽS r[   )r   ÚSpinboxrH   rl   r(   r(   r)   r"   ^  s    zSpinboxTest.createc                 C   sp   | j  ¡ }| j  ¡ }|d }|d d }|  | j  ||¡d¡ | j jd||d | j jd||d | j  ¡  d S )Nr.   rM   z.*uparrow\Zrø   rù   rü   ©rŽ  rS   rT   rý   rQ   rþ   rÿ   ©r&   rC   rh   rú   rû   r(   r(   r)   Ú_click_increment_arrowa  s    

z"SpinboxTest._click_increment_arrowc                 C   sp   | j  ¡ }| j  ¡ }|d }|d d }|  | j  ||¡d¡ | j jd||d | j jd||d | j  ¡  d S )Nr.   rM   é   r÷   rø   rù   rü   r  r‘  r(   r(   r)   Ú_click_decrement_arrowk  s    

z"SpinboxTest._click_decrement_arrowc                    s–   g ‰ ‡ fdd„| j d< | j  ¡  |  ¡  | j  ¡  |  ˆ ¡ |  ¡  |  tˆ ƒd¡ d| j d< | j  ¡  |  ¡  |  ¡  | j  ¡  |  tˆ ƒd¡ d S )Nc                      s
   ˆ   d¡S rÛ   r£   r(   r¥   r(   r)   r§   x  r¨   z4SpinboxTest.test_configure_command.<locals>.<lambda>r   rM   r   )rŽ  rP   r’  r«   r”  r#   r¾   rÿ   rJ   r(   r¥   r)   Útest_configure_commandu  s    





z"SpinboxTest.test_configure_commandc                 C   sb   d| j d< d| j d< | j  d¡ | j  ¡  |  ¡  |  | j  ¡ d¡ |  ¡  |  | j  ¡ d¡ d S )Nr   rM  r.   rO  r“  r/   )rŽ  r  rP   r’  r#   rå   rJ   r(   r(   r)   r[  ‰  s    


zSpinboxTest.test_configure_toc                 C   sb   d| j d< d| j d< | j  d¡ | j  ¡  |  ¡  |  | j  ¡ d¡ |  ¡  |  | j  ¡ d¡ d S )Nr¢   rM  r^  rO  rM   r  )rŽ  r  rP   r”  r#   rå   rJ   r(   r(   r)   rT  •  s    


zSpinboxTest.test_configure_fromc                 C   s€   d| j d< d| j d< d| j d< | j  d¡ | j  ¡  |  ¡  |  | j  ¡ d¡ d	| j d< | j  ¡  |  ¡  |  | j  ¡ d
¡ d S )Nr   rM  r^  rO  r“  rŒ  r¢   r/   rM   Ú3)rŽ  r  rP   r’  r#   rå   r”  rJ   r(   r(   r)   Útest_configure_incrementŸ  s    





z$SpinboxTest.test_configure_incrementc                 C   sœ   | j  d¡ d| j d< | j  ¡  |  ¡  | j  ¡ }|  t|ƒd¡ |  | d¡d¡ d| j d< | j  ¡  |  ¡  | j  ¡ }|  d|v¡ |  t|ƒd¡ d S )Nr¢   z%10.3fr‹  r^  Ú.r   r   )	rŽ  r  rP   r’  rå   r#   r¾   ry  r«   )r&   r=  r(   r(   r)   Útest_configure_format­  s    





z!SpinboxTest.test_configure_formatc                 C   sš   d| j d< d| j d< | j  d¡ d| j d< | j  ¡  |  ¡  |  | j  ¡ d¡ |  ¡  |  | j  ¡ d¡ d	| j d< | j  ¡  |  ¡  |  | j  ¡ d¡ d S )
Nr^  rO  r¢   rM  Tr  Ú10r  F)rŽ  r  rP   r”  r#   rå   r’  rJ   r(   r(   r)   Útest_configure_wrap¾  s    





zSpinboxTest.test_configure_wrapc                 C   s|  |   | jd tdk rdnd¡ | j| jdddd |  | jdd¡ |  | jdd¡ |  | jdd¡ g d	¢| jd< | j d
¡ | j ¡  |  ¡  |   | j ¡ d¡ |  ¡  |   | j ¡ d
¡ | jj	g d¢d |   | jd | j
râdnd¡ g d¢| jd< |   | jd | j
rdnd¡ g d¢| jd< |   | jd | j
r:dnd¡ tj| jg d¢d}|   |d | j
rjdnd¡ | ¡  d S )Nrï   r  r(   r   r	  r
  r-   r  r  rÞ   r  r  r  r  r  r  r  r  r  r  r  r  )r#   rŽ  r   r5   r  rP   r’  rå   r”  r  r  r   r  rH   r‚   )r&   Zspin2r(   r(   r)   r   Ñ  sH    ÿÿ

þþþ
ÿz!SpinboxTest.test_configure_values)r>   r?   r@   ro   rë   rì   rÚ   rF   r"   r’  r”  r•  r[  rT  r—  r™  r›  r   rb   r(   r(   rK   r)   rŠ  N  s   


rŠ  c                       sÐ   e Zd ZdZ‡ f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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‡  ZS )0ÚTreeviewTest)r   Úcolumnsrg   Údisplaycolumnsrh   r+   Ú
selectmoderÄ   r8   rj   rÇ   Zyscrollcommandc                    s   t ƒ  ¡  | jdd| _d S )Nr   rt  )rE   rF   r"   ÚtvrJ   rK   r(   r)   rF     s    
zTreeviewTest.setUpc                 K   s   t j| jfi |¤ŽS r[   )r   ZTreeviewrH   rl   r(   r(   r)   r"   
  s    zTreeviewTest.createc                 C   s:   |   ¡ }| j|dddd |  |dd¡ |  |dd¡ d S )Nr  úa b c©rÞ   r7  r  r-   r   r4   r6   r(   r(   r)   Útest_configure_columns  s    
ÿz#TreeviewTest.test_configure_columnsc                 C   sŠ   |   ¡ }d|d< | j|dddd |  |dd¡ | j|dddd |  |dd	¡ | j|dd
dd | j|dddd | j|dddd d S )Nr¢  r  rž  zb a c)r7  rÞ   r  r-   ú#all)r¤  )rM   r¢   r   )rÞ   r7  r  zInvalid column index dr   )r¢   rM   r   zColumn index 3 out of bounds)r¢   r`  zColumn index -2 out of bounds)r"   r5   r$   r6   r(   r(   r)   Útest_configure_displaycolumns  s&    
ÿ
ÿ
ÿ
ÿ
ÿz*TreeviewTest.test_configure_displaycolumnsc              	   C   s8   |   ¡ }| j|ddddddd | j|ddd	td d S )
Nrh   rò   rõ   r   Z3cFrJ  ró   rô   )r"   rW  r   r6   r(   r(   r)   rö   $  s    z"TreeviewTest.test_configure_heightc                 C   s   |   ¡ }|  |dddd¡ d S )NrŸ  rÔ   ZbrowseZextendedrŸ   r6   r(   r(   r)   Útest_configure_selectmode)  s    ÿz&TreeviewTest.test_configure_selectmodec                 C   s^   |   ¡ }| j|dddd |  |dd¡ |  |dd¡ | j|dddd | j|ddd	d d S )
NrÄ   ztree headings)ÚtreeÚheadingsr-   )r¨  r§  r§  )r§  r¨  )r¨  r4   r6   r(   r(   r)   rÏ   .  s    
ÿz TreeviewTest.test_configure_showc                 C   sî   | j  ¡  |  | j  d¡d¡ | j  ¡  | j  dd¡}| j  ¡ }|  |¡ | j  |d ¡}|  |¡ dg| j d< | j j	ddd | j  |d d¡}| j j	dd d}| j
s°t|ƒ}|  |d |d | ¡ | j  |d¡}|  | j  |¡d¡ d S )	Nr   râ   r   Útestr  é2   ©rC   ú#0)r   rI   r#   rØ   rP   rä   Úget_childrenr«   r×   Úcolumnr  rR   )r&   Úitem_idZchildrenrØ   Zbbox_column0Z
root_widthrv  r(   r(   r)   rÙ   7  s"    




zTreeviewTest.test_bboxc                 C   sä   |   | j ¡ d¡ | j dd¡}|  | j ¡ t¡ |   | j ¡ d |¡ | j dd¡}| j dd¡}| j |||¡ |   | j |¡||f¡ |  tj	| jj||¡ | j |¡ |   | j |¡d¡ | j d¡ |   | j ¡ d¡ d S )Nr(   r   râ   r   )
r#   r   r­  rä   r3  ÚtupleZset_childrenrU   rV   r   )r&   r¯  r.  r/  r(   r(   r)   Útest_childrenP  s    
ÿzTreeviewTest.test_childrenc                 C   sü   |   | j d¡t¡ | jr2|   | jjdd dt¡ | jjddd |  | j dd¡| jr\dnd¡ |  | jjdd d| jr~dnd¡ | jtj	| jjddd |  tj	| jjd¡ d	d
iddiddiddiddig}|D ] }| jtj	| jjdfi |¤Ž qÖd S )Nr¬  r«  r^  rC   rš  ÚX©Úidrè   Zunknown_optionz
some valueZstretchZwrongr•   Zminwidth)
r3  r   r®  r4  r  rR   r#   rU   rV   r   )r&   Zinvalid_kwsr\   r(   r(   r)   Útest_columnk  s&    ÿÿþÿzTreeviewTest.test_columnc                 C   sâ   |   tj| jjd¡ | j dd¡}| j |d¡}|  | j ¡ |f¡ |  | j |¡|f¡ | j |¡ |  | j ¡ ¡ |   tj| jj	|dd¡ | j dd¡}| j dd¡}|  | j ¡ ||f¡ | j ||¡ |  | j ¡ ¡ d S )Nr¬  r   râ   )
rU   rV   r   r   ré   rä   r#   r­  r»   Úreattach)r&   r¯  Úitem2Úitem1r(   r(   r)   Útest_delete„  s    ÿzTreeviewTest.test_deletec                 C   s  | j  dd¡}| j  |d¡}| j  ¡ }| j  ¡  |  || j  ¡ ¡ |  | j  ¡ |f¡ |  | j  |¡|f¡ | j  |¡ |  | j  ¡ ¡ | j  |dd¡ |  | j  ¡ |f¡ |  | j  |¡|f¡ | j  |dd¡ |  | j  ¡ ||f¡ |  | j  |¡d¡ |  t	j
| j jddd¡ |  t	j
| j jd¡ |  t	j
| j j|dd¡ |  t	j
| j j|dd¡ | j  ||¡ |  | j  ¡ d¡ |  | j  |¡d¡ d S )Nr   râ   r(   ZnonexistentZotherparentrè   )r   rä   r­  Údetachr#   r»   r¶  ÚmoverU   rV   r   )r&   r¯  r·  Úprevr(   r(   r)   Útest_detach_reattach›  s<    

ÿÿÿÿz!TreeviewTest.test_detach_reattachc                 C   sT   |   | j d¡d¡ |   | j d¡d¡ |   | j i ¡d¡ |  tj| jjd ¡ d S )NZ	somethingFr   T)r#   r   ÚexistsrU   rV   r   rJ   r(   r(   r)   Útest_existsÄ  s    zTreeviewTest.test_existsc                 C   st   |   | j ¡ d¡ | j dd¡}| j |¡ |   | j ¡ |¡ | j |¡ |   | j ¡ d¡ |  tj| jjd¡ d S )Nr   râ   r^   )r#   r   rÓ   rä   ré   rU   rV   r   )r&   r¸  r(   r(   r)   Ú
test_focusÎ  s    zTreeviewTest.test_focusc                 C   s†   |   | j d¡t¡ | jjddd |  | j dd¡d¡ |  | jjdd dd¡ | jtj| jjdd d | jtj| jjddd d S )Nr¬  r^   r6  rD   )r–   r¢   )r•   )r3  r   Úheadingr4  r#   rU   rV   r   rJ   r(   r(   r)   Útest_headingÜ  s    ÿÿzTreeviewTest.test_headingc                    sÀ   ‡ fdd„}g ‰ˆ j  ¡  ˆ j jd‡fdd„d ˆ j jddd ˆ j  ¡  |d	d	ƒ ˆsdˆ  d
¡ g ‰ˆ j jj}ˆ j jdtˆ j jdd dƒd ˆ  	|ˆ j jj¡ |d	d	ƒ ˆs¼ˆ  d
¡ d S )Nc                    sN   t dkr2ˆ  ˆ j | ¡d¡ ˆ  ˆ j | |¡d¡ tˆ j| |ƒ ˆ j ¡  d S )N)r   r   r¬  rÁ  )r   r#   r   Zidentify_columnZidentify_regionr
   rP   rù   rJ   r(   r)   Úsimulate_heading_clickí  s
    zBTreeviewTest.test_heading_callback.<locals>.simulate_heading_clickr¬  c                      s
   ˆ   d¡S rÛ   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   rI   rÁ  r®  rP   r|  r†   Z_tclCommandsr¼   r#   )r&   rÃ  Úcommandsr(   )r&   r¦   r)   Útest_heading_callbackì  s     




 
z"TreeviewTest.test_heading_callbackc                 C   sL  |   tj| jjd¡ |  | j d¡d¡ | j dd¡}| j dd¡}| j |d¡}| j |d¡}|  | j |¡d¡ |  | j |¡d¡ |  | j |¡d¡ |  | j |¡d¡ | j |dd¡ |  | j |¡d¡ |  | j |¡d¡ | j |¡ |  | j |¡d¡ | j |¡ |  | j |¡d¡ | j 	|¡ |   tj| jj|¡ d S )NZwhatr   r   râ   r¢   )
rU   rV   r   r   ry  r#   rä   r»  rº  ré   )r&   r¸  r·  Úc1Úc2r(   r(   r)   rƒ    s&    zTreeviewTest.test_indexc              	   C   s„  |   tj| jjdd¡ | j tj| jjdddd | j tj| jjdddd |  | j | jjdddd¡¡ |  | j | jjdddd¡¡ |   tj| jjdd¡ | j ddd	¡}|  |d	¡ |   tj| jjddd	¡ |   tj| jjddtd	ƒ¡ d
}| jjdd|fd}|  | j 	|d¡| j
r&|fn|¡ |  | jj	|d d| j
rL|fn|¡ | jj	|| j | jj	|d d¡d |  | jj	|d d| j
r–|fn|¡ |  | j 	|¡t¡ | jj	|dd |  | jj	|d d¡ | jjdddd|gd}|  | jj	|d d| j
rdd|fnd| ¡ | jj	|g d |  | jj	|d d¡ | jj	|dd |  | jj	|d d| j
rpdnd¡ | jjdddd||f fd}|  | jj	|d d| j
r¾dd||f fn
d||f ¡ |  | jj	| jjddddd dd¡ |  | jj	| jjdd|dd d|¡ | j ddd¡}|  |d¡ | j ddd¡}|  |d¡ |   tj| jjddd¡ |   tj| jjddd¡ d S )NrÔ   râ   r   )ÚopenZpleaseTFZmiddlez
first-itemu   Ã¡bar  rï   r¢   rM   ©Útagsr  r  z1 2 %s©r¢   rM   )r  r  z1 2r¡  z%s %sz{a b c} {%s %s}z
Label herer6  r   r,   g        z0.0)rU   rV   r   r   rä   r»   ré   r#   r   Úitemr  rH   Z	splitlistr3  r4  )r&   Zitemidr=  rÌ  r(   r(   r)   Útest_insert_item-  s†    ÿÿ  ÿÿÿÿ$ÿþÿ
ÿ
þ
ÿþ
ÿþzTreeviewTest.test_insert_itemc                 C   s²  |   t| jjd¡ |   tj| jjd¡ |   tj| jjd¡ |   tj| jjd¡ |   tj| jj	d¡ | j 
dd¡}| j 
dd¡}| j 
|d¡}| j 
|d¡}| j 
|d¡}|  | j ¡ d¡ | j ||¡ |  | j ¡ ||f¡ | j |¡ |  | j ¡ |f¡ | j ||¡ |  | j ¡ |||f¡ | j |¡ |  | j ¡ ||||f¡ | j ¡  |  | j ¡ ||||f¡ | j ||¡ |  | j ¡ |||f¡ | j |¡ |  | j ¡ ||f¡ | j ¡  |  | j ¡ ||f¡ | j 	||¡ |  | j ¡ ||f¡ | j 	|¡ |  | j ¡ |f¡ | j 	¡  |  | j ¡ |f¡ | jj
dddd | j d¡ |  | j ¡ d¡ | jj
ddd	d | j d	¡ |  | j ¡ d
¡ | jj
dddd | j d¡ |  | j ¡ d¡ | jj
dddd | j d¡ |  | j ¡ d¡ | j ¡  |  | j ¡ d¡ | j ||f¡ |  | j ¡ ||f¡ | j ||f¡ |  | j ¡ |||f¡ | j ||f¡ |  | j ¡ ||f¡ | j 	||f¡ |  | j ¡ ||f¡ d S )Nrˆ   rÔ   r   râ   r(   úwith spacesr³  )rÎ  ú{brace)rÏ  õ
   unicodeâ‚¬)rÐ  s   bytesâ‚¬)u   bytesÃ¢Â‚Â¬)rU   Ú	TypeErrorr   Z	selectionrV   r   Zselection_setZselection_addZselection_removeZselection_togglerä   r#   )r&   r¸  r·  rÆ  rÇ  Zc3r(   r(   r)   Útest_selectiony  sn    



zTreeviewTest.test_selectionc                 C   s¢  ddg| j d< | j jddddgd}|  | j  |¡ddd	œ¡ | j  |dd¡ |  | j j|d d| jrjd
nd¡ dg| j d< |  | j  |¡ddi¡ | j  |dd¡ |  | j j|ddd¡ |  | j j|d d| jrØdnd¡ | j  |dd¡ |  | j  |d¡| jr
dnd¡ |  | j j|d d| jr.dnd¡ |  | j  |¡| jrRddinddi¡ |  tj| j j|d¡ |  tj| j j|dd¡ |  tj| j jd¡ d S )NÚAÚBr  r   râ   rÞ   r7  r  )rÓ  rÔ  )rÞ   rÞ   za a)r®  )r7  rÞ   zb aé{   Z123)rÕ  rÞ   z123 aZnotme)	r   rä   r#   r  rÌ  r  rU   rV   r   )r&   rÌ  r(   r(   r)   rh  ¿  s6    ÿÿÿÿÿzTreeviewTest.test_setc           	         s8  g ‰ | j jdddgd}| j jdddgd}| j  dd‡ fdd„¡ | j  dd‡ fd	d„¡ | j  ¡  | j  ¡  tƒ }tƒ }td
ddƒD ]@}t|ƒdkrœ qÊ| j  |¡}|rˆ||vrˆ| 	|¡ | 	|¡ qˆ|  
t|ƒd¡ |D ]}t| j d
|ƒ qÞ|  
tˆ ƒd¡ tˆ d d d… ˆ dd d… ƒD ]}|  
|d¡ q d S )Nr   râ   ÚcallrÉ  rø   c                    s
   ˆ   d¡S r¡   r£   r  ©Úeventsr(   r)   r§   ä  r¨   z,TreeviewTest.test_tag_bind.<locals>.<lambda>rü   c                    s
   ˆ   d¡S )NrM   r£   r  r×  r(   r)   r§   æ  r¨   r   rò   r^  rM   r“  r¢   rË  )r   rä   Ztag_bindrI   rP   r  r{  r¾   Zidentify_rowr'  r#   r
   Úzip)	r&   r¸  r·  Zpos_yÚfoundr}  r¯  rû   r  r(   r×  r)   Útest_tag_bindß  s4    

ÿ

ÿ


"zTreeviewTest.test_tag_bindc                 C   s†   |   t| jj¡ | j tj| jjddd | jjddd |  t| j dd¡ƒd¡ |  t| jjdd dƒd¡ |  | j d¡t	¡ d S )Nr©  Zblue)Zsky)r˜   r˜   )
rU   rÑ  r   Ztag_configurerV   r   r#   r¼   r3  r4  rJ   r(   r(   r)   Útest_tag_configureÿ  s    ÿÿÿzTreeviewTest.test_tag_configurec                 C   s  | j jddddgd}| j jddddgd}|  t| j j¡ |  t| j jdd¡ |  | j  d|¡¡ |  | j  d|¡¡ |  | j  d|¡¡ |  | j  d|¡¡ |  | j  d	|¡¡ |  | j  d	|¡¡ |  | j  d¡|f¡ |  | j  d¡|f¡ |  | j  d	¡d
¡ d S )Nr   râ   zItem 1Ztag1)rD   rÊ  zItem 2Ztag2znon-existingZtag3r(   )	r   rä   rU   rÑ  Ztag_hasr   r«   r»   r#   )r&   r¸  r·  r(   r(   r)   Útest_tag_has  s    zTreeviewTest.test_tag_has)r>   r?   r@   ro   rF   r"   r£  r¥  rö   r¦  rÏ   rÙ   r±  rµ  r¹  r½  r¿  rÀ  rÂ  rÅ  rƒ  rÍ  rÒ  rh  rÛ  rÜ  rÝ  rb   r(   r(   rK   r)   rœ  þ  s0   	)
#LF  rœ  c                   @   s   e Zd ZdZdZdd„ ZdS )ÚSeparatorTest)r   rg   r"  r8   rj   r%  c                 K   s   t j| jfi |¤ŽS r[   )r   Z	SeparatorrH   rl   r(   r(   r)   r"   #  s    zSeparatorTest.createNrr  r(   r(   r(   r)   rÞ    s   rÞ  c                   @   s   e Zd ZdZdd„ ZdS )ÚSizegripTest)r   rg   r8   rj   c                 K   s   t j| jfi |¤ŽS r[   )r   ZSizegriprH   rl   r(   r(   r)   r"   .  s    zSizegripTest.createNrn   r(   r(   r(   r)   rß  '  s   rß  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚDefaultRootTestc                 C   s   |   tj¡ d S r[   )Ú_test_widgetr   rk   rJ   r(   r(   r)   Ú
test_frame4  s    zDefaultRootTest.test_framec                 C   s   |   tj¡ d S r[   )rá  r   r   rJ   r(   r(   r)   Ú
test_label7  s    zDefaultRootTest.test_labelN)r>   r?   r@   râ  rã  r(   r(   r(   r)   rà  2  s   rà  Ú__main__)5ZunittestrV   r   r   Ztest.supportr   r   rë   Ztest.test_ttk_textonlyr   Ztkinter.test.supportr   r   r	   r
   r   Ztkinter.test.widget_testsr   r   r   r   r   r   r   r   ZTestCaserA   rc   re   rp   r„   r”   rœ   r­   rÁ   rí   r!  r<  rC  rL  ri  ZskipIfrì   rq  rs  rŠ  rœ  rÞ  rß  rà  Z	tests_guir>   Úmainr(   r(   r(   r)   Ú<module>   s„   $'8!0} 3i"ÿ
 R 0     


û
