a  zek @sdZddlmZddlZddlmZedddlmZmZddl m Z ddl m Z ddl mZejZe jZGd d d ejZed krejd d dS)zTest replace, coverage 78%.) ReplaceDialogN)requiresZgui)TkText)Mock)Mboxc@steZdZeddZeddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZdS)ReplaceDialogTestcCszt|_|jtt_t|j|_t|j|j|_ dd|j _ t |j _ t |j|_t |j_t |j_|j|j _dS)NcSsdSNr r r R/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/idle_test/test_replace.pyz.ReplaceDialogTest.setUpClass..)rrootZwithdrawrse messageboxZ SearchEngineenginerdialogZbellrokrtextZundo_block_startZundo_block_stopclsr r r setUpClasss      zReplaceDialogTest.setUpClasscCs$tt_|`|`|`|j|`dSr ) orig_mboxrrrrrrZdestroyrr r r tearDownClass!s  zReplaceDialogTest.tearDownClasscCs|jdddS)NinsertzThis is a sample sTring)rrselfr r r setUp(szReplaceDialogTest.setUpcCs|jjd|jjd|jjd|jjd|jjd|jjd|jj ddt _ dt _ |j dddS)NFT1.0end)rpatvarsetrreplvarwordvarcasevarrevarwrapvarbackvar showerrortitlemessagerdeleterr r r tearDown+szReplaceDialogTest.tearDowncCs|j}|j}|jj}|jj}|jj}|jd||j| | d| d||| ddd| dd| d| d||| d d d| d | d ||| d dd | dd| dd| dd}| d|| dd}|||| dd| d| d||| dd|| dd||| dd|| dd| dd}|| dd}|||| dd}| d|| dd}||||j ddS)NZasdfa1.8z1.12rrishello1.2z1.7stringZworldz1.23z1.28r z line42: [a-z][\d]+z1.9ijz2.1foobarr)r assertEqualrr!rr# replace_itZsetpatZgetpatgetr"mark_setrZfind_itrrequalpvrvreplace before_text after_textr r r test_replace_simple7s\                        z%ReplaceDialogTest.test_replace_simplecCs|j}|j}|jj}|jj}|jj}|jjd| dd|d|d||| dd|| dd||| dd|| dd||| dd| dd |d | d d }|| d d }|||dS) NFr1.4r5r6r21.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}|jjd|d|d||| ddd|| ddddS) NTr0r1rrDThisrEz1.10) rr8rr!rr#r9r$r"r:)rrr=r>r?r@r r r test_replace_whole_words  z)ReplaceDialogTest.test_replace_whole_wordcCs|j}|j}|jj}|jj}|jj}|jjd|j dd}|d|d||j dd}||||d||| ddddS)NTrr thisthatrGrD) r8rrr!rr#r9r%r"r:rr=rr>r?r@rArBr r r test_replace_match_cases    z)ReplaceDialogTest.test_replace_match_casecCsJ|j}|j}|jj}|jj}|jj}|jjd| dd}|d|d|| dd}|||| dd||| dd d |d || d t j | d t j|d|| d t j | dt jd t _ d t _|d|d|| d t j | dt j|jd|| ddS)NTrr r4r1rz line422.0z2.8ZlinhellorerrorEmptyz[\dPatternz[a]ztest\zInvalid Replace Expression?z\?)r8rrr!rr#r9r&r"r:rassertInr)r*r+Z setcookedpatrKr r r test_replace_regexs@           z$ReplaceDialogTest.test_replace_regexcCs|j}|j}|jj}|jj}|jj}|jjd| dd|d|d||| ddd|| dd d||| d d d||| dd ddS) NTrz is as r0wasr2rDrMz2.3rEr/) r8rrr!rr#r9r(r"rr:)rr=rr>r?r@r r r test_replace_backwardss    z(ReplaceDialogTest.test_replace_backwardscCs|j}|jj}|jj}|jj}|dd|d|ddd|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_alls,        z"ReplaceDialogTest.test_replace_allcCsr|j}|jj}|jj}|jj}|j}|d|d|||ddd|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)__doc__Zidlelib.replacerZunittestZ test.supportrtkinterrrZ unittest.mockrZidlelib.idle_test.mock_tkrZidlelib.searchengineZ searchenginerrrr)ZTestCaserr\mainr r r r s