
    =e\                     R   d dl Z d dlZd dlZd dlZ G d d          Z G d d          Zd Zd Zd dlZ e	 e
eej                            d                              Z e	 e
eej                            d                              Zd	 Zdad
 ZdddddZd Zd Zd ZdS )    Nc                   F    e Zd Zed             Zed             Zd Zd ZdS )AbstractTkTestc                 n   t           j        | _        t                       t          j                     t          j                    | _        | j                                        | _        | j                            d           	 | j        	                    dd           d S # t           j
        $ r Y d S w xY w)Nnormalz-zoomedF)tkinter_support_default_root_old_support_default_rootdestroy_default_rootNoDefaultRootTkrootwantobjectswm_statewm_attributesTclErrorclss    +/usr/lib/python3.11/tkinter/test/support.py
setUpClasszAbstractTkTest.setUpClass   s    (/(E%:<<(..00 	(###	H""9e44444 	 	 	DD	s   B! !B43B4c                     | j                                          | j                                          | ` d t          _        | j        t          _        d S N)r   update_idletasksdestroyr   _default_rootr	   r   r   s    r   tearDownClasszAbstractTkTest.tearDownClass   sH    !!###H $(+(E%%%    c                 8    | j                                          d S r   )r   	deiconifyselfs    r   setUpzAbstractTkTest.setUp   s    	r   c                     | j                                         D ]}|                                 | j                                          d S r   )r   winfo_childrenr   withdraw)r    ws     r   tearDownzAbstractTkTest.tearDown"   sH    ))++ 	 	AIIKKKK	r   N)__name__
__module____qualname__classmethodr   r   r!   r&    r   r   r   r      si          [ F F [F      r   r   c                        e Zd Zd Zd Zd ZdS )AbstractDefaultRootTestc                 ~    t           j        | _        t                       dt           _        t           j        | _        d S )NT)r   r   r	   r
   r   r   s    r   r!   zAbstractDefaultRootTest.setUp*   s2    )0)F&(,%".r   c                 \    t                       d t          _        | j        t          _        d S r   )r
   r   r   r	   r   r   s    r   r&   z AbstractDefaultRootTest.tearDown0   s'     $(,(F%%%r   c                     |            }|                      t          j                   |                     |j        t          j                   |                     |j        t          j        j                   |                                 t                       t          j                     | 	                    t          |           |                     t          t          d                     d S Nr   )assertIsNotNoner   r   assertIsmastertkr   r
   r   assertRaisesRuntimeErrorassertFalsehasattr)r    constructorxs      r   _test_widgetz$AbstractDefaultRootTest._test_widget5   s    KMMW2333ah 5666adG14555			,444/::;;;;;r   N)r'   r(   r)   r!   r&   r<   r+   r   r   r-   r-   (   sD        / / /G G G

< 
< 
< 
< 
<r   r-   c                      t          t          dd           rJt          j                                         t          j                                         d t          _        d S d S r1   )getattrr   r   r   r   r+   r   r   r
   r
   B   sX    w.. %..000%%''' $% %r   c                     	 |                      ddd           |                      d||           |                      d||           |                      d||           d S )Nz<Enter>r   )r;   yz<Motion>z<ButtonPress-1>z<ButtonRelease-1>)event_generate)widgetr;   r@   s      r   simulate_mouse_clickrC   H   s{    
)qA...
*Q///
+qA666
-a88888r   .c                  T     t                     dk    rt           k    rd S  fd}|S )N   c                     | S r   r+   )tests    r   <lambda>zrequires_tk.<locals>.<lambda>W   s    D r   c                 J     t          j                    fd            }|S )Nc           	          t          | dd           }t          |          k     r>|                     dd                    t	          t
                              z               |            d S )Nr   zrequires Tk version >= rD   )r>   get_tk_patchlevelskipTestjoinmapstr)r    r   rH   versions     r   newtestz*requires_tk.<locals>.deco.<locals>.newtestZ   so    4..D &&007 #S'):): ; ;< = = =DJJJJJr   )	functoolswraps)rH   rR   rQ   s   ` r   decozrequires_tk.<locals>.decoY   s>    				 	 	 	 	 
		 r   )len
tk_version)rQ   rU   s   ` r   requires_tkrX   U   sG    
7||qZ722        Kr   c                 v    t           ,t          j        | j                            d                    a t           S )Ntk_patchLevel)_tk_patchlevelr   _parse_versionr5   globalgetvar)r   s    r   rL   rL   e   s.     /0D0D_0U0UVVr   gbX<@H   gjZ@   )cimpc                 \    t          | d d                   t          | dd                   z  S )N)floatunits)values    r   pixels_convri   r   s*    ssuU233Z000r   c                 |   | |k    rdS t          | t          j                  r(t          |t                    rt          |           |k    S t          | t                    r\t          |t                    rGt          |           t          |          k    o&t          d t          | |          D                       S dS )NTc              3   <   K   | ]\  }}t          ||          V  d S r   )
tcl_obj_eq).0actexps      r   	<genexpr>ztcl_obj_eq.<locals>.<genexpr>~   sD       ? ?$C #3,, ? ? ? ? ? ?r   F)
isinstance_tkinterTcl_ObjrP   tuplerV   allzipactualexpecteds     r   rl   rl   u   s    t&(*++ +h$$ 	+v;;(**&%   @h&& 	@KK3x==0 ? ? ?(+FH(=(=? ? ? ? ?@ 5r   c                     | |k    rdS t          | t          t          j        f          rAt          |t          t          j        f          r t          |           t          |          k    S dS )NTF)rq   rP   r   Widgetrw   s     r   	widget_eqr|      s`    t&3/00 0hgn 566 	0v;;#h--//5r   )rS   rer   unittestr   r-   r
   rC   rr   rt   rO   intTCL_VERSIONsplittcl_version
TK_VERSIONrW   rX   r[   rL   rg   ri   rl   r|   r+   r   r   <module>r      st       				         D< < < < < < < <4% % %9 9 9 eCCX177<<==>>U33sH/55c::;;<<
      
			
		 	1 1 1      r   