B YI~dí%ã@sÌddlmZddlmZddlZddlmZddlmZmZddl m Z ddl m Z ej ZGdd „d ejƒZGd d „d ejƒZGd d „d ejƒZGdd„dejƒZGdd„dejƒZedkrÈejdd�dS)é)Ú config_key)ÚrequiresN)Úmock)ÚTkÚTclError)ÚFunc)Ú Mbox_funcc@s„eZdZGdd„deƒZedd„ƒZedd„ƒZdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„ZdS)ÚValidationTestc@s eZdZdd„ZeƒZeƒZdS)zValidationTest.ValidatorcOs,tjj|f|ž|ŽGdd„dƒ}||_dS)Nc@seZdZeƒZdS)z:ValidationTest.Validator.__init__..list_keys_finalN)Ú__name__Ú __module__Ú __qualname__rÚget©rrúF/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_config_key.pyÚlist_keys_finalsr)rÚ GetKeysDialogÚ__init__r)ÚselfÚargsÚkwargsrrrrrsz!ValidationTest.Validator.__init__N)r r r rrÚ get_modifiersrÚ showerrorrrrrÚ ValidatorsrcCsDtdƒtƒ|_|j ¡dgddgg}|j|jdd|dd�|_dS) NÚguiz zzÚTitlez<>T)Ú_utest)rrÚrootÚwithdrawrÚdialog)ÚclsZkeylistrrrÚ setUpClasss  zValidationTest.setUpClasscCs*|j ¡|j ¡|j ¡|`|`dS)N)rÚcancelrÚupdate_idletasksÚdestroy)rrrrÚ tearDownClass(s   zValidationTest.tearDownClasscCsd|jj_dS)NÚ)rrÚmessage)rrrrÚsetUp/szValidationTest.setUpcCs>|jj d¡|j ¡| |jjd¡| |jjjd¡dS)Nú r%zNo key specified.)rÚ key_stringÚsetÚokÚ assertEqualÚresultrr&)rrrrÚ test_ok_empty4s zValidationTest.test_ok_emptycCsJ|jj d¡d|jjj_|j ¡| |jjd¡| |jjj d¡dS)Nz ÚF11r%) rr)r*rr r-r+r,rr&)rrrrÚ test_ok_good:s   zValidationTest.test_ok_goodcCs(| |j d¡¡| d|jjj¡dS)Nzz No modifier) rrr r-r1r2r3rr&)rrrrÚtest_keys_no_modifier_badEs z(ValidationTest.test_keys_no_modifier_badcCs4d|jjj_| |j d¡¡| |jjjd¡dS)Nr/z r%) rrr r-Ú assertTruer2r,rr&)rrrrÚtest_keys_no_modifier_okJs z'ValidationTest.test_keys_no_modifier_okcCsJd|jjj_dg|jj_| |j d¡¡| d|jjj ¡g|jj_dS)NÚaÚShiftzzshift modifier) rrr r-rr1r2r3rr&)rrrrÚtest_keys_shift_badOs   z"ValidationTest.test_keys_shift_badc Cs”x„gddfdgddfdgddffD]`\}}}|j|||d��@||jjj_||jj_| |j |¡¡| d |jj j ¡WdQRXq"Wg|jj_dS) NZF12z ÚControlÚxzÚXz)ÚmÚfÚszalready in use) ZsubTestrrr r-rr1r2r3rr&)rZmodsÚfinalÚseqrrrÚ test_keys_dupVs     zValidationTest.test_keys_dupcCs(| |j d¡¡| |jjjd¡dS)Nzr%)r7rÚbind_okr,rr&)rrrrÚ test_bind_okaszValidationTest.test_bind_okcCs(| |j d¡¡| d|jjj¡dS)Nzz not accepted)r1rrEr3rr&)rrrrÚtest_bind_not_okeszValidationTest.test_bind_not_okN)r r r ÚgkdrÚ classmethodr r$r'r.r0r4r6r8r;rDrFrGrrrrr s  r c@s,eZdZedd„ƒZedd„ƒZdd„ZdS)ÚToggleLevelTestcCs4tdƒtƒ|_|j ¡t|jddgdd�|_dS)Nrrz<>T)r)rrrrrHr)rrrrr ms zToggleLevelTest.setUpClasscCs*|j ¡|j ¡|j ¡|`|`dS)N)rr!rr"r#)rrrrr$ts   zToggleLevelTest.tearDownClasscsÄ|j‰‡fdd„}| ˆj¡| dˆjd¡|ƒ\}}| ||¡ˆ ¡| ˆj¡| dˆjd¡|ƒ\}}| ||¡ˆj ¡| ˆj¡| dˆjd¡|ƒ\}}| ||¡dS)Ncs@x6tˆj ¡ƒD]$\}}|jdkr&|}|jdkr|}qW||fS)NZ keyseq_basicZkeyseq_advanced)Ú enumerateÚframeZwinfo_childrenÚ_name)ÚindexZchildÚbasicÚadvanced)rrrÚ stackorder~s   z5ToggleLevelTest.test_toggle_level..stackorderZAdvancedÚtextÚBasic) rr1rPr3Z button_levelZ assertGreaterZ toggle_levelr7Úinvoke)rrQrOrPr)rrÚtest_toggle_level{s           z!ToggleLevelTest.test_toggle_levelN)r r r rIr r$rUrrrrrJjs  rJc@speZdZGdd„deƒZedd„ƒZedd„ƒZdd„Zd d „Z e j   ed ¡d d „ƒZ e j   ed ¡dd„ƒZdS)ÚKeySelectionTestcs*eZdZ‡fdd„Zdd„ZeƒZ‡ZS)zKeySelectionTest.Basiccs&tƒj||ŽGdd„dƒ}||_dS)Nc@seZdZeƒZeƒZeƒZdS)z8KeySelectionTest.Basic.__init__..list_keys_finalN)r r r rr Z select_clearZyviewrrrrr§sr)Úsuperrr)rrrr)Ú __class__rrr¥szKeySelectionTest.Basic.__init__cCsdddg|_ddi|_dS)NÚfooZbarÚBAZZZZZ)Ú modifiersZmodifier_label)rrrrÚset_modifiers_for_platform¬s z1KeySelectionTest.Basic.set_modifiers_for_platform)r r r rr\rrÚ __classcell__rr)rXrrS¤s rScCs6tdƒtƒ|_|j ¡|j|jddgdd�|_dS)Nrrz<>T)r)rrrrrSr)rrrrr ±s zKeySelectionTest.setUpClasscCs*|j ¡|j ¡|j ¡|`|`dS)N)rr!rr"r#)rrrrr$¸s   zKeySelectionTest.tearDownClasscCs|j ¡dS)N)rZ clear_key_seq)rrrrr'¿szKeySelectionTest.setUpcCsl|j}|j}|j}|jd ¡||ƒdgƒ|jd ¡||ƒddgƒ|jd ¡||ƒdgƒdS)NrYrZ)rrr,Zmodifier_checkbuttonsrT)rrZgmÚeqrrrÚtest_get_modifiersÂsz#KeySelectionTest.test_get_modifiersrcCs‚|j}|j}|jj}|j}d|j_g|_| ¡||ƒdƒdg|_| ¡||ƒdƒd|j_ddg|_| ¡||ƒdƒdS)Nr9zZmymodz r%Ztestz )rrr)r r,r-Ú return_valueZbuild_key_string)rÚmock_modifiersrÚkeyÚstringr^rrrÚtest_build_key_stringÑs   z&KeySelectionTest.test_build_key_stringcCsB|j}|j}|jj}|j}dg|_d|j_| ¡||ƒdƒdS)Nr:Ú{z)rrr)r r,r`r-Zfinal_key_selected)rrarrbrcr^rrrÚtest_final_key_selectedæsz(KeySelectionTest.test_final_key_selectedN)r r r rHrSrIr r$r'r_rZpatchÚobjectrdrfrrrrrV¡s  rVc@s,eZdZedd„ƒZedd„ƒZdd„ZdS)Ú CancelTestcCs4tdƒtƒ|_|j ¡t|jddgdd�|_dS)Nrrz<>T)r)rrrrrHr)rrrrr ös zCancelTest.setUpClasscCs*|j ¡|j ¡|j ¡|`|`dS)N)rr!rr"r#)rrrrr$ýs   zCancelTest.tearDownClassc CsR| |j ¡d¡|jj ¡| t¡�|j ¡WdQRX| |jjd¡dS)NZToplevelr%)r,rZ winfo_classZ button_cancelrTZ assertRaisesrr-)rrrrÚ test_cancels   zCancelTest.test_cancelN)r r r rIr r$rirrrrrhós  rhc@seZdZdd„ZdS)Ú HelperTestcCs’tj}|j}||dgƒdƒ||dddgƒdƒ||ddgƒdƒ||dddgƒdƒ||ddddgƒdƒ||dgƒdƒ||d dgƒd ƒdS) NÚqzKey-qr<ZAltr:zKey-QzPage Upz Key-PriorÚ*z Key-asterisk)rZ translate_keyr,)rÚtrr^rrrÚtest_translate_keyszHelperTest.test_translate_keyN)r r r rnrrrrrj srjÚ__main__é)Ú verbosity)ZidlelibrZ test.supportrZunittestrZtkinterrrZidlelib.idle_test.mock_idlerZidlelib.idle_test.mock_tkrrrHZTestCaser rJrVrhrjr ÚmainrrrrÚs     W7R