B ìUÕÔ©ªŸã@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(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úH/opt/alt/python37/lib64/python3.7/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)ÚConfigDialogTestcCsdS)Nr)ÚselfrrrÚtest_deactivate_current_config7sz/ConfigDialogTest.test_deactivate_current_configcCsdS)Nr)r#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_okcCsdt}t ¡}|_t ¡}|_t ¡}|_|jd ¡| ¡| ¡| ¡|`|`|`dS)NZApply) rrr*Údeactivate_current_configZsave_all_changed_extensionsr%r,r-r.)r#r/Z deactivateZsave_extÚactivaterrrÚtest_click_applyIszButtonTest.test_click_applycCsNt}tƒ|_dtdd<|jd ¡| tdi¡| |jjd¡|`dS)NérZ somethingZCancel)rrr rr,r-Ú assertEqualÚcalled)r#r/rrrÚtest_click_cancelUs zButtonTest.test_click_cancelc Csztj tj¡tjjtdtd*}tj d  ¡|j d|j d}}WdQRX|  |d¡|  | d¡or| d¡¡dS) NZ view_text)Z new_callableZHelpÚtitleÚcontentszHelp for IDLE preferenceszWhen you clickza different name. )rÚnoteÚselectÚkeyspagerZpatchÚobjectrrr,r-Úkwdsr5Ú assertTrueÚ startswithÚendswith)r#Zviewr8r9rrrÚtest_click_help^s    zButtonTest.test_click_helpN)r&r'r(r0r3r7rBrrrrr)>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ƒ|_| ¡dS)N)rÚfontpageÚpager:r;rÚ set_samplesÚupdate)ÚclsrErrrÚ setUpClassps  zFontPageTest.setUpClasscCs |j`dS)N)rErF)rHrrrÚ tearDownClasswszFontPageTest.tearDownClasscCs t ¡dS)N)rr)r#rrrÚsetUp{szFontPageTest.setUpcCs’t ¡|j}|j d¡|j d¡|j d¡d|j_|  ¡|  |j  ¡d¡|  |j  ¡d¡|  |j  ¡¡|  |jjd¡t ¡dS)NZFakeÚ1Trr4)rrrEÚ font_nameÚsetÚ font_sizeÚ font_boldrFr6Z load_font_cfgÚassertNotEqualÚgetÚ assertFalser5Úattach)r#r/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ézneed at least 2 fontsrZactivez zzz)rEÚfontlistÚsizeÚskipTestr2rRÚ focus_forcerGÚevent_generaterQÚassertInrMÚlowerr5)r#r/rWÚ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) NrVzneed at least 2 fontsrr4z )ÚxÚyzÚanchor)rErWrXrYr2rZÚseerGÚbboxr[rRr5r\rMr]) r#r/rWr`raÚdxÚdyZfont1Z select_fontrrrÚtest_fontlist_mouse«s"        z FontPageTest.test_fontlist_mousecCs*|j}|jj d¡| |j ¡d¡dS)Né(Ú40)rEZsizelistÚvariablerNr5rOrR)r#r/rrrÚ test_sizelistÂszFontPageTest.test_sizelistcCsJ|j}|j d¡|j ¡| |j ¡¡|j ¡| |j ¡¡dS)NF)rErPrNZ bold_toggler-r?rRrS)r#r/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Ú EditorWindowr4rVÚboldrz Test Font)r^z font-sizez font-boldZ20é)r ZGetFontrÚstrrErOrNrPrFr6rMr5Úmainpagerr)r#Z default_fontZ default_sizeZ default_boldr/ÚexpectedrrrÚ test_font_setÑs6         zFontPageTest.test_font_setcCs’|j}|`|j|jf}ii|_|_|j d¡|j d¡|j d¡ddi}| ¡| |j|jkor|kn¡|\|_|_t ƒ|_dS)NÚtestÚ5r4r^)rtrurn) rErFZ font_sampleÚhighlight_samplerMrNrOrPr?r)r#r/Z orig_samplesrrrrrÚtest_set_samplesõs    " zFontPageTest.test_set_samplesN)r&r'r(Ú classmethodrIrJrKrUr_rgrkrlrsrwrrrrrCis   $rCc@s(eZdZedd„ƒZdd„Zdd„ZdS)Ú IndentTestcCstj|_|j ¡dS)N)rrDrErG)rHrrrrI szIndentTest.setUpClasscCs0|j}|j d¡| ¡| |j ¡d¡dS)Néé)rEÚ space_numrNZ load_tab_cfgr5rR)r#r/rrrÚtest_load_tab_cfgs zIndentTest.test_load_tab_cfgcCsD|j}t ¡|j d¡| |j ¡d¡| tdddii¡dS)NérzZIndentz num-spacesZ16) rErrZ indent_scalerNr5r|rRrq)r#r/rrrÚtest_indent_scales  zIndentTest.test_indent_scaleN)r&r'r(rxrIr}rrrrrrys ryc@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ƒ|_ |  ¡dS)N) rÚhighpagerEr:r;rÚset_theme_typeÚpaint_theme_sampleÚset_highlight_targetÚset_color_samplerG)rHrErrrrI#s  zHighPageTest.setUpClasscCs|j}|`|`|`|`dS)N)rEr‚rƒr„r…)rHr/rrrrJ-szHighPageTest.tearDownClasscCsX|j}x$t dd¡D]}tjd |¡qWt ¡d|j_d|j _d|j _d|j _dS)NÚuserrr) rEr ÚGetSectionListrÚremove_sectionrrr‚r6rƒr„r…)r#r/ÚsectionrrrrK3szHighPageTest.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)Nz IDLE Classic)Ú return_valuez- no custom themes -)Údisabledr4rÚtest1ÚoptionÚvalueÚtest2Úoption2Úvalue2rVrÚThemeÚdefaultÚ0ro)rrrEr5rr*r Z CurrentThemeZload_theme_cfgr?Ú theme_sourcerRÚ builtin_nameÚ custom_nameÚcustom_theme_onÚstater‚r6rƒr„Ú SetOptionrSrT)r#r/Ú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“ÚTruer4r)z !disabledÚFalse) r5rErÚvar_changed_builtin_nameÚvar_changed_custom_nameZbuiltin_theme_onr-rqr6rrr˜r™)r#r›r/rrrÚtest_theme_sourcehs   zHighPageTest.test_theme_sourcecCs|j}|j}dddg}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)Nz IDLE Classicz IDLE DarkzIDLE Newrr’ÚnameÚspam)r¢Úname2ÚtextzNew theme, see Helpr4r¤rVrro) r5rEr ršÚ builtinlistÚSetMenurqZ theme_messagerƒr6rr)r#r›r/Ú item_listrrrÚtest_builtin_name}s(  zHighPageTest.test_builtin_namecCst|j}|j gd¡| dt¡| |jjd¡t  ¡|j dddgd¡| tdddii¡| |jjd¡dS) Nz- no custom themes -r’rÚaÚbÚcr¢r4) rEÚ customlistr§Ú assertNotInrqr5rƒr6rr)r#r/rrrÚtest_custom_name™s zHighPageTest.test_custom_namecCs2|j}tƒ|_|j d¡| |jjd¡|`dS)NZgreenr4)rErZon_new_color_setÚcolorrNr5r6)r#r/rrrÚ test_color§s  zHighPageTest.test_colorcCsB|j}|j}|j dddgd¡||j ¡dƒ||jjdƒdS)Nrªr«r¬r4)r5rEZ targetlistr§Úhighlight_targetrRr„r6)r#r›r/rrrÚ test_highlight_target_list_mouse¯s z-HighPageTest.test_highlight_target_list_mousecsº|j}|j‰i}d}ˆj‰ˆ ¡ˆ d¡ˆ ¡‡fdd„}‡fdd„}||ƒx`ˆ ¡D]T}xNˆ |¡ddd…D]6}|d7}||ƒ|ˆj  ¡||ƒ|ˆj j |ƒqxWq^WdS) Nrgð?cs(x"ˆj ¡D]\}}|||d<q WdS)Nr)Ztheme_elementsÚitems)ÚelemZelementÚtag)r/rrÚtag_to_elementÄszEHighPageTest.test_highlight_target_text_mouse..tag_to_elementcsnˆ |¡\}}}}||d7}||d7}ˆjddddˆjd||dˆjd||dˆjd||ddS)NrVzr)r`razzz)rdr[)Ústartr`rarerf)ÚhsrrÚclick_itÈs  z?HighPageTest.test_highlight_target_text_mouse..click_itrVr4) r5rErvrZrcrZ tag_namesÚ tag_rangesr²rRr„r6)r#r›rµÚcountr·rºr¶Ú start_indexr)r/r¹rÚ test_highlight_target_text_mouse¸s"   z-HighPageTest.test_highlight_target_text_mousecCs’|j}|j}|j}| ¡| d¡| ¡|jdddd|jddddx0tdƒD]$}|jdddd|jddddqVW|| d ¡d ƒdS) Ngð?zr)r`razrVzzÚselr) r5rErvrZrcrr[Úranger»)r#r›r/r¹Ú_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) Ngð?z1.0zzz)r`razz zr¿r) r5rErvrZrcrZ dlineinfor[r») r#r›r/r¹r`rarerfÚ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) r5rEr‚r•rNr¦r r­r Úbutton_delete_customr™r˜r)r#r›r/rrrÚtest_set_theme_types  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@ggz#de0000Tr4z My New Themez#de0000F)r5rErZtkColorChooserZaskcolorrÚget_new_theme_namer²rNr°ÚresultZbutton_set_colorr-rRrÈÚlookupÚframe_color_setr•r6r—)r#r›r/Z 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ÚPythonz Selected TextTrÈrÉÚhiliteÚ foregroundzhilite-foreground) rEr—rNr²Ú fg_bg_toggler°r5rÈrÌrÍrvÚtag_cgetr)r#r/r°rrrÚtest_on_new_color_setKs    z"HighPageTest.test_on_new_color_setcCs>tj}tdd}t_|j}d|_| | d¡d¡|t_dS)NT)Ú return_selfz New Themer)rÚ SectionNamerrErËr5rÊ)r#Úorig_sectionnameÚsnr/rrrÚtest_get_new_theme_nameXs 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) rErrÊr•rNrËZbutton_save_customr-r®r rr6r\)r#r/rÎrrrÚtest_save_as_new_themebs    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) NTz IDLE Classiczmy new custom themezmy second custom themer†rr“r4zhit-backgroundÚyellow)r5rEr•rNr–r®r rÚ create_newr‡Z GetThemeDictr—rRrSr‚r6rÚ add_optionrQrš)r#r›r/Ú first_newÚ second_newrrrÚtest_create_new_and_save_newus.      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‹r4ÚComment)rÅrrV) r5rEr„r²rNÚfg_onr™Úbg_onr?rÓr…r6r)r#r›r/rrrÚtest_set_highlight_target•s    z&HighPageTest.test_set_highlight_targetcCs@|j}|j}|j ¡| |jd¡|j ¡| |jd¡dS)Nr4rV)rEr…rãr-r5r6rä)r#r/ZscsrrrÚtest_set_color_sample_bindingªs   z*HighPageTest.test_set_color_sample_bindingcCs\|j}|`|j d¡|j d¡| ¡| |j |jdd¡|j   dd¡¡t ƒ|_dS)Nz Selected TextTrÈrÉrÑrÒ) rEr…r²rNrÓr5rÈrÌrÍrvrÔr)r#r/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œ}x&|  ¡D]\}}| |d|ƒ|¡qhW||j j d ƒx(|  ¡D]\}}t d |d ||¡qžW| ¡x$|  ¡D]\}}||d|ƒ|ƒqÐW||j j d ƒtƒ|_dS) NTz IDLE Darkz IDLE TestrZbluerÜ)rÒrÉZconsoler4rzconsole-rV)r5rErƒrvrÔr Z GetHighlightr•rNr–rÝr…r6r´rQrrÞr) r#r›rEZhs_tagZghZthemeZ new_consoleÚkeyrŽrrrÚtest_paint_theme_sample¿s.   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)N)z !disabledz spam themerr¢rŽrrz other themeržFr4r†rTrVrro)r‹z- no custom themes -)r5rErÆr™rÚaskyesnorr1r%r rršrr˜r-r—rNrËr6r‡r‚r®rR)r#r›r/ÚyesnoZ theme_nameZ theme_name2rrrÚtest_delete_customßs\                zHighPageTest.test_delete_customN)r&r'r(rxrIrJrKrœr¡r©r¯r±r³r¾rÂrÄrÇrÏrÕrÚrÛrárårærçrérìrrrrr€s.  ) %/      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ƒ|_dS)N)rr<rEr:r;rÚ set_keys_typeÚload_keys_list)rHrErrrrI"s  zKeysPageTest.setUpClasscCs|j}|`|`dS)N)rErîrï)rHrErrrrJ)szKeysPageTest.tearDownClasscCsH|j}x$t dd¡D]}tjd |¡qWt ¡d|j_d|j _dS)Nr†rr) rEr r‡rrˆrrrîr6rï)r#r/r‰rrrrK.s 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)NzIDLE Classic OSX)rŠz- no custom keys -)r‹r4)zIDLE Classic OSXrrŒrrŽrrr‘rVzIDLE Modern UnixrÚKeysr“r”ro)r)rrrEr5rr*r Z CurrentKeysZ load_key_cfgr?Ú keyset_sourcerRr–r—Úcustom_keyset_onr™rîr6rïÚargsršZ default_keysrSrT)r#r/r›rrrÚtest_load_key_cfg8s@zKeysPageTest.test_load_key_cfgcCs®|j}|j}tƒ|_tƒ|_|j ¡|tdddiiƒ||jjdƒ||jjdƒt   ¡|j   d¡|j  ¡| tdddii¡||jjdƒ||jjdƒ|`|`dS)Nrðr“rr4r)z !disabledrž) r5rErrŸr Zbuiltin_keyset_onr-rqr6rrròr™)r#r›r/rrrÚtest_keyset_sourcebs   zKeysPageTest.test_keyset_sourcecCs2|j}|j}tjd d¡dddg}|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ðzIDLE Classic WindowszIDLE Classic OSXzIDLE Modern UNIX)r¢r¤r¥zNew key set, see Helpr4)zIDLE Modern UNIXr¢zIDLE Classic Unixr¤rVrro)zIDLE Classic OSX)r5rEr rrˆr¦r§rqZ keys_messagerïr6rórrrš)r#r›r/r¨rrrr©ws0 zKeysPageTest.test_builtin_namecCst|j}|j gd¡| dt¡| |jjd¡t  ¡|j dddgd¡| tdddii¡| |jjd¡dS) Nz- no custom keys -rðrrªr«r¬r¢r4) rEr­r§r®rqr5rïr6rr)r#r/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) NrZZzDummyZenablerzmy custom keysrÚendÚcopyr4zz-inz ZZzDummy_cfgBindings)r ršrEr—rNÚ bindingslistÚdeleteÚinsertÚ selection_setÚselection_anchorÚ keybindingr5r<Úextpage)r#r/rrrÚtest_keybinding¥s        zKeysPageTest.test_keybindingcCs´|j}|j}|`|j d¡| ¡||jdtƒ||jdtƒ||j   ¡dƒ|j d¡| ¡||jdtƒ||j   ¡dƒ||jdtƒ||j   ¡dƒt ƒ|_dS)NTr™)r‹F)rÅr) r5rErîrñrNr¦r r­r Úbutton_delete_custom_keysr™ròr)r#r›r/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)NT)rÖ)z !disabledrrözcopy - zKey-arrbz r4zMy New Key Setzcopy - Fzzcopy - )r5rErZ GetKeysDialogrÚget_new_keys_nameÚbutton_new_keysr™rørùrúrûrürýrNrñrËr-rRr6r—)r#r›r/Zorig_getkeysdialogZgkdÚgnknrrrÚtest_get_new_keysÏsF             zKeysPageTest.test_get_new_keyscCs>tj}tdd}t_|j}d|_| | d¡d¡|t_dS)NT)rÖzNew Keysr)rr×rrErËr5r)r#rØrÙ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) rErrrñrNrËZbutton_save_custom_keysr-r6r®r rr\)r#r/rrrrÚ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)Nrrör÷r4ÚfindrVz)r`razz zrbr)rErørùrúr2rZrcrGrdr[r5rRrr™)r#r/r«r`rarerfrrrÚ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) NTzIDLE Classic Windowszmy new custom key setzmy second custom keysetr†rr4r÷z )r5rErñrNr–r®r rZcreate_new_key_setr‡Ú GetKeySetr—rRrSrîr6rrÞrQrš)r#r›r/rßràrrrÚ,test_create_new_key_set_and_save_new_key_set0s,        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)Nrröz<>r4z<>zzzz )z<>z<>z<>rzmy keysr£z )z© - z,force-open-completions - zspam - rbrrz,force-open-completions - )r4rVzspam - )rV)r5rErr r rïrørùrúrËrrÞrRZ curselectionrûrü)r#r›r/Zgksr«rrrrrÚtest_load_keys_listOs>            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)N)z !disabledz spam key setrr¢rŽrrz other key setržFr4r†rTrVrro)r‹z- no custom keys -)r5rErr™rrêrr1r%r rršr<ròr-r—rNrËr6r‡rîr®rR)r#r›r/rëZ keyset_nameZ keyset_name2rrrÚtest_delete_custom_keyszs\                z$KeysPageTest.test_delete_custom_keysN)r&r'r(rxrIrJrKrôrõr©r¯rÿrrrrr r r r rrrrrís    * 0 +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!d"„Zd#d$„Zd%S)&Ú GenPageTestcCs@tj}|_tj |¡tƒ|_|_tƒ|_|_ |  ¡dS)N) rZgenpagerEr:r;rrNÚset_add_delete_stateÚupcÚupdate_help_changesrG)rHrErrrrI¼s   zGenPageTest.setUpClasscCs2|j}|`|`|`|`|j dd¡|j ¡dS)Nrrö) rErNrrrÚhelplistrùÚ user_helplistr)rHrErrrrJÄs zGenPageTest.tearDownClasscCs t ¡dS)N)rr)r#rrrrKÌszGenPageTest.setUpcCsÒ|j}|j}|j d¡|j d¡|j d¡|j d¡|j dd¡ddg|_ t   dddd¡|  ¡||j  ¡d ƒ||j  ¡d ƒ||j  ¡d ƒ||j  ¡d ƒ||j  d d¡d ƒ||j d gƒdS)Nr4röZbadZworserÚ HelpFilesrLz name;filerZ80ri)r¢)r¢ÚfilerL)r5rEZ startup_editrNÚautosaveZ win_widthZ win_heightrrúrr ršZload_general_cfgrR)r#r›r/rrrÚtest_load_general_cfgÏs      z!GenPageTest.test_load_general_cfgcCsN|j}|j ¡| tdddii¡t ¡|j ¡| tdddii¡dS)NÚGeneralzeditor-on-startuprLr”)rEZstartup_editor_onr-r5rqrrZstartup_shell_on)r#r/rrrÚ test_startupâs  zGenPageTest.test_startupcCsr|j}|j dd¡|j dd¡| tdddii¡t ¡|j dd¡|j dd¡| tdddii¡dS)NrröÚ11rmZheightÚwidth) rEZwin_height_intrùrúr5rqrrZ win_width_int)r#r/rrrÚtest_editor_sizeìszGenPageTest.test_editor_sizecCs$|jj ¡| tdddii¡dS)Nrmz cursor-blinkrž)rEZcursor_blink_boolr-r5rq)r#rrrÚtest_cursor_blinkös zGenPageTest.test_cursor_blinkcCs8|jj dd¡|jj dd¡| tdddii¡dS)NrrörZ AutoCompleteZ popupwait)rEZ auto_wait_intrùrúr5rþ)r#rrrÚtest_autocomplete_waitúsz"GenPageTest.test_autocomplete_waitcCsŒ|j}|j}|jd d¡|tdddiiƒt ¡|j dd¡|j  dd¡|tdddiiƒt ¡|j  ¡|tdd d iiƒdS) NZmenurZ ParenMatchrÈÚopenerrörz flash-delayZbellrž) rEr5Zparen_style_typer-rþrrZparen_flash_timerùrúZbell_on)r#r/r›rrrÚtest_parenmatchÿs zGenPageTest.test_parenmatchcCsF|j}|j ¡| tdddii¡|j ¡| tdddii¡dS)NrrrLr”)rEZ save_auto_onr-r5rqZ save_ask_on)r#r/rrrÚ test_autosave s   zGenPageTest.test_autosavecCs8|jj dd¡|jj dd¡| tdddii¡dS)NrrörZFormatParagraphz max-width)rEZformat_width_intrùrúr5rþ)r#rrrÚtest_paragraphszGenPageTest.test_paragraphcCs8|jj dd¡|jj dd¡| tdddii¡dS)NrrörLZ CodeContextZmaxlines)rEZ context_intrùrúr5rþ)r#rrrÚ test_contextszGenPageTest.test_contextcCsü|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öÚsourcerVrz)r`razz zrb)rErrNrrrrúr2rZrcrGrdr6r[r5rRr?rS)r#r/rZdexr`rarerfrrrÚtest_source_selecteds*     z GenPageTest.test_source_selectedcCs¼|j}|j}|`|j}|j}| dd¡|ƒ||j ¡dƒ||j ¡dƒ| dd¡|ƒ||j ¡dƒ||j ¡dƒ|  d¡|ƒ||j ¡dƒ||j ¡dƒt ƒ|_dS)Nrrö)r‹r$r) r5rErrrùZbutton_helplist_editr™Zbutton_helplist_removerúrûr)r#r›r/ZsadÚhrrrÚtest_set_add_delete_state5s$   z%GenPageTest.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) NT)rÖrrör)Úname1Úfile1)r¤Úfile2)r(r¤rV)r5rÚ HelpSourcerrErrùrrrNr6rrËZhelplist_item_addr?ÚlistrRrS)r#r›Úorig_helpsourcer¹r/rrrÚtest_helplist_item_addMs* z"GenPageTest.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) NT)rÖrrör()r(r)r)r()r¤r*)r¤r4)r5rr+rrErrùrúrûrürrÚappendrNr6rrËZhelplist_item_editrRrSr?)r#r›r-r¹r/rrrÚtest_helplist_item_editis0    (z#GenPageTest.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)Nrrör()r(r)rr4)r5rErrùrúrûrürrr/rNr6rZhelplist_item_removerRr?)r#r›r/rrrÚtest_helplist_item_remove‡s     z%GenPageTest.test_helplist_item_removecCsV|j}|`|j ¡|j d¡|j d¡| ¡| tddddœ¡tƒ|_dS)N)r(r))r¤r*rz name1;file1z name2;file2)rLÚ2)rErrrr/r5rqr)r#r/rrrÚtest_update_help_changes—s     z$GenPageTest.test_update_help_changesN)r&r'r(rxrIrJrKrrrrrr r!r"r#r%r'r.r0r1r3rrrrr¶s$     rc@sdeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)Ú VarTraceTestcCs"t ¡|_ttƒ|_ttƒ|_dS)N)rZVarTracerrrÚivr Úbv)rHrrrrI¦s  zVarTraceTest.setUpClasscCs|`|`|`dS)N)rr5r6)rHrrrrJ¬szVarTraceTest.tearDownClasscCs|j ¡d|_dS)Nr)rrr6)r#rrrrK°s zVarTraceTest.setUpcGs|jd7_dS)Né )r6)r#ÚparamsrrrÚvar_changed_increment´sz"VarTraceTest.var_changed_incrementcGsdS)Nr)r#r8rrrÚvar_changed_boolean·sz VarTraceTest.var_changed_booleancCs.|j}| ¡| |jg¡| |jg¡dS)N)rÚ__init__r5ÚuntracedÚtraced)r#ÚtrrrrÚ test_initºszVarTraceTest.test_initcCsF|j}|j d¡|j d¡| ¡| |jg¡| |jg¡dS)Nrr4)rr<r/r=rr5)r#r>rrrÚ 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)N)rŠ)rr‰r)rrrr*Ú make_callbackÚaddr5r9ZassertIsr6r:rrr.Zassert_called_withr5r=r<) r#r>ÚfuncÚcbr5r6ÚsvZsv2rrrrrÚtest_addÈs$    zVarTraceTest.test_addcCst|j |jd¡}| t|ƒ¡|j d¡| dtd¡|ƒ| dtd¡|  tdddd¡t  ¡dS)N)rr‰ré*r‰rrZ42) rrAr5r?ÚcallablerNr®rr\r5r)r#rDrrrÚtest_make_callbackàs 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)Nr4r7r)rrBr5r9r6r:rTr5r<ZassertCountEqualr=rNrRr6r)r#r>r5r6rrrrrÚtest_attach_detachìs*    zVarTraceTest.test_attach_detachN)r&r'r(rxrIrJrKr9r:r?r@rFrIrJrrrrr4¤s   r4Ú__main__rV)Ú verbosity)+ZidlelibrZ test.supportrZunittestrZidlelib.idle_test.mock_idlerZtkinterrrrr r r r Zidlelib.configdialogr rrrrZIdleUserConfParserrrrrqrr<rþrr!ZTestCaser"r)rCryr€rírr4r&rrrrrÚsP        +oh