a
    ¼3j¤.  ã                   @   sœ   d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlmZm	Z	 edƒ G dd„ deej
ƒZG dd	„ d	eej
ƒZG d
d„ de	ej
ƒZedkr˜e ¡  dS )é    N)Úttk)ÚrequiresÚ
gc_collect)ÚAbstractTkTestÚAbstractDefaultRootTestZguic                       sD   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z‡  Z	S )ÚLabeledScaleTestc                    s   | j  ¡  tƒ  ¡  d S ©N)ÚrootÚupdate_idletasksÚsuperÚtearDown©Úself©Ú	__class__© úa/www/server/python_manager/versions/3.9.10/lib/python3.9/tkinter/test/test_ttk/test_extensions.pyr      s    
zLabeledScaleTest.tearDownc                 C   s  t  | j¡}|jj}| ¡  tƒ  |  tj	|j
j|¡ t | j¡}|j}t j| j|d}| ¡  | jr€|  |j
 |¡| ¡ ¡ n|  t|j
 |¡ƒ| ¡ ¡ ~tƒ  |  tj	|j
j|¡ t | j¡}t j| j|d}| ¡  t j| j|d ttdƒr|  tjtj	¡ d S )N©ÚvariableÚ	last_type)r   ÚLabeledScaler	   Ú	_variableÚ_nameÚdestroyr   ÚassertRaisesÚtkinterÚTclErrorÚtkÚglobalgetvarÚ	DoubleVarÚwantobjectsÚassertEqualÚgetÚfloatZIntVarÚhasattrÚsysÚassertNotEqualr   )r   ÚxÚvarÚmyvarÚnamer   r   r   Útest_widget_destroy   s*    z$LabeledScaleTest.test_widget_destroyc                    sî  t  ˆ j¡}t |¡}ˆ  |j|¡ | ¡  ddddtj	d tj	d fddf}|D ]2}tjˆ j|d d	}ˆ  |j
|d ¡ | ¡  qRtjˆ jd d	}ˆ  tt jf|jj¡ | ¡  t jˆ jd
d}tjˆ j|d}ˆ  |j
d¡ | ¡  tjˆ j|dd}ˆ  |j
d¡ ˆ  |jj|j¡ | ¡  ‡ fdd„}tjˆ jdd}||jd|jdƒ | ¡  tjˆ jdd}||jd|jdƒ | ¡  tjˆ jdd}||jd|jdƒ | ¡  t ˆ j¡}||jd|jdƒ | ¡  ˆ jt jtj|dd d S )N)Ú0r   )r   r   )é
   r-   )éÿÿÿÿr.   é   )g      @é   )z2.5r0   r   )Úfrom_é   )Úvaluer   g      à?)r   r1   c                    s,   ˆ   |  ¡ d |¡ ˆ   | ¡ d |¡ d S )NZsideÚanchor)r!   Z	pack_infoÚ
place_info)ÚscaleZ	scale_posÚlabelZ	label_posr   r   r   Úcheck_positionsQ   s    z=LabeledScaleTest.test_initialization.<locals>.check_positionsÚtop)ZcompoundZbottomÚnÚsÚunknownÚb)Úa)r   ZFramer	   r   r   r!   Úmasterr   r%   Úmaxsizer3   r   Ú
ValueErrorr   r   r"   r   r   r6   r7   )r   r?   r'   Zpassed_expectedZpairr)   r8   r   r   r   Útest_initialization3   sJ    
þ
z$LabeledScaleTest.test_initializationc                 C   sö   t j| jddd}| ¡  | ¡  |j ¡ }|j ¡ d }|  	|t
|d ƒ¡ |jjddd | ¡  |j ¡ d }|  ||¡ |j ¡ }|  	|jd | jr dnd¡ |  	|t
|d ƒ¡ |jjddd |  ||¡ |  	|t
|d ƒ¡ | ¡  d S )	Nr   r-   )r1   Útor'   éûÿÿÿé   Útextr,   )r   r   r	   ÚpackÚupdater7   r5   r6   Úcoordsr!   ÚintZ	configurer&   r    r   )r   ZlscaleZlinfo_1Zprev_xcoordÚcurr_xcoordZlinfo_2r   r   r   Útest_horizontal_rangef   s"    

z&LabeledScaleTest.test_horizontal_rangec                 C   s²  t  | j¡}| ¡  | ¡  |j ¡ d }|jd }||_| ¡  |  |j|¡ |  |j	d | j
rf|nt|ƒ¡ |  t|j ¡ ƒ|¡ |  |j ¡ d |¡ |  |j ¡ d t|j	 ¡ d ƒ¡ | j
rÐdd„ }nt}||jd ƒd |_| ¡  |  |j|¡ |  ||j	d ƒ|¡ |  t|j ¡ ƒ|¡ |  |j ¡ d t|j	 ¡ d ƒ¡ |d  |_}| ¡  |  |jt|ƒ¡ |  ||j	d ƒt|ƒ¡ |  t|j ¡ ƒ|¡ | ¡  d S )	Nr   r/   rF   r'   c                 S   s   | S r   r   )r'   r   r   r   Ú<lambda>˜   ó    z7LabeledScaleTest.test_variable_change.<locals>.<lambda>rC   g      ø?)r   r   r	   rG   rH   r6   rI   r3   r!   r7   r    Ústrr#   r"   ZassertGreaterrJ   r5   r   )r   r'   rK   ZnewvalÚconvr   r   r   Útest_variable_changeƒ   sB    
ÿÿ
ÿz%LabeledScaleTest.test_variable_changec                 C   s¶   t  | j¡}|jddd tƒ  | ¡  |j ¡ |j ¡  }}|d |d  }}d|_	| ¡  |j 
d||f ¡ |  t|j ¡ d ƒ|j ¡ d ¡ |j 
d||f ¡ | ¡  d S )	NTZboth)ÚexpandÚfillr0   é   z%dx%dr'   r   )r   r   r	   rG   r   rH   r?   Zwinfo_widthZwinfo_heightr3   Zwm_geometryr!   rJ   r7   r5   r6   rI   r   )r   r'   ÚwidthZheightZ	width_newZ
height_newr   r   r   Útest_resize­   s    ÿzLabeledScaleTest.test_resize)
Ú__name__Ú
__module__Ú__qualname__r   r+   rB   rL   rQ   rV   Ú__classcell__r   r   r   r   r   
   s   #3*r   c                       sP   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	‡  Z
S )ÚOptionMenuTestc                    s   t ƒ  ¡  t | j¡| _d S r   )r   ÚsetUpr   Ú	StringVarr	   Útextvarr   r   r   r   r\   Ã   s    
zOptionMenuTest.setUpc                    s   | ` tƒ  ¡  d S r   )r^   r   r   r   r   r   r   r   Ç   s    zOptionMenuTest.tearDownc                 C   sh   t  | j¡}t | j|¡}|j}| ¡  | ¡  |  |j	 
|¡| ¡ ¡ ~tƒ  |  t j|j	j
|¡ d S r   )r   r]   r	   r   Ú
OptionMenur   r
   r   r!   r   r   r"   r   r   r   )r   r(   Úoptmenur*   r   r   r   r+   Ì   s    z"OptionMenuTest.test_widget_destroyc                 C   sl   | j tjtj| j| jdd t | j| jddd¡}|  |j 	¡ d¡ |  
|d ¡ |  
|d ¡ | ¡  d S )NÚthing)Úinvalidr=   r>   ÚmenuZtextvariable)r   r   r   r   r_   r	   r^   r!   r   r"   Ú
assertTruer   )r   r`   r   r   r   rB   Ø   s    ÿz"OptionMenuTest.test_initializationc           	         s¦  d‰ d}t jˆjˆj|gˆ ¢R Ž }d}ttˆ ƒƒD ]0}|d  |d¡}ˆ |ˆ | ¡ ||kr2d}q2ˆ |¡ | 	¡  d}t jˆjˆj|gˆ ¢R Ž }d }d}||d  
|d¡ }}||kr¼qÒˆ ||¡ |d	7 }qœˆ |tˆ ƒ¡ | ¡  tƒ  |d  d¡ ˆ |j ¡ ˆ d ¡ ˆ tj|d jd
¡ ˆ |j ¡ ˆ d ¡ | 	¡  g ‰‡ ‡‡fdd„}t jˆjˆjdgˆ ¢R d|iŽ}|d  d	¡ ˆsšˆ d¡ | 	¡  d S )N©r>   r=   Úcr>   Frc   r3   TÚdr   r/   r.   c                    s   ˆ  | ˆ d ¡ ˆ d¡ d S )Nr/   T)r!   Úappend)Úitem©Úitemsr   Úsuccessr   r   Úcb_test  s    z)OptionMenuTest.test_menu.<locals>.cb_testZcommandzMenu callback not invoked)r   r_   r	   r^   ÚrangeÚlenÚ	entrycgetr!   rd   r   Zentryconfigurer&   rG   r   Úinvoker   r"   r   r   r   Zfail)	r   Údefaultr`   Zfound_defaultÚir3   ZcurrZlastrm   r   rj   r   Ú	test_menuå   sJ    

ÿ
zOptionMenuTest.test_menuc                 C   sæ   d}d}t j| j| j|g|¢R Ž }t | j¡}t j| j||g|¢R Ž }| ¡  | ¡  |d  d¡ |d  d¡ |d  dd¡}|d  dd¡}|  	||¡ |  
| jj |¡|d ¡ |  
| jj |¡|d ¡ | ¡  | ¡  d S )Nre   r>   rc   r/   r0   r   r   )r   r_   r	   r^   r   r]   rG   rq   rp   r&   r!   r   r   r   )r   rk   rr   r`   Ztextvar2Zoptmenu2Zoptmenu_stringvar_nameZoptmenu2_stringvar_namer   r   r   Útest_unique_radiobuttons  s,    ÿÿÿz'OptionMenuTest.test_unique_radiobuttonsc                    s’   g ‰ d}t  | j¡‰‡ ‡fdd„}tj| jˆdg|¢R Ž }| ¡  ˆ d|¡}|d  d¡ |  ˆ dg¡ |  ˆ 	¡ d¡ ˆ 
d|¡ | ¡  d S )	Nre   c                     s   ˆ   ˆ ¡ ¡ d S r   )rh   r"   )Úargs©rl   r^   r   r   rm   5  s    z3OptionMenuTest.test_trace_variable.<locals>.cb_testr>   Úwriterc   r/   r=   )r   r]   r	   r   r_   rG   Z	trace_addrq   r!   r"   Ztrace_remover   )r   rk   rm   r`   Zcb_namer   rw   r   Útest_trace_variable0  s    z"OptionMenuTest.test_trace_variable)rW   rX   rY   r\   r   r+   rB   rt   ru   ry   rZ   r   r   r   r   r[   Á   s   4r[   c                   @   s   e Zd Zdd„ ZdS )ÚDefaultRootTestc                 C   s   |   tj¡ d S r   )Z_test_widgetr   r   r   r   r   r   Útest_labeledscaleC  s    z!DefaultRootTest.test_labeledscaleN)rW   rX   rY   r{   r   r   r   r   rz   A  s   rz   Ú__main__)r%   Zunittestr   r   Ztest.supportr   r   Ztkinter.test.supportr   r   ZTestCaser   r[   rz   rW   Úmainr   r   r   r   Ú<module>   s    8 