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                       s0   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Z‡  ZS )Ú
WidgetTestz,Tests methods available in every ttk widget.c                    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@   Ú__doc__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)   rd   p   s   rd   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)   rf   t   s   rf   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚLabelFrameTest)rg   r   rh   ri   ÚlabelanchorÚlabelwidgetr+   rj   r8   rk   rD   Ú	underlinerC   c                 K   s   t j| jfi |¤ŽS r[   )r   Z
LabelFramerH   rm   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 )Nrr   Ú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   Únamers   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@   rp   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-   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Ú
backgroundrg   r   rŒ   rh   ÚfontÚ
foregroundrŠ   Újustifyr+   rj   r`   r8   rk   rD   Útextvariablert   rC   Z
wraplengthc                 K   s   t j| jfi |¤ŽS r[   )r   r‚   rH   rm   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@   rp   r   re   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Œ   rh   ÚdefaultrŠ   r+   r`   r8   rk   rD   r›   rt   rC   c                 K   s   t j| jfi |¤ŽS r[   )r   rG   rH   rm   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@   rp   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Œ   rh   rŠ   ÚoffvalueÚonvaluer+   r`   r8   rk   rD   r›   rt   ÚvariablerC   c                 K   s   t j| jfi |¤ŽS r[   )r   ÚCheckbuttonrH   rm   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@   rp   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   rh   Úexportselectionr˜   r™   Úinvalidcommandrš   Úshowr`   r8   rk   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   rm   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@   rp   ÚsysÚplatformrÛ   rF   r"   rÍ   rÐ   r“   rÖ   r×   rÚ   rW   rÝ   rè   rë   rc   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   rh   rÃ   r˜   r™   ri   rÄ   rš   ÚpostcommandrÅ   r`   r8   rk   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   rm   r(   r(   r)   r"   §  s    zComboboxTest.createc              
   C   s$   |   ¡ }|  |ddddddd¡ d S )Nri   é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&   ri   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@   rp   rì   rí   rÛ   rF   r"   r÷   r  r  r  r!  rc   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   rh   ri   Úorientr8   rk   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   rm   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,   r3  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£   r2  ÚbTZboth)ÚexpandÚfilliè  )rU   rV   r   r$  Zsashposr   r‚   r(  rI   ÚassertNotEqualr4  rR   )r&   r*  r/  Zcurr_posr(   r(   r)   Útest_sashposƒ  s    zPanedWindowTest.test_sashpos)r>   r?   r@   rp   rF   r"   r'  r+  r-  r1  r6  r<  rc   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Œ   rh   rŠ   r+   r`   r8   rk   rD   r›   rt   Úvaluer±   rC   c                 K   s   t j| jfi |¤ŽS r[   )r   ÚRadiobuttonrH   rm   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@   rp   r"   r@  rC  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Œ   rh   Ú	directionrŠ   Úmenur+   r`   r8   rk   rD   r›   rt   rC   c                 K   s   t j| jfi |¤ŽS r[   )r   Z
MenubuttonrH   rm   r(   r(   r)   r"   Ó  s    zMenubuttonTest.createc              	   C   s"   |   ¡ }|  |dddddd¡ d S )NrE  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 )NrF  )r   ©rB  )r"   rV   ZMenur5   r½   rƒ   )r&   r'   rF  r(   r(   r)   Útest_configure_menuÛ  s    z"MenubuttonTest.test_configure_menuN)r>   r?   r@   rp   r"   rJ  rL  r(   r(   r(   r)   rD  Ë  s   rD  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ž   rh   ÚfromÚlengthr#  r8   rk   Ú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   rm   r(   r(   r)   r"   ñ  s    zScaleTest.createc                 C   s"   |   ¡ }| j|dddddd d S )NrN  ró   çÍÌÌÌÌÌ-@ç333333.@FrK  ©r"   ZcheckFloatParamr6   r(   r(   r)   Útest_configure_fromô  s    zScaleTest.test_configure_fromc                 C   s    |   ¡ }|  |ddddd¡ d S )NrO  é‚   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 )NrP  é,  rR  rS  éöÿÿÿFrK  rT  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>  rZ  rR  rS  r[  FrK  rT  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>é
   rN  Úfrom_r   rP  rM   r.   )r`  rP  r   éþÿÿÿ)rP  )rQ  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(   rA  r(   r(   r)   r¨     r©   z$ScaleTest.test_get.<locals>.<lambda>r   rP  rN  r>  é   r   )	r   ÚfloatrQ  rS   r#   ræ   rU   rV   r   )r&   rB  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(   rA  r(   r(   r)   r¨   )  r©   z$ScaleTest.test_set.<locals>.<lambda>rP  r_  rN  r£   r±   r.   r>  r   )r   rd  rQ  r  r#   ræ   rV   Z	DoubleVarrH   r   rS   rU   r   )r&   rB  ÚmaxZnew_maxÚminÚvarr(   r(   r)   Útest_set'  s.    

  zScaleTest.test_set)r>   r?   r@   rp   r   re   r9   rF   r"   rU  rY  r\  r@  rb  re  ri  rc   r(   r(   rK   r)   rM  â  s   rM  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   rh   r#  rO  ÚmodeÚmaximumZphaser8   rk   r>  r±   r&  c                 K   s   t j| jfi |¤ŽS r[   )r   ZProgressbarrH   rm   r(   r(   r)   r"   V  s    zProgressbarTest.createc                 C   s   |   ¡ }|  |dddd¡ d S )NrO  gfffffY@gš™™™™YL@Z2irW  r6   r(   r(   r)   rY  Y  s    z%ProgressbarTest.test_configure_lengthc              	   C   s$   |   ¡ }| j|ddddddd d S )Nrl  çfffffÆb@çÍÌÌÌÌlS@r   r[  FrK  rT  r6   r(   r(   r)   Útest_configure_maximum]  s    z&ProgressbarTest.test_configure_maximumc                 C   s   |   ¡ }|  |ddd¡ d S )Nrk  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>  rm  rn  r   r[  FrK  rT  r6   r(   r(   r)   r@  i  s    ÿz$ProgressbarTest.test_configure_valueN)r>   r?   r@   rp   r   re   r9   r"   rY  ro  rp  rq  r@  r(   r(   r(   r)   rj  L  s   rj  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ž   rh   r#  r8   rk   r%  c                 K   s   t j| jfi |¤ŽS r[   )r   Z	ScrollbarrH   rm   r(   r(   r)   r"   x  s    zScrollbarTest.createN©r>   r?   r@   rp   r9   r"   r(   r(   r(   r)   rr  o  s   rr  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   rh   ri   r+   r8   rk   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ß   r7  r8  )
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   rm   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ß   r7  rÉ   z@20,5z@5,5r.   ró   z@%d, 5zTab with text 'a' not found)rv  r,  Úhider/  rU   rV   r   Útabrw  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  r7  r  r£   )rU   rV   r   rv  rx  r(  r   r‚   rH   Útabsrw  r#   rz  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   rv  r,  r‚  rz  rw  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   rv  rz  r4  rR   r#   rw  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   )rv  r‚  rå   r#   rw  r/  rU   rV   r   r   r‚   rH   r½   r,  )r&   r‚  r0  r(   r(   r)   r1  ß  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©   )
rv  rI   rP   rw  r  r#   r{  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notabr7  rß   rD   Úabc)	rU   rV   r   rv  ry  r4  rw  r5  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¿   rv  r‚  r,  rw  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   rt   ru   z<Left>z<Right>z<Alt-a>z<Alt-e>)rv  rI   rP   r{  rì   rí   r#   rQ   r
   Zfocus_forcerÿ   r½   r/  rw  ry  Zenable_traversal)r&   Zfocus_identify_asZbeginrã   r(   r(   r)   Útest_traversal'  s<    






zNotebookTest.test_traversal)r>   r?   r@   rp   rF   r"   r  rƒ  r-  r„  r1  r†  rˆ  r‰  rŠ  rc   r(   r(   rK   r)   rt  |  s   	 rt  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ž   rh   rÃ   r˜   r™   ÚformatrN  Ú	incrementrÄ   rš   rÅ   r`   r8   rk   r›   rP  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   rm   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   ri   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   rN  r.   rP  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£   rN  r_  rP  rM   r  )r  r  rP   r•  r#   ræ   rJ   r(   r(   r)   rU  •  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   rN  r_  rP  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¿   rz  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_  rP  r£   rN  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@   rp   rì   rí   rÛ   rF   r"   r“  r•  r–  r\  rU  r˜  rš  rœ  r!  rc   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   Úcolumnsrh   Údisplaycolumnsri   r+   Ú
selectmoderÅ   r8   rk   rÈ   Zyscrollcommandc                    s   t ƒ  ¡  | jdd| _d S )Nr   ru  )rE   rF   r"   ÚtvrJ   rK   r(   r)   rF     s    
zTreeviewTest.setUpc                 K   s   t j| jfi |¤ŽS r[   )r   ZTreeviewrH   rm   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ß   r8  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)r8  rß   r  r-   ú#all)r¥  )rM   r£   r   )rß   r8  r  zInvalid column index dr   )r£   rM   r   zColumn index 3 out of bounds)r£   ra  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 )
Nri   ró   rö   r   Z3cFrK  rô   rõ   )r"   rX  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_widthrw  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å   r4  ÚtupleZset_childrenrU   rV   r   )r&   r°  r/  r0  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)
r4  r¡  r¯  r5  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^   r7  rD   )r—   r£   )r–   )r4  r¡  Úheadingr5  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¡  rz  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 herer7  r   r,   g        z0.0)rU   rV   r   r¡  rå   r¼   rê   r#   r   Úitemr   rH   Z	splitlistr4  r5  )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ß   r8  r  )rÔ  rÕ  )rß   rß   za a)r¯  )r8  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)   ri  ¿  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½   r4  r5  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@   rp   rF   r"   r¤  r¦  r÷   r§  rÐ   rÚ   r²  r¶  rº  r¾  rÀ  rÁ  rÃ  rÆ  r„  rÎ  rÓ  ri  rÜ  rÝ  rÞ  rc   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   rh   r#  r8   rk   r&  c                 K   s   t j| jfi |¤ŽS r[   )r   Z	SeparatorrH   rm   r(   r(   r)   r"   #  s    zSeparatorTest.createNrs  r(   r(   r(   r)   rß    s   rß  c                   @   s   e Zd ZdZdd„ ZdS )ÚSizegripTest)r   rh   r8   rk   c                 K   s   t j| jfi |¤ŽS r[   )r   ZSizegriprH   rm   r(   r(   r)   r"   .  s    zSizegripTest.createNro   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   rl   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   rd   rf   rq   r…   r•   r   r®   rÂ   rî   r"  r=  rD  rM  rj  ZskipIfrí   rr  rt  r‹  r  rß  rà  rá  Z	tests_guir>   Úmainr(   r(   r(   r)   Ú<module>   s„   $'8!0} 3i"ÿ
 R 0     


û
