й¼]p ã@sÅddlmZedƒddlZddlmZddlmZmZddlm Z ddl j Z ddl jZe jZe jZGdd„dejƒZed krÁejd d ƒdS) é)ÚrequiresZguiN)ÚMock)ÚTkÚText)ÚMboxc@s¬eZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„ZdS)ÚReplaceDialogTestcCs¤tƒ|_|jjƒtt_tj|jƒ|_tj |j|jƒ|_ t ƒ|j _ t |jƒ|_t ƒ|j_t ƒ|j_|j|j _dS)N)rÚrootZwithdrawrÚseÚ tkMessageBoxÚ SearchEngineÚengineÚrdÚ ReplaceDialogÚdialogrÚokrÚtextZundo_block_startZundo_block_stop)Úcls©rú7/opt/alt/python35/lib64/python3.5/test_replacedialog.pyÚ setUpClasss   zReplaceDialogTest.setUpClasscCs2tt_|`|`|`|jjƒ|`dS)N)Ú orig_mboxr r rrr rZdestroy)rrrrÚ tearDownClasss  zReplaceDialogTest.tearDownClasscCs|jjddƒdS)NÚinsertzThis is a sample sTring)rr)ÚselfrrrÚsetUp&szReplaceDialogTest.setUpcCs®|jjjdƒ|jjjdƒ|jjjdƒ|jjjdƒ|jjjdƒ|jjjdƒ|jj jdƒdt _ dt _ |j jddƒdS)NÚFTz1.0Úend)r ÚpatvarÚsetrÚreplvarÚwordvarÚcasevarÚrevarÚwrapvarÚbackvarÚ showerrorÚtitleÚmessagerÚdelete)rrrrÚtearDown)s  zReplaceDialogTest.tearDowncCs¹|j}|j}|jj}|jj}|jj}|jjdƒ||jjƒ|j ƒƒ|j dƒ|j dƒ|jj |jƒ|ƒ||j ddƒdƒ|j ddƒ|j dƒ|j dƒ|ƒ||j d d ƒdƒ|j d ƒ|j d ƒ|ƒ||j d dƒd ƒ|j ddƒ|j ddƒ|j ddƒ}|j dƒ|ƒ|j ddƒ}|||ƒ|j ddƒ|j dƒ|j dƒ|ƒ||j dƒdƒ||j dƒdƒ|ƒ||j dƒdƒ||j dƒdƒ|j ddƒ}|ƒ|j ddƒ}|||ƒ|j ddƒ}|j dƒ|ƒ|j ddƒ}|||ƒ|jjdƒdS)NZasdfÚaz1.8z1.12rz1.0ÚisÚhelloz1.2z1.7ÚstringZworldz1.23z1.28rz line42:z [a-z][\d]+z1.9ÚiÚjz2.1Úfoobarr)rÚ assertEqualr rrrÚ replace_itZsetpatZgetpatÚgetrÚopenÚmark_setrZfind_it)rrÚequalÚpvÚrvÚreplaceÚ before_textÚ after_textrrrÚtest_replace_simple5s^                  z%ReplaceDialogTest.test_replace_simplecCsO|j}|j}|jj}|jj}|jj}|jjjdƒ|j ddƒ|jdƒ|jdƒ|ƒ||j dƒdƒ||j dƒdƒ|ƒ||j dƒdƒ||j dƒdƒ|ƒ||j dƒdƒ|j dd ƒ|jd ƒ|j d d ƒ}|ƒ|j d d ƒ}|||ƒdS) NFrz1.4r.r/z1.2z1.5z1.20z1.8r+z1.0r) rr1r rrrr2r#rr5r3)rrr6r7r8r9r:r;rrrÚtest_replace_wrap_around|s.        z*ReplaceDialogTest.test_replace_wrap_aroundcCs |j}|j}|jj}|jj}|jj}|jjjdƒ|jdƒ|jdƒ|ƒ||j ddƒdƒ||j ddƒdƒdS) NTr+r,z1.0z1.4ÚThisz1.5z1.10) rr1r rrrr2r rr3)rrr6r7r8r9rrrÚtest_replace_whole_word™s       z)ReplaceDialogTest.test_replace_whole_wordcCsÒ|j}|j}|jj}|jj}|jj}|jjjdƒ|jj ddƒ}|jdƒ|jdƒ|ƒ|jj ddƒ}|||ƒ|jdƒ|ƒ||j ddƒdƒdS)NTz1.0rÚthisÚthatr>z1.4) r1rr rrrr2r!rr3)rr6rr7r8r9r:r;rrrÚtest_replace_match_case§s         z)ReplaceDialogTest.test_replace_match_casecCs¿|j}|j}|jj}|jj}|jj}|jjjdƒ|j ddƒ}|jdƒ|jdƒ|ƒ|j ddƒ}|||ƒ|j ddƒ|ƒ||j dd ƒd ƒ|jd ƒ|ƒ|j d t j ƒ|j d t jƒ|jdƒ|ƒ|j d t j ƒ|j dt jƒd t _ d t _|jdƒ|jdƒ|ƒ|j d t j ƒ|j dt jƒ|jjdƒ||j ƒdƒdS)NTz1.0rz [a-z][\d]+r,rz line42z2.0z2.8ZlinhellorÚerrorÚEmptyz[\dÚPatternz[a]ztest\zInvalid Replace Expressionú'z\')r1rr rrrr2r"rr3rÚassertInr%r&r'Z setcookedpat)rr6rr7r8r9r:r;rrrÚtest_replace_regexºs@              z$ReplaceDialogTest.test_replace_regexcCsð|j}|j}|jj}|jj}|jj}|jjjdƒ|j ddƒ|jdƒ|jdƒ|ƒ||j ddƒdƒ||j dd ƒdƒ|ƒ||j d d ƒdƒ|ƒ||j dd ƒdƒdS) NTrz is as r+Úwasz1.2z1.4z2.0z2.3z1.5z1.8) r1rr rrrr2r$rrr3)rr6rr7r8r9rrrÚtest_replace_backwardsãs        z(ReplaceDialogTest.test_replace_backwardscCs@|j}|jj}|jj}|jj}|jddƒ|jd|jddƒdƒ|jdƒ|jdƒ|ƒ|j d|jddƒƒ|jj jdƒ|jd ƒ|ƒ|j d t j ƒ|j d t jƒ|jd ƒ|jd ƒ|ƒ|jj jdƒ|jdƒ|jdƒ|ƒdS)NrÚ z1.0rédr+rITrrCrDz[s][T]ú\Fztext which is not presentr0)rr rrrÚ replace_allrr3rZ assertNotInr"rGr%r&r')rrr7r8rNrrrÚtest_replace_all÷s,            z"ReplaceDialogTest.test_replace_allcCs›|j}|jj}|jj}|jj}|j}|jdƒ|jdƒ|ƒ||jddƒdƒ|jj jdƒ|jdƒ|ƒdS)Nr>rIz sel.firstzsel.lastTr) rr rrrZdefault_commandr1rr3r")rrr7r8Z replace_findr6rrrÚtest_default_commands        z&ReplaceDialogTest.test_default_commandN)Ú__name__Ú __module__Ú __qualname__Ú classmethodrrrr)r<r=r?rBrHrJrOrPrrrrrs    G    )  rÚ__main__Ú verbosityé)Z test.supportrZunittestZ unittest.mockrÚtkinterrrZidlelib.idle_test.mock_tkrZidlelib.SearchEnginer r Zidlelib.ReplaceDialogrr r rr%ZTestCaserrQÚmainrrrrÚs    ÿ