B ?7x»pÓ‹ã@s´dZddlmZmZddlmZedƒddlmZddlZddl m Z m Z m Z ddl Z dd „Zd d „Zd d „Zdd„ZGdd„de jƒZGdd„de jƒZedkr°e jdddS)zßTest 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)ÚrequiresZgui)ÚwrapsN)ÚButtonÚTkÚToplevelcCs tƒadS)N)rÚroot©r r úC/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_tooltip.pyÚ setUpModulesr cCst ¡t ¡bdS)N)r Zupdate_idletasksÚdestroyr r r r ÚtearDownModulesrcs tˆƒ‡‡fdd„ƒ‰gˆ_ˆS)Ncsˆj ||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¡| d¡t|dd}| ¡| |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 ÚsetUp3szToolTipBaseTest.setUpc Cs^ttƒ}| |j¡t|dd}| ¡| |j¡| t¡t|ƒ}|  ¡WdQRXdS)NzToolTip test button)r) rr rr rrZ assertRaisesÚNotImplementedErrorrÚshowtip)rrrÚtooltipr r r Útest_base_class_is_unusable6s    z+ToolTipBaseTest.test_base_class_is_unusableN)Ú__name__Ú __module__Ú __qualname__rr#r r r r r2src@sLeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)Ú HovertipTestcCst|ƒ\|_|_dS)N)rrr)rr r r rEszHovertipTest.setUpcCs|jo|j ¡S)N)Ú tipwindowZwinfo_viewable)rr"r r r Úis_tipwindow_shownHszHovertipTest.is_tipwindow_showncCsDt|jdƒ}| |j¡| | |¡¡| ¡| | |¡¡dS)Nz ToolTip text)rrrÚhidetipÚ assertFalser)r!Ú assertTrue)rr"r r r Ú test_showtipKs   zHovertipTest.test_showtipcCspt|jdƒ}| |j¡| | |¡¡| ¡| | |¡¡|j}| ¡| | |¡¡|  |j|¡dS)Nz ToolTip text) rrrr*r+r)r!r,r(ZassertIs)rr"Zorig_tipwindowr r r Útest_showtip_twiceRs  zHovertipTest.test_showtip_twicecCs<t|jdƒ}| |j¡| ¡| ¡| | |¡¡dS)Nz ToolTip text)rrrr*r!r+r))rr"r r r Ú test_hidetip]s   zHovertipTest.test_hidetipcCs‚t|jddd}| |j¡t|jƒ|_t ¡| |  |¡¡|jj ddddt ¡|  |  |¡¡|  t |jjƒd¡dS)Nz ToolTip text)Ú hover_delayzr)ÚxÚy)rrrr*rr!r Úupdater+r)Úevent_generater,Ú assertGreaterÚlenr)rr"r r r Ú$test_showtip_on_mouse_enter_no_delayds  z1HovertipTest.test_showtip_on_mouse_enter_no_delaycCs(t|jddd}| |j¡t|jƒ|_t ¡| |  |¡¡|jj ddddt ¡| |  |¡¡t|jddd}| |j¡t|jƒ|_t ¡|jj ddddt ¡|jj ddddt ¡t   d¡t ¡|  |  |¡¡| t|jjƒd¡| |  |¡¡| |jjg¡dS) Nz ToolTip textéd)r0zr)r1r2zg333333Ã?)rrrr*rr!r r3r+r)r4ÚtimeZsleepr,r5r6rZ assertEqual)rZtooltip1Ztooltip2r r r Útest_hover_with_delayos,     z"HovertipTest.test_hover_with_delaycCsŒt|jddd}| |j¡t|jƒ|_t ¡|jjddddt ¡|jjddddt ¡|  |  |¡¡|  t |jj ƒd¡dS)Nz ToolTip text)r0zr)r1r2z)rrrr*rr!r r3r4r+r)r5r6r)rr"r r r Útest_hidetip_on_mouse_leave“s  z(HovertipTest.test_hidetip_on_mouse_leaveN) r$r%r&rr)r-r.r/r7r:r;r r r r r'Ds  $r'Ú__main__é)Ú verbosity)Ú__doc__Zidlelib.tooltiprrZ test.supportrÚ functoolsrr9ZtkinterrrrZunittestr rrrZTestCaserr'r$Úmainr r r r Ús    \