Ë
    #´˜jk   ã                   óø   — d Z ddlmZ ddlZddlmZ  ed«       ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ ej                   Zej$                  Z G d	„ d
ej&                  «      Zedk(  r ej,                  d¬«       yy)zTest replace, coverage 78%.é    )ÚReplaceDialogN)ÚrequiresÚgui)ÚTkÚText)ÚMock)ÚMboxc                   óh   — e Zd Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zy)ÚReplaceDialogTestc                 ó*  — t        «       | _        | j                  j                  «        t        t        _        t	        j                  | j                  «      | _        t        | j                  | j                  «      | _	        d„ | j                  _
        t        «       | j                  _        t        | j                  «      | _        t        «       | j                  _        t        «       | j                  _        | j                  | j                  _        y )Nc                   ó   — y ©N© r   ó    ú0lib/python3.12/idlelib/idle_test/test_replace.pyÚ<lambda>z.ReplaceDialogTest.setUpClass.<locals>.<lambda>   s   €  $r   )r   ÚrootÚwithdrawr	   ÚseÚ
messageboxÚSearchEngineÚenginer   ÚdialogÚbellr   Úokr   ÚtextÚundo_block_startÚundo_block_stop©Úclss    r   Ú
setUpClasszReplaceDialogTest.setUpClass   sž   € ä“4ˆŒØ�‰×ÑÔÜŒŒÜ—_‘_ S§X¡XÓ.ˆŒ
Ü" 3§8¡8¨S¯Z©ZÓ8ˆŒ
Ù&ˆ�
‰
ŒÜ›ˆ�
‰
ŒÜ˜Ÿ™“>ˆŒÜ$(£Fˆ�‰Ô!Ü#'£6ˆ�‰Ô ØŸ(™(ˆ�
‰
�r   c                 óf   — t         t        _        | `| `| `| j                  j                  «        | `y r   )Ú	orig_mboxr   r   r   r   r   r   Údestroyr   s    r   ÚtearDownClasszReplaceDialogTest.tearDownClass!   s+   € ä!ŒŒØˆH�c�j # *Ø�‰×ÑÔØ‰Hr   c                 ó<   — | j                   j                  dd«       y )NÚinsertzThis is a sample sTring)r   r'   ©Úselfs    r   ÚsetUpzReplaceDialogTest.setUp(   s   € Ø�	‰	×Ñ˜Ð#<Õ=r   c                 ón  — | j                   j                  j                  d«       | j                  j                  j                  d«       | j                   j
                  j                  d«       | j                   j                  j                  d«       | j                   j                  j                  d«       | j                   j                  j                  d«       | j                   j                  j                  d«       dt        _        dt        _        | j                  j                  dd«       y )NÚ FTú1.0Úend)r   ÚpatvarÚsetr   ÚreplvarÚwordvarÚcasevarÚrevarÚwrapvarÚbackvarÚ	showerrorÚtitleÚmessager   Údeleter(   s    r   ÚtearDownzReplaceDialogTest.tearDown+   sÍ   € Ø�‰×Ñ×Ñ˜rÔ"Ø�‰×Ñ×Ñ Ô#Ø�‰×Ñ×Ñ Ô&Ø�‰×Ñ×Ñ Ô&Ø�‰×Ñ×Ñ˜eÔ$Ø�‰×Ñ×Ñ Ô%Ø�‰×Ñ×Ñ Ô&ØŒ	ŒØŒ	ÔØ�	‰	×Ñ˜ Õ&r   c                 ó:  — | j                   }| j                  }| j                  j                  }| j                  j
                  }| j                  j                  }| j                  j                  d«        || j                  j                  «       |j                  «       «       |j                  d«       |j                  d«        |«         ||j                  dd«      d«       |j                  dd«       |j                  d«       |j                  d«        |«         ||j                  d	d
«      d«       |j                  d«       |j                  d«        |«         ||j                  dd«      d«       |j                  dd«       |j                  dd«       |j                  dd«      }|j                  d«        |«        |j                  dd«      } |||«       |j                  dd«       |j                  d«       |j                  d«        |«         ||j                  d«      d«        ||j                  d«      d«        |«         ||j                  d«      d«        ||j                  d«      d«       |j                  dd«      } |«        |j                  dd«      } |||«       |j                  dd«      }|j                  d«        |«        |j                  dd«      } |||«       | j                  j                  d«       y )NÚasdfÚaú1.8z1.12r'   r-   ÚisÚhelloú1.2z1.7ÚstringÚworldz1.23z1.28r.   z
line42:ú
[a-z][\d]+z1.9ÚiÚjz2.1Úfoobarr   )r   ÚassertEqualr   r/   r   r1   Ú
replace_itÚsetpatÚgetpatÚgetr0   Úmark_setr'   Úfind_it©r)   r   ÚequalÚpvÚrvÚreplaceÚbefore_textÚ
after_texts           r   Útest_replace_simplez%ReplaceDialogTest.test_replace_simple7   sl  € ð �y‰yˆØ× Ñ ˆØ�[‰[×ÑˆØ�[‰[× Ñ ˆØ—+‘+×(Ñ(ˆð 	�‰×Ñ˜6Ô"Ùˆd�k‰k× Ñ Ó" B§F¡F£HÔ-ð 	�‰ˆsŒØ
�‰ˆvŒÙŒ	Ùˆd�h‰h�u˜fÓ% vÔ.ð 	�‰�h Ô&Ø
�‰ˆtŒØ
�‰ˆwŒÙŒ	Ùˆd�h‰h�u˜eÓ$ gÔ.ð 	�‰ˆxÔØ
�‰ˆwŒÙŒ	Ùˆd�h‰h�v˜vÓ&¨Ô0ð 	�‰�h Ô&Ø�‰�H˜kÔ*Ø—h‘h˜u eÓ,ˆØ
�‰ˆ}ÔÙŒ	Ø—X‘X˜e UÓ+ˆ
Ùˆk˜:Ô&ð 	�‰�h Ô&Ø
�‰ˆsŒØ
�‰ˆsŒÙŒ	Ùˆd�h‰h�u‹o˜sÔ#Ùˆd�h‰h�u‹o˜sÔ#ÙŒ	Ùˆd�h‰h�u‹o˜sÔ#Ùˆd�h‰h�u‹o˜sÔ#Ø—h‘h˜u eÓ,ˆÙŒ	Ø—X‘X˜e UÓ+ˆ
Ùˆk˜:Ô&ð —h‘h˜u eÓ,ˆØ
�‰ˆxÔÙŒ	Ø—X‘X˜e UÓ+ˆ
Ùˆk˜:Ô&ð 	�‰×Ñ˜AÕr   c                 ó2  — | j                   }| j                  }| j                  j                  }| j                  j
                  }| j                  j                  }| j                  j                  j                  d«       |j                  dd«       |j                  d«       |j                  d«        |«         ||j                  d«      d«        ||j                  d«      d«        |«         ||j                  d«      d«        ||j                  d«      d«        |«         ||j                  d«      d«       |j                  dd	«       |j                  d
«       |j                  dd«      } |«        |j                  dd«      } |||«       y )NFr'   ú1.4rF   rG   rB   ú1.5z1.20r?   r@   r-   r.   )r   rI   r   r/   r   r1   rJ   r5   r0   rN   rM   rP   s           r   Útest_replace_wrap_aroundz*ReplaceDialogTest.test_replace_wrap_around}   s5  € Ø�y‰yˆØ× Ñ ˆØ�[‰[×ÑˆØ�[‰[× Ñ ˆØ—+‘+×(Ñ(ˆØ�‰×Ñ×Ñ Ô&ð 	�‰�h Ô&Ø
�‰ˆsŒØ
�‰ˆsŒÙŒ	Ùˆd�h‰h�u‹o˜sÔ#Ùˆd�h‰h�u‹o˜sÔ#ÙŒ	Ùˆd�h‰h�u‹o˜sÔ#Ùˆd�h‰h�vÓ Ô$ÙŒ	Ùˆd�h‰h�u‹o˜sÔ#ð 	�‰�h Ô&Ø
�‰ˆtŒØ—h‘h˜u eÓ,ˆÙŒ	Ø—X‘X˜e UÓ+ˆ
Ùˆk˜:Õ&r   c                 ó¸  — | j                   }| j                  }| j                  j                  }| j                  j
                  }| j                  j                  }| j                  j                  j                  d«       |j                  d«       |j                  d«        |«         ||j                  dd«      d«        ||j                  dd«      d«       y )	NTr@   rA   r-   rY   ÚThisrZ   z1.10)
r   rI   r   r/   r   r1   rJ   r2   r0   rM   )r)   r   rQ   rR   rS   rT   s         r   Útest_replace_whole_wordz)ReplaceDialogTest.test_replace_whole_wordš   s    € Ø�y‰yˆØ× Ñ ˆØ�[‰[×ÑˆØ�[‰[× Ñ ˆØ—+‘+×(Ñ(ˆØ�‰×Ñ×Ñ Ô%à
�‰ˆtŒØ
�‰ˆwŒÙŒ	Ùˆd�h‰h�u˜eÓ$ fÔ-Ùˆd�h‰h�u˜fÓ% wÕ/r   c                 ó8  — | j                   }| j                  }| j                  j                  }| j                  j
                  }| j                  j                  }| j                  j                  j                  d«       | j                  j                  dd«      }|j                  d«       |j                  d«        |«        | j                  j                  dd«      } |||«       |j                  d«        |«         ||j                  dd«      d«       y )NTr-   r.   ÚthisÚthatr]   rY   )
rI   r   r   r/   r   r1   rJ   r3   r0   rM   ©r)   rQ   r   rR   rS   rT   rU   rV   s           r   Útest_replace_match_casez)ReplaceDialogTest.test_replace_match_case¨   sÍ   € Ø× Ñ ˆØ�y‰yˆØ�[‰[×ÑˆØ�[‰[× Ñ ˆØ—+‘+×(Ñ(ˆØ�‰×Ñ×Ñ Ô%à—i‘i—m‘m E¨5Ó1ˆØ
�‰ˆvŒØ
�‰ˆvŒÙŒ	Ø—Y‘Y—]‘] 5¨%Ó0ˆ
Ùˆk˜:Ô&à
�‰ˆvŒÙŒ	Ùˆd�h‰h�u˜eÓ$ fÕ-r   c                 óÔ  — | j                   }| j                  }| j                  j                  }| j                  j
                  }| j                  j                  }| j                  j                  j                  d«       |j                  dd«      }|j                  d«       |j                  d«        |«        |j                  dd«      } |||«       |j                  dd«        |«         ||j                  dd	«      d
«       |j                  d«        |«        | j                  dt        j                  «       | j                  dt        j                  «       |j                  d«        |«        | j                  dt        j                  «       | j                  dt        j                  «       dt        _        dt        _        |j                  d«       |j                  d«        |«        | j                  dt        j                  «       | j                  dt        j                  «       | j                  j                  d«        ||j                  «       d«       y )NTr-   r.   rE   rA   r'   z
line42ú2.0z2.8Úlinhellor,   ÚerrorÚEmptyz[\dÚPatternz[a]ztest\zInvalid Replace ExpressionÚ?z\?)rI   r   r   r/   r   r1   rJ   r4   r0   rM   r'   ÚassertInr7   r8   r9   Úsetcookedpatrb   s           r   Útest_replace_regexz$ReplaceDialogTest.test_replace_regex»   s«  € Ø× Ñ ˆØ�y‰yˆØ�[‰[×ÑˆØ�[‰[× Ñ ˆØ—+‘+×(Ñ(ˆØ�‰×Ñ×Ñ˜dÔ#à—h‘h˜u eÓ,ˆØ
�‰ˆ}ÔØ
�‰ˆwŒÙŒ	Ø—X‘X˜e UÓ+ˆ
Ùˆk˜:Ô&à�‰�H˜jÔ)ÙŒ	Ùˆd�h‰h�u˜eÓ$ jÔ1à
�‰ˆrŒ
ÙŒ	Ø�‰�gœyŸ™Ô/Ø�‰�gœy×0Ñ0Ô1à
�‰ˆvŒÙŒ	Ø�‰�gœyŸ™Ô/Ø�‰�i¤×!2Ñ!2Ô3àŒ	ŒØŒ	ÔØ
�‰ˆuŒØ
�‰ˆxÔÙŒ	Ø�‰�gœyŸ™Ô/Ø�‰Ð2´I×4EÑ4EÔFð 	�‰× Ñ  Ô%Ùˆb�f‰f‹h˜Õr   c                 ó\  — | j                   }| j                  }| j                  j                  }| j                  j
                  }| j                  j                  }| j                  j                  j                  d«       |j                  dd«       |j                  d«       |j                  d«        |«         ||j                  dd«      d«        ||j                  dd	«      d«        |«         ||j                  d
d«      d«        |«         ||j                  dd
«      d«       y )NTr'   z
is as r@   ÚwasrB   rY   re   z2.3rZ   r?   )rI   r   r   r/   r   r1   rJ   r6   r0   r'   rM   )r)   rQ   r   rR   rS   rT   s         r   Útest_replace_backwardsz(ReplaceDialogTest.test_replace_backwardsä   sâ   € Ø× Ñ ˆØ�y‰yˆØ�[‰[×ÑˆØ�[‰[× Ñ ˆØ—+‘+×(Ñ(ˆØ�‰×Ñ×Ñ Ô%à�‰�H˜jÔ)à
�‰ˆtŒØ
�‰ˆuŒÙŒ	Ùˆd�h‰h�u˜eÓ$ dÔ+Ùˆd�h‰h�u˜eÓ$ eÔ,ÙŒ	Ùˆd�h‰h�u˜eÓ$ eÔ,ÙŒ	Ùˆd�h‰h�u˜eÓ$ eÕ,r   c                 óŒ  — | j                   }| j                  j                  }| j                  j                  }| j                  j
                  }|j                  dd«       |j                  d|j                  dd«      dz  «       |j                  d«       |j                  d«        |«        | j                  d|j                  dd«      «       | j                  j                  j                  d«       |j                  d	«        |«        | j                  d
t        j                  «       | j                  dt        j                  «       |j                  d«       |j                  d«        |«        | j                  j                  j                  d«       |j                  d«       |j                  d«        |«        y )Nr'   Ú
r-   r.   éd   r@   ro   Tr,   rg   rh   z[s][T]Ú\Fztext which is not presentrH   )r   r   r/   r   r1   Úreplace_allr'   rM   r0   ÚassertNotInr4   rk   r7   r8   r9   )r)   r   rR   rS   ru   s        r   Útest_replace_allz"ReplaceDialogTest.test_replace_allø   s:  € Ø�y‰yˆØ�[‰[×ÑˆØ�[‰[× Ñ ˆØ—k‘k×-Ñ-ˆà�‰�H˜dÔ#Ø�‰�H˜dŸh™h u¨eÓ4°SÑ8Ô9Ø
�‰ˆtŒØ
�‰ˆuŒÙŒØ×Ñ˜˜tŸx™x¨¨uÓ5Ô6à�‰×Ñ×Ñ˜dÔ#Ø
�‰ˆrŒ
ÙŒØ�‰�gœyŸ™Ô/Ø�‰�gœy×0Ñ0Ô1à
�‰ˆxÔØ
�‰ˆtŒÙŒà�‰×Ñ×Ñ˜eÔ$Ø
�‰Ð*Ô+Ø
�‰ˆxÔÙ�r   c                 ó¶  — | j                   }| j                  j                  }| j                  j                  }| j                  j
                  }| j                  }|j                  d«       |j                  d«        |«         ||j                  dd«      d«       | j                  j                  j                  d«       |j                  d«        |«        y )Nr]   ro   z	sel.firstzsel.lastTr,   )
r   r   r/   r   r1   Údefault_commandrI   r0   rM   r4   )r)   r   rR   rS   Úreplace_findrQ   s         r   Útest_default_commandz&ReplaceDialogTest.test_default_command  s›   € Ø�y‰yˆØ�[‰[×ÑˆØ�[‰[× Ñ ˆØ—{‘{×2Ñ2ˆØ× Ñ ˆà
�‰ˆvŒØ
�‰ˆuŒÙŒÙˆd�h‰h�{ JÓ/°Ô7à�‰×Ñ×Ñ˜dÔ#Ø
�‰ˆrŒ
Ù�r   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr!   r%   r*   r;   rW   r[   r^   rc   rm   rp   rw   r{   r   r   r   r   r      s]   „ àñ#ó ð#ð ñó ðò>ò
'òDòL'ò:0ò.ò&'òR-ò(ó8r   r   Ú__main__é   )Ú	verbosity)Ú__doc__Úidlelib.replacer   ÚunittestÚtest.supportr   Útkinterr   r   Úunittest.mockr   Úidlelib.idle_test.mock_tkr	   Úidlelib.searchengineÚsearchenginer   r   r#   r7   ÚTestCaser   r|   Úmainr   r   r   Ú<module>rŽ      sh   ðÙ å )Û Ý !Ù ˆ„ß å Ý *Ý !à�M‰M€	Ø�N‰N€	ôQ˜×)Ñ)ô Qðh ˆzÒØ€H‡M�M˜AÖð r   