a 9êdgk ã@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 ú:/usr/local/lib/python3.9/idlelib/idle_test/test_replace.pyÚóz.ReplaceDialogTest.setUpClass..)rÚrootZwithdrawrÚseÚ messageboxZ SearchEngineÚenginerÚdialogZbellrÚokrÚtextZundo_block_startZundo_block_stop©Úclsr r r Ú setUpClasss      zReplaceDialogTest.setUpClasscCs$tt_|`|`|`|j ¡|`dSr )Ú orig_mboxrrrrrrZdestroyrr 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ÚFTú1.0Úend)rÚpatvarÚsetrÚreplvarÚwordvarÚcasevarÚrevarÚwrapvarÚbackvarÚ showerrorÚtitleÚmessagerÚdeleterr 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Úaú1.8z1.12rrÚisÚhelloú1.2z1.7ÚstringZworldz1.23z1.28r z line42:ú [a-z][\d]+z1.9ÚiÚjz2.1Úfoobarr)rÚ assertEqualrr!rr#Ú 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) NFrú1.4r5r6r2ú1.5z1.20r/r0rr ) rr8rr!rr#r9r'r"r;r:r<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) NTr0r1rrDÚThisrEz1.10) rr8rr!rr#r9r$r"r:)rrr=r>r?r@r 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)NTrr ÚthisÚthatrGrD) r8rrr!rr#r9r%r"r:©rr=rr>r?r@rArBr 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)NTrr r4r1rz line42ú2.0z2.8ZlinhellorÚerrorÚEmptyz[\dÚPatternz[a]ztest\zInvalid Replace Expressionú?z\?)r8rrr!rr#r9r&r"r:rÚassertInr)r*r+Z setcookedpatrKr 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 r0Úwasr2rDrMz2.3rEr/) r8rrr!rr#r9r(r"rr:)rr=rr>r?r@r 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Ú rr édr0rTTrrNrOz[s][T]ú\Fztext which is not presentr7)rrr!rr#Ú replace_allrr:r"Z assertNotInr&rRr)r*r+)rrr>r?rYr r r Útest_replace_alløs,        z"ReplaceDialogTest.test_replace_allcCsr|j}|jj}|jj}|jj}|j}| d¡| d¡|ƒ|| dd¡dƒ|jj  d¡| d¡|ƒdS)NrGrTz sel.firstzsel.lastTr) rrr!rr#Zdefault_commandr8r"r:r&)rrr>r?Z replace_findr=r r r Útest_default_commands   z&ReplaceDialogTest.test_default_commandN)Ú__name__Ú __module__Ú __qualname__Ú classmethodrrrr-rCrFrHrLrSrUrZr[r r r r rs   F)rÚ__main__é)Ú verbosity)Zidlelib.replacerZunittestZ test.supportrÚtkinterrrZ unittest.mockrZidlelib.idle_test.mock_tkrZidlelib.searchengineZ searchenginerrrr)ZTestCaserr\Úmainr r r r Ús