
    ;e	                         	 d dl mZmZ d dlmZ  ed           d dlmZ d dlZd dlm	Z	m
Z
mZ d dlZd Zd Zd	 Zd
 Z G d dej                  Z G d dej                  Zedk    r ej        d           dS dS )    )TooltipBaseHovertip)requiresgui)wrapsN)ButtonTkToplevelc                  "    t                      ad S N)r	   root     5/usr/lib/python3.11/idlelib/idle_test/test_tooltip.pysetUpModuler      s    44DDDr   c                  l    t                                            t                                            b d S r   )r   update_idletasksdestroyr   r   r   tearDownModuler      s(    LLNNNr   c                 N     t                      fd            g _        S )Nc                  L    j                             | |f            | i |S r   )call_args_listappend)argskwargsfuncwrapped_funcs     r   r   z'add_call_counting.<locals>.wrapped_func   s3    #**D&>:::tT$V$$$r   )r   r   )r   r   s   `@r   add_call_countingr      sB    
4[[% % % % % [% #%Lr   c                 6   t          t                    }|                     |j                   |                    d           t          |d          }|                                 |                     |j                   |                                 ||fS )NzTest tooltipToolTip test buttontext)r
   r   
addCleanupr   titler   packlift)testobjtopbuttons      r   _make_top_and_buttonr*   &   s    
4..Cs{###IInC3444F
KKMMMv~&&&HHJJJ;r   c                       e Zd Zd Zd ZdS )ToolTipBaseTestc                 >    t          |           \  | _        | _        d S r   r*   r(   r)   selfs    r   setUpzToolTipBaseTest.setUp3        4T : :$+++r   c                    t          t                    }|                     |j                   t	          |d          }|                                 |                     |j                   |                     t                    5  t          |          }|	                                 d d d            d S # 1 swxY w Y   d S )Nr    r!   )
r
   r   r#   r   r   r%   assertRaisesNotImplementedErrorr   showtip)r0   r(   r)   tooltips       r   test_base_class_is_unusablez+ToolTipBaseTest.test_base_class_is_unusable6   s    tnn$$$"7888'''233 	 	!&))GOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   $B99B= B=N)__name__
__module____qualname__r1   r8   r   r   r   r,   r,   2   s2        ; ; ;    r   r,   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
HovertipTestc                 >    t          |           \  | _        | _        d S r   r.   r/   s    r   r1   zHovertipTest.setUpE   r2   r   c                 B    |j         o|j                                         S r   )	tipwindowwinfo_viewabler0   r7   s     r   is_tipwindow_shownzHovertipTest.is_tipwindow_shownH   s     GW%6%E%E%G%GGr   c                 ,   t          | j        d          }|                     |j                   |                     |                     |                     |                                 |                     |                     |                     d S NToolTip text)r   r)   r#   hidetipassertFalserC   r6   
assertTruerB   s     r   test_showtipzHovertipTest.test_showtipK   s    4;77(((0099::://8899999r   c                    t          | j        d          }|                     |j                   |                     |                     |                     |                                 |                     |                     |                     |j        }|                                 |                     |                     |                     | 	                    |j        |           d S rE   )
r   r)   r#   rG   rH   rC   r6   rI   r@   assertIs)r0   r7   orig_tipwindows      r   test_showtip_twicezHovertipTest.test_showtip_twiceR   s    4;77(((0099::://88999 *//88999g'88888r   c                    t          | j        d          }|                     |j                   |                                 |                                 |                     |                     |                     d S rE   )r   r)   r#   rG   r6   rH   rC   rB   s     r   test_hidetipzHovertipTest.test_hidetip]   so    4;77(((0099:::::r   c                 2   t          | j        dd           }|                     |j                   t	          |j                  |_        t                                           |                     | 	                    |                     | j        
                    ddd           t                                           |                     | 	                    |                     |                     t          |j        j                  d           d S )NrF   hover_delay<Enter>r   xy)r   r)   r#   rG   r   r6   r   updaterH   rC   event_generaterI   assertGreaterlenr   rB   s     r   $test_showtip_on_mouse_enter_no_delayz1HovertipTest.test_showtip_on_mouse_enter_no_delayd   s    4;DIII(((+GO<<0099:::""9Q"777//889993w=>>BBBBBr   c                 
   t          | j        dd          }|                     |j                   t	          |j                  |_        t                                           |                     | 	                    |                     | j        
                    ddd           t                                           |                     | 	                    |                     t          | j        dd          }|                     |j                   t	          |j                  |_        t                                           | j        
                    ddd           t                                           | j        
                    ddd           t                                           t          j        d           t                                           |                     | 	                    |                     |                     t          |j        j                  d           |                     | 	                    |                     |                     |j        j        g            d S )	NrF   d   rR   rT   r   rU   <Leave>g333333?)r   r)   r#   rG   r   r6   r   rX   rH   rC   rY   timesleeprI   rZ   r[   r   assertEqual)r0   tooltip1tooltip2s      r   test_hover_with_delayz"HovertipTest.test_hover_with_delayo   s    DKSIII())),X-=>>00::;;;""9Q"77700::;;;
 DKSIII())),X-=>>""9Q"777""9Q"777
4 	//99:::3x/>??CCC 	00::;;;)8"=====r   c                 N   t          | j        dd           }|                     |j                   t	          |j                  |_        t                                           | j                            ddd           t                                           | j                            ddd           t                                           | 	                    | 
                    |                     |                     t          |j        j                  d           d S )NrF   rR   rT   r   rU   r_   )r   r)   r#   rG   r   r6   r   rX   rY   rH   rC   rZ   r[   r   rB   s     r   test_hidetip_on_mouse_leavez(HovertipTest.test_hidetip_on_mouse_leave   s    4;DIII(((+GO<<""9Q"777""9Q"7770099:::3w=>>BBBBBr   N)r9   r:   r;   r1   rC   rJ   rN   rP   r\   re   rg   r   r   r   r=   r=   D   s        ; ; ;H H H: : :	9 	9 	9; ; ;	C 	C 	C"> "> ">H
C 
C 
C 
C 
Cr   r=   __main__   )	verbosity)idlelib.tooltipr   r   test.supportr   	functoolsr   r`   tkinterr   r	   r
   unittestr   r   r   r*   TestCaser,   r=   r9   mainr   r   r   <module>rr      s\   2 1 1 1 1 1 1 1 ! ! ! ! ! !         ( ( ( ( ( ( ( ( ( (       	 	 	    h'   $YC YC YC YC YC8$ YC YC YCx zHMA r   