o
    ²ó®g2  ã                   @   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 e d¡ G dd„ deej	ƒZ
G dd„ deej	ƒZe
efZed	krBejeŽ  dS dS )
é    N)Úsupport)ÚAbstractTkTestÚAbstractDefaultRootTestZguic                   @   s|   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚMiscTestc                 C   sr   |   dtj¡ |   dtj¡ |  tj¡ |  dtj¡ |  dtj¡ |  dtj¡ |  dtj¡ |  dtj¡ d S )NZWidgetÚCASCADEÚreÚsysZ	constantsZ_tkerrorZwantobjects)ÚassertInÚtkinterÚ__all__ZassertIsNotNoner   ZassertNotIn)Úself© r   úY/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/tkinter/test/test_tkinter/test_misc.pyÚtest_all   s   zMiscTest.test_allc                 C   s2   t j| jdd}t j|dd}|  t|ƒd¡ d S )NÚtop)ÚnameÚchildz!<tkinter.Frame object .top.child>)r
   ÚToplevelÚrootÚFrameÚassertEqualÚrepr)r   ÚtÚfr   r   r   Ú	test_repr   s   zMiscTest.test_reprc                 C   sX   t  | j¡}t  |¡}t  |¡}t  |¡}t|ƒ d¡D ]}| j| ¡ t	|ƒd qd S )NÚ.)Úmsg)
r
   r   r   r   ZButtonÚstrÚsplitÚassertFalseÚisidentifierr   )r   r   r   Úf2Úbr   r   r   r   Útest_generated_names   s   


ÿzMiscTest.test_generated_namesc                 C   s  | j }| d¡ |  |d d¡ | d¡ |  |d d¡ |  tjd|jd¡ |jdd |  |d d¡ |jddd	 |  |d d¡ |  |d
 d¡ |jddd	 |  |d d¡ |  |d
 d¡ | jtjd|jdd | jtjd|jdd | jtjd|jdd d S )NZblackÚ
backgroundZwhitez^unknown color name "spam"$Úspam)r$   ZblueZyellow)r$   ÚhighlightColorZhighlightcolorz!^must specify a background color$)r%   )r&   )r   Ztk_setPaletter   ZassertRaisesRegexr
   ÚTclError©r   r   r   r   r   Útest_tk_setPalette&   s:   

þþþ
þzMiscTest.test_tk_setPalettec                    s˜  | j }d‡ fdd„	}|  | d¡¡ d‰ | d|¡}|  ||j dd¡¡ |j |j dd|¡¡\}}| ¡  |  ˆ d¡ |  	t
j¡ |j |¡ W d   ƒ n1 sTw   Y  d‰ | d|dd¡}| ¡  |  ˆ d	¡ | d
|¡}|  ||j dd¡¡ |j |j dd|¡¡\}}| |¡ |  ˆ d	¡ |  	t
j¡ |j |¡ W d   ƒ n1 s®w   Y  d‰ | dt |dd¡¡}| ¡  |  ˆ d	¡ d S )Nr   é   c                    ó   | | ‰ d S ©Nr   ©ÚstartÚstep©Úcountr   r   ÚcallbackE   ó   z%MiscTest.test_after.<locals>.callbackÚafterÚinfoé*   é   é5   iè  ©r   r*   )r   ÚassertIsNoner4   r	   ÚtkÚcallÚ	splitlistÚupdater   ÚassertRaisesr
   r'   Úafter_cancelÚ	functoolsÚpartial)r   r   r2   Útimer1ÚscriptÚ_r   r0   r   Ú
test_afterB   s8   ÿ
ÿzMiscTest.test_afterc                    sV  | j }d
‡ fdd„	}d‰ | |¡}|  ||j dd¡¡ |j |j dd|¡¡\}}| ¡  |  ˆ d¡ |  t	j
¡ |j |¡ W d   ƒ n1 sKw   Y  d‰ | |dd¡}| ¡  |  ˆ d	¡ | |¡}|  ||j dd¡¡ |j |j dd|¡¡\}}| |¡ |  ˆ d	¡ |  t	j
¡ |j |¡ W d   ƒ d S 1 s¤w   Y  d S )Nr   r*   c                    r+   r,   r   r-   r0   r   r   r2   n   r3   z*MiscTest.test_after_idle.<locals>.callbackr4   r5   r6   r7   r8   r9   )r   Ú
after_idler	   r;   r<   r=   Zupdate_idletasksr   r?   r
   r'   r@   )r   r   r2   Úidle1rD   rE   r   r0   r   Útest_after_idlek   s.   
ÿ

"ÿzMiscTest.test_after_idlec                    sð  | j }‡ fdd„}| d|¡}| |¡}|  t¡ | d ¡ W d   ƒ n1 s)w   Y  d‰ |j |j dd|¡¡\}}|j |¡ |  	ˆ d¡ | |¡ |  t
j¡ |j |¡ W d   ƒ n1 sfw   Y  |  	ˆ d¡ |  t
j¡ |j dd|¡ W d   ƒ n1 sŠw   Y  | |¡ d‰ |j |j dd|¡¡\}}|j |¡ |  	ˆ d¡ | |¡ |  t
j¡ |j |¡ W d   ƒ n1 sÌw   Y  |  	ˆ d¡ |  t
j¡ |j dd|¡ W d   ƒ d S 1 sñw   Y  d S )Nc                      s   ˆ d7 ‰ d S )Nr*   r   r   r0   r   r   r2   Ž   r3   z,MiscTest.test_after_cancel.<locals>.callbackiˆ  r   r4   r5   r*   )r   r4   rG   r?   Ú
ValueErrorr@   r;   r=   r<   r   r
   r'   )r   r   r2   rC   rH   rD   rE   r   r0   r   Útest_after_cancel‹   s@   
ÿ
ÿÿ

ÿ"ÿzMiscTest.test_after_cancelc                 C   ó„   | j }| ¡  | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | ¡  |  tj¡ | ¡  W d   ƒ d S 1 s;w   Y  d S )Nu   Ã™Ã±Ã®u   Ã§ÅÄ‘Ä›u   Ã™Ã±Ã®Ã§ÅÄ‘Ä›©r   Zclipboard_clearZclipboard_appendr   Zclipboard_getr?   r
   r'   r(   r   r   r   Útest_clipboard´   ó   


"ÿzMiscTest.test_clipboardc                 C   rL   )Nu   ð”˜ð”«ð”¦u   ð” ð”¬ð”¡ð”¢u   ð”˜ð”«ð”¦ð” ð”¬ð”¡ð”¢rM   r(   r   r   r   Útest_clipboard_astral¿   rO   zMiscTest.test_clipboard_astralc                 C   sÊ   | j }|j}|  |dƒd¡ |  |dƒd¡ |  |dƒd¡ |  |dƒd¡ |  |d	ƒd
¡ |  tj¡ |dƒ W d   ƒ n1 sCw   Y  |  tj¡ |dƒ W d   ƒ d S 1 s^w   Y  d S )NZred)éÿÿ  r   r   zdark slate blue)iHH  i==  i‹‹  z#F0F)rQ   r   rQ   z#4a3c8c)iJJ  i<<  iŒŒ  z#dede14143939)iÞÞ  i  i99  z#123456789a)éo   éN   é7   )r   Z	winfo_rgbr   r?   r
   r'   )r   r   Zrgbr   r   r   Útest_winfo_rgbÊ   s   
ÿ
"ÿzMiscTest.test_winfo_rgbc                 C   s‚   t  ¡ }d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_d|_d|_d|_d|_d|_|  t|ƒd¡ d S )Né90  z??r   éÍ[Ú Z100z<100 event>)r
   ÚEventÚserialÚnumÚheightÚkeycodeÚstateÚtimeÚwidthÚxÚyÚcharÚkeysymÚ
keysym_numÚtypeÚwidgetÚx_rootÚy_rootÚdeltar   r   ©r   Úer   r   r   Útest_event_repr_defaultsÞ   s&   z!MiscTest.test_event_repr_defaultsc                 C   s–   t  ¡ }d|_d|_d|_d|_d|_d|_d|_d|_	d	|_
d
|_d|_d|_d|_tdƒ|_t jj|_d|_d|_d|_d|_|  t|ƒd¡ d S )NrV   é   TéÈ   éA   i rW   i,  é
   é   ÚAzKey-Az.textiò  iü  éÿÿÿÿzŸ<Configure event send_event=True state=Shift|Control|Button3|0x30000 keysym=Key-A keycode=65 char='A' num=3 delta=-1 focus=True x=10 y=20 width=300 height=200>)r
   rY   rZ   r[   Zfocusr\   r]   r^   r_   r`   ra   rb   rc   Z
send_eventrd   Úordre   Z	EventTypeZ	Configurerf   rg   rh   ri   rj   r   r   rk   r   r   r   Útest_event_repró   s.   


ÿzMiscTest.test_event_reprc                 C   sˆ   dD ]}|   | j |¡d¡ qdD ]}|   | j |¡d¡ q|  t| jjd¡ |  t| jjd¡ |  t| jjd ¡ |  t| jjd¡ d S )N)ÚtrueZyesZonÚ1r   rb   r*   TT)ZfalseZnoZoffÚ0r   Únr   FFÚyearX   r   )ÚassertIsr   Ú
getbooleanr?   rJ   Ú	TypeError)r   Úvr   r   r   Útest_getboolean  s   zMiscTest.test_getbooleanc                    sf   g ‰ ‡ ‡fdd„}ˆj  d|¡ ˆj  d¡ ˆ ˆ g ¡ ˆj  d¡ ˆ ˆ dg¡ ˆ ˆj  ¡ ¡ d S )Nc                      s    ˆ   d¡ ˆj dˆjj¡ d S )Nr*   éd   )Úappendr   r4   Úquitr   ©Úlogr   r   r   r2     s   
z(MiscTest.test_mainloop.<locals>.callbackr   r*   r   )r   r4   Úmainloopr   Z
assertTrueZwinfo_exists)r   r2   r   r„   r   Útest_mainloop  s   zMiscTest.test_mainloopN)Ú__name__Ú
__module__Ú__qualname__r   r   r#   r)   rF   rI   rK   rN   rP   rU   rm   rv   r€   r‡   r   r   r   r   r   	   s    ) )
r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚDefaultRootTestc                 C   s‚   |   tjd¡ |  tj¡ t ¡ }t ¡ }t ¡ }|   tj|¡ | ¡  |   tj|¡ | ¡  |  tj¡ | ¡  |  tj¡ d S )NT)r|   r
   Ú_support_default_rootr:   Ú_default_rootÚTkÚdestroy)r   r   Úroot2Zroot3r   r   r   Útest_default_root(  s   z!DefaultRootTest.test_default_rootc                 C   sÔ   |   tjd¡ |  tj¡ t ¡ }|   tj|¡ t ¡  |   tjd¡ |  ttdƒ¡ t ¡  |   tjd¡ |  ttdƒ¡ | 	¡  |   tjd¡ |  ttdƒ¡ t ¡ }|   tjd¡ |  ttdƒ¡ | 	¡  d S )NTFr   )
r|   r
   rŒ   r:   r   rŽ   ÚNoDefaultRootr   Úhasattrr   r(   r   r   r   Útest_no_default_root6  s"   z$DefaultRootTest.test_no_default_rootc                 C   s^   |   ttjd¡ t ¡ }|  t d¡d¡ |   ttjd¡ | ¡  t ¡  |   ttjd¡ d S )Nrx   Tr{   )	r?   ÚRuntimeErrorr
   r}   rŽ   r|   rJ   r   r’   r(   r   r   r   r€   J  s   zDefaultRootTest.test_getbooleanc                 C   sL   |   ttj¡ t ¡ }| |j¡ t ¡  | ¡  t ¡  |   ttj¡ d S r,   )	r?   r•   r
   r†   rŽ   rG   rƒ   r   r’   r(   r   r   r   r‡   S  s   zDefaultRootTest.test_mainloopN)rˆ   r‰   rŠ   r‘   r”   r€   r‡   r   r   r   r   r‹   &  s
    	r‹   Ú__main__)rA   Zunittestr
   Útestr   Ztkinter.test.supportr   r   ZrequiresZTestCaser   r‹   Z	tests_guirˆ   Zrun_unittestr   r   r   r   Ú<module>   s    
  7ÿ