a
    ¼3j2  ã                   @   sr   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d	krne  ¡  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   ú_/www/server/python_manager/versions/3.9.10/lib/python3.9/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 q8d 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                    sl  | j }d‡ fdd„	}|  | d¡¡ d‰ | d|¡}|  ||j dd¡¡ |j |j dd|¡¡\}}| ¡  |  ˆ d¡ |  	t
j¡ |j |¡ W d   ƒ n1 s¨0    Y  d‰ | d|dd¡}| ¡  |  ˆ d	¡ | d
|¡}|  ||j dd¡¡ |j |j dd|¡¡\}}| |¡ |  ˆ d	¡ |  	t
j¡ |j |¡ W d   ƒ n1 s^0    Y  d S )Nr   é   c                    s   | | ‰ d S ©Nr   ©ÚstartÚstep©Úcountr   r   ÚcallbackD   s    z%MiscTest.test_after.<locals>.callbackÚafterÚinfoé*   é   é5   iè  )r   r+   )r   ÚassertIsNoner3   r	   ÚtkÚcallÚ	splitlistÚupdater   ÚassertRaisesr
   r(   Úafter_cancel)r   r   r2   Útimer1ÚscriptÚ_r   r0   r   Ú
test_afterA   s,    *
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 s–0    Y  d‰ | |dd¡}| ¡  |  ˆ d	¡ | |¡}|  ||j dd¡¡ |j |j dd|¡¡\}}| |¡ |  ˆ d	¡ |  t	j
¡ |j |¡ W d   ƒ n1 sH0    Y  d S )Nr   r+   c                    s   | | ‰ d S r,   r   r-   r0   r   r   r2   g   s    z*MiscTest.test_after_idle.<locals>.callbackr3   r4   r5   r6   r7   )r   r+   )r   Ú
after_idler	   r9   r:   r;   Zupdate_idletasksr   r=   r
   r(   r>   )r   r   r2   Úidle1r@   rA   r   r0   r   Útest_after_idled   s*    
*

zMiscTest.test_after_idlec                    sô  | j }‡ fdd„}| d|¡}| |¡}|  t¡ | d ¡ W d   ƒ n1 sR0    Y  d‰ |j |j dd|¡¡\}}|j |¡ |  	ˆ d¡ | |¡ |  t
j¡ |j |¡ W d   ƒ n1 sÌ0    Y  |  	ˆ d¡ |  t
j¡  |j dd|¡ W d   ƒ n1 s0    Y  | |¡ d‰ |j |j dd|¡¡\}}|j |¡ |  	ˆ d¡ | |¡ |  t
j¡ |j |¡ W d   ƒ n1 sœ0    Y  |  	ˆ d¡ |  t
j¡  |j dd|¡ W d   ƒ n1 sæ0    Y  d S )Nc                      s   ˆ d7 ‰ d S )Nr+   r   r   r0   r   r   r2   ‡   s    z,MiscTest.test_after_cancel.<locals>.callbackiˆ  r   r3   r4   r+   )r   r3   rC   r=   Ú
ValueErrorr>   r9   r;   r:   r   r
   r(   )r   r   r2   r?   rD   r@   rA   r   r0   r   Útest_after_cancel„   s6    
(
*0

,zMiscTest.test_after_cancelc                 C   s‚   | j }| ¡  | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | ¡  |  tj¡ | ¡  W d   ƒ n1 st0    Y  d S )Nu   Ã™Ã±Ã®u   Ã§ÅÄ‘Ä›u   Ã™Ã±Ã®Ã§ÅÄ‘Ä›©r   Zclipboard_clearZclipboard_appendr   Zclipboard_getr=   r
   r(   r)   r   r   r   Útest_clipboard­   s    

zMiscTest.test_clipboardc                 C   s‚   | j }| ¡  | d¡ |  | ¡ d¡ | d¡ |  | ¡ d¡ | ¡  |  tj¡ | ¡  W d   ƒ n1 st0    Y  d S )Nu   ð”˜ð”«ð”¦u   ð” ð”¬ð”¡ð”¢u   ð”˜ð”«ð”¦ð” ð”¬ð”¡ð”¢rH   r)   r   r   r   Útest_clipboard_astral¸   s    

zMiscTest.test_clipboard_astralc                    sÐ   ‡ fdd„}ˆ j }|j}ˆ  |dƒd¡ ˆ  |dƒd¡ ˆ  |dƒd¡ ||d	ƒd
ƒ ||dƒdƒ ˆ  tj¡ |dƒ W d   ƒ n1 sŽ0    Y  ˆ  tj¡ |dƒ W d   ƒ n1 sÂ0    Y  d S )Nc                    s(   t | |ƒD ]\}}ˆ j||dd q
d S )Né!   )Údelta)ÚzipZassertAlmostEqual)Zcol1Zcol2Zcol1_channelZcol2_channelr   r   r   ÚassertApproxÅ   s    z-MiscTest.test_winfo_rgb.<locals>.assertApproxZred)éÿÿ  r   r   zdark slate blue)iHH  i==  i‹‹  z#F0F)rO   r   rO   z#4a3c8c)iJJ  i<<  iŒŒ  z#dede14143939)iÞÞ  i  i99  z#123456789a)éo   éN   é7   )r   Z	winfo_rgbr   r=   r
   r(   )r   rN   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_rootrL   r   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 )NrT   é   TéÈ   éA   i rU   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
   rW   rX   rY   ZfocusrZ   r[   r\   r]   r^   r_   r`   ra   Z
send_eventrb   Úordrc   Z	EventTypeZ	Configurerd   re   rf   rg   rL   r   r   rh   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   r`   r+   TT)ZfalseÚnoZoffÚ0r   Únr   FFÚyearV   r   )ÚassertIsr   Ú
getbooleanr=   rF   Ú	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   r3   Úquitr   ©Úlogr   r   r   r2     s    
z(MiscTest.test_mainloop.<locals>.callbackr   r+   r   )r   r3   Úmainloopr   Z
assertTrueZwinfo_exists)r   r2   r   r‚   r   Útest_mainloop  s    zMiscTest.test_mainloopN)Ú__name__Ú
__module__Ú__qualname__r   r   r$   r*   rB   rE   rG   rI   rJ   rS   rj   rs   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)rz   r
   Ú_support_default_rootr8   Ú_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‹   )
rz   r
   rŠ   r8   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 )Nru   Try   )	r=   ÚRuntimeErrorr
   r{   rŒ   rz   rF   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Œ   rC   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__)Zunittestr
   Útestr   Ztkinter.test.supportr   r   ZrequiresZTestCaser   r‰   r†   Úmainr   r   r   r   Ú<module>   s   
   7