3 § fgÂã@sndZddlmZddlmZedƒddlZddlmZddlmZddl m Z m Z m Z m Z mZmZdd lmZdd lmZmZmZejZejd ƒejd ƒejd ƒejd ƒd œZdadaed ZedZedZedZdd„Zdd„Z Gdd„dej!ƒZ"Gdd„dej!ƒZ#Gdd„dej!ƒZ$Gdd„dej!ƒZ%Gdd„dej!ƒZ&Gdd „d ej!ƒZ'e(d!k�rjej)d"d#�dS)$zfTest configdialog, coverage 94%. Half the class creates dialog, half works with user customizations. é)Ú 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úH/opt/alt/python36/lib64/python3.6/idlelib/idle_test/test_configdialog.pyÚ setUpModule!srcCs:tt_tjƒtjƒtjƒtjƒtj ƒdaa dS)N) Úusercfgr rrÚdetachÚclearrrÚupdate_idletasksZdestroyrrrrrÚtearDownModule(sr c@sheZdZdZedd„ƒZedd„ƒZdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z dd„Z dd„ZdS)Ú FontPageTestzîTest that font widgets enable users to make font changes. Test that widget actions set vars, that var changes add three options to changes and call set_samples, and that set_samples changes the font of both sample boxes. cCs,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#ZsizelistZvariabler0r7r1r5)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.rDrU)r[r\rU) r#r&Z font_sampleÚhighlight_sampler/r0r1r2rRr)r+r9Z orig_samplesrYrrrÚtest_set_samples¿s    " zFontPageTest.test_set_samplesN)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú classmethodr)r*r,r:rErMrPrSrZr^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_scaler0r7rgr5rX)r+r9rrrÚtest_indent_scaleÞs  zIndentTest.test_indent_scaleN)r_r`rarcr)rhrjrrrrrdÑs rdc@sÀeZdZdZedd„ƒZedd„ƒZdd„Zdd „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,S)-Ú HighPageTestz¶Test that highlight tab widgets enable users to make changes. Test that widget actions set vars, that var changes add options to changes and that themes work correctly. cCsDtj}|_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Ú0rV)rv)rrr#r7rÚMockr Z CurrentThemeZload_theme_cfgrRÚ 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_onrQrXr3rrr„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;rrV) r7r#r r†Ú builtinlistÚSetMenurXZ 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”Ú assertNotInrXr7rnr3rr)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¤Z 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_colorrQr5r®Ú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_customrQr›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_onrRr½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ÍrQr7r3rÎ)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µrQr3rrrmr›r„r5)r+r‡r9ÚyesnoZ theme_namerrrÚtest_delete_custom„s>          zHighPageTest.test_delete_customN)r_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˜eZdZdZedd„ƒZedd„ƒZdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"S)#Ú KeysPageTestz´Test that keys tab widgets enable users to make changes. Test that widget actions set vars, that var changes add options to changes and that key sets works correctly. cCs,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~rrV)rv)rà)rà)rz)rrr#r7rr€r Z CurrentKeysZ load_key_cfgrRÚ 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_onrQrXr3rrrã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;rrV)ré)ré)rè)r7r#r rrsr“r”rXZ 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›rXr7rß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µrQr5r3rƒ)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_keysrQr3r›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˜rYrrrÚ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µrQr3rrrÞr›rãr5)r+r‡r9rÚZ keyset_namerrrÚtest_delete_custom_keys s>          z$KeysPageTest.test_delete_custom_keysN)r_r`rarbrcr)r*r,rårçr–rœrôrörûrürýrÿrrrrrrrrÜ®s"   * 0 +rÜc@s eZdZdZedd„ƒZedd„ƒZdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$S)%Ú GenPageTestz·Test that general tab widgets enable users to make changes. Test that widget actions set vars, that var changes add options to changes and that helplist works correctly. cCs@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ïr r 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_onrQr7rXrrZstartup_shell_on)r+r9rrrÚ test_startupcs  zGenPageTest.test_startupcCsr|j}|jjddƒ|jjddƒ|jtdddiiƒtjƒ|jjddƒ|jjddƒ|jtdddiiƒdS)NrrëÚ11rTZheightÚwidth) r#Zwin_height_intrîrïr7rXrrZ 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_typerQró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_onrQr7rXZ 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'rJr3rAr7r5rRr6)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îr rr0r3r rµZhelplist_item_addrRÚ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ñr rÚappendr0r3r rµZhelplist_item_editr5r6rR)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ñr rr(r0r3r Zhelplist_item_remover5rR)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 r rr(r7rXr)r+r9rrrÚtest_update_help_changess     z$GenPageTest.test_update_help_changesN)r_r`rarbrcr)r*r,rrrrrrrrrr r'r)r*r,rrrrr7s$     rc@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.r/)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+r1rrrÚ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.)rr5r(r6rr7)r+r7rrrÚ 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.r2ZassertIsr/r3rrZassert_called_onceZassert_called_withr7r6r5) r+r7ÚfuncÚcbr.r/ZsvZsv2rYrrrÚtest_addEs$    zVarTraceTest.test_addcCst|jj|jdƒ}|jt|ƒƒ|jjdƒ|jdtdƒ|ƒ|jdtdƒ|j tddddƒtj ƒdS)Nrrtrxé*Z42)rrtrx) rr:r.rRÚ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.r0r)rr;r.r2r/r3r8r7r5ZassertCountEqualr6r0r5r3r)r+r7r.r/rYrrrÚtest_attach_detachis*    zVarTraceTest.test_attach_detachN)r_r`rarcr)r*r,r2r3r8r9r>rArBrrrrr-!s   r-Ú__main__r;)Ú verbosity)*rbZidlelibrZ test.supportrZunittestrZidlelib.idle_test.mock_idlerZtkinterrrrr r r r Zidlelib.configdialogr rrrrZIdleUserConfParserrrrrXrlrÝrórr ZTestCaser!rdrkrÜrr-r_rrrrrÚsL       K kh