3 ง f ใ@sธddlmZmZddlmZedƒddlmZddlZddlm Z m Z m Z ddl Z dd„Z d d „Zd d „Zd d„Zdd„ZGdd„de jƒZGdd„de jƒZedkrดe jdddS)้)ฺ TooltipBaseฺHovertip)ฺrequiresZgui)ฺwrapsN)ฺButtonฺTkฺToplevelcCs tƒadS)N)rฺrootฉr r ๚C/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_tooltip.pyฺ setUpModule sr cCs tjƒdS)N)r ฺupdater r r r ฺ root_updatesrcCstjƒtjƒbdS)N)r Zupdate_idletasksฺdestroyr r r r ฺtearDownModulesrcs tˆƒ‡‡fdd„ƒ‰gˆ_ˆS)Ncsˆjj||fƒˆ||ŽS)N)ฺcall_args_listฺappend)ฺargsฺkwargs)ฺfuncฺ wrapped_funcr r rsz'add_call_counting..wrapped_func)rr)rr )rrr ฺadd_call_countingsrcCsNttƒ}|j|jƒ|jdƒt|dd}|jƒ|j|jƒ|jƒ||fS)Nz Test tooltipzToolTip test button)ฺtext)rr ฺ addCleanuprฺtitlerฺpackZlift)Ztestobjฺtopฺbuttonr r r ฺ_make_top_and_button"s    rc@seZdZdd„Zdd„ZdS)ฺToolTipBaseTestcCst|ƒ\|_|_dS)N)rrr)ฺselfr r r ฺsetUp/szToolTipBaseTest.setUpc Cs^ttƒ}|j|jƒt|dd}|jƒ|j|jƒ|jtƒt|ƒ}|j ƒWdQRXdS)NzToolTip test button)r) rr rrrrZ assertRaisesฺNotImplementedErrorrฺshowtip)r rrฺtooltipr r r ฺtest_base_class_is_unusable2s    z+ToolTipBaseTest.test_base_class_is_unusableN)ฺ__name__ฺ __module__ฺ __qualname__r!r%r r r r r.src@sLeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)ฺ HovertipTestcCst|ƒ\|_|_dS)N)rrr)r r r r r!AszHovertipTest.setUpcCsPt|jdƒ}|j|jƒ|j|jo*|jjƒƒ|jƒ|j|joH|jjƒƒdS)Nz ToolTip text) rrrฺhidetipฺ assertFalseฺ tipwindowฺwinfo_viewabler#ฺ assertTrue)r r$r r r ฺ test_showtipDs   zHovertipTest.test_showtipcCs‚t|jdƒ}|j|jƒ|j|jo*|jjƒƒ|jƒ|j|joH|jjƒƒ|j}|jƒ|j|jol|jjƒƒ|j |j|ƒdS)Nz ToolTip text) rrrr*r+r,r-r#r.ZassertIs)r r$Zorig_tipwindowr r r ฺtest_showtip_twiceKs  zHovertipTest.test_showtip_twicecCsBt|jdƒ}|j|jƒ|jƒ|jƒ|j|jo:|jjƒƒdS)Nz ToolTip text)rrrr*r#r+r,r-)r r$r r r ฺ test_hidetipVs   zHovertipTest.test_hidetipcCsŠt|jddd}|j|jƒt|jƒ|_tƒ|j|jo@|jj ƒƒ|jj ddddtƒ|j |jon|jj ƒƒ|j t |jjƒdƒdS)Nz ToolTip text)ฺ hover_delayzr)ฺxฺy)rrrr*rr#rr+r,r-ฺevent_generater.ฺ assertGreaterฺlenr)r r$r r r ฺ$test_showtip_on_mouse_enter_no_delay]s  z1HovertipTest.test_showtip_on_mouse_enter_no_delaycCsฐt|jddd}|j|jƒt|jƒ|_tƒ|j|jo@|jj ƒƒ|jj ddddtƒ|j|jon|jj ƒƒt j dƒtƒ|j |jo”|jj ƒƒ|jt|jjƒdƒdS)Nz ToolTip text้2)r2zr)r3r4gš™™™™™น?)rrrr*rr#rr+r,r-r5ฺtimeฺsleepr.r6r7r)r r$r r r ฺ'test_showtip_on_mouse_enter_hover_delayhs   z4HovertipTest.test_showtip_on_mouse_enter_hover_delaycCsŒt|jddd}|j|jƒt|jƒ|_tƒ|jjddddtƒ|jjddddtƒ|j|j op|j j ƒƒ|j t |jj ƒdƒdS)Nz ToolTip text)r2zr)r3r4z)rrrr*rr#rr5r+r,r-r6r7r)r r$r r r ฺtest_hidetip_on_mouse_leavevs  z(HovertipTest.test_hidetip_on_mouse_leavecCs˜t|jddd}|j|jƒt|jƒ|_tƒ|jjddddtƒ|jjddddtƒtj dƒtƒ|j |j o€|j j ƒƒ|j |jjgƒdS) Nz ToolTip textr9)r2zr)r3r4zgš™™™™™น?)rrrr*rr#rr5r:r;r+r,r-Z assertEqualr)r r$r r r ฺ*test_dont_show_on_mouse_leave_before_delay‚s   z7HovertipTest.test_dont_show_on_mouse_leave_before_delayN) r&r'r(r!r/r0r1r8r<r=r>r r r r r)@s   r)ฺ__main__้)ฺ verbosity)Zidlelib.tooltiprrZ test.supportrฺ functoolsrr:ZtkinterrrrZunittestr rrrrZTestCaserr)r&ฺmainr r r r ฺs    Q