B „ f!ã@sädZddlmZddlZddlmZmZddlmZm Z ddl m Z ddl m Z ddlmZddlZdd lmZejZGd d „d ejƒZGd d „d ejƒZGdd„dejƒZGdd„dƒZGdd„dejƒZedkràejdd�dS)z„Test help_about, coverage 100%. help_about.build_bits branches on sys.platform='darwin'. '100% combines coverage on Mac and others. é)Ú help_aboutN)ÚrequiresÚfindfile)ÚTkÚTclError)ÚFunc)Ú Mbox_func)Útextview)Úpython_versionc@sPeZdZdZedd„ƒZedd„ƒZdd„Zdd „Zd d „Z d d „Z dd„Z dS)ÚLiveDialogTestzmSimulate user clicking buttons other than [Close]. Test that invoked textview has text from source. cCs0tdƒtƒ|_|j ¡t|jddd�|_dS)NÚguiz About IDLET)Ú_utest)rrÚrootÚwithdrawÚAboutÚdialog)Úcls©rúF/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_help_about.pyÚ setUpClasss zLiveDialogTest.setUpClasscCs |`|j ¡|j ¡|`dS)N)rrÚupdate_idletasksÚdestroy)rrrrÚ tearDownClasss  zLiveDialogTest.tearDownClasscCs| t ¡d¡dS)N)Z32Z64)ZassertInrÚ build_bits)ÚselfrrrÚtest_build_bits&szLiveDialogTest.test_build_bitscCs| |j ¡d¡dS)zTest about dialog titlez About IDLEN)Ú assertEqualrÚtitle)rrrrÚtest_dialog_title)sz LiveDialogTest.test_dialog_titlecCs8tj |jjd¡\}}tj |¡\}}| |d¡dS)zTest about dialog logo.ÚfileZidle_48N)ÚosÚpathÚsplitrZ icon_imageÚsplitextr)rr!rÚfnZextrrrÚtest_dialog_logo-szLiveDialogTest.test_dialog_logoc CsÌ|j}|jtdf|jtdf|jtdfg}xž|D]–\}}}|j|d��z| ¡|  ¡|j j j j j}|j}t|ƒdkr„| |d¡| |d|dd ƒ¡| |d |d d ƒ¡|j  ¡Wd QRXq.Wd S)z1Test buttons whose commands use printer function.ÚlicenseÚ copyrightÚcredits)Únameéz full text was not foundrz1.0z1.endéz2.0z2.endN)rZ py_licenser&Z py_copyrightr'Z py_creditsr(ÚsubTestÚ_Printer__setupÚinvokeÚ_current_textviewÚ viewframeÚ textframeÚtextÚgetÚ_Printer__linesÚlenZfailrr)rrÚbutton_sourcesÚbuttonZprinterr)r3ÚlinesrrrÚtest_printer_buttons3s   z#LiveDialogTest.test_printer_buttonsc CsÞ|j}|jjddf|jjddf|jjddfg}xª|D]¢\}}}|j|d��†| ¡t|dd �}|jjj j j }t |d d ��B}|  | ¡ ¡|d d ƒ¡| ¡|  | ¡ ¡|ddƒ¡WdQRX|j ¡WdQRXq4WdS)z Test buttons that display files.z README.txtÚreadmezNEWS.txtZnewsz CREDITS.txtr()r)Úidlelib)Zsubdirzutf-8)Úencodingz1.0z1.endz3.0z3.endN)rr:Ú idle_newsÚ idle_creditsr,r.rr/r0r1r2r3ÚopenrÚreadlineÚstripr) rrr6r7Úfilenamer)r$r3ÚfrrrÚtest_file_buttonsFs   $z LiveDialogTest.test_file_buttonsN) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú classmethodrrrrr%r9rDrrrrr s  r c@s0eZdZdZedd„ƒZedd„ƒZdd„ZdS) ÚDefaultTitleTestzTest default title.cCs.tdƒtƒ|_|j ¡t|jdd�|_dS)Nr T)r )rrrrrr)rrrrr\s zDefaultTitleTest.setUpClasscCs |`|j ¡|j ¡|`dS)N)rrrr)rrrrrcs  zDefaultTitleTest.tearDownClasscCs*| |j ¡dtƒ›dt ¡›d�¡dS)zTest about dialog titlez About IDLE z (z bit)N)rrrr rr)rrrrrjs z"DefaultTitleTest.test_dialog_titleN)rErFrGrHrIrrrrrrrrJYs  rJc@s0eZdZdZedd„ƒZedd„ƒZdd„ZdS) Ú CloseTestz%Simulate user clicking [Close] buttoncCs0tdƒtƒ|_|j ¡t|jddd�|_dS)Nr z About IDLET)r )rrrrrr)rrrrrts zCloseTest.setUpClasscCs |`|j ¡|j ¡|`dS)N)rrrr)rrrrr{s  zCloseTest.tearDownClassc CsB| |j ¡d¡|jj ¡| t¡�|j ¡WdQRXdS)NZToplevel)rrZ winfo_classZ button_okr.Z assertRaisesr)rrrrÚ test_close‚s  zCloseTest.test_closeN)rErFrGrHrIrrrLrrrrrKqs  rKc@s(eZdZejZejZejZ ej Z dZ dS)ÚDummy_about_dialogTN) rErFrGrZshow_idle_creditsr>Z show_readmeÚ idle_readmeZshow_idle_newsr=Zdisplay_file_textr rrrrrM‰s rMc@s6eZdZdZeƒZedd„ƒZedd„ƒZdd„Z dS) ÚDisplayFileTestz¡Test functions that display files. While somewhat redundant with gui-based test_file_dialog, these unit tests run on all buildbots, not just a few. cCs4tj|_tj|_tƒ|_tƒ|_|jt_|jt_dS)N) r Ú showerrorÚ orig_errorÚ view_textÚ orig_viewrÚerrorrÚview)rrrrr›s zDisplayFileTest.setUpClasscCs|jt_|jt_dS)N)rQr rPrSrR)rrrrr¤szDisplayFileTest.tearDownClassc Csrxl|jj|jj|jjfD]R}d|j_d|j_|j|d��,|ƒ|  |jjd¡|  |jjd¡WdQRXqWdS)NÚF)ÚhandlerT) rr>rNr=rTÚmessagerUZcalledr,r)rrWrrrÚtest_file_display©sz!DisplayFileTest.test_file_displayN) rErFrGrHrMrrIrrrYrrrrrO“s  rOÚ__main__r*)Ú verbosity)rHr;rZunittestZ test.supportrrZtkinterrrZidlelib.idle_test.mock_idlerZidlelib.idle_test.mock_tkrr Zos.pathr Úplatformr Z AboutDialogrZTestCaser rJrKrMrOrEÚmainrrrrÚs"     F "