
    ѝi	                         S r SSKJrJr  SSKJr  \" S5        SSKJr  SSKrSSK	J
r
JrJr  SSKrS rS	 rS
 rS r " S S\R$                  5      r " S S\R$                  5      r\S:X  a  \R,                  " SS9  gg)zTest tooltip, coverage 100%.

Coverage is 100% after excluding 6 lines with "# pragma: no cover".
They involve TclErrors that either should or should not happen in a
particular situation, and which are 'pass'ed if they do.
    )TooltipBaseHovertip)requiresgui)wrapsN)ButtonTkToplevelc                      [        5       qg N)r	   root     0lib/python3.13/idlelib/idle_test/test_tooltip.pysetUpModuler      s	    4Dr   c                  V    [         R                  5         [         R                  5         B g r   )r   update_idletasksdestroyr   r   r   tearDownModuler      s    LLNr   c                 B   ^ ^ [        T 5      U U4S j5       m/ Tl        T$ )Nc                  L   > TR                   R                  X45        T" U 0 UD6$ r   )call_args_listappend)argskwargsfuncwrapped_funcs     r   r   'add_call_counting.<locals>.wrapped_func   s)    ##**D>:T$V$$r   )r   r   )r   r   s   `@r   add_call_countingr      s)    
4[% % #%Lr   c                    [        [        5      nU R                  UR                  5        UR	                  S5        [        USS9nUR                  5         U R                  UR                  5        UR                  5         X4$ )NzTest tooltipToolTip test buttontext)r
   r   
addCleanupr   titler   packlift)testobjtopbuttons      r   _make_top_and_buttonr+   &   sb    
4.Cs{{#IInC34F
KKMv~~&HHJ;r   c                        \ rS rSrS rS rSrg)ToolTipBaseTest2   c                 4    [        U 5      u  U l        U l        g r   r+   r)   r*   selfs    r   setUpToolTipBaseTest.setUp3        4T :$+r   c                 V   [        [        5      nU R                  UR                  5        [	        USS9nUR                  5         U R                  UR                  5        U R                  [        5         [        U5      nUR                  5         S S S 5        g ! , (       d  f       g = f)Nr!   r"   )
r
   r   r$   r   r   r&   assertRaisesNotImplementedErrorr   showtip)r2   r)   r*   tooltips       r   test_base_class_is_unusable+ToolTipBaseTest.test_base_class_is_unusable6   sp    tn$"78'23!&)GOO 433s   5B
B(r*   r)   N)__name__
__module____qualname____firstlineno__r3   r;   __static_attributes__r   r   r   r-   r-   2   s    ;r   r-   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)HovertipTestD   c                 4    [        U 5      u  U l        U l        g r   r0   r1   s    r   r3   HovertipTest.setUpE   r5   r   c                 \    UR                   =(       a    UR                   R                  5       $ r   )	tipwindowwinfo_viewabler2   r:   s     r   is_tipwindow_shownHovertipTest.is_tipwindow_shownH   s"      GW%6%6%E%E%GGr   c                    [        U R                  S5      nU R                  UR                  5        U R	                  U R                  U5      5        UR                  5         U R                  U R                  U5      5        g NToolTip text)r   r*   r$   hidetipassertFalserL   r9   
assertTruerK   s     r   test_showtipHovertipTest.test_showtipK   s\    4;;7(009://89r   c                    [        U R                  S5      nU R                  UR                  5        U R	                  U R                  U5      5        UR                  5         U R                  U R                  U5      5        UR                  nUR                  5         U R                  U R                  U5      5        U R                  UR                  U5        g rO   )
r   r*   r$   rQ   rR   rL   r9   rS   rI   assertIs)r2   r:   orig_tipwindows      r   test_showtip_twiceHovertipTest.test_showtip_twiceR   s    4;;7(009://89 **//89g''8r   c                     [        U R                  S5      nU R                  UR                  5        UR	                  5         UR                  5         U R                  U R                  U5      5        g rO   )r   r*   r$   rQ   r9   rR   rL   rK   s     r   test_hidetipHovertipTest.test_hidetip]   sO    4;;7(009:r   c                    [        U R                  SS S9nU R                  UR                  5        [	        UR
                  5      Ul        [        R                  5         U R                  U R                  U5      5        U R                  R                  SSSS9  [        R                  5         U R                  U R                  U5      5        U R                  [        UR
                  R                  5      S5        g )NrP   hover_delay<Enter>r   xy)r   r*   r$   rQ   r   r9   r   updaterR   rL   event_generaterS   assertGreaterlenr   rK   s     r   $test_showtip_on_mouse_enter_no_delay1HovertipTest.test_showtip_on_mouse_enter_no_delayd   s    4;;DI(+GOO<009:""9Q"7//893w==>Br   c                    [        U R                  SSS9nU R                  UR                  5        [	        UR
                  5      Ul        [        R                  5         U R                  U R                  U5      5        U R                  R                  SSSS9  [        R                  5         U R                  U R                  U5      5        [        U R                  SSS9nU R                  UR                  5        [	        UR
                  5      Ul        [        R                  5         U R                  R                  SSSS9  [        R                  5         U R                  R                  SSSS9  [        R                  5         [        R                  " S5        [        R                  5         U R                  U R                  U5      5        U R                  [        UR
                  R                   5      S5        U R                  U R                  U5      5        U R#                  UR
                  R                   / 5        g )	NrP   d   r_   ra   r   rb   <Leave>g333333?)r   r*   r$   rQ   r   r9   r   re   rR   rL   rf   timesleeprS   rg   rh   r   assertEqual)r2   tooltip1tooltip2s      r   test_hover_with_delay"HovertipTest.test_hover_with_delayo   s    DKKSI((),X-=-=>00:;""9Q"700:;
 DKKSI((),X-=-=>""9Q"7""9Q"7

4 	//9:3x//>>?C 	00:;))88"=r   c                    [        U R                  SS S9nU R                  UR                  5        [	        UR
                  5      Ul        [        R                  5         U R                  R                  SSSS9  [        R                  5         U R                  R                  SSSS9  [        R                  5         U R                  U R                  U5      5        U R                  [        UR
                  R                  5      S5        g )NrP   r_   ra   r   rb   rm   )r   r*   r$   rQ   r   r9   r   re   rf   rR   rL   rg   rh   r   rK   s     r   test_hidetip_on_mouse_leave(HovertipTest.test_hidetip_on_mouse_leave   s    4;;DI(+GOO<""9Q"7""9Q"7009:3w==>Br   r=   N)r>   r?   r@   rA   r3   rL   rT   rY   r\   ri   rs   rv   rB   r   r   r   rD   rD   D   s.    ;H:	9;	C">H
Cr   rD   __main__   )	verbosity)__doc__idlelib.tooltipr   r   test.supportr   	functoolsr   rn   tkinterr   r	   r
   unittestr   r   r   r+   TestCaser-   rD   r>   mainr   r   r   <module>r      s    2 !    ( ( 	h'' $YC8$$ YCx zMMA r   