3 Õì2agÂã@sjddlmZddlmZedƒddlZddlmZddlmZddlm Z m Z m Z m Z m Z mZddlmZdd lmZmZmZejZejd ƒejd ƒejd ƒejd ƒd œZdadaed Zed ZedZedZdd„Zdd„ZGdd„dej ƒZ!Gdd„dej ƒZ"Gdd„dej ƒZ#Gdd„dej ƒZ$Gdd„dej ƒZ%Gdd„dej ƒZ&e'd k�rfej(d!d"�dS)#é)Ú configdialog)ÚrequiresZguiN)Úmock)ÚFunc)ÚTkÚ StringVarÚIntVarÚ BooleanVarÚDISABLEDÚNORMAL)Úconfig)ÚidleConfÚchangesÚtracersÚ)ÚmainÚ highlightÚkeysÚ extensionsrrrrcCs tt_tƒatjtddd�adS)NZTestT)Z_utest)Útestcfgr ÚuserCfgrÚrootrZ ConfigDialogÚdialog©rrú6/opt/alt/python36/lib64/python3.6/test_configdialog.pyÚ setUpModule!srcCs:tt_tjƒtjƒtjƒtjƒtj ƒdaa dS)N) Úusercfgr rrÚdetachÚclearrrÚupdate_idletasksZdestroyrrrrrÚtearDownModule(sr c@sdeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)Ú FontPageTestcCs,tj}|_tjj|ƒtƒ|_|jƒdS)N)rÚfontpageÚpageÚnoteÚselectrÚ set_samplesÚupdate)Úclsr#rrrÚ setUpClass:s  zFontPageTest.setUpClasscCs |j`dS)N)r#r&)r(rrrÚ tearDownClassAszFontPageTest.tearDownClasscCs tjƒdS)N)rr)ÚselfrrrÚsetUpEszFontPageTest.setUpcCs’tjƒ|j}|jjdƒ|jjdƒ|jjdƒd|j_|j ƒ|j |jj ƒdƒ|j |jj ƒdƒ|j |jj ƒƒ|j |jjdƒtjƒdS)NZFakeÚ1Tré)rrr#Ú font_nameÚsetÚ font_sizeÚ font_boldr&ÚcalledZ load_font_cfgÚassertNotEqualÚgetÚ assertFalseÚ assertEqualÚattach)r+ÚdrrrÚtest_load_font_cfgHs   zFontPageTest.test_load_font_cfgcCsÞ|j}|jjƒdkr|jdƒ|j}|jdƒ|jjdƒ}|jƒ|jƒ|jdƒ|jdƒ|jdƒ}|j ||ƒ|j |j jƒ|j ƒƒ|jƒ|jƒ|jdƒ|jdƒ|jdƒ}|j ||ƒ|j |j jƒ|j ƒƒdS) Nézneed at least 2 fontsrZactivez zzz)r#ÚfontlistÚsizeÚskipTestÚactivater5Ú focus_forcer'Úevent_generater4ÚassertInr/Úlowerr7)r+r9r<ÚfontZ down_fontZup_fontrrrÚtest_fontlist_keyXs(           zFontPageTest.test_fontlist_keyc CsÌ|j}|jjƒdkr|jdƒ|j}|jdƒ|jƒ|jdƒ|jƒ|jdƒ\}}}}||d7}||d7}|j d||d�|j d||d�|j dƒ}|j dƒ}|j ||ƒ|j |j j ƒ|jƒƒdS) Nr;zneed at least 2 fontsrr.z )ÚxÚyzÚanchor)r#r<r=r>r?r@Úseer'ÚbboxrAr5r7rBr/rC) r+r9r<rFrGÚdxÚdyZfont1Z select_fontrrrÚtest_fontlist_mouseus"        z FontPageTest.test_fontlist_mousecCs*|j}|jjjdƒ|j|jjƒdƒdS)Né(Ú40)r#ZsizelistÚvariabler0r7r1r5)r+r9rrrÚ test_sizelistŒszFontPageTest.test_sizelistcCsJ|j}|jjdƒ|jjƒ|j|jjƒƒ|jjƒ|j|jjƒƒdS)NF)r#r2r0Z bold_toggleÚinvokeÚ assertTruer5r6)r+r9rrrÚtest_bold_toggle’s    zFontPageTest.test_bold_togglecCstjtddƒ}t|dƒ}|ddk}|j}|jj|ƒ|jj|ƒd|j_ |j jdƒdd|t|ƒdœi}|j t |ƒ|j |jj dƒt jƒ|jjd ƒddd t|ƒdœi}|j t |ƒ|j |jj dƒt jƒ|jj| ƒddd t| ƒdœi}|j t |ƒ|j |jj d ƒdS) NrÚ EditorWindowr.r;Úboldrz Test Font)rDz font-sizez font-boldZ20é)r ZGetFontrÚstrr#r1r0r2r&r3r/r7Úmainpagerr)r+Z default_fontZ default_sizeZ default_boldr9ÚexpectedrrrÚ test_font_set›s6         zFontPageTest.test_font_setcCs’|j}|`|j|jf}ii|_|_|jjdƒ|jjdƒ|jjdƒddi}|jƒ|j|j|jkor|knƒ|\|_|_t ƒ|_dS)NÚtestÚ5r.rDrV)r\r]rV) r#r&Z font_sampleÚhighlight_sampler/r0r1r2rSr)r+r9Z orig_samplesrZrrrÚtest_set_samples¿s    " zFontPageTest.test_set_samplesN)Ú__name__Ú __module__Ú __qualname__Ú classmethodr)r*r,r:rErMrQrTr[r_rrrrr!3s   $r!c@s(eZdZedd„ƒZdd„Zdd„ZdS)Ú IndentTestcCstj|_|jjƒdS)N)rr"r#r')r(rrrr)ÓszIndentTest.setUpClasscCs0|j}|jjdƒ|jƒ|j|jjƒdƒdS)Néé)r#Ú space_numr0Z load_tab_cfgr7r5)r+r9rrrÚtest_load_tab_cfgØs zIndentTest.test_load_tab_cfgcCsD|j}tjƒ|jjdƒ|j|jjƒdƒ|jtdddiiƒdS)NéreZIndentz num-spacesZ16) r#rrZ indent_scaler0r7rgr5rY)r+r9rrrÚtest_indent_scaleÞs  zIndentTest.test_indent_scaleN)r`rarbrcr)rhrjrrrrrdÑs rdc@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+S),Ú HighPageTestcCsDtj}|_tjj|ƒtƒ|_tƒ|_tƒ|_tƒ|_ |j ƒdS)N) rÚhighpager#r$r%rÚset_theme_typeÚpaint_theme_sampleÚset_highlight_targetÚset_color_sampler')r(r#rrrr)ís  zHighPageTest.setUpClasscCs|j}|`|`|`|`dS)N)r#rmrnrorp)r(r9rrrr*÷szHighPageTest.tearDownClasscCsX|j}x$tjddƒD]}tjdj|ƒqWtjƒd|j_d|j _d|j _d|j _dS)NÚuserrr) r#r ÚGetSectionListrÚremove_sectionrrrmr3rnrorp)r+r9Úsectionrrrr,ýszHighPageTest.setUpcCs–tjƒ|j}|j}tjdd�t_|jƒ|j |j j ƒƒ||j j ƒdƒ||j j ƒdƒ||jjƒdƒ||jjdƒ||jjdƒ||jjdƒtjdddd ƒtjdd d d ƒ|jƒ||j j ƒdƒ||j j ƒdƒ||jjd ƒ||jjd ƒ||jjd ƒtjd d�t_tjddddƒ|jƒ|j|j j ƒƒ||j j ƒdƒ||j j ƒd ƒ||jjdƒ||jjdƒ||jjdƒt`tjƒdS)Nz IDLE Classic)Ú return_valuez- no custom themes -Údisabledr.rÚtest1ÚoptionÚvalueÚtest2Úoption2Úvalue2r;rÚThemeÚdefaultÚ0rW)rv)rrr#r7rÚMockr Z CurrentThemeZload_theme_cfgrSÚ theme_sourcer5Ú builtin_nameÚ custom_nameÚcustom_theme_onÚstatermr3rnroÚ SetOptionr6r8)r+r9ÚeqrrrÚtest_load_theme_cfg s>z HighPageTest.test_load_theme_cfgcCs®|j}|j}tƒ|_tƒ|_|jjƒ|tdddiiƒ||jjdƒ||jjdƒt j ƒ|j j dƒ|j jƒ|jtdddiiƒ||jjdƒ||jjdƒ|`|`dS) Nr}r~ÚTruer.rú !disabledÚFalse)rŠ) r7r#rÚvar_changed_builtin_nameÚvar_changed_custom_nameZbuiltin_theme_onrRrYr3rrr„r…)r+r‡r9rrrÚtest_theme_source2s   zHighPageTest.test_theme_sourcecCs|j}|j}dddg}tjddddƒ|jj|dƒ|tddddœiƒ||jd d ƒ||jj d ƒt j ƒtjddddƒ|jj|dƒ|tdd diiƒ||jd d ƒ||jj d ƒt j ƒ|jj|dƒ|tddddœiƒ||jd dƒ||jj dƒdS)Nz IDLE Classicz IDLE DarkzIDLE Newrr}ÚnameÚspam)r�Úname2ÚtextzNew theme, see Helpr.r‘r;rrW) r7r#r r†Ú builtinlistÚSetMenurYZ theme_messagernr3rr)r+r‡r9Ú item_listrrrÚtest_builtin_nameGs(  zHighPageTest.test_builtin_namecCst|j}|jjgdƒ|jdtƒ|j|jjdƒtj ƒ|jjdddgdƒ|jtdddiiƒ|j|jjdƒdS) Nz- no custom themes -r}rÚaÚbÚcr�r.) r#Ú customlistr”Ú assertNotInrYr7rnr3rr)r+r9rrrÚtest_custom_namecs zHighPageTest.test_custom_namecCs2|j}tƒ|_|jjdƒ|j|jjdƒ|`dS)NZgreenr.)r#rZon_new_color_setÚcolorr0r7r3)r+r9rrrÚ test_colorqs  zHighPageTest.test_colorcCsB|j}|j}|jjdddgdƒ||jjƒdƒ||jjdƒdS)Nr—r˜r™r.)r7r#Z targetlistr”Úhighlight_targetr5ror3)r+r‡r9rrrÚ test_highlight_target_list_mouseys z-HighPageTest.test_highlight_target_list_mousecsº|j}|j‰i}d}ˆj‰ˆjƒˆjdƒˆjƒ‡fdd„}‡fdd„}||ƒx`ˆjƒD]T}xNˆj|ƒddd…D]6}|d7}||ƒ|ˆjj ƒ||ƒ|ˆj j |ƒqxWq^WdS) Nrgð?cs(x"ˆjjƒD]\}}|||d<q WdS)Nr)Ztheme_elementsÚitems)ÚelemÚelementÚtag)r9rrÚtag_to_elementŽszEHighPageTest.test_highlight_target_text_mouse..tag_to_elementcsnˆj|ƒ\}}}}||d7}||d7}ˆjdddd�ˆjd||d�ˆjd||d�ˆjd||d�dS)Nr;zr)rFrGzzz)rJrA)ÚstartrFrGrKrL)ÚhsrrÚclick_it’s  z?HighPageTest.test_highlight_target_text_mouse..click_itr;r.) r7r#r^r@rIrZ tag_namesZ tag_rangesrŸr5ror3)r+r‡r¢Úcountr¥r¨r¤Ú start_indexr)r9r§rÚ test_highlight_target_text_mouse‚s"   z-HighPageTest.test_highlight_target_text_mousecCs´|j}|j}|`|jjdƒ|jƒ||jdtƒ||jdtƒ||j j ƒdƒ|jjdƒ|jƒ||jdtƒ||j j ƒdƒ||jdtƒ||j j ƒfƒt ƒ|_dS)NTr…rvFÚselected)rv)r¬) r7r#rmr�r0r“r ršr Úbutton_delete_customr…r„r)r+r‡r9rrrÚtest_set_theme_type§s  z HighPageTest.test_set_theme_typecCsX|j}|j}tjj}tƒ}tj_tƒ}|_|jjdƒ|j jdƒd |_ |j j ƒ||j j ƒdƒd|jj|jddƒf|_ |j j ƒ||j j ƒdƒd|_ |j jdƒ|jjd ƒd|_ |j j ƒ||jd ƒ||j j ƒdƒd |_ |j j ƒ||jj ƒ|j ƒ||j j ƒdƒ|j jdƒ|jjd ƒ|j j ƒ||j j ƒdƒ|`|tj_dS)NzEditor Breakpointz#ffffffrÚstyleÚ backgroundçÀÛk@çú#de0000Tr.z My New ThemeF)NN©r±r²r²)r´r³)r7r#rZtkColorChooserZaskcolorrÚget_new_theme_namerŸr0r�ÚresultZbutton_set_colorrRr5r¯ÚlookupÚframe_color_setr�r3rƒ)r+r‡r9Z orig_chooserZchooserÚgntnrrrÚtest_get_color¼s<             zHighPageTest.test_get_colorcCs„|j}d}|jjdƒ|jjdƒ|jjdƒ|jj|ƒ|j|jj|j ddƒ|ƒ|j|j j ddƒ|ƒ|jt dd |iiƒdS) Nz#3f7caeÚPythonz Selected TextTr¯r°ÚhiliteÚ foregroundzhilite-foreground) r#rƒr0rŸÚ fg_bg_toggler�r7r¯r·r¸r^Útag_cgetrl)r+r9r�rrrÚtest_on_new_color_setës    z"HighPageTest.test_on_new_color_setcCs>tj}tdd�}t_|j}d|_|j|jdƒdƒ|t_dS)NT)Ú return_selfz New Themer)rÚ SectionNamerr#r¶r7rµ)r+Úorig_sectionnameÚsnr9rrrÚtest_get_new_theme_nameøs z$HighPageTest.test_get_new_theme_namecCsˆ|j}tƒ}|_|jjdƒd|_|jjƒ|j|jt j dƒd|_d|_ |j|jt j dƒ|jjƒ|j |jt j dƒ|`dS)NTrrz my new themer) r#rrµr�r0r¶Zbutton_save_customrRr›r rr3rB)r+r9r¹rrrÚtest_save_as_new_themes    z#HighPageTest.test_save_as_new_themecCs(|j}|j}|jjdƒ|jjdƒd}d}|j|tjƒ|j|ƒ|tj ddƒ|gƒ|tj ddƒtj d|ƒƒ||j j ƒ|ƒ|j |jj ƒƒ||jjdƒtjd|d d ƒ|j|tjƒ|j|ƒ|tj ddƒ||gƒ|jtj d|ƒtj d|ƒƒtjd|d d ƒ|tj d|ƒtj d|ƒƒdS) NTz IDLE Classiczmy new custom themezmy second custom themerqrr~r.zhit-backgroundÚyellow)r7r#r�r0r‚r›r rÚ create_newrrZ GetThemeDictrƒr5r6rmr3rÚ add_optionr4r†)r+r‡r9Ú first_newÚ second_newrrrÚtest_create_new_and_save_news.      z)HighPageTest.test_create_new_and_save_newcCs¨|j}|j}|`|jjdƒ||jjƒdƒ||jjƒdƒ|j|j ƒ||j j dƒ|jjdƒ||jjƒd ƒ||jjƒfƒ|j|j ƒ||j j dƒt ƒ|_dS) NZCursorrvr¬r.ÚCommentr;)rvr¬)rv)r¬) r7r#rorŸr0Úfg_onr…Úbg_onrSr¾rpr3r)r+r‡r9rrrÚtest_set_highlight_target5s    z&HighPageTest.test_set_highlight_targetcCs@|j}|j}|jjƒ|j|jdƒ|jjƒ|j|jdƒdS)Nr.r;)r#rprÎrRr7r3rÏ)r+r9ZscsrrrÚtest_set_color_sample_bindingJs   z*HighPageTest.test_set_color_sample_bindingcCs\|j}|`|jjdƒ|jjdƒ|jƒ|j|jj|jddƒ|j j ddƒƒt ƒ|_dS)Nz Selected TextTr¯r°r¼r½) r#rprŸr0r¾r7r¯r·r¸r^r¿r)r+r9rrrÚtest_set_color_sampleTs  z"HighPageTest.test_set_color_samplecCsX|j}|j}|`|jj}tj}d}d}|jjdƒ|j jdƒd}|j |ƒd|j _ |jƒ||d|ƒ||ddd �ƒ||d |ƒ||d d d �ƒ|j |d |ƒdƒ|j |d |ƒdƒ||j j dƒtjd|ddƒtjd|ddƒ|jƒ||d|ƒ||ddd �ƒ||d |ƒ||d d d �ƒ||d |ƒdƒ||d |ƒdƒ||j j dƒtƒ|_dS)Nr½r°Tz IDLE Darkz IDLE TestrÚbreakÚfg)ZfgBgZcursorZnormalÚbgZconsoleZbluerÇr.rzconsole-foregroundzconsole-backgroundr;)r7r#rnr^r¿r Z GetHighlightr�r0r‚rÈrpr3r4rrÉr)r+r‡r9Zhs_tagZghrÔrÕZthemerrrÚtest_paint_theme_sample_s6   z$HighPageTest.test_paint_theme_samplecCsp|j}|j}|jjdƒtƒ}|_tƒt_tƒt_d}t j dj |ddƒddit |<|j jdƒ|jj|ƒd|_|jjƒ||jd ƒ|t |ddiƒ|t jd dƒdgƒ|tjjd ƒ|tjjd ƒ||jjd ƒd |_|jjƒ||jd ƒ|j|t ƒ|t jd dƒgƒ||jjƒdƒ||jjƒdƒ|tjjd ƒ|tjjd ƒ||jjd ƒt`t`|`dS)Nú !disabledz spam themerr�ryrxr‰Fr.rqrTr;rvz- no custom themes -)r×)rv)r7r#r­r…rÚaskyesnorÚdeactivate_current_configÚactivate_config_changesr rr†rlr�r0rƒr¶rRr3rrrmr›r„r5)r+r‡r9ÚyesnoZ theme_namerrrÚtest_delete_custom„s>          zHighPageTest.test_delete_customN)r`rarbrcr)r*r,rˆrŽr–rœržr r«r®rºrÀrÅrÆrÌrÐrÑrÒrÖrÜrrrrrkæs*  ) %/     %rkc@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}|_tjj|ƒtƒ|_tƒ|_dS)N)rÚkeyspager#r$r%rÚ set_keys_typeÚload_keys_list)r(r#rrrr)µs  zKeysPageTest.setUpClasscCs|j}|`|`dS)N)r#rßrà)r(r#rrrr*¼szKeysPageTest.tearDownClasscCsH|j}x$tjddƒD]}tjdj|ƒqWtjƒd|j_d|j _dS)Nrqrr) r#r rrrrsrrrßr3rà)r+r9rtrrrr,Ás zKeysPageTest.setUpcCs¨tjƒ|j}|j}tjdd�t_|jƒ|j |j j ƒƒ||j j ƒdƒ||j j ƒdƒ||jjƒdƒ||jjdƒ||jjdƒ||jjdƒtjdddd ƒtjdd d d ƒ|jƒ||j j ƒdƒ||j j ƒdƒ||jjd ƒ||jjd ƒ||jjdƒtjd d�t_tjdd�t_tjddddƒ|jƒ|j|j j ƒƒ||j j ƒdƒ||j j ƒd ƒ||jjdƒ||jjdƒ||jjdƒt`t`tjƒdS)NúIDLE Classic OSX)ruz- no custom keys -rvr.rrwrxryrzr{r|r;zIDLE Modern UnixrÚKeysr~rrW)rv)rá)rá)rz)rrr#r7rr€r Z CurrentKeysZ load_key_cfgrSÚ keyset_sourcer5r‚rƒÚcustom_keyset_onr…rßr3ràÚargsr†Z default_keysr6r8)r+r9r‡rrrÚtest_load_key_cfgËs@zKeysPageTest.test_load_key_cfgcCs®|j}|j}tƒ|_tƒ|_|jjƒ|tdddiiƒ||jjdƒ||jjdƒt j ƒ|j j dƒ|j jƒ|jtdddiiƒ||jjdƒ||jjdƒ|`|`dS) Nrâr~r‰r.rú !disabledr‹)rç) r7r#rrŒr�Zbuiltin_keyset_onrRrYr3rrrär…)r+r‡r9rrrÚtest_keyset_sourceõs   zKeysPageTest.test_keyset_sourcecCs2|j}|j}tjdjdƒdddg}|jj|dƒ|tddddœiƒ||jddƒ||j j d ƒ||j j dƒt j ƒtjddd d ƒ|jj|dƒ|tdd diiƒ||jddƒ||j j d ƒ||j j dƒt j ƒ|jj|dƒ|tddddœiƒ||jddƒ||j j dƒ||j j dƒdS)NrrâzIDLE Classic WindowsúIDLE Classic OSXúIDLE Modern UNIX)r�r‘r’zNew key set, see Helpr.r�zIDLE Classic Unixr‘r;rrW)rê)rê)ré)r7r#r rrsr“r”rYZ keys_messageràr3rårrr†)r+r‡r9r•rrrr– s0 zKeysPageTest.test_builtin_namecCst|j}|jjgdƒ|jdtƒ|j|jjdƒtj ƒ|jjdddgdƒ|jtdddiiƒ|j|jjdƒdS) Nz- no custom keys -rârr—r˜r™r�r.) r#ršr”r›rYr7ràr3rr)r+r9rrrrœ*s zKeysPageTest.test_custom_namecCsÀtjddddƒ|j}|jjdƒ|jjddƒ|jjddƒ|jjd d ƒ|jjdƒ|jj dƒ|j jd ƒ|j t ddd iiƒ|jjd ƒ|jj d ƒ|j jd ƒ|j t d d d iiƒdS) NrZZzDummyÚenabler‰zmy custom keysrÚendÚcopyr.zz-inz ZZzDummy_cfgBindings)r r†r#rƒr0Ú bindingslistÚdeleteÚinsertÚ selection_setÚselection_anchorÚ keybindingr7rÞÚextpage)r+r9rrrÚtest_keybinding8s        zKeysPageTest.test_keybindingcCs´|j}|j}|`|jjdƒ|jƒ||jdtƒ||jdtƒ||j j ƒdƒ|jjdƒ|jƒ||jdtƒ||j j ƒdƒ||jdtƒ||j j ƒfƒt ƒ|_dS)NTr…rvFr¬)rv)r¬) r7r#rßrãr0r“r ršr Úbutton_delete_custom_keysr…rär)r+r‡r9rrrÚtest_set_keys_typeMs  zKeysPageTest.test_set_keys_typecCsŽ|j}|j}tj}tdd�}t_tƒ}|_|jjdƒ|jj ddƒ|jj ddƒ|jj dƒ|jj dƒ|j jdƒ|jjdƒd|_|jjƒ||jjd ƒdƒ||j jƒdƒd |_d|_|jjƒ||jd ƒ||jjd ƒdƒd |_|jjƒ||jjƒ|jƒ||jjd ƒd ƒ||j jƒd ƒ|jjdƒd|_d|_|jjƒ||jdƒ||jjd ƒdƒ||j jƒdƒ|`|t_dS)NT)rÁú !disabledrrìzcopy - zKey-arrHz r.zMy New Key Setzcopy - Fzzcopy - )rø)r7r#rZ GetKeysDialogrÚget_new_keys_nameÚbutton_new_keysr…rîrïrðrñròrór0rãr¶rRr5r3rƒ)r+r‡r9Zorig_getkeysdialogZgkdÚgnknrrrÚtest_get_new_keysbsF             zKeysPageTest.test_get_new_keyscCs>tj}tdd�}t_|j}d|_|j|jdƒdƒ|t_dS)NT)rÁzNew Keysr)rrÂrr#r¶r7rù)r+rÃrÄr9rrrÚtest_get_new_keys_name’s z#KeysPageTest.test_get_new_keys_namecCst|j}tƒ}|_|jjdƒd|_|jjƒd|_d|_|j |jt j dƒ|jjƒ|j |jt j dƒ|`dS)NTrzmy new key setrr) r#rrùrãr0r¶Zbutton_save_custom_keysrRr3r›r rrB)r+r9rûrrrÚtest_save_as_new_key_setœs    z%KeysPageTest.test_save_as_new_key_setcCsæ|j}|j}|jddƒ|jddƒ|jddƒ|jdƒ|jƒ|jdƒ|jƒ|jdƒ\}}}}||d7}||d7}|j dddd�|j d ||d�|j d ||d�|j d ||d�|j |j d ƒdƒ|j |j j ƒfƒdS) Nrrìrír.Úfindr;z)rFrGzz zrH)r#rîrïrðr?r@rIr'rJrAr7r5rúr…)r+r9r˜rFrGrKrLrrrÚtest_on_bindingslist_select®s$       z(KeysPageTest.test_on_bindingslist_selectcCs|j}|j}|jjdƒ|jjdƒd}d}|j|tjƒ|j|ƒ|tj ddƒ|gƒ|tj dƒtj |ƒƒ||j j ƒ|ƒ|j |jj ƒƒ||jjdƒtjd|dd ƒ|j|tjƒ|j|ƒ|tj ddƒ||gƒ|jtj |ƒtj |ƒƒtjd|dd ƒ|tj |ƒtj |ƒƒdS) NTzIDLE Classic Windowszmy new custom key setzmy second custom keysetrqrr.ríz )r7r#rãr0r‚r›r rZcreate_new_key_setrrÚ GetKeySetrƒr5r6rßr3rrÉr4r†)r+r‡r9rÊrËrrrÚ,test_create_new_key_set_and_save_new_key_setÃs,        z9KeysPageTest.test_create_new_key_set_and_save_new_key_setcCsV|j}|j}tƒ}t_|`|j}|jddƒ|jddƒ|jddƒddgdgd gd œ|_ t j d d d dƒd}|jd ƒ||j ddƒ|ƒ||j dƒdƒ||j ƒfƒ|jdƒ|jdƒ|jd ƒ||j ddƒ|ƒ||j dƒdƒ||j ƒdƒ|jdƒ|jdƒ|jd ƒ||j ddƒ|ƒ||j dƒdƒ||j ƒdƒtƒ|_t`dS)Nrrìz<>r.z<>zzzz )z<>z<>z<>rzmy keysr�z ú© - ú,force-open-completions - úspam - rHrr;)rrr)r.)r;)r7r#rr rràrîrïrðr¶rrÉr5Z curselectionrñrò)r+r‡r9Zgksr˜rZrrrÚtest_load_keys_listâsB            z KeysPageTest.test_load_keys_listcCsp|j}|j}|jjdƒtƒ}|_tƒt_tƒt_d}t j dj |ddƒddit |<|j jdƒ|jj|ƒd|_|jjƒ||jd ƒ|t |ddiƒ|t jd dƒdgƒ|tjjd ƒ|tjjd ƒ||jjd ƒd |_|jjƒ||jd ƒ|j|t ƒ|t jd dƒgƒ||jjƒdƒ||jjƒdƒ|tjjd ƒ|tjjd ƒ||jjd ƒt`t`|`dS)Nú !disabledz spam key setrr�ryrxr‰Fr.rqrTr;rvz- no custom keys -)r)rv)r7r#rör…rrØrrÙrÚr rr†rÞrãr0rƒr¶rRr3rrrßr›rär5)r+r‡r9rÛZ keyset_namerrrÚtest_delete_custom_keys s>          z$KeysPageTest.test_delete_custom_keysN)r`rarbrcr)r*r,rærèr–rœrõr÷rürýrþrrrrrrrrrÝ®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#S)$Ú GenPageTestcCs@tj}|_tjj|ƒtƒ|_|_tƒ|_|_ |j ƒdS)N) rZgenpager#r$r%rr0Úset_add_delete_stateÚupcÚupdate_help_changesr')r(r#rrrr)=s   zGenPageTest.setUpClasscCs2|j}|`|`|`|`|jjddƒ|jjƒdS)Nrrì) r#r0r r r ÚhelplistrïÚ user_helplistr)r(r#rrrr*Es zGenPageTest.tearDownClasscCs tjƒdS)N)rr)r+rrrr,MszGenPageTest.setUpcCsÒ|j}|j}|jjdƒ|jjdƒ|jjdƒ|jjdƒ|jjddƒddg|_ t j ddddƒ|j ƒ||jj ƒd ƒ||jj ƒd ƒ||jj ƒd ƒ||jj ƒd ƒ||jj d dƒdƒ||j dgƒdS)Nr.rìZbadZworserÚ HelpFilesr-z name;filerZ80rOr�Úfile)r�)r�rr-)r7r#Z startup_editr0ÚautosaveZ win_widthZ win_heightr rðrr r†Zload_general_cfgr5)r+r‡r9rrrÚtest_load_general_cfgPs      z!GenPageTest.test_load_general_cfgcCsN|j}|jjƒ|jtdddiiƒtjƒ|jjƒ|jtdddiiƒdS)NÚGeneralzeditor-on-startupr-r)r#Zstartup_editor_onrRr7rYrrZstartup_shell_on)r+r9rrrÚ test_startupcs  zGenPageTest.test_startupcCsr|j}|jjddƒ|jjddƒ|jtdddiiƒtjƒ|jjddƒ|jjddƒ|jtdddiiƒdS)NrrìÚ11rUZheightÚwidth) r#Zwin_height_intrïrðr7rYrrZ win_width_int)r+r9rrrÚtest_editor_sizemszGenPageTest.test_editor_sizecCs8|jjjddƒ|jjjddƒ|jtdddiiƒdS)NrrìrZ AutoCompleteZ popupwait)r#Z auto_wait_intrïrðr7rô)r+rrrÚtest_autocomplete_waitwsz"GenPageTest.test_autocomplete_waitcCsŒ|j}|j}|jdjdƒ|tdddiiƒtjƒ|jjddƒ|jj ddƒ|tdddiiƒtjƒ|j jƒ|tdd d iiƒdS) NZmenurZ ParenMatchr¯Úopenerrìrz flash-delayZbellr‹) r#r7Zparen_style_typerRrôrrZparen_flash_timerïrðZbell_on)r+r9r‡rrrÚtest_parenmatch|s zGenPageTest.test_parenmatchcCsF|j}|jjƒ|jtdddiiƒ|jjƒ|jtdddiiƒdS)Nrrr-r)r#Z save_auto_onrRr7rYZ save_ask_on)r+r9rrrÚ test_autosave‰s   zGenPageTest.test_autosavecCs8|jjjddƒ|jjjddƒ|jtdddiiƒdS)NrrìrZFormatParagraphz max-width)r#Zformat_width_intrïrðr7rô)r+rrrÚtest_paragraph�szGenPageTest.test_paragraphcCs8|jjjddƒ|jjjddƒ|jtdddiiƒdS)Nrrìr-Z CodeContextZmaxlines)r#Z context_intrïrðr7rô)r+rrrÚ test_context•szGenPageTest.test_contextcCsü|j}|j|_|j|_|j}d}|j|dƒ|j|ƒ|jƒ|j |ƒ|j ƒ|j |ƒ\}}}}||d7}||d7}d|j_ |j_ |j dddd�|j d||d�|j d||d�|j d ||d�|j|jd ƒdƒ|j|jj ƒ|j|jj ƒdS) NrìÚsourcer;rz)rFrGzz zrH)r#r r0r r r rðr?r@rIr'rJr3rAr7r5rSr6)r+r9r ZdexrFrGrKrLrrrÚtest_source_selectedšs*     z GenPageTest.test_source_selectedcCs¼|j}|j}|`|j}|j}|jddƒ|ƒ||jjƒdƒ||jjƒdƒ|jddƒ|ƒ||jjƒdƒ||jjƒdƒ|j dƒ|ƒ||jjƒfƒ||jjƒfƒt ƒ|_dS) Nrrìrvr)rv)rv)rv)rv) r7r#r r rïZbutton_helplist_editr…Zbutton_helplist_removerðrñr)r+r‡r9ZsadÚhrrrÚtest_set_add_delete_state²s$   z%GenPageTest.test_set_add_delete_statecCsú|j}tj}tdd�}t_|j}|jjddƒ|jjƒd|j _ |j _ d|_ |j ƒ|jt|jjddƒƒ|jko~gknƒ|j|j j ƒd |_ |j ƒd |_ |j ƒ||jjddƒd ƒ||jddgƒ||j j d ƒ|j|j j ƒ|t_dS)NT)rÁrrìrÚname1Úfile1r‘Úfile2r;)r"r#)r‘r$)r"r‘)r"r#)r‘r$)r7rÚ HelpSourcerr#r rïrrr0r3r r¶Zhelplist_item_addrSÚlistr5r6)r+r‡Úorig_helpsourcer§r9rrrÚtest_helplist_item_addÊs* z"GenPageTest.test_helplist_item_addcCs*|j}tj}tdd�}t_|j}|jjddƒ|jjddƒ|jjdƒ|jj dƒ|j j ƒ|j j d ƒd|j _|j_d|_|jƒd |_|jƒ||jjddƒd ƒ||j dgƒ|j|jjƒd|_|jƒ||jjddƒdƒ||j dgƒ|j|jj|j jk�od knƒ|t_dS)NT)rÁrrìr"r#rr‘r$r.)r"r#)r"r#)r")r"r#)r‘r$)r‘)r‘r$)r7rr%rr#r rïrðrñròrrÚappendr0r3r r¶Zhelplist_item_editr5r6rS)r+r‡r'r§r9rrrÚtest_helplist_item_editæs0    (z#GenPageTest.test_helplist_item_editcCs¸|j}|j}|jjddƒ|jjddƒ|jjdƒ|jjdƒ|jjƒ|jj dƒd|j _ |j _ |j ƒ||jjddƒfƒ||jgƒ|j|j j |j j ko¬dknƒdS)Nrrìr"r#r.)r"r#)r7r#r rïrðrñròrrr)r0r3r Zhelplist_item_remover5rS)r+r‡r9rrrÚtest_helplist_item_removes     z%GenPageTest.test_helplist_item_removecCsV|j}|`|jjƒ|jjd ƒ|jjd ƒ|jƒ|jtddddœƒtƒ|_dS) Nr"r#r‘r$rz name1;file1z name2;file2)r-Ú2)r"r#)r‘r$)r#r rrr)r7rYr)r+r9rrrÚtest_update_help_changess     z$GenPageTest.test_update_help_changesN)r`rarbrcr)r*r,rrrrrrrrrr!r(r*r+r-rrrrr 7s"     r c@sdeZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dS)Ú VarTraceTestcCs"tjƒ|_ttƒ|_ttƒ|_dS)N)rZVarTracerrrÚivr Úbv)r(rrrr)#s  zVarTraceTest.setUpClasscCs|`|`|`dS)N)rr/r0)r(rrrr*)szVarTraceTest.tearDownClasscCs|jjƒd|_dS)Nr)rrr3)r+rrrr,-s zVarTraceTest.setUpcGs|jd7_dS)Né )r3)r+ÚparamsrrrÚvar_changed_increment1sz"VarTraceTest.var_changed_incrementcGsdS)Nr)r+r2rrrÚvar_changed_boolean4sz VarTraceTest.var_changed_booleancCs.|j}|jƒ|j|jgƒ|j|jgƒdS)N)rÚ__init__r7ÚuntracedÚtraced)r+ÚtrrrrÚ test_init7szVarTraceTest.test_initcCsF|j}|jjdƒ|jjdƒ|jƒ|j|jgƒ|j|jgƒdS)Nrr.)rr6r)r7rr7)r+r8rrrÚ test_clear=s   zVarTraceTest.test_clearc CsÌ|j}tƒ}tj|d�}|_|j|j|jƒ}|j||jƒ|j|j |j ƒ}|j||j ƒt t ƒ}|j|dƒ}|j||ƒ|j ƒ|j|dƒ||jf||j f||fg}|j|jgƒ|j|j|ƒ|`dS)N)rurrtrx)rrtrx)rrtrx)rrrr€Ú make_callbackÚaddr/r3ZassertIsr0r4rrZassert_called_onceZassert_called_withr7r7r6) r+r8ÚfuncÚcbr/r0ÚsvZsv2rZrrrÚtest_addEs$    zVarTraceTest.test_addcCst|jj|jdƒ}|jt|ƒƒ|jjdƒ|jdtdƒ|ƒ|jdtdƒ|j tddddƒtj ƒdS)Nrrtrxé*Z42)rrtrx) rr;r/rSÚcallabler0r›rrBr7r)r+r>rrrÚtest_make_callback]s zVarTraceTest.test_make_callbackcCsò|j}|j|j|jƒ}|j|j|jƒ}||jf||jfg}|jƒ|j|jgƒ|j |j |ƒ|j dƒ|j|j ƒdƒ|j|j dƒd|_ |jƒ|j dƒ|j|j dƒd|_ |jƒ|j|j gƒ|j |j|ƒ|j dƒ|j|j dƒdS)Nr.r1r)rr<r/r3r0r4r8r7r6ZassertCountEqualr7r0r5r3r)r+r8r/r0rZrrrÚtest_attach_detachis*    zVarTraceTest.test_attach_detachN)r`rarbrcr)r*r,r3r4r9r:r@rCrDrrrrr.!s   r.Ú__main__r;)Ú verbosity))ZidlelibrZ test.supportrZunittestrZidlelib.idle_test.mock_idlerZtkinterrrrr r r r Zidlelib.configdialogr rrrrZIdleUserConfParserrrrrYrlrÞrôrr ZTestCaser!rdrkrÝr r.r`rrrrrÚsJ       K kh