
    dafR                     (   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                  j                  d                  Z e e	e
ej                  j                  d                  Zd	 Zdad
 ZdddddZd Zd Zd Zy)    Nc                   8    e Zd Zed        Zed        Zd Zd Zy)AbstractTkTestc                 |   t         j                  | _        t                t        j                          t        j
                         | _        | j                  j                         | _        | j                  j                  d       	 | j                  j                  dd       y # t         j                  $ r Y y 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    4/root/Python-3.12.4/Lib/test/test_tkinter/support.py
setUpClasszAbstractTkTest.setUpClass   s    (/(E(E%::<((..0 	(#	HH""9e4 		s   B% %B;:B;c                     | j                   j                          | j                   j                          | ` d t        _        | j
                  t        _        y N)r   update_idletasksdestroyr   _default_rootr	   r   r   s    r   tearDownClasszAbstractTkTest.tearDownClass   s=    !!#H $(+(E(E%    c                 8    | j                   j                          y r   )r   	deiconifyselfs    r   setUpzAbstractTkTest.setUp   s    		r   c                     | j                   j                         D ]  }|j                           | j                   j                          y r   )r   winfo_childrenr   withdraw)r    ws     r   tearDownzAbstractTkTest.tearDown!   s7    ))+ 	AIIK			r   N)__name__
__module____qualname__classmethodr   r   r!   r&    r   r   r   r      s4      F Fr   r   c                       e Zd Zd Zd Zd Zy)AbstractDefaultRootTestc                     t         j                  | _        t                dt         _        t         j                  | _        y )NT)r   r   r	   r
   r   r   s    r   r!   zAbstractDefaultRootTest.setUp)   s,    )0)F)F&(,%"..r   c                 X    t                d t        _        | j                  t        _        y r   )r
   r   r   r	   r   r   s    r   r&   z AbstractDefaultRootTest.tearDown/   s     $(,(F(F%r   c                     |       }| j                  t        j                         | j                  |j                  t        j                         | j                  |j
                  t        j                  j
                         |j                          t                t        j                          | j                  t        |       | j                  t        t        d             y Nr   )assertIsNotNoner   r   assertIsmastertkr   r
   r   assertRaisesRuntimeErrorassertFalsehasattr)r    constructorxs      r   _test_widgetz$AbstractDefaultRootTest._test_widget4   s    MW223ahh 5 56addG11445			,4/:;r   N)r'   r(   r)   r!   r&   r<   r+   r   r   r-   r-   '   s    /G

<r   r-   c                      t        t        dd       rHt        j                  j                          t        j                  j	                          d t        _        y y r1   )getattrr   r   r   r   r+   r   r   r
   r
   A   s?    w...0%%' $ /r   c                     | j                  ddd       | j                  d||       | j                  d||       | j                  d||       y)zYGenerate proper events to click at the x, y position (tries to act
    like an X server).z<Enter>r   )r;   yz<Motion>z<ButtonPress-1>z<ButtonRelease-1>N)event_generate)widgetr;   r@   s      r   simulate_mouse_clickrC   G   sZ     )qA.
*Q/
+qA6
-a8r   .c                  F     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>V   s    D r   c                 F     t        j                          fd       }|S )Nc           	          t        | dd       }t        |      k  r1| j                  ddj                  t	        t
                    z           |        y )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>.newtestY   sL    4.D &07 #S'): ;< =Jr   )	functoolswraps)rH   rR   rQ   s   ` r   decozrequires_tk.<locals>.decoX   s%    			 
	 r   )len
tk_version)rQ   rU   s   ` r   requires_tkrX   T   s(    
7|qZ72   Kr   c                 v    t         .t        j                  | j                  j	                  d            a t         S )Ntk_patchLevel)_tk_patchlevelr   _parse_versionr5   globalgetvar)r   s    r   rL   rL   d   s-     //0D0D_0UVr   gbX<@H   gjZ@   )cimpc                 8    t        | d d       t        | dd     z  S )N)floatunits)values    r   pixels_convri   q   s#    suU23Z000r   c                 *   | |k(  ryt        | t        j                        rt        |t              rt        |       |k(  S t        | t              rEt        |t              r5t        |       t        |      k(  xr t        d t        | |      D              S y)NTc              3   :   K   | ]  \  }}t        ||        y wr   )
tcl_obj_eq).0actexps      r   	<genexpr>ztcl_obj_eq.<locals>.<genexpr>}   s#      ?$C #3, ?s   F)
isinstance_tkinterTcl_ObjrP   tuplerV   allzipactualexpecteds     r   rl   rl   t   s    &(**+h$v;(**&% h&K3x=0 ? ?(+FH(=? ?@ r   c                     | |k(  ryt        | t        t        j                  f      r7t        |t        t        j                  f      rt        |       t        |      k(  S y)NTF)rq   rP   r   Widgetrw   s     r   	widget_eqr|      sI    &3/0hgnn 56v;#h-//r   )rS   r   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      s       D< <4%9 CX1177<=>3sH//55c:;<
  
			
		1r   