
    z%i=                         d dl Z 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j                  d        G d deej                        Z G d deej                        Zed	k(  r ej                          yy)
    N)support)AbstractTkTestAbstractDefaultRootTestguic                   l    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zy)MiscTestc                    | j                  dt        j                         | j                  dt        j                         | j                  t        j                         | j                  dt        j                         | j                  dt        j                         | j                  dt        j                         | j                  dt        j                         | j                  dt        j                         y )NWidgetCASCADEresys	constants_tkerrorwantobjects)assertIntkinter__all__assertIsNotNoner   assertNotIn)selfs    O/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_tkinter/test_misc.pytest_allzMiscTest.test_all   s    h0i1W__-w/0goo6W__58    c                     t        j                  | j                  d      }t        j                  |d      }| j	                  t        |      d       y )Ntop)namechildz!<tkinter.Frame object .top.child>)r   ToplevelrootFrameassertEqualrepr)r   tfs      r   	test_reprzMiscTest.test_repr   s=    TYYU3MM!'*a"EFr   c                 R   t        j                  | j                        }t        j                  |      }t        j                  |      }t        j                  |      }t        |      j                  d      D ],  }| j                  |j                         t        |             . y )N.)msg)
r   r   r   r    ButtonstrsplitassertFalseisidentifierr"   )r   r#   r$   f2br   s         r   test_generated_nameszMiscTest.test_generated_names   s~    TYY'MM!]]1NN2FLL% 	BDT..0d4jA	Br   c                 \   | j                   }|j                  d       | j                  |d   d       |j                  d       | j                  |d   d       | j                  t        j
                  d|j                  d       |j                  d       | j                  |d   d       |j                  dd	       | j                  |d   d       | j                  |d
   d       |j                  dd	       | j                  |d   d       | j                  |d
   d       | j                  t        j
                  d|j                  d       | j                  t        j
                  d|j                  d       | j                  t        j
                  d|j                  d       y )Nblack
backgroundwhitez^unknown color name "spam"$spam)r3   blueyellow)r3   highlightColorhighlightcolorz!^must specify a background color$)r5   )r8   )r   tk_setPaletter!   assertRaisesRegexr   TclErrorr   r   s     r   test_tk_setPalettezMiscTest.test_tk_setPalette'   s   yy7#l+W57#l+W5w//-""F	, 	g.l+W5fXFl+V4./:hvFl+X6./8w//-""v 	 	7 	w//3"" 	 	2 	w//3""6 	 	;r   c                    | j                   }d
fd	}| j                  |j                  d             d|j                  d|      }| j                  ||j                  j                  dd             |j                  j                  |j                  j                  dd|            \  }}|j                          | j                  d       | j                  t        j                        5  |j                  j                  |       d d d        d|j                  d|dd      }|j                          | j                  d       |j                  d	|      }| j                  ||j                  j                  dd             |j                  j                  |j                  j                  dd|            \  }}|j                  |       | j                  d       | j                  t        j                        5  |j                  j                  |       d d d        d|j                  dt        j                  |dd            }|j                          | j                  d       y # 1 sw Y   kxY w# 1 sw Y   bxY w)Nr      c                     | |z   y N startstepcounts     r   callbackz%MiscTest.test_after.<locals>.callbackF       DLEr   afterinfo*      5   i  r   r@   )r   assertIsNonerJ   r   tkcall	splitlistupdater!   assertRaisesr   r<   after_cancel	functoolspartial)r   r   rH   timer1script_rG   s         @r   
test_afterzMiscTest.test_afterC   s   yy	!
 	$**Q-( Ax(fdggll7F;<gg''Wff(MN"w//0 	!GGLL 	! AxR0# D(+fdggll7F;<gg''Wff(MN&!#w//0 	!GGLL 	! Ay002rBC#-	! 	!	! 	!s   .I3J 3I= J	c                 <   | j                   }d	fd	}d|j                  |      }| j                  ||j                  j	                  dd             |j                  j                  |j                  j	                  dd|            \  }}|j                          | j                  d       | j                  t        j                        5  |j                  j	                  |       d d d        d|j                  |dd      }|j                          | j                  d       |j                  |      }| j                  ||j                  j	                  dd             |j                  j                  |j                  j	                  dd|            \  }}|j                  |       | j                  d       | j                  t        j                        5  |j                  j	                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
Nr   r@   c                     | |z   y rB   rC   rD   s     r   rH   z*MiscTest.test_after_idle.<locals>.callbacko   rI   r   rJ   rK   rL   rM   rN   rO   )r   
after_idler   rQ   rR   rS   update_idletasksr!   rU   r   r<   rV   )r   r   rH   idle1rZ   r[   rG   s         @r   test_after_idlezMiscTest.test_after_idlel   s   yy	!
 )eTWW\\'6:;gg''Wfe(LM"w//0 	!GGLL 	! "b1# )eTWW\\'6:;gg''Wfe(LM% #w//0 	!GGLL 	! 	!	! 	!	! 	!s   H HHHc                    | j                   }fd}|j                  d|      }|j                  |      }| j                  t              5  |j                  d        d d d        d|j                  j                  |j                  j                  dd|            \  }}|j                  j                  |       | j                  d       |j                  |       | j                  t        j                        5  |j                  j                  |       d d d        | j                  d       | j                  t        j                        5  |j                  j                  dd|       d d d        |j                  |       d|j                  j                  |j                  j                  dd|            \  }}|j                  j                  |       | j                  d       |j                  |       | j                  t        j                        5  |j                  j                  |       d d d        | j                  d       | j                  t        j                        5  |j                  j                  dd|       d d d        y # 1 sw Y   BxY w# 1 sw Y   xY w# 1 sw Y   IxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                       dz   y )Nr@   rC   )rG   s   r   rH   z,MiscTest.test_after_cancel.<locals>.callback   s    QJEr   i  r   rJ   rK   r@   )r   rJ   r_   rU   
ValueErrorrV   rQ   rS   rR   r!   r   r<   )r   r   rH   rY   ra   rZ   r[   rG   s          @r   test_after_cancelzMiscTest.test_after_cancel   sA   yy	 D(+) z* 	$d#	$ gg''Wff(MNV"&!w//0 	!GGLL 	!"w//0 	2GGLL&&1	2 	&! gg''Wfe(LMV"% w//0 	!GGLL 	!"w//0 	1GGLL&%0	1 	17	$ 	$	! 	!	2 	2	! 	!	1 	1s<   J=J*J7!K6KJ'*J47KKKc                    | j                   }|j                          |j                  d       | j                  |j	                         d       |j                  d       | j                  |j	                         d       |j                          | j                  t        j                        5  |j	                          d d d        y # 1 sw Y   y xY w)Nu   Ùñîu   çōđěu   Ùñîçōđěr   clipboard_clearclipboard_appendr!   clipboard_getrU   r   r<   r=   s     r   test_clipboardzMiscTest.test_clipboard   s    yyh'++-x8j)++-/?@w//0 	! 	! 	! 	!   .CCc                    | j                   }|j                          |j                  d       | j                  |j	                         d       |j                  d       | j                  |j	                         d       |j                          | j                  t        j                        5  |j	                          d d d        y # 1 sw Y   y xY w)Nu   𝔘𝔫𝔦u   𝔠𝔬𝔡𝔢u   𝔘𝔫𝔦𝔠𝔬𝔡𝔢rh   r=   s     r   test_clipboard_astralzMiscTest.test_clipboard_astral   s    yyn-++-~>01++-/MNw//0 	! 	! 	! 	!rm   c                      fd} j                   }|j                  } j                   |d      d        j                   |d      d        j                   |d      d        | |d      d	        | |d
      d        j                  t        j
                        5   |d       d d d         j                  t        j
                        5   |d       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nc                 V    t        | |      D ]  \  }}j                  ||d        y )N!   )delta)zipassertAlmostEqual)col1col2col1_channelcol2_channelr   s       r   assertApproxz-MiscTest.test_winfo_rgb.<locals>.assertApprox   s6     /2$o M*l&&|\&LMr   red)  r   r   zdark slate blue)iHH  i==  i  z#F0F)r|   r   r|   z#4a3c8c)iJJ  i<<  i  z#dede14143939)i  i  i99  z#123456789a)o   N   7   )r   	winfo_rgbr!   rU   r   r<   )r   rz   r   rgbs   `   r   test_winfo_rgbzMiscTest.test_winfo_rgb   s    	M yynn 	U]3./1FGV&>?S^%=>S)+CDw//0 		 w//0 		 		 		 	s   $	C&	C2&C/2C;c                 P   t        j                         }d|_        d|_        d|_        d|_        d|_        d|_        d|_        d|_	        d|_
        d|_        d|_        d|_        d|_        d|_        d|_        d|_        d|_        | j'                  t)        |      d       y )N90  z??r   [ 100z<100 event>)r   Eventserialnumheightkeycodestatetimewidthxycharkeysym
keysym_numtypewidgetx_rooty_rootrs   r!   r"   r   es     r   test_event_repr_defaultsz!MiscTest.test_event_repr_defaults   s    MMO	a-0r   c                    t        j                         }d|_        d|_        d|_        d|_        d|_        d|_        d|_        d|_	        d	|_
        d
|_        d|_        d|_        d|_        t        d      |_        t         j"                  j$                  |_        d|_        d|_        d|_        d|_        | j1                  t3        |      d       y )Nr      T   A   i r   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   r   r   r   focusr   r   r   r   r   r   r   r   
send_eventr   ordr   	EventType	Configurer   r   r   r   rs   r!   r"   r   s     r   test_event_reprzMiscTest.test_event_repr   s    MMO	3x"",,a<	=r   c                 ~     G d dt         j                        }t        j                  |t        j                         y )Nc                       e Zd ZdZeZdZdZeZdZdZ	dZ
dZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)y&)'6MiscTest.test_eventtype_enum.<locals>.CheckedEventType234567891011121314151617181920212223242526272829303132333435363738N)*__name__
__module____qualname__KeyPressKey
KeyReleaseButtonPressr)   ButtonReleaseMotionEnterLeaveFocusInFocusOutKeymapExposeGraphicsExposeNoExpose
VisibilityCreateDestroyUnmapMap
MapRequestReparentr   ConfigureRequestGravityResizeRequest	CirculateCirculateRequestPropertySelectionClearSelectionRequest	SelectionColormapClientMessageMappingVirtualEventActivate
Deactivate
MouseWheelrC   r   r   CheckedEventTyper     s    HCJK FMFEEGHFF!NHJFGECJHI#G MI#H!N#IH MGLHJJr   r   )enumStrEnum_test_simple_enumr   r   )r   r   s     r   test_eventtype_enumzMiscTest.test_eventtype_enum  s,    '	t|| '	P 	/1B1BCr   c                 $   dD ]-  }| j                  | j                  j                  |      d       / dD ]-  }| j                  | j                  j                  |      d       / | j                  t        | j                  j                  d       | j                  t        | j                  j                  d       | j                  t
        | j                  j                  d        | j                  t
        | j                  j                  d       y )N)trueyeson1r#   r   r@   TT)falsenooff0r$   nr   FFyear   rC   )assertIsr   
getbooleanrU   re   	TypeError)r   vs     r   test_getbooleanzMiscTest.test_getbooleanB  s    < 	9AMM$))..q148	9> 	:AMM$))..q159	:*dii&:&:EB*dii&:&:B?)TYY%9%94@)TYY%9%92>r   c                 X    g  fd} j                   j                  d|        j                   j                  d        j                  g         j                   j                  d        j                  dg        j	                   j                   j                                y )Nc                       j                  d       j                  j                  dj                  j                         y )Nr@   d   )appendr   rJ   quit)logr   s   r   rH   z(MiscTest.test_mainloop.<locals>.callbackN  s(    JJqMIIOOC0r   r  r@   r   )r   rJ   mainloopr!   
assertTruewinfo_exists)r   rH   r  s   ` @r   test_mainloopzMiscTest.test_mainloopL  s    	1 			X&		1b!		1qc"		..01r   c                    | j                   j                         }t        j                  | j                         }| j	                  |j                         |       | j                  |d d  t               | j	                  t        |      d       | j                  |d   t               | j                  |d   t               | j                  |d   t               | j                  |d   d       | j                  |d   t               | j                  |j                  t               | j                  |j                  t               | j                  |j                  t               | j                  |j                  d       | j                  |j                  t               | j	                  |d   |j                         | j	                  |d   |j                         | j	                  |d   |j                         | j	                  |d   |j                         | j	                  |d   |j                         | j                  |d	kD         |j                  d
k(  r| j	                  |j                  d       n| j	                  |j                  d       | j                  t!        |      j#                  |j                   d|j                                y )N   r   r@      r   )alphabeta	candidatefinal   )r  r  r  )r@   r   r   r  r'   )r   info_patchlevelr   r    r!   assertIsInstancetuplelenintr   majorminormicroreleaselevelr   r  r*   
startswith)r   vir$   s      r   test_info_patchlevelzMiscTest.test_info_patchlevelX  s   YY&&(MM$))$**,b1beU+R!$beS)beS)beS)beDEbeS)bhh,bhh,bhh,boo'ABbii-A)A)A)A0A		*W%??g%RYY*RXXq)B**bhhZq
+CDEr   N)r   r   r   r   r%   r0   r>   r\   rb   rf   rl   ro   r   r   r   r   r  r  r,  rC   r   r   r   r   
   sZ    9G
B;8'$R!@'1R	!	!61*=8)DV?
2Fr   r   c                   $    e Zd Zd Zd Zd Zd Zy)DefaultRootTestc                 V   | j                  t        j                  d       | j                  t        j                         t        j
                         }t        j
                         }t        j
                         }| j                  t        j                  |       |j                          | j                  t        j                  |       |j                          | j                  t        j                         |j                          | j                  t        j                         y )NT)r
  r   _support_default_rootrP   _default_rootTkdestroy)r   r   root2root3s       r   test_default_rootz!DefaultRootTest.test_default_rootx  s    g33T:'//0zz|



g++T2g++T2'//0'//0r   c                    | j                  t        j                  d       | j                  t        j                         t        j
                         }| j                  t        j                  |       t        j                          | j                  t        j                  d       | j                  t        t        d             t        j                          | j                  t        j                  d       | j                  t        t        d             |j                          | j                  t        j                  d       | j                  t        t        d             t        j
                         }| j                  t        j                  d       | j                  t        t        d             |j                          y )NTFr1  )
r
  r   r0  rP   r1  r2  NoDefaultRootr,   hasattrr3  r=   s     r   test_no_default_rootz$DefaultRootTest.test_no_default_root  s"   g33T:'//0zz|g++T2g33U;/:;g33U;/:;g33U;/:;zz|g33U;/:;r   c                    | j                  t        t        j                  d       t        j                         }| j                  t        j                  d      d       | j                  t        t        j                  d       |j                          t        j                          | j                  t        t        j                  d       y )Nr  Tr	  )	rU   RuntimeErrorr   r  r2  r
  re   r3  r8  r=   s     r   r  zDefaultRootTest.test_getboolean  s    ,(:(:C@zz|g((-t4*g&8&8%@,(:(:C@r   c                 b   | j                  t        t        j                         t        j                         }|j                  |j                         t        j                          |j                          t        j                          | j                  t        t        j                         y rB   )	rU   r<  r   r  r2  r_   r  r3  r8  r=   s     r   r  zDefaultRootTest.test_mainloop  sj    ,(8(89zz|		",(8(89r   N)r   r   r   r6  r:  r  r  rC   r   r   r.  r.  v  s    1(A:r   r.  __main__)rW   unittestr   r   testr   test.test_tkinter.supportr   r   requiresTestCaser   r.  r   mainrC   r   r   <module>rE     sp         M    iF~x00 iFX4:-x/@/@ 4:n zHMMO r   