o
    ²ó®g½	 ã                   @   s4  d dl Z d dlZd dlmZm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 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ƒƒZ/G d6d7„ d7ee jƒZ0ee e"e!eeee%e+e#e'e$e&e*e.e/e,e-ee0fZ1e2d8kr˜e  3¡  dS dS )9é    N)ÚttkÚTclError)Úrequires)Ú
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©Zclass_)ÚcreateÚassertEqualr   ÚcheckInvalidParam©ÚselfÚwidgetr   Zwidget2© r&   úX/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/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-   r.   Ú7)r,   r   r/   r   )r-   r.   r0   Ú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ƒrd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(   r5   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   ZText)ÚwidthÚtext)ÚsuperÚsetUpr   ÚButtonÚrootr%   Úpack©r$   ©Ú	__class__r&   r'   rC   ;   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   rG   r&   r&   r'   Útest_identifyA   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)rU   Úactive)z!activerV   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)rW   )r!   r%   ÚstateZinstaterR   rS   r   )r$   rZ   Z	currstater&   r&   r'   Útest_widget_stateN   s6   ÿÿÿ
þ
ÿÿzWidgetTest.test_widget_state)r<   r=   r>   rC   rT   r^   Ú__classcell__r&   r&   rH   r'   r?   8   s
    r?   c                   @   s   e Zd ZeZdS )ÚAbstractToplevelTestN)r<   r=   r>   r   Ú_conv_pixelsr&   r&   r&   r'   r`   r   s    r`   c                   @   ó   e Zd ZdZdd„ ZdS )Ú	FrameTest)	Úborderwidthr   ÚcursorÚheightr)   Úreliefr6   Ú	takefocusr@   c                 K   ó   t j| jfi |¤ŽS rX   )r   ÚFramerE   ©r$   Úkwargsr&   r&   r'   r    ~   ó   zFrameTest.createN©r<   r=   r>   ÚOPTIONSr    r&   r&   r&   r'   rc   v   s    rc   c                   @   ó(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚLabelFrameTest)rd   r   re   rf   ÚlabelanchorÚlabelwidgetr)   rg   r6   rh   rA   Ú	underliner@   c                 K   ri   rX   )r   Z
LabelFramerE   rk   r&   r&   r'   r    ‹   rm   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 )Nrr   ÚeZenZesÚnÚneZnwÚsZseÚswÚwZwnÚwsz!Bad label anchor specification {}r   Úcenter)r    ÚcheckEnumParamr"   r4   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)rA   Únamers   z.foor+   )r    r   ÚLabelrE   r3   Údestroy)r$   r%   rK   r&   r&   r'   Útest_configure_labelwidget•   s   z)LabelFrameTest.test_configure_labelwidgetN)r<   r=   r>   ro   r    r~   r‚   r&   r&   r&   r'   rq   ‚   s
    rq   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+   rW   )r„   rW   r†   zimage1 active image2Úspamzimage "spam" doesn't existr   )rS   Z
PhotoImagerE   r3   r"   )r$   r%   r   Úimager†   r&   r&   r'   ÚcheckImageParamž   s   ÿ
ÿ

ÿz!AbstractLabelTest.checkImageParamc                 C   s(   |   ¡ }|  |ddddddddd	¡
 d S )
NÚcompoundÚnonerA   rˆ   r|   ÚtopZbottomÚleftÚright©r    r}   r4   r&   r&   r'   Útest_configure_compound«   s
   þz)AbstractLabelTest.test_configure_compoundc                 C   ó   |   ¡ }|  |dddd¡ d S )Nr]   rW   rV   Únormal©r    ZcheckParamsr4   r&   r&   r'   Útest_configure_state±   ó   z&AbstractLabelTest.test_configure_statec                 C   r‘   )Nr@   i’  inþÿÿr   r“   r4   r&   r&   r'   Útest_configure_widthµ   r•   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Ú
backgroundrd   r   rŠ   re   ÚfontÚ
foregroundrˆ   Újustifyr)   rg   r]   r6   rh   rA   Útextvariablert   r@   Z
wraplengthc                 K   ri   rX   )r   r€   rE   rk   r&   r&   r'   r    Å   rm   zLabelTest.createc                 C   s   |   ¡ }|  |dd¡ d S )Nrš   z3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*r2   r4   r&   r&   r'   Útest_configure_fontÈ   s   ÿzLabelTest.test_configure_fontN)r<   r=   r>   ro   r   ra   r    rž   r&   r&   r&   r'   r—   º   s
    r—   c                   @   rp   )	Ú
ButtonTest)r   ÚcommandrŠ   re   Údefaultrˆ   r)   r]   r6   rh   rA   r   rt   r@   c                 K   ri   rX   )r   rD   rE   rk   r&   r&   r'   r    ×   rm   zButtonTest.createc                 C   r‘   )Nr¡   r’   rW   rV   r   r4   r&   r&   r'   Útest_configure_defaultÚ   r•   z!ButtonTest.test_configure_defaultc                    s2   g ‰ t j| j‡ fdd„d}| ¡  |  ˆ ¡ d S )Nc                      ó
   ˆ   d¡S ©Né   ©Úappendr&   ©Úsuccessr&   r'   Ú<lambda>à   ó   
 z(ButtonTest.test_invoke.<locals>.<lambda>©r    )r   rD   rE   Ú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Š   re   rˆ   ÚoffvalueÚonvaluer)   r]   r6   rh   rA   r   rt   Úvariabler@   c                 K   ri   rX   )r   ÚCheckbuttonrE   rk   r&   r&   r'   r    ð   rm   zCheckbuttonTest.createc                 C   ó    |   ¡ }|  |ddddd¡ d S )Nr±   r¥   çffffff@r   ú
any stringr“   r4   r&   r&   r'   Útest_configure_offvalueó   ó   z'CheckbuttonTest.test_configure_offvaluec                 C   rµ   )Nr²   r¥   r¶   r   r·   r“   r4   r&   r&   r'   Útest_configure_onvalue÷   r¹   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                      ó   ˆ   d¡ dS ©Nr¥   úcb test calledr¦   r&   r¨   r&   r'   Úcb_testý   ó   
z,CheckbuttonTest.test_invoke.<locals>.cb_testr¬   )Z	alternater³   r½   r²   r   r    r¥   r±   )r   r´   rE   r!   r]   rR   rS   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                       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dd„ Zdd„ Zdd„ Zdd„ Z‡  ZS )Ú	EntryTest)r™   r   re   Úexportselectionrš   r›   Úinvalidcommandrœ   Úshowr]   r6   rh   r   ÚvalidateÚvalidatecommandr@   Úxscrollcommandc                    ó   t ƒ  ¡  |  ¡ | _d S rX   )rB   rC   r    ÚentryrG   rH   r&   r'   rC      ó   
zEntryTest.setUpc                 K   ri   rX   )r   ZEntryrE   rk   r&   r&   r'   r    $  rm   zEntryTest.createc                 C   ó   |   ¡ }|  |d¡ d S )NrÊ   ©r    ZcheckCommandParamr4   r&   r&   r'   Útest_configure_invalidcommand'  ó   z'EntryTest.test_configure_invalidcommandc                 C   s6   |   ¡ }|  |dd¡ |  |dd¡ |  |dd¡ d S )NrË   Ú*r   ú r2   r4   r&   r&   r'   Útest_configure_show+  s   zEntryTest.test_configure_showc                 C   r‘   )Nr]   rV   r’   Úreadonlyr“   r4   r&   r&   r'   r”   1  ó   ÿzEntryTest.test_configure_statec              
   C   ó$   |   ¡ }|  |ddddddd¡ d S )NrÌ   ÚallÚkeyÚfocusZfocusinZfocusoutr‹   r   r4   r&   r&   r'   Útest_configure_validate6  s   ÿz!EntryTest.test_configure_validatec                 C   rÒ   )NrÍ   rÓ   r4   r&   r&   r'   Útest_configure_validatecommand;  rÕ   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Ð   ÚbboxrR   rS   r   rG   r&   r&   r'   Ú	test_bbox@  s   zEntryTest.test_bboxc                 C   s¨   | j  ¡  | j  ¡  tjdkr|  | j  dd¡d¡ n|  | j  d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Údarwinr,   )ÚtextareazCombobox.buttonrå   rL   r   )rÐ   rF   rM   ÚsysÚplatformZassertInrN   r!   rR   rS   r   rG   r&   r&   r'   rT   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                      r£   ©NTr¦   r&   r¨   r&   r'   rª   Y  r«   z3EntryTest.test_validation_options.<locals>.<lambda>r‹   rÌ   c                   S   ó   dS )NFr&   r&   r&   r&   r'   rª   \  ó    rÍ   rÊ   r   r¥   c                   S   ré   rè   r&   r&   r&   r&   r'   rª   g  rê   T)rÐ   rÌ   r®   r!   rÅ   rR   rS   r   )r$   Ztest_invalidr&   r¨   r'   Útest_validation_optionsW  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Ì   u  s
   

z+EntryTest.test_validation.<locals>.validaterÝ   rÌ   z%SrÍ   Úendr¥   rí   FT)rÐ   ÚregisterÚinsertr!   Úget©r$   rÌ   r&   rð   r'   Útest_validations  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   s2   | D ]}d|  ¡   krdks dS   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   rC   r    rÔ   rØ   r”   rß   rà   rã   rT   rë   rö   rù   r_   r&   r&   rH   r'   rÈ     s    rÈ   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
‡  ZS )ÚComboboxTest)r™   r   re   rÉ   rš   r›   rf   rÊ   rœ   ÚpostcommandrË   r]   r6   rh   r   rÌ   rÍ   Úvaluesr@   rÎ   c                    rÏ   rX   )rB   rC   r    ÚcomborG   rH   r&   r'   rC   ©  rÑ   zComboboxTest.setUpc                 K   ri   rX   )r   ÚComboboxrE   rk   r&   r&   r'   r    ­  rm   zComboboxTest.createc              
   C   rÛ   )Nrf   éd   çÍÌÌÌÌLY@çfffff¦Y@éœÿÿÿr   Z1ir“   r4   r&   r&   r'   Útest_configure_height°  ó   z"ComboboxTest.test_configure_heightc                 C   s`   | j  ¡ }|d d}}|  | j  ||¡d¡ | j jd||d | j jd||d | j  ¡  d S )Nr,   ú.*downarrow\Zú<ButtonPress-1>©ÚxÚyú<ButtonRelease-1>)rý   rP   ÚassertRegexrN   Úevent_generateÚupdate_idletasks)r$   r@   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                    r£   rè   r¦   ©Úevtr¨   r&   r'   rª   Á  r«   z1ComboboxTest.test_virtual_event.<locals>.<lambda>z<Return>)rý   ÚbindrF   rM   rQ   r  r  r®   )r$   rf   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                      r£   rè   r¦   r&   r¨   r&   r'   rª   Ñ  r«   z9ComboboxTest.test_configure_postcommand.<locals>.<lambda>rû   r   r¥   )rý   rF   rM   r  r®   r!   rÅ   rG   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rdnd¡ g d¢ˆ jd< ˆ   ˆ jd ˆ jr²d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 rX   )r!   rý   rô   Úcurrent)ZgetvalZcurrvalrG   r&   r'   Úcheck_get_currentß  s   z=ComboboxTest.test_configure_values.<locals>.check_get_currentrü   ©r   r,   r&   r   rL   úmon tue wed thur©ZmonZtueZwedZthurr+   ©é*   g…ëQ¸	@r   r·   ©rí   r¥   Úcr  rJ   r   rí   Úd)r¥   rJ   r   r   ©r¥   r   rJ   ©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¥   rJ   r   ©r!  r"  r   ú1 2 {})r!   rý   r   r3   Úsetr  Ú	configureÚwantobjectsrR   rS   r   rÅ   r   rþ   rE   r   )r$   r  Zcombo2r&   rG   r'   Útest_configure_valuesÞ  sZ   ÿ
ÿ





þ
þ
þÿ
ÿz"ComboboxTest.test_configure_values)r<   r=   r>   ro   rC   r    r  r  r  r  r.  r_   r&   r&   rH   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   re   rf   Úorientr6   rh   r@   c                    rÏ   rX   )rB   rC   r    ÚpanedrG   rH   r&   r'   rC   #  rÑ   zPanedWindowTest.setUpc                 K   ri   rX   )r   ZPanedWindowrE   rk   r&   r&   r'   r    '  rm   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 )	Nr0  Úverticalr   r   r   Ú
horizontalr   )r0  )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¥   rJ   )r   r€   r1  rR   rS   r   Úaddr   rE   r!   Úpane)r$   rK   ÚchildZ
good_childZother_childr&   r&   r'   Útest_add5  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   )	rR   rS   r   r1  Úforgetr5  r   r€   rE   rG   r&   r&   r'   Útest_forgetQ  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ñ   )rR   rS   r   r1  ró   r   r€   rE   r!   ÚpanesrÃ   )r$   r7  Úchild2Úchild3r;  r&   r&   r'   Útest_insertZ  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*   r@  Z	somevalue)Z	badoption)rR   rS   r   r1  r6  r   r€   rE   r5  ÚassertIsInstanceÚdictr!   r-  rÃ   )r$   r7  r&   r&   r'   Ú	test_pane}  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í   ©rA   r¥   r?  ÚbTZboth)ÚexpandZfilliè  )rR   rS   r   r1  Zsashposr   r€   r5  rF   ÚassertNotEqualrA  rO   )r$   r7  r<  Zcurr_posr&   r&   r'   Útest_sashposŽ  s   zPanedWindowTest.test_sashpos)r<   r=   r>   ro   rC   r    r4  r8  r:  r>  rC  rH  r_   r&   r&   rH   r'   r/    s    	#r/  c                   @   rp   )	ÚRadiobuttonTest)r   r    rŠ   re   rˆ   r)   r]   r6   rh   rA   r   rt   Úvaluer³   r@   c                 K   ri   rX   )r   ÚRadiobuttonrE   rk   r&   r&   r'   r    ¬  rm   zRadiobuttonTest.createc                 C   rµ   )NrJ  r¥   r¶   r   r·   r“   r4   r&   r&   r'   Útest_configure_value¯  r¹   z$RadiobuttonTest.test_configure_valuec                    s6  g ‰ ‡ fdd„}t  | j¡}tj| j||dd}tj| j||dd}| jr*dd„ }nt}| ¡ }|  |d¡ |  ||d	 ƒ| 	¡ ¡ |  | 	¡ ||j
 |d
 ¡ƒ¡ |  ˆ ¡ d|d< | ¡ }|  t|ƒd¡ |  tˆ ƒd¡ |  ||d	 ƒ| 	¡ ¡ |  | 	¡ ||j
 |d
 ¡ƒ¡ |  t|d
 ƒt|d
 ƒ¡ d S )Nc                      r»   r¼   r¦   r&   r¨   r&   r'   r¾   µ  r¿   z6RadiobuttonTest.test_configure_invoke.<locals>.cb_testr   )r    r³   rJ  r¥   c                 S   ó   | S rX   r&   ©r  r&   r&   r'   rª   À  rê   z7RadiobuttonTest.test_configure_invoke.<locals>.<lambda>r½   rJ  r³   r   r    )rS   ZIntVarrE   r   rK  r-  rO   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    rL  rP  r&   r&   r&   r'   rI  ¢  s
    rI  c                   @   rp   )	ÚMenubuttonTest)r   rŠ   re   Ú	directionrˆ   Úmenur)   r]   r6   rh   rA   r   rt   r@   c                 K   ri   rX   )r   Z
MenubuttonrE   rk   r&   r&   r'   r    Þ  rm   zMenubuttonTest.createc              	   C   s"   |   ¡ }|  |dddddd¡ d S )NrR  ZaboveZbelowr   rŽ   Úflushr   r4   r&   r&   r'   Útest_directioná  s   
ÿzMenubuttonTest.test_directionc                 C   s4   |   ¡ }tj|dd}| j|d|td | ¡  d S )NrS  )r   ©rO  )r    rS   ZMenur3   rÃ   r   )r$   r%   rS  r&   r&   r'   Útest_configure_menuæ  s   z"MenubuttonTest.test_configure_menuN)r<   r=   r>   ro   r    rU  rW  r&   r&   r&   r'   rQ  Ö  s
    rQ  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    re   ÚfromÚlengthr0  r6   rh   ÚtorJ  r³   r3  c                    s,   t ƒ  ¡  |  ¡ | _| j ¡  | j ¡  d S rX   )rB   rC   r    ÚscalerF   rM   rG   rH   r&   r'   rC   ö  s   


zScaleTest.setUpc                 K   ri   rX   )r   ZScalerE   rk   r&   r&   r'   r    ü  rm   zScaleTest.createc                 C   s"   |   ¡ }| j|dddddd d S )NrY  rÿ   çÍÌÌÌÌÌ-@ç333333.@FrV  ©r    ZcheckFloatParamr4   r&   r&   r'   Útest_configure_fromÿ  s   zScaleTest.test_configure_fromc                 C   rµ   )NrZ  é‚   gffffff`@g33333ó`@Z5i©r    ÚcheckPixelsParamr4   r&   r&   r'   Útest_configure_length  r¹   zScaleTest.test_configure_lengthc              	   C   ó$   |   ¡ }| j|ddddddd d S )Nr[  é,  r]  r^  éöÿÿÿFrV  r_  r4   r&   r&   r'   Útest_configure_to  r  zScaleTest.test_configure_toc              	   C   re  )NrJ  rf  r]  r^  rg  FrV  r_  r4   r&   r&   r'   rL    r  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 rX   )Úpopr  ©Zfailurer&   r'   rª     s    z-ScaleTest.test_custom_event.<locals>.<lambda>é
   rY  Úfrom_r   r[  rJ   r,   )rl  r[  r   éþÿÿÿ)r[  )r\  r  rÂ   r,  )r$   Zfuncidr&   rj  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   rM  rX   r&   rN  r&   r&   r'   rª   $  rê   z$ScaleTest.test_get.<locals>.<lambda>r   r[  rY  rJ  é   r   )	r-  Úfloatr\  rP   r!   rô   rR   rS   r   )r$   rO  Zscale_widthr&   r&   r'   Útest_get"  s   

$
zScaleTest.test_getc                 C   st  | j rdd„ }nt}|| jd ƒ}|d }| j |¡ |  || j ¡ ƒ|¡ || jd ƒ}| j |d ¡ |  || j ¡ ƒ|¡ t | j¡}|| jd< | |d ¡ |  || j ¡ ƒ| ¡ ¡ |  || j ¡ ƒ|d ¡ ~|d | jd	< |  || j ¡ ƒ|d ¡ |  || j ¡ ƒ|| jd	 ƒ¡ |  || j d
d
¡ƒ|¡ |  || j | j 	¡ d
¡ƒ|¡ |  
tj| jjd ¡ d S )Nc                 S   rM  rX   r&   rN  r&   r&   r'   rª   6  rê   z$ScaleTest.test_set.<locals>.<lambda>r[  rk  rY  r¥   r³   r,   rJ  r   )r-  rp  r\  r+  r!   rô   rS   Z	DoubleVarrE   rP   rR   r   )r$   rO  ÚmaxZnew_maxÚminÚvarr&   r&   r'   Útest_set4  s,   

  zScaleTest.test_set)r<   r=   r>   ro   r   ra   r7   rC   r    r`  rd  rh  rL  rn  rq  ru  r_   r&   r&   rH   r'   rX  í  s    rX  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   re   r0  rZ  ÚmodeÚmaximumZphaser6   rh   rJ  r³   r3  c                 K   ri   rX   )r   ZProgressbarrE   rk   r&   r&   r'   r    b  rm   zProgressbarTest.createc                 C   r‘   )NrZ  gfffffY@gš™™™™YL@Z2irb  r4   r&   r&   r'   rd  e  r•   z%ProgressbarTest.test_configure_lengthc              	   C   re  )Nrx  çfffffÆb@çÍÌÌÌÌlS@r   rg  FrV  r_  r4   r&   r&   r'   Útest_configure_maximumi  r  z&ProgressbarTest.test_configure_maximumc                 C   s   |   ¡ }|  |ddd¡ d S )Nrw  ZdeterminateZindeterminater   r4   r&   r&   r'   Útest_configure_modem  s   z#ProgressbarTest.test_configure_modec                 C   s   d S rX   r&   rG   r&   r&   r'   Útest_configure_phaseq  s   z$ProgressbarTest.test_configure_phasec              	   C   re  )NrJ  ry  rz  r   rg  FrV  r_  r4   r&   r&   r'   rL  u  s   
ÿz$ProgressbarTest.test_configure_valueN)r<   r=   r>   ro   r   ra   r7   r    rd  r{  r|  r}  rL  r&   r&   r&   r'   rv  X  s    rv  rä   z"ttk.Scrollbar is special on MacOSXc                   @   ó   e Zd ZdZdZdd„ ZdS )ÚScrollbarTest)r   r    re   r0  r6   rh   r2  c                 K   ri   rX   )r   Z	ScrollbarrE   rk   r&   r&   r'   r    „  rm   zScrollbarTest.createN©r<   r=   r>   ro   r7   r    r&   r&   r&   r'   r  {  s    r  c                       óp   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   re   rf   r)   r6   rh   r@   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í   rD  rE  )
rB   rC   r    Únbr   r€   rE   Úchild1r<  r5  rG   rH   r&   r'   rC   Ž  s   
zNotebookTest.setUpc                 K   ri   rX   )r   ZNotebookrE   rk   r&   r&   r'   r    –  rm   zNotebookTest.createc              	   C   s4  | 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 ]}z| j jd| d ddkr‡W  d S W qt tjy’   Y qtw |  d¡ d S )Nr   rñ   r¥   r  rí   rD  rä   z@20,5z@5,5r,   rÿ   z@%d, 5zTab with text 'a' not found)r„  r9  Úhider<  rR   rS   r   Útabr…  r!   Úindexr5  Úselectr®   rF   rM   ræ   rç   ÚrangeÚfail)r$   Ztb_idxÚir&   r&   r'   Útest_tab_identifiers™  s0   


ÿÿ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 )	NrL   r[   Zoption)Úunknownr  rD  r  r¥   )rR   rS   r   r„  r†  r5  r   r€   rE   Útabsr…  r!   rˆ  r<  rÃ   )r$   r  r7  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 )NrL   r[   r¥   )rR   rS   r   r„  r9  r  rˆ  r…  ZassertNotInrÃ   r!   rÅ   r5  rG  )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 )NrL   rñ   r   r¥   rJ   )
rR   rS   r   r„  rˆ  rA  rO   r!   r…  r<  rG   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ñ   rJ   rL   )r„  r  ró   r!   r…  r<  rR   rS   r   r   r€   rE   rÃ   r9  )r$   r  r=  r&   r&   r'   r>  ï  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                    r£   rè   r¦   r  r¨   r&   r'   rª     r«   z*NotebookTest.test_select.<locals>.<lambda>z<<NotebookTabChanged>>c                    r£   rè   r¦   r  )Útab_changedr&   r'   rª     r«   )
r„  rF   rM   r…  r  r!   r‰  rÃ   r<  r®   rG   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 )NrL   ZnotabrD  rí   rA   Úabc)	rR   rS   r   r„  r‡  rA  r…  rB  r!   rG   r&   r&   r'   Útest_tab$  s   zNotebookTest.test_tabc                 C   sH   |   t| j ¡ ƒd¡ | j | j¡ | j | j¡ |   | j ¡ d¡ d S )NrJ   r&   )r!   rÅ   r„  r  r9  r…  r<  rG   r&   r&   r'   Útest_configure_tabs2  s   z NotebookTest.test_configure_tabsc                 C   sZ  | j  ¡  | j  ¡  | j  d¡ |  | j  d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¡ t| j ddƒ tjdkr™| j  d	¡ n| j  d
¡ |  | j  ¡ t	| jƒ¡ d S )Nr   r,   rÞ   z<Control-Tab>z<Shift-Control-Tab>rí   )rA   rt   rä   z
<Option-a>z<Alt-a>)r„  rF   rM   r‰  r!   rN   r	   Zfocus_forcer  rÃ   r<  r…  r‡  Zenable_traversalræ   rç   rG   r&   r&   r'   Útest_traversal;  s.   







zNotebookTest.test_traversal)r<   r=   r>   ro   rC   r    r  r  r:  r‘  r>  r“  r•  r–  r—  r_   r&   r&   rH   r'   r‚  ˆ  s    
!	r‚  c                       r  )ÚSpinboxTest)r™   r   r    re   rÉ   rš   r›   ÚformatrY  Ú	incrementrÊ   rœ   rË   r]   r6   rh   r   r[  rÌ   rÍ   rü   r@   ÚwraprÎ   c                    s"   t ƒ  ¡  |  ¡ | _| j ¡  d S rX   )rB   rC   r    ÚspinrF   rG   rH   r&   r'   rC   b  s   

zSpinboxTest.setUpc                 K   ri   rX   )r   ÚSpinboxrE   rk   r&   r&   r'   r    g  rm   zSpinboxTest.createc                 C   sp   | j  ¡ }| j  ¡ }|d }|d d }|  | j  ||¡d¡ | j jd||d | j jd||d | j  ¡  d S )Nr,   rJ   z.*uparrow\Zr  r  r
  ©rœ  rP   rQ   r  rN   r  r  ©r$   r@   rf   r  r	  r&   r&   r'   Ú_click_increment_arrowj  ó   

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,   rJ   é   r  r  r  r
  rž  rŸ  r&   r&   r'   Ú_click_decrement_arrowt  r¡  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                      r£   rè   r¦   r&   r¨   r&   r'   rª     r«   z4SpinboxTest.test_configure_command.<locals>.<lambda>r    rJ   r   )rœ  rM   r   r®   r£  r!   rÅ   r  rG   r&   r¨   r'   Útest_configure_command~  s   





z"SpinboxTest.test_configure_commandc                 C   ób   d| j d< d| j d< | j  d¡ | j  ¡  |  ¡  |  | j  ¡ d¡ |  ¡  |  | j  ¡ d¡ d S )Nr   rY  r,   r[  r¢  r-   )rœ  r+  rM   r   r!   rô   rG   r&   r&   r'   rh  ’  s   


zSpinboxTest.test_configure_toc                 C   r¥  )Nr¥   rY  rk  r[  rJ   r!  )rœ  r+  rM   r£  r!   rô   rG   r&   r&   r'   r`  ž  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   rY  rk  r[  r¢  rš  r¥   r-   rJ   Ú3)rœ  r+  rM   r   r!   rô   r£  rG   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™  rk  Ú.r   r   )	rœ  r+  rM   r   rô   r!   rÅ   rˆ  r®   )r$   rJ  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 )
Nrk  r[  r¥   rY  Tr›  Ú10r!  F)rœ  r+  rM   r£  r!   rô   r   rG   r&   r&   r'   Útest_configure_wrapÇ  s   





zSpinboxTest.test_configure_wrapc                 C   sv  |   | 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
rqd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
r²d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   r3   r+  rM   r   rô   r£  r,  r-  r   r  rE   r   )r$   Zspin2r&   r&   r'   r.  Ú  sH   ÿÿ

þ
þ
þ
ÿz!SpinboxTest.test_configure_values)r<   r=   r>   ro   rC   r    r   r£  r¤  rh  r`  r§  r©  r«  r.  r_   r&   r&   rH   r'   r˜  X  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   Úcolumnsre   Údisplaycolumnsrf   r)   Ú
selectmoderË   r6   rh   rÎ   Zyscrollcommandc                    s   t ƒ  ¡  | jdd| _d S )Nr   rƒ  )rB   rC   r    ÚtvrG   rH   r&   r'   rC     s   
zTreeviewTest.setUpc                 K   ri   rX   )r   ZTreeviewrE   rk   r&   r&   r'   r      rm   zTreeviewTest.createc                 C   s:   |   ¡ }| j|dddd |  |dd¡ |  |dd¡ d S )Nr­  úa b c©rí   rE  r  r+   r   r2   r4   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)rE  rí   r  r+   ú#all)r´  )rJ   r¥   r   )rí   rE  r  zInvalid column index dr   )r¥   rJ   r   zColumn index 3 out of bounds)r¥   rm  zColumn index -2 out of bounds)r    r3   r"   r4   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 )
Nrf   rÿ   r  r   Z3cFrV  r   r  )r    rc  r   r4   r&   r&   r'   r  -  s   z"TreeviewTest.test_configure_heightc                 C   r‘   )Nr¯  r‹   ZbrowseZextendedr   r4   r&   r&   r'   Útest_configure_selectmode2  rÚ   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¸  r2   r4   r&   r&   r'   rØ   7  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
sXt|ƒ}|  |d |d | ¡ | j  |d¡}|  | j  |¡d¡ d S )	Nr   rñ   r   Útestr­  é2   ©r@   ú#0)r°  rF   r!   râ   rM   ró   Úget_childrenr®   rá   Úcolumnr-  rO   )r$   Úitem_idÚchildrenrâ   Zbbox_column0Z
root_widthr…  r&   r&   r'   rã   @  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ó   rA  ÚtupleZset_childrenrR   rS   r   )r$   r¿  r<  r=  r&   r&   r'   Útest_childrenZ  s   
ÿzTreeviewTest.test_childrenc                 C   sü   |   | j d¡t¡ | jr|   | 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 |¤Ž qkd S )Nr¼  r»  rk  r@   rª  ÚX©Úidr÷   Zunknown_optionz
some valueZstretchZwrongr˜   Zminwidth)
rA  r°  r¾  rB  r-  rO   r!   rR   rS   r   )r$   Zinvalid_kwsrY   r&   r&   r'   Útest_columnv  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ñ   )
rR   rS   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Ç  ÚmoverR   rS   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°  ÚexistsrR   rS   r   rG   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ø   rR   rS   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[   rD  rA   )r™   r¥   )r˜   )rA  r°  ÚheadingrB  r!   rR   rS   r   rG   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	ƒ ˆs2ˆ  d
¡ g ‰ˆ j jj}ˆ j jdtˆ j jdd dƒd ˆ  	|ˆ j jj¡ |d	d	ƒ ˆs`ˆ  d
¡ d S d S )Nc                    sN   t dkrˆ  ˆ j | ¡d¡ ˆ  ˆ j | |¡d¡ tˆ j| |ƒ ˆ j ¡  d S )N)r   r   r¼  rÒ  )r   r!   r°  Zidentify_columnZidentify_regionr	   rM   r  rG   r&   r'   Úsimulate_heading_clický  s
   zBTreeviewTest.test_heading_callback.<locals>.simulate_heading_clickr¼  c                      r£   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°  rF   rÒ  r¾  rM   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¥   )
rR   rS   r   r°  rˆ  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
r¤|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
r5d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¥   rJ   ©Útagsr!  r"  z1 2 %s©r¥   rJ   )r!  r"  z1 2r±  z%s %sz{a b c} {%s %s}z
Label hererD  r   r*   g        z0.0)rR   rS   r   r°  ró   rÂ   rø   r!   r   Úitemr-  rE   Z	splitlistrA  rB  )r$   ZitemidrJ  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Ã¢Â‚Â¬)rR   Ú	TypeErrorr°  Z	selectionrS   r   Zselection_setZselection_addZselection_removeZselection_toggleró   r!   )r$   rÉ  rÈ  r×  rØ  Zc3r&   r&   r'   Útest_selectionŒ  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r5d
nd¡ dg| j d< |  | j  |¡ddi¡ | j  |dd¡ |  | j j|ddd¡ |  | j j|d d| jrldnd¡ | j  |dd¡ |  | j  |d¡| jr„dnd¡ |  | j j|d d| jr•dnd¡ |  | j  |¡| jr¦d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í   rE  r  )rä  rå  )rí   rí   za a)r¾  )rE  rí   zb aé{   Z123)ræ  rí   z123 aZnotme)	r°  ró   r!   r+  rÝ  r-  rR   rS   r   )r$   rÝ  r&   r&   r'   ru  Ó  s6   ÿÿÿÿÿzTreeviewTest.test_setc           	         s6  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rN qe| j  |¡}|rd||vrd| 	|¡ | 	|¡ qD|  
t|ƒd¡ |D ]	}t| j d
|ƒ qo|  
tˆ ƒd¡ tˆ d d d… ˆ dd d… ƒD ]}|  
|d¡ qd S )Nr   rñ   ÚcallrÚ  r  c                    r£   r¤   r¦   r  ©Úeventsr&   r'   rª   ù  r«   z,TreeviewTest.test_tag_bind.<locals>.<lambda>r
  c                    r£   )NrJ   r¦   r  rè  r&   r'   rª   û  r«   r   rÿ   rk  rJ   r¢  r¥   rÜ  )r°  ró   Ztag_bindrF   rM   r+  rŠ  rÅ   Zidentify_rowr5  r!   r	   Úzip)	r$   rÉ  rÈ  Zpos_yÚfoundrŒ  r¿  r	  r  r&   rè  r'   Útest_tag_bindô  s8   

ÿ

ÿ



€"ÿ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›   )
rR   râ  r°  Ztag_configurerS   r   r!   rÃ   rA  rB  rG   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)rA   rÛ  zItem 2Ztag2znon-existingZtag3r&   )	r°  ró   rR   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   rC   r    r³  rµ  r  r¶  rØ   rã   rÂ  rÆ  rÊ  rÎ  rÐ  rÑ  rÓ  rÖ  r‘  rÞ  rã  ru  rì  rí  rî  r_   r&   r&   rH   r'   r¬    s2    	*$MG!!r¬  c                   @   r~  )ÚSeparatorTest)r   re   r0  r6   rh   r3  c                 K   ri   rX   )r   Z	SeparatorrE   rk   r&   r&   r'   r    9  rm   zSeparatorTest.createNr€  r&   r&   r&   r'   rï  1  s    rï  c                   @   rb   )ÚSizegripTest)r   re   r6   rh   c                 K   ri   rX   )r   ZSizegriprE   rk   r&   r&   r'   r    D  rm   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   ó   |   tj¡ d S rX   )Ú_test_widgetr   rj   rG   r&   r&   r'   Ú
test_frameJ  ó   zDefaultRootTest.test_framec                 C   rò  rX   )ró  r   r€   rG   r&   r&   r'   Ú
test_labelM  rõ  zDefaultRootTest.test_labelN)r<   r=   r>   rô  rö  r&   r&   r&   r'   rñ  H  s    rñ  Ú__main__)4ZunittestrS   r   r   Ztest.supportr   ræ   Z$tkinter.test.test_ttk.test_functionsr   Ztkinter.test.supportr   r   r   r	   r
   Ztkinter.test.widget_testsr   r   r   r   r   r   r   r   ZTestCaser?   r`   rc   rq   rƒ   r—   rŸ   r°   rÈ   rú   r/  rI  rQ  rX  rv  ZskipIfrç   r  r‚  r˜  r¬  rï  rð  rñ  Z	tests_guir<   Úmainr&   r&   r&   r'   Ú<module>   sŠ    $':0 } 3j"ÿ
 P /    -


û
ÿ