B YI~dq ã@s’ddlmZddlZddlmZedƒddlmZmZddlm Z ddl m Z ddl m ZejZe jZGdd „d ejƒZed krŽejd d dS) é)Ú ReplaceDialogN)ÚrequiresZgui)ÚTkÚText)ÚMock)ÚMboxc@steZdZedd„ƒZedd„ƒZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„ZdS)ÚReplaceDialogTestcCsztƒ|_|j ¡tt_t |j¡|_t|j|jƒ|_ dd„|j _ t ƒ|j _ t |jƒ|_t ƒ|j_t ƒ|j_|j|j _dS)NcSsdS)N©r r r úC/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_replace.pyÚóz.ReplaceDialogTest.setUpClass..)rÚrootZwithdrawrÚseÚ tkMessageBoxZ SearchEngineÚenginerÚdialogZbellrÚokrÚtextZundo_block_startZundo_block_stop)Úclsr r r Ú setUpClasss      zReplaceDialogTest.setUpClasscCs$tt_|`|`|`|j ¡|`dS)N)Ú orig_mboxrrrrrr Zdestroy)rr r r Ú tearDownClass!s  zReplaceDialogTest.tearDownClasscCs|j dd¡dS)NÚinsertzThis is a sample sTring)rr)Úselfr r r ÚsetUp(szReplaceDialogTest.setUpcCs€|jj d¡|jj d¡|jj d¡|jj d¡|jj d¡|jj d¡|jj  d¡dt _ dt _ |j  dd¡dS)NÚFTz1.0Úend)rÚpatvarÚsetrÚreplvarÚwordvarÚcasevarÚrevarÚwrapvarÚbackvarÚ showerrorÚtitleÚmessagerÚdelete)rr r r ÚtearDown+szReplaceDialogTest.tearDowncCsô|j}|j}|jj}|jj}|jj}|j d¡||j ¡|  ¡ƒ|  d¡|  d¡|ƒ||  dd¡dƒ|  dd¡|  d¡|  d¡|ƒ||  d d ¡dƒ|  d ¡|  d ¡|ƒ||  d d¡d ƒ|  dd¡|  dd¡|  dd¡}|  d¡|ƒ|  dd¡}|||ƒ|  dd¡|  d¡|  d¡|ƒ||  d¡dƒ||  d¡dƒ|ƒ||  d¡dƒ||  d¡dƒ|  dd¡}|ƒ|  dd¡}|||ƒ|  dd¡}|  d¡|ƒ|  dd¡}|||ƒ|j  d¡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Ú assertEqualrrrrÚ replace_itZsetpatZgetpatÚgetrÚmark_setrZfind_it)rrÚequalÚpvÚrvÚreplaceÚ before_textÚ after_textr r r Útest_replace_simple7s\                        z%ReplaceDialogTest.test_replace_simplecCsö|j}|j}|jj}|jj}|jj}|jj d¡|  dd¡| d¡| d¡|ƒ||  d¡dƒ||  d¡dƒ|ƒ||  d¡dƒ||  d¡dƒ|ƒ||  d¡dƒ|  dd ¡| d ¡|  d d ¡}|ƒ|  d d ¡}|||ƒdS) NFrz1.4r.r/z1.2z1.5z1.20z1.8r+z1.0r) rr1rrrrr2r#rr4r3)rrr5r6r7r8r9r:r r r Útest_replace_wrap_around}s.       z*ReplaceDialogTest.test_replace_wrap_aroundcCst|j}|j}|jj}|jj}|jj}|jj d¡| d¡| d¡|ƒ||  dd¡dƒ||  dd¡dƒdS) NTr+r,z1.0z1.4ÚThisz1.5z1.10) rr1rrrrr2r rr3)rrr5r6r7r8r r r Útest_replace_whole_wordšs  z)ReplaceDialogTest.test_replace_whole_wordcCs˜|j}|j}|jj}|jj}|jj}|jj d¡|j  dd¡}| d¡| d¡|ƒ|j  dd¡}|||ƒ| d¡|ƒ||  dd¡dƒdS)NTz1.0rÚthisÚthatr=z1.4) r1rrrrrr2r!rr3)rr5rr6r7r8r9r:r r r Útest_replace_match_case¨s    z)ReplaceDialogTest.test_replace_match_casecCsJ|j}|j}|jj}|jj}|jj}|jj d¡|  dd¡}| d¡| d¡|ƒ|  dd¡}|||ƒ|  dd¡|ƒ||  dd ¡d ƒ| d ¡|ƒ|  d t j ¡|  d t j¡| d¡|ƒ|  d t j ¡|  dt j¡d t _ d t _| d¡| d¡|ƒ|  d t j ¡|  dt j¡|j d¡||  ¡dƒdS)NTz1.0rz [a-z][\d]+r,rz line42z2.0z2.8ZlinhellorÚerrorÚEmptyz[\dÚPatternz[a]ztest\zInvalid Replace Expressionú?z\?)r1rrrrrr2r"rr3rÚassertInr%r&r'Z setcookedpat)rr5rr6r7r8r9r:r r r Útest_replace_regex»s@           z$ReplaceDialogTest.test_replace_regexcCs°|j}|j}|jj}|jj}|jj}|jj d¡|  dd¡| d¡| d¡|ƒ||  dd¡dƒ||  dd ¡dƒ|ƒ||  d d ¡dƒ|ƒ||  dd ¡dƒdS) NTrz is as r+Úwasz1.2z1.4z2.0z2.3z1.5z1.8) r1rrrrrr2r$rrr3)rr5rr6r7r8r r r Útest_replace_backwardsäs    z(ReplaceDialogTest.test_replace_backwardscCsð|j}|jj}|jj}|jj}| dd¡| d| dd¡d¡| d¡| d¡|ƒ|  d| dd¡¡|jj  d¡| d ¡|ƒ|  d t j ¡|  d t j¡| d ¡| d ¡|ƒ|jj  d¡| d¡| d¡|ƒdS)NrÚ z1.0rédr+rHTrrBrCz[s][T]ú\Fztext which is not presentr0)rrrrrÚ replace_allrr3rZ assertNotInr"rFr%r&r')rrr6r7rMr r r Útest_replace_alløs,        z"ReplaceDialogTest.test_replace_allcCsr|j}|jj}|jj}|jj}|j}| d¡| d¡|ƒ|| dd¡dƒ|jj  d¡| d¡|ƒdS)Nr=rHz sel.firstzsel.lastTr) rrrrrZdefault_commandr1rr3r")rrr6r7Z replace_findr5r r r Útest_default_commands   z&ReplaceDialogTest.test_default_commandN)Ú__name__Ú __module__Ú __qualname__Ú classmethodrrrr)r;r<r>rArGrIrNrOr r r r rs   F)rÚ__main__é)Ú verbosity)Zidlelib.replacerZunittestZ test.supportrZtkinterrrZ unittest.mockrZidlelib.idle_test.mock_tkrZidlelib.searchengineZ searchenginerrrr%ZTestCaserrPÚmainr r r r Ús