a 9êdg0Øã@s²ddlmZddlmZedƒddlZddlmZddlmZddlm Z m Z m Z m Z m Z mZddlmZdd lmZmZmZejZe d ¡e d ¡e d ¡e d ¡d œZdadaed Zed ZedZedZdd„Zdd„ZGdd„dej ƒZ!Gdd„dej ƒZ"Gdd„dej ƒZ#Gdd„dej ƒZ$Gdd„dej ƒZ%Gdd„dej ƒZ&Gd d!„d!ej ƒZ'Gd"d#„d#ej ƒZ(Gd$d%„d%ej ƒZ)Gd&d'„d'ej ƒZ*e+d(kr®ej,d)d*dS)+é)Ú configdialog)ÚrequiresZguiN)Úmock)ÚFunc)ÚTkÚ StringVarÚIntVarÚ BooleanVarÚDISABLEDÚNORMAL)Úconfig)ÚidleConfÚchangesÚtracersÚ)ÚmainÚ highlightÚkeysÚ extensionsrrrrcCs tt_tƒatjtdddadS)NZTestT)Z_utest)Útestcfgr ÚuserCfgrÚrootrZ ConfigDialogÚdialog©rrú?/usr/local/lib/python3.9/idlelib/idle_test/test_configdialog.pyÚ setUpModule"srcCs:tt_t ¡t ¡t ¡t ¡t  ¡daa dS©N) Úusercfgr rrÚdetachÚclearrrÚupdate_idletasksÚdestroyrrrrrÚtearDownModule*sr"c@seZdZdd„Zdd„ZdS)ÚConfigDialogTestcCsdSrr©ÚselfrrrÚtest_deactivate_current_config7sz/ConfigDialogTest.test_deactivate_current_configcCsdSrrr$rrrÚactivate_config_changes:sz(ConfigDialogTest.activate_config_changesN)Ú__name__Ú __module__Ú __qualname__r&r'rrrrr#5sr#c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú ButtonTestcCsJt}t ¡}|_t ¡}|_|jd ¡| ¡| ¡|`|`dS)NZOk)rrÚMockÚapplyr!ÚbuttonsÚinvokeÚassert_called_once)r%Údr-r!rrrÚ test_click_ok@szButtonTest.test_click_okcCsht}t ¡}|_t ¡}|j_t ¡}|_|jd ¡|  ¡|  ¡|  ¡|j`|`|`dS)NZApply) rrr,Údeactivate_current_configÚextpageZsave_all_changed_extensionsr'r.r/r0)r%r1Z deactivateZsave_extÚactivaterrrÚtest_click_applyIszButtonTest.test_click_applycCsNt}tƒ|_dtdd<|jd ¡| tdi¡| |jjd¡|`dS)NérZ somethingZCancel)rrr!rr.r/Ú assertEqualÚcalled©r%r1rrrÚtest_click_cancelUs zButtonTest.test_click_cancelcCsŽtj tj¡tjjtdtd4}tj d  ¡|j d|j d}}Wdƒn1sZ0Y|  |d¡|  | d¡o†| d¡¡dS) NZ view_text)Z new_callableZHelpÚtitleÚcontentszHelp for IDLE preferenceszWhen you clickza different name. )rÚnoteÚselectÚkeyspagerZpatchÚobjectrrr.r/Úkwdsr8Ú assertTrueÚ startswithÚendswith)r%Úviewr<r=rrrÚtest_click_help^s ÿ4 ÿzButtonTest.test_click_helpN)r(r)r*r2r6r;rGrrrrr+>s   r+c@sdeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)Ú FontPageTestcCs,tj}|_tj |¡tƒ|_| ¡dSr)rZfontpageÚpager>r?rÚ set_samplesÚupdate©ÚclsrIrrrÚ setUpClassps  zFontPageTest.setUpClasscCs |j`dSr)rIrJ©rMrrrÚ tearDownClasswszFontPageTest.tearDownClasscCs t ¡dSr©rrr$rrrÚsetUp{szFontPageTest.setUpcCs’t ¡|j}|j d¡|j d¡|j d¡d|j_|  ¡|  |j  ¡d¡|  |j  ¡d¡|  |j  ¡¡|  |jjd¡t ¡dS)NZFakeÚ1Trr7)rrrIÚ font_nameÚsetÚ font_sizeÚ font_boldrJr9Z load_font_cfgÚassertNotEqualÚgetÚ assertFalser8Úattachr:rrrÚtest_load_font_cfg~s   zFontPageTest.test_load_font_cfgcCsÞ|j}|j ¡dkr| d¡|j}| d¡|j d¡}| ¡| ¡| d¡| d¡| d¡}|  ||¡|  |j  ¡|  ¡¡| ¡| ¡| d¡| d¡| d¡}|  ||¡|  |j  ¡|  ¡¡dS) Néúneed at least 2 fontsrZactivez zzz)rIÚfontlistÚsizeÚskipTestr5rYÚ focus_forcerKÚevent_generaterXÚassertInrTÚlowerr8)r%r1r_ÚfontZ down_fontZup_fontrrrÚtest_fontlist_keyŽs(           zFontPageTest.test_fontlist_keyc CsÌ|j}|j ¡dkr| d¡|j}| d¡| ¡| d¡| ¡| d¡\}}}}||d7}||d7}|j d||d|j d||d|  d¡}|  d¡}|  ||¡|  |j   ¡| ¡¡dS) Nr]r^rr7ú ©ÚxÚyúÚanchor)rIr_r`rar5rbÚseerKÚbboxrcrYr8rdrTre) r%r1r_rjrkÚdxÚdyZfont1Z select_fontrrrÚtest_fontlist_mouse«s"        z FontPageTest.test_fontlist_mousecCs*|j}|jj d¡| |j ¡d¡dS)Né(Ú40)rIZsizelistÚvariablerUr8rVrYr:rrrÚ test_sizelistÂszFontPageTest.test_sizelistcCsJ|j}|j d¡|j ¡| |j ¡¡|j ¡| |j ¡¡dS)NF)rIrWrUZ bold_toggler/rCrYrZr:rrrÚtest_bold_toggleÈs    zFontPageTest.test_bold_togglecCst tdd¡}t|dƒ}|ddk}|j}|j |¡|j |¡d|j_ |j  d¡dd|t|ƒdœi}|  t |¡|  |jj d¡t  ¡|j d ¡ddd t|ƒdœi}|  t |¡|  |jj d¡t  ¡|j | ¡ddd t| ƒdœi}|  t |¡|  |jj d ¡dS) NrÚ EditorWindowr7r]Úboldrz Test Font)rfz font-sizez font-boldZ20é)r ZGetFontrÚstrrIrVrUrWrJr9rTr8Úmainpagerr)r%Z default_fontZ default_sizeZ default_boldr1ÚexpectedrrrÚ test_font_setÑs<     þ  þ þ zFontPageTest.test_font_setcCs’|j}|`|j|jf}ii|_|_|j d¡|j d¡|j d¡ddi}| ¡| |j|jkor|kn¡|\|_|_t ƒ|_dS)NÚtestÚ5r7rf)rr€ry) rIrJZ font_sampleÚhighlight_samplerTrUrVrWrCr)r%r1Z orig_samplesr}rrrÚtest_set_samplesõs    " zFontPageTest.test_set_samplesN)r(r)r*Ú classmethodrNrPrRr\rgrrrvrwr~r‚rrrrrHis   $rHc@sÌeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/S)0Ú HighPageTestcCsDtj}|_tj |¡tƒ|_tƒ|_tƒ|_tƒ|_ |  ¡dSr) rÚhighpagerIr>r?rÚset_theme_typeÚpaint_theme_sampleÚset_highlight_targetÚset_color_samplerKrLrrrrNs  zHighPageTest.setUpClasscCs|j}|`|`|`|`dSr)rIr†r‡rˆr‰)rMr1rrrrPszHighPageTest.tearDownClasscCsT|j}t dd¡D]}tjd |¡qt ¡d|j_d|j _d|j _d|j _dS)NÚuserrr) rIr ÚGetSectionListrÚremove_sectionrrr†r9r‡rˆr‰©r%r1ÚsectionrrrrRszHighPageTest.setUpcCs–t ¡|j}|j}tjddt_| ¡|  |j   ¡¡||j   ¡dƒ||j   ¡dƒ||j ¡dƒ||jjdƒ||jjdƒ||jjdƒt dddd ¡t dd d d ¡| ¡||j   ¡dƒ||j   ¡dƒ||jjd ƒ||jjd ƒ||jjd ƒtjd dt_t dddd¡| ¡| |j   ¡¡||j   ¡dƒ||j   ¡d ƒ||jjdƒ||jjdƒ||jjdƒt`t ¡dS)Nú IDLE Classic©Z return_valueú- no custom themes -©Údisabledr7rÚtest1ÚoptionÚvalueÚtest2Úoption2Úvalue2r]rÚThemeÚdefaultÚ0rz)rrrIr8rr,r Z CurrentThemeZload_theme_cfgrCÚ theme_sourcerYÚ builtin_nameÚ custom_nameÚcustom_theme_onÚstater†r9r‡rˆÚ SetOptionrZr[©r%r1ÚeqrrrÚtest_load_theme_cfg*s>z HighPageTest.test_load_theme_cfgcCs®|j}|j}tƒ|_tƒ|_|j ¡|tdddiiƒ||jjdƒ||jjdƒt   ¡|j   d¡|j  ¡| tdddii¡||jjdƒ||jjdƒ|`|`dS)Nršr›ÚTruer7r©z !disabledÚFalse) r8rIrÚvar_changed_builtin_nameÚvar_changed_custom_nameZbuiltin_theme_onr/r|r9rrr r¡©r%r¤r1rrrÚtest_theme_sourceSs   zHighPageTest.test_theme_sourcecCs|j}|j}gd¢}t dddd¡|j |d¡|tddddœiƒ||jd d ƒ||jj d ƒt   ¡t dddd ¡|j |d¡|tdd diiƒ||jd d ƒ||jj dƒt   ¡|j |d¡|tddddœiƒ||jd dƒ||jj dƒdS)N)rú IDLE DarkúIDLE NewrršÚnameÚspamr­r©r¯Úname2ÚtextzNew theme, see Helpr7r®r²r]rrz) r8rIr r¢Ú builtinlistÚSetMenur|Z theme_messager‡r9rr©r%r¤r1Z item_listrrrÚtest_builtin_namehs*ÿ zHighPageTest.test_builtin_namecCsr|j}|j gd¡| dt¡| |jjd¡t  ¡|j gd¢d¡| tdddii¡| |jjd¡dS)Nr‘ršr©ÚaÚbÚcr»r¯r7) rIÚ customlistrµÚ assertNotInr|r8r‡r9rrr:rrrÚtest_custom_name„s zHighPageTest.test_custom_namecCs2|j}tƒ|_|j d¡| |jjd¡|`dS)NZgreenr7)rIrZon_new_color_setÚcolorrUr8r9r:rrrÚ test_color’s  zHighPageTest.test_colorcCs@|j}|j}|j gd¢d¡||j ¡dƒ||jjdƒdS)Nr¸r»r7)r8rIZ targetlistrµÚhighlight_targetrYrˆr9r«rrrÚ test_highlight_target_list_mousešs z-HighPageTest.test_highlight_target_list_mousecs²|j}|j‰i}d}ˆj‰ˆ ¡ˆ d¡ˆ ¡‡fdd„}‡fdd„}||ƒˆ ¡D]P}ˆ |¡ddd…D]6}|d7}||ƒ|ˆj  ¡||ƒ|ˆj j |ƒqtq\dS) Nrçð?cs$ˆj ¡D]\}}|||d<q dS©Nr)Ztheme_elementsÚitems)ÚelemÚelementÚtag)r1rrÚtag_to_element¯szEHighPageTest.test_highlight_target_text_mouse..tag_to_elementcsnˆ |¡\}}}}||d7}||d7}ˆjddddˆjd||dˆjd||dˆjd||ddS)Nr]úrriúúrl)rorc)Ústartrjrkrprq)ÚhsrrÚclick_it³s  z?HighPageTest.test_highlight_target_text_mouse..click_itr]r7) r8rIrrbrnr Z tag_namesÚ tag_rangesrÁrYrˆr9)r%r¤rÆÚcountrÉrÏrÈÚ start_indexr)r1rÎrÚ test_highlight_target_text_mouse£s"    z-HighPageTest.test_highlight_target_text_mousecCsŽ|j}|j}|j}| ¡| d¡| ¡|jdddd|jddddtdƒD]$}|jdddd|jddddqT|| d ¡d ƒdS) NrÃrÊrrirËr]rÌrlÚselr) r8rIrrbrnr rcÚrangerÐ)r%r¤r1rÎÚ_rrrÚ"test_highlight_sample_double_clickÈs  z/HighPageTest.test_highlight_sample_double_clickc Cs¨|j}|j}|j}| ¡| d¡| ¡| d¡\}}}}}| d¡| d¡|jd||d|jd||d|jd||d|jd ||d|| d ¡d ƒdS) NrÃz1.0zrÊrËrirÌz rlrÔr) r8rIrrbrnr Z dlineinforcrÐ) r%r¤r1rÎrjrkrprqÚoffsetrrrÚtest_highlight_sample_b1_motionÜs   z,HighPageTest.test_highlight_sample_b1_motioncCs´|j}|j}|`|j d¡| ¡||jdtƒ||jdtƒ||j   ¡dƒ|j d¡| ¡||jdtƒ||j   ¡dƒ||jdtƒ||j   ¡dƒt ƒ|_dS©NTr¡r’F©Úselectedr) r8rIr†rrUr´r r¼r Úbutton_delete_customr¡r rr«rrrÚtest_set_theme_typeòs  z HighPageTest.test_set_theme_typecCsX|j}|j}tjj}tƒ}tj_tƒ}|_|j d¡|j  d¡d|_ |j   ¡||j   ¡dƒd|j |jdd¡f|_ |j   ¡||j   ¡dƒd|_ |j  d¡|j d¡d|_ |j   ¡||jd ƒ||j   ¡dƒd |_ |j   ¡||j  ¡|j ƒ||j   ¡d ƒ|j  d¡|j d ¡|j   ¡||j   ¡d ƒ|`|tj_dS) NzEditor Breakpointz#ffffff)NNrÚstyleÚ background))gÀÛk@çráú#de0000Tr7z My New ThemerâF)r8rIrZ colorchooserZaskcolorrÚget_new_theme_namerÁrUr¿ÚresultZbutton_set_colorr/rYrßÚlookupÚframe_color_setrr9rŸ)r%r¤r1Z orig_chooserZchooserÚgntnrrrÚtest_get_colors<             zHighPageTest.test_get_colorcCs„|j}d}|j d¡|j d¡|j d¡|j |¡| |j |j dd¡|¡| |j   dd¡|¡| t dd |ii¡dS) Nz#3f7caeÚPythonú Selected TextTrßràÚhiliteÚ foregroundzhilite-foreground) rIrŸrUrÁÚ fg_bg_toggler¿r8rßrårærÚtag_cgetr…)r%r1r¿rrrÚtest_on_new_color_set6s     ÿz"HighPageTest.test_on_new_color_setcCs>tj}tdd}t_|j}d|_| | d¡d¡|t_dS)NT©Z return_selfz New Themer)rÚ SectionNamerrIrär8rã©r%Zorig_sectionnameZsnr1rrrÚtest_get_new_theme_nameCs z$HighPageTest.test_get_new_theme_namecCsˆ|j}tƒ}|_|j d¡d|_|j ¡| |jt j d¡d|_d|_ | |jt j d¡|j ¡|  |jt j d¡|`dS)NTrrz my new themer) rIrrãrrUräZbutton_save_customr/r½r rr9rd)r%r1rçrrrÚtest_save_as_new_themeMs    z#HighPageTest.test_save_as_new_themecCs(|j}|j}|j d¡|j d¡d}d}| |tj¡| |¡|t  dd¡|gƒ|t  dd¡t  d|¡ƒ||j   ¡|ƒ|  |j  ¡¡||jjdƒt d|d d ¡| |tj¡| |¡|t  dd¡||gƒ| t  d|¡t  d|¡¡t d|d d ¡|t  d|¡t  d|¡ƒdS) NTrzmy new custom themezmy second custom themerŠrr›r7zhit-backgroundÚyellow)r8rIrrUržr½r rÚ create_newr‹Z GetThemeDictrŸrYrZr†r9rÚ add_optionrXr¢©r%r¤r1Z first_newZ second_newrrrÚtest_create_new_and_save_new`s4     ÿ  ÿ  ÿz)HighPageTest.test_create_new_and_save_newcCs¨|j}|j}|`|j d¡||j ¡dƒ||j ¡dƒ| |j ¡||j j dƒ|j d¡||j ¡dƒ||j ¡dƒ| |j ¡||j j dƒt ƒ|_dS) NZCursor)r“rÜr’r7ÚCommentrÛrr]) r8rIrˆrÁrUÚfg_onr¡Úbg_onrCrír‰r9rr«rrrÚtest_set_highlight_target€s    z&HighPageTest.test_set_highlight_targetcCs@|j}|j}|j ¡| |jd¡|j ¡| |jd¡dS)Nr7r])rIr‰rûr/r8r9rü)r%r1ZscsrrrÚtest_set_color_sample_binding•s   z*HighPageTest.test_set_color_sample_bindingcCs\|j}|`|j d¡|j d¡| ¡| |j |jdd¡|j   dd¡¡t ƒ|_dS)NrêTrßràrërì) rIr‰rÁrUrír8rßrårærrîrr:rrrÚtest_set_color_sampleŸs   þz"HighPageTest.test_set_color_samplec Csú|j}|j}|`|jj}tj}|j d¡|j  d¡d}|  |¡d|j _ | ¡dddœ}|  ¡D]\}}| |d|ƒ|¡qf||j j d ƒ|  ¡D]\}}t d |d ||¡q˜| ¡|  ¡D]\}}||d|ƒ|ƒqÆ||j j d ƒtƒ|_dS) NTr­z IDLE TestrZbluerõ)rìràZconsoler7rzconsole-r])r8rIr‡rrîr Z GetHighlightrrUržrör‰r9rÅrXrr÷r) r%r¤rIZhs_tagZghZthemeZ new_consoleÚkeyr–rrrÚtest_paint_theme_sampleªs0   ÿz$HighPageTest.test_paint_theme_samplecCs2|j}|j}|j d¡tƒ}|_tƒt_tƒt_d}t j d  |dd¡ddit |<d}t j d  |dd¡dd it |<|j  d¡|j  ¡|j |¡d |_|j ¡||jd ƒ|t |ddiƒ|t  d d¡||gƒ|tjjd ƒ|tjjd ƒ||jjd ƒd|_|j ¡||jdƒ| |t ¡|t  d d¡|gƒ||j  ¡dƒ||j ¡|ƒ|tjjd ƒ|tjjd ƒ||jjd ƒ|j |¡d|_|j ¡||jdƒ| |t ¡|t  d d¡gƒ||j  ¡dƒ||j ¡dƒ|tjjdƒ|tjjdƒ||jjdƒt`t`|`dS)Nr§z spam themerr¯r–r•r¦z other themer¨Fr7rŠrTr]rrzr’r‘)r8rIrÝr¡rÚaskyesnorr3r'r rr¢r…r r/rŸrUrär9r‹r†r½rY)r%r¤r1ÚyesnoZ theme_nameZ theme_name2rrrÚtest_delete_customÊs\                zHighPageTest.test_delete_customN)r(r)r*rƒrNrPrRr¥r¬r·r¾rÀrÂrÓr×rÙrÞrèrïrórôrùrýrþrÿrrrrrrr„s2   ) %/      r„c@s”eZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!S)"Ú KeysPageTestcCs,tj}|_tj |¡tƒ|_tƒ|_dSr)rr@rIr>r?rÚ set_keys_typeÚload_keys_listrLrrrrN s  zKeysPageTest.setUpClasscCs|j}|`|`dSr)rIrrrLrrrrPszKeysPageTest.tearDownClasscCsD|j}t dd¡D]}tjd |¡qt ¡d|j_d|j _dS)NrŠrr) rIr r‹rrŒrrrr9rrrrrrRs zKeysPageTest.setUpcCs¨t ¡|j}|j}tjddt_| ¡|  |j   ¡¡||j   ¡dƒ||j   ¡dƒ||j ¡dƒ||jjdƒ||jjdƒ||jjdƒt ddd d ¡t dd d d ¡| ¡||j   ¡dƒ||j   ¡dƒ||jjdƒ||jjdƒ||jjdƒtjd dt_tjddt_t dddd¡| ¡| |j   ¡¡||j   ¡dƒ||j   ¡d ƒ||jjdƒ||jjdƒ||jjdƒt`t`t ¡dS)NúIDLE Classic OSXrú- no custom keys -r’r7©rrr”r•r–r—r˜r™r]zIDLE Modern UnixrÚKeysr›rœrz)r—)rrrIr8rr,r Z CurrentKeysZ load_key_cfgrCÚ keyset_sourcerYržrŸÚcustom_keyset_onr¡rr9rÚargsr¢Z default_keysrZr[r£rrrÚtest_load_key_cfg#s@zKeysPageTest.test_load_key_cfgcCs®|j}|j}tƒ|_tƒ|_|j ¡|tdddiiƒ||jjdƒ||jjdƒt   ¡|j   d¡|j  ¡| tdddii¡||jjdƒ||jjdƒ|`|`dS)Nr r›r¦r7rr§r¨) r8rIrr©rªZbuiltin_keyset_onr/r|r9rrr r¡r«rrrÚtest_keyset_sourceMs   zKeysPageTest.test_keyset_sourcecCs0|j}|j}tjd d¡gd¢}|j |d¡|tddddœiƒ||jddƒ||j j d ƒ||j j d ƒt   ¡t ddd d ¡|j |d¡|tdd diiƒ||jddƒ||j j dƒ||j j d ƒt   ¡|j |d¡|tddddœiƒ||jddƒ||j j dƒ||j j dƒdS)Nrr )úIDLE Classic WindowsrúIDLE Modern UNIXrrr±r³zNew key set, see Helpr7)rr¯zIDLE Classic Unixr²r]rrrzr )r8rIr rrŒr´rµr|Z keys_messagerr9rrrr¢r¶rrrr·bs0ÿ zKeysPageTest.test_builtin_namecCsr|j}|j gd¡| dt¡| |jjd¡t  ¡|j gd¢d¡| tdddii¡| |jjd¡dS)Nr r rr¸r»r¯r7) rIr¼rµr½r|r8rr9rrr:rrrr¾‚s zKeysPageTest.test_custom_namecCsÀt dddd¡|j}|j d¡|j dd¡|j dd¡|j d d ¡|j d¡|j  d¡|j  d ¡|  t ddd ii¡|j d ¡|j  d ¡|j  d ¡|  t d d d ii¡dS) NrZZzDummyÚenabler¦zmy custom keysrÚendÚcopyr7zz-inú ZZzDummy_cfgBindings)r r¢rIrŸrUÚ bindingslistÚdeleteÚinsertÚ selection_setÚselection_anchorÚ keybindingr8r@r4r:rrrÚtest_keybindings$     ÿ    ÿzKeysPageTest.test_keybindingcCs´|j}|j}|`|j d¡| ¡||jdtƒ||jdtƒ||j   ¡dƒ|j d¡| ¡||jdtƒ||j   ¡dƒ||jdtƒ||j   ¡dƒt ƒ|_dSrÚ) r8rIrr rUr´r r¼r Úbutton_delete_custom_keysr¡r rr«rrrÚtest_set_keys_type¥s  zKeysPageTest.test_set_keys_typecCsŽ|j}|j}tj}tdd}t_tƒ}|_|j d¡|j  dd¡|j  dd¡|j  d¡|j  d¡|j  d¡|j d¡d|_|j ¡||j d ¡dƒ||j  ¡dƒd |_d|_|j ¡||jd ƒ||j d ¡dƒd |_|j ¡||j ¡|jƒ||j d ¡d ƒ||j  ¡d ƒ|j d¡d|_d|_|j ¡||jdƒ||j d ¡dƒ||j  ¡dƒ|`|t_dS)NTrðr§rrzcopy - zKey-arrmrr7zMy New Key Setzcopy - Fzzcopy - )r8rIrZ GetKeysDialogrÚget_new_keys_nameÚbutton_new_keysr¡rrrrrrrUr rär/rYr9rŸ)r%r¤r1Zorig_getkeysdialogZgkdÚgnknrrrÚtest_get_new_keysºsF             zKeysPageTest.test_get_new_keyscCs>tj}tdd}t_|j}d|_| | d¡d¡|t_dS)NTrðzNew Keysr)rrñrrIrär8r ròrrrÚtest_get_new_keys_nameês z#KeysPageTest.test_get_new_keys_namecCst|j}tƒ}|_|j d¡d|_|j ¡d|_d|_|  |jt j d¡|j ¡|  |jt j d¡|`dS)NTrzmy new key setrr) rIrr r rUräZbutton_save_custom_keysr/r9r½r rrd)r%r1r"rrrÚtest_save_as_new_key_setôs    z%KeysPageTest.test_save_as_new_key_setcCsæ|j}|j}| dd¡| dd¡| dd¡| d¡| ¡| d¡| ¡| d¡\}}}}||d7}||d7}|j dddd|j d ||d|j d ||d|j d ||d|  |  d ¡d¡|  |j   ¡d ¡dS)Nrrrr7Úfindr]rÊrirËrhrlrmr)rIrrrr5rbrnrKrorcr8rYr!r¡)r%r1rºrjrkrprqrrrÚtest_on_bindingslist_selects$       z(KeysPageTest.test_on_bindingslist_selectcCs|j}|j}|j d¡|j d¡d}d}| |tj¡| |¡|t  dd¡|gƒ|t  d¡t  |¡ƒ||j   ¡|ƒ|  |j  ¡¡||jjdƒt d|dd ¡| |tj¡| |¡|t  dd¡||gƒ| t  |¡t  |¡¡t d|dd ¡|t  |¡t  |¡ƒdS) NTrzmy new custom key setzmy second custom keysetrŠrr7rr)r8rIr rUržr½r rZcreate_new_key_setr‹Ú GetKeySetrŸrYrZrr9rr÷rXr¢rørrrÚ,test_create_new_key_set_and_save_new_key_sets0    ÿ  ÿz9KeysPageTest.test_create_new_key_set_and_save_new_key_setcCsV|j}|j}tƒ}t_|`|j}| dd¡| dd¡| dd¡ddgdgd gd œ|_ t   d d d d¡d}| d ¡||  dd¡|ƒ||  d¡dƒ||  ¡dƒ| d¡| d¡| d ¡||  dd¡|ƒ||  d¡dƒ||  ¡dƒ| d¡| d¡| d ¡||  dd¡|ƒ||  d¡dƒ||  ¡dƒtƒ|_t`dS)Nrrz<>r7z<>zzzr)z<>z<>z<>rzmy keysr°z )z© - ú,force-open-completions - úspam - rmrrr*)r7r]r+)r])r8rIrr r(rrrrrärr÷rYZ curselectionrr)r%r¤r1Zgksrºr}rrrÚtest_load_keys_list:s@    þ       z KeysPageTest.test_load_keys_listcCs2|j}|j}|j d¡tƒ}|_tƒt_tƒt_d}t j d  |dd¡ddit |<d}t j d  |dd¡dd it |<|j  d¡|j  ¡|j |¡d |_|j ¡||jd ƒ|t |ddiƒ|t  d d¡||gƒ|tjjd ƒ|tjjd ƒ||jjd ƒd|_|j ¡||jdƒ| |t ¡|t  d d¡|gƒ||j  ¡dƒ||j ¡|ƒ|tjjd ƒ|tjjd ƒ||jjd ƒ|j |¡d|_|j ¡||jdƒ| |t ¡|t  d d¡gƒ||j  ¡dƒ||j ¡dƒ|tjjdƒ|tjjdƒ||jjdƒt`t`|`dS)Nr§z spam key setrr¯r–r•r¦z other key setr¨Fr7rŠrTr]rrzr’r )r8rIrr¡rrrr3r'r rr¢r@r r/rŸrUrär9r‹rr½rY)r%r¤r1rZ keyset_nameZ keyset_name2rrrÚtest_delete_custom_keyses\                z$KeysPageTest.test_delete_custom_keysN)r(r)r*rƒrNrPrRrrr·r¾rrr#r$r%r'r)r,r-rrrrrs$   * 0 +rc@s`eZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)Ú WinPageTestcCs$tj}|_tj |¡| ¡dSr)rZwinpagerIr>r?rKrLrrrrN§s  zWinPageTest.setUpClasscCs t ¡dSrrQr$rrrrR­szWinPageTest.setUpcCsl|j}|j}|j d¡|j d¡|j d¡| ¡||j ¡dƒ||j ¡dƒ||j ¡dƒdS)Nr7rZ80rt)r8rIZ startup_editrUZ win_widthZ win_heightZload_windows_cfgrYr«rrrÚtest_load_windows_cfg°s   z!WinPageTest.test_load_windows_cfgcCsN|j}|j ¡| tdddii¡t ¡|j ¡| tdddii¡dS)NÚGeneralzeditor-on-startuprSrœ)rIZstartup_editor_onr/r8r|rrZstartup_shell_onr:rrrÚ test_startup¼s  ÿ  ÿzWinPageTest.test_startupcCsr|j}|j dd¡|j dd¡| tdddii¡t ¡|j dd¡|j dd¡| tdddii¡dS)NrrÚ11rxZheightÚwidth) rIZwin_height_intrrr8r|rrZ win_width_intr:rrrÚtest_editor_sizeÆszWinPageTest.test_editor_sizecCs<|j}|j d¡| |j ¡d¡| tdddii¡dS)NéÚ6ZIndentz num-spaces)rIZindent_chooserrUr8Z indent_spacesrYr|r:rrrÚtest_indent_spacesÐs zWinPageTest.test_indent_spacescCs$|jj ¡| tdddii¡dS)Nrxz cursor-blinkr¨)rIZcursor_blink_boolr/r8r|r$rrrÚtest_cursor_blinkÖs zWinPageTest.test_cursor_blinkcCs8|jj dd¡|jj dd¡| tdddii¡dS)Nrrr2Z AutoCompleteZ popupwait)rIZ auto_wait_intrrr8r4r$rrrÚtest_autocomplete_waitÚsz"WinPageTest.test_autocomplete_waitcCsŒ|j}|j}|jd d¡|tdddiiƒt ¡|j dd¡|j  dd¡|tdddiiƒt ¡|j  ¡|tdd d iiƒdS) NZmenurZ ParenMatchrßÚopenerrr2z flash-delayZbellr¨) rIr8Zparen_style_typer/r4rrZparen_flash_timerrZbell_onr£rrrÚtest_parenmatchßs zWinPageTest.test_parenmatchcCs8|jj dd¡|jj dd¡| tdddii¡dS)Nrrr2ZFormatParagraphz max-width)rIZformat_width_intrrr8r4r$rrrÚtest_paragraphìszWinPageTest.test_paragraphN)r(r)r*rƒrNrRr/r1r4r7r8r9r;r<rrrrr.¡s     r.c@s8eZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd S) Ú ShedPageTestcCs$tj}|_tj |¡| ¡dSr)rZshedpagerIr>r?rKrLrrrrNøs  zShedPageTest.setUpClasscCs t ¡dSrrQr$rrrrRþszShedPageTest.setUpcCs4|j}|j}|j d¡| ¡||j ¡dƒdS)Nr7r)r8rIÚautosaverUZload_shelled_cfgrYr«rrrÚtest_load_shelled_cfgs  z"ShedPageTest.test_load_shelled_cfgcCsF|j}|j ¡| tdddii¡|j ¡| tdddii¡dS)Nr0r>rSrœ)rIZ save_auto_onr/r8r|Z save_ask_onr:rrrÚ test_autosave s   zShedPageTest.test_autosavecCs8|jj dd¡|jj dd¡| tdddii¡dS)NrrrSZ CodeContextZmaxlines)rIZ context_intrrr8r4r$rrrÚ test_contextszShedPageTest.test_contextN) r(r)r*rƒrNrRr?r@rArrrrr=òs  r=c@seZdZedd„ƒZdS)Ú ExtPageTestcCstj}tj |¡dSr)rr4r>r?rLrrrrNszExtPageTest.setUpClassN)r(r)r*rƒrNrrrrrBsrBc@sdeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)ÚHelpSourceTestcCsFtj}tj |¡|j}|_tƒ|_|_tƒ|_ |_ |  ¡dSr) rr4r>r?Z frame_helpÚframerrUÚset_add_delete_stateÚupcÚupdate_help_changesrK)rMrIrDrrrrN!s   zHelpSourceTest.setUpClasscCs2|j}|`|`|`|`|j dd¡|j ¡dS)Nrr) rDrUrErFrGÚhelplistrÚ user_helplistr)rMrDrrrrP*s zHelpSourceTest.tearDownClasscCs t ¡dSrrQr$rrrrR2szHelpSourceTest.setUpcCsb|j}|j}|j dd¡ddg|_t dddd¡| ¡||j dd¡d ƒ||jd gƒdS) NrZbadZworserÚ HelpFilesrSz name;filer)r¯)r¯ÚfilerS) r8rDrHrrIr r¢Z load_helplistrY©r%r¤ÚfrrrrÚtest_load_helplist5s z!HelpSourceTest.test_load_helplistcCsü|j}|j|_|j|_|j}d}| |d¡| |¡| ¡|  |¡|  ¡|  |¡\}}}}||d7}||d7}d|j_ |j_ |j dddd|j d||d|j d||d|j d ||d| | d ¡d¡| |jj ¡| |jj ¡dS) NrÚsourcer]rrÊrirËrhrlrm)rDrErUrGrFrHrr5rbrnrKror9rcr8rYrCrZ)r%rMrHZdexrjrkrprqrrrÚtest_source_selected?s*     z#HelpSourceTest.test_source_selectedcCs¼|j}|j}|`|j}|j}| dd¡|ƒ||j ¡dƒ||j ¡dƒ| dd¡|ƒ||j ¡dƒ||j ¡dƒ|  d¡|ƒ||j ¡dƒ||j ¡dƒt ƒ|_dS)Nrrr’rOr) r8rDrErHrZbutton_helplist_editr¡Zbutton_helplist_removerrr)r%r¤rMZsadÚhrrrÚtest_set_add_delete_stateWs$   z(HelpSourceTest.test_set_add_delete_statecCsú|j}tj}tdd}t_|j}|j dd¡|j ¡d|j _ |j _ d|_ |  ¡| t|j dd¡ƒ|jko~gkn¡| |j j ¡d|_ |  ¡d|_ |  ¡||j dd¡dƒ||jddgƒ||j j d ƒ| |j j ¡|t_dS) NTrðrrr©Úname1Zfile1©r²Zfile2)rTr²r])r8rÚ HelpSourcerrDrHrrIrrUr9rFräZhelplist_item_addrCÚlistrYrZ©r%r¤Zorig_helpsourcerÎrMrrrÚtest_helplist_item_addos0 ÿÿ z%HelpSourceTest.test_helplist_item_addcCs*|j}tj}tdd}t_|j}|j dd¡|j dd¡|j d¡|j  d¡|j   ¡|j   d¡d|j _|j_d|_| ¡d|_| ¡||j dd¡dƒ||j dgƒ| |jj¡d |_| ¡||j dd¡d ƒ||j d gƒ| |jj|j jkod kn¡|t_dS) NTrðrrrTrSr)rTrU)r²r7)r8rrVrrDrHrrrrrIrÚappendrUr9rFräZhelplist_item_editrYrZrCrXrrrÚtest_helplist_item_edit‹s0    (z&HelpSourceTest.test_helplist_item_editcCs¸|j}|j}|j dd¡|j dd¡|j d¡|j d¡|j ¡|j  d¡d|j _ |j _ |  ¡||j dd¡dƒ||jgƒ| |j j |j j ko¬dkn¡dS)NrrrTrSrr7)r8rDrHrrrrrIrrZrUr9rFZhelplist_item_removerYrCrLrrrÚtest_helplist_item_remove©s     z(HelpSourceTest.test_helplist_item_removecCsV|j}|`|j ¡|j d¡|j d¡| ¡| tddddœ¡tƒ|_dS)NrSrUrJz name1;file1z name2;file2)rSÚ2)rDrGrIrrZr8r|r)r%rMrrrÚtest_update_help_changes¹s    ÿz'HelpSourceTest.test_update_help_changesN)r(r)r*rƒrNrPrRrNrPrRrYr[r\r^rrrrrCs   rCc@sdeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)Ú VarTraceTestcCs"t ¡|_ttƒ|_ttƒ|_dSr)rZVarTracerrrÚivr ÚbvrOrrrrNÈs  zVarTraceTest.setUpClasscCs|`|`|`dSr)rr`rarOrrrrPÎszVarTraceTest.tearDownClasscCs|j ¡d|_dSrÄ)rrr9r$rrrrRÒs zVarTraceTest.setUpcGs|jd7_dS)Né )r9©r%ÚparamsrrrÚvar_changed_incrementÖsz"VarTraceTest.var_changed_incrementcGsdSrrrcrrrÚvar_changed_booleanÙsz VarTraceTest.var_changed_booleancCs.|j}| ¡| |jg¡| |jg¡dSr)rÚ__init__r8ÚuntracedÚtraced©r%ÚtrrrrÚ test_initÜszVarTraceTest.test_initcCsF|j}|j d¡|j d¡| ¡| |jg¡| |jg¡dS)Nrr7)rrhrZrirr8rjrrrÚ test_clearâs   zVarTraceTest.test_clearc CsÌ|j}tƒ}tj|d}|_| |j|j¡}| ||j¡| |j |j ¡}| ||j ¡t t ƒ}| |d¡}| ||¡|  ¡| |d¡||jf||j f||fg}| |jg¡| |j|¡|`dS)Nr©rrŽr•)rrrr,Ú make_callbackÚaddr`reZassertIsrarfrrr0Zassert_called_withr8rirh) r%rkÚfuncÚcbr`raÚsvZsv2r}rrrÚtest_addês&   þzVarTraceTest.test_addcCst|j |jd¡}| t|ƒ¡|j d¡| dtd¡|ƒ| dtd¡|  tdddd¡t  ¡dS)Nrné*rŽrr•Z42) rror`rCÚcallablerUr½rrdr8r)r%rrrrrÚtest_make_callbacks zVarTraceTest.test_make_callbackcCsò|j}| |j|j¡}| |j|j¡}||jf||jfg}| ¡| |jg¡|  |j |¡|  d¡| |  ¡d¡| |j d¡d|_ | ¡|  d¡| |j d¡d|_ | ¡| |j g¡|  |j|¡|  d¡| |j d¡dS)Nr7rbr)rrpr`rerarfr[r8rhZassertCountEqualrirUrYr9r)r%rkr`rar}rrrÚtest_attach_detachs,ÿ   zVarTraceTest.test_attach_detachN)r(r)r*rƒrNrPrRrerfrlrmrtrwrxrrrrr_Æs   r_Ú__main__r])Ú verbosity)-ZidlelibrZ test.supportrZunittestrZidlelib.idle_test.mock_idlerÚtkinterrrrr r r r Zidlelib.configdialogr rrrrZIdleUserConfParserrrrr|r…r@r4rr"ZTestCaser#r+rHr„rr.r=rBrCr_r(rrrrrÚsV      ü  +Q%(h