Ë
    #´˜j%  ã                   óê   — d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZ ddlmZ  G d	„ d
ej                  «      Z G d„ dej                  «      Zedk(  r ej&                  d¬«       yy)zTest outwin, coverage 76%.é    )ÚoutwinN)Úrequires)ÚTkÚText)Ú	Mbox_func)ÚFunc)Úmockc                   óV   — e Zd Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zy
)ÚOutputWindowTestc                 ó:  — t        d«       t        «       x}| _        |j                  «        t	        j
                  d d d |«      x}| _        t        |«      x| _        |_        t        j                  dk(  r&| j                  j                  | j                  _        y y )NÚguiÚdarwin)r   r   ÚrootÚwithdrawr   ÚOutputWindowÚwindowr   ÚtextÚsysÚplatformÚupdate_idletasksÚupdate)Úclsr   Úws      ú/lib/python3.12/idlelib/idle_test/test_outwin.pyÚ
setUpClasszOutputWindowTest.setUpClass   su   € ä�ŒÜ›$ÐˆˆsŒxØ�‰ŒÜ×,Ñ,¨T°4¸¸tÓDÐDˆˆCŒJÜ  ›JÐ&ˆŒ�1”6Ü�<‰<˜8Ò#Ø!Ÿh™h×7Ñ7ˆC�H‰H�Oð $ó    c                 óx   — | j                   j                  «        | `| ` | j                  j	                  «        | `y ©N)r   Úcloser   r   Údestroy©r   s    r   ÚtearDownClasszOutputWindowTest.tearDownClass   s0   € à�
‰
×ÑÔØˆH�c�jØ�‰×ÑÔØ‰Hr   c                 ó<   — | j                   j                  dd«       y )Nú1.0Úend)r   Údelete©Úselfs    r   ÚsetUpzOutputWindowTest.setUp"   s   € Ø�	‰	×Ñ˜ Õ&r   c                 ó¤   — | j                   }| j                  |j                  d«      «       | j                  |j                  t        «      «       y )Nztest.txt)r   ÚassertFalseÚispythonsourceÚ__file__)r(   r   s     r   Útest_ispythonsourcez$OutputWindowTest.test_ispythonsource%   s=   € à�K‰KˆØ×Ñ˜×)Ñ)¨*Ó5Ô6Ø×Ñ˜×)Ñ)¬(Ó3Õ4r   c                 ól   — | j                  | j                  j                  j                  «       d«       y )NÚOutput)ÚassertEqualr   ÚtopÚtitler'   s    r   Útest_window_titlez"OutputWindowTest.test_window_title+   s#   € Ø×Ñ˜Ÿ™Ÿ™×.Ñ.Ó0°(Õ;r   c                 ój  — | j                   }| j                  }t        «       |_        d|j                  _         ||j                  «       d«        ||j                  j                  d«       d|j                  _         ||j                  «       d«        ||j                  j                  d«       |`y )NFÚnoé   TÚyesé   )r   r1   r   Ú	get_savedÚresultÚ	maybesaveÚcalled)r(   r   Úeqs      r   Útest_maybesavezOutputWindowTest.test_maybesave.   s„   € Ø�K‰KˆØ×ÑˆÜ“fˆŒà"ˆ�‰ÔÙ
ˆ1�;‰;‹=˜$ÔÙ
ˆ1�;‰;×Ñ˜qÔ!à!ˆ�‰ÔÙ
ˆ1�;‰;‹=˜%Ô Ù
ˆ1�;‰;×Ñ˜qÔ!Ø‰Kr   c                 ó�  — | j                   }| j                  j                  }| j                  j                  }| j                  j
                  } |dd«       d} | ||«      t        |«      «        | |dd«      d«        | |dd«      d«        |dd«       d} | ||«      t        |«      «        | |dd«      d«        | |dd«      d«        |dd«       d	} | ||«      t        |«      «        | |dd«      d«        | |d
d«      d«        | |dd«      d«        |dd«       d}d} | ||d¬«      t        |«      «        | ||d¬«      t        |«      «        | |dd«      |«        | |dd«      |«        | |dd«      |j                  d«      «        | |d
d«      |j                  d«      «       y )Nr$   r%   z	test textú1.endúinsert linestartúinsert lineendz
test text
Ú ztest text
Line 2ú2.0ú2.endúLine 2úLine 2
Úmytag)ÚtagsÚ	secondtagzmytag.firstz
mytag.lastzsecondtag.firstzsecondtag.lastÚ
)r1   r   r&   Úgetr   ÚwriteÚlenÚrstrip)r(   r>   r&   rM   rN   Ú	test_textÚ
test_text2s          r   Ú
test_writezOutputWindowTest.test_write<   s½  € Ø×ÑˆØ—‘×!Ñ!ˆØ�i‰i�m‰mˆØ—‘×!Ñ!ˆñ 	ˆu�eÔØˆ	Ù
‰5�ÓœS ›^Ô,Ù
‰3ˆu�gÓ Ô,Ù
‰3Ð!Ð#3Ó4°kÔBñ 	ˆu�eÔØ!ˆ	Ù
‰5�ÓœS ›^Ô,Ù
‰3ˆu�gÓ Ô,Ù
‰3Ð!Ð#3Ó4°bÔ9ñ 	ˆu�eÔØ'ˆ	Ù
‰5�ÓœS ›^Ô,Ù
‰3ˆu�gÓ Ô,Ù
‰3ˆu�gÓ Ô)Ù
‰3Ð!Ð#3Ó4°hÔ?ñ 	ˆu�eÔØ!ˆ	Øˆ
Ù
‰5� Ô)¬3¨y«>Ô:Ù
‰5� +Ô.´°J³Ô@Ù
‰3ˆ}˜lÓ+¨YÔ7Ù
‰3Ð Ð"2Ó3°ZÔ@Ù
‰3ˆu�gÓ 	× 0Ñ 0°Ó 6Ô7Ù
‰3ˆu�gÓ 
× 1Ñ 1°$Ó 7Õ8r   c                 ó  — | j                   }| j                  j                  }| j                  j                  } |d«        | |dd«      d«        | |dd«      d«        | |dd	«      d
«        | |dd«      d«       y )N)zLine 1
rH   zLine 3
r$   rA   zLine 1rE   rF   rG   z3.0z3.endzLine 3rB   rC   rD   )r1   r   rM   r   Ú
writelines)r(   r>   rM   rU   s       r   Útest_writelinesz OutputWindowTest.test_writelinesc   sx   € Ø×ÑˆØ�i‰i�m‰mˆØ—[‘[×+Ñ+ˆ
áÐ7Ô8Ù
‰3ˆu�gÓ Ô)Ù
‰3ˆu�gÓ Ô)Ù
‰3ˆu�gÓ Ô)Ù
‰3Ð!Ð#3Ó4°bÕ9r   c                 ó®  — | j                   }| j                  }| j                  }t        j                  «       |_        t        «       x}|j
                  _        t        «       x}|_	        |j                  d«       | j                  |j                  «       «        ||j                  d«        ||j                  d«       |j                  t        t         «      › d�«       |j                  t        t         «      › d�«       | j                  |j                  «       «        ||j"                  t        t         «      df«       |j%                  dd«       |j                  t        t         «      › d�«       |j                  d«       | j                  |j                  «       «        ||j"                  t        t         «      d	f«       |j
                  `|`	y )
NzNot a file liner   zNo special linez: 42: spam
z
: 21: spamé   r$   r%   é*   )r1   r   r   r	   ÚMockÚflistr   Úgotofileliner   Ú	showerrorrN   ÚassertIsNoneÚgoto_file_liner=   r3   Ústrr-   Úargsr&   )r(   r>   r   r   Úgflr]   s         r   Útest_goto_file_linez$OutputWindowTest.test_goto_file_linen   s^  € Ø×ÑˆØ�K‰KˆØ�y‰yˆä—)‘)“+ˆŒÜ%)£VÐ+ˆˆa�g‰gÔ"Ü"+£+Ð-ˆ	�A”Kð 	
�‰Ð!Ô"Ø×Ñ˜!×*Ñ*Ó,Ô-Ù
ˆ3�:‰:�qÔÙ
ˆ9�?‰?Ð-Ô.ð 	
�‰”3”x“=�/ Ð.Ô/Ø	�‰”3”x“=�/ Ð,Ô-Ø×Ñ˜!×*Ñ*Ó,Ô-Ù
ˆ3�8‰8”cœ(“m RÐ(Ô)ð 	�‰�E˜5Ô!Ø	�‰”3”x“=�/ Ð.Ô/Ø	�‰Ð!Ô"Ø×Ñ˜!×*Ñ*Ó,Ô-Ù
ˆ3�8‰8”cœ(“m RÐ(Ô)à�G‰GÐ  !¡+r   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r"   r)   r.   r4   r?   rS   rV   rc   © r   r   r   r      sL   „ àñ8ó ð8ð ñó ðò'ò5ò<òò%9òN	:ó.r   r   c                   óR   — e Zd Zed„ «       Zd„ Z ej                  d«      d„ «       Zy)ÚModuleFunctionTestc                 ó   — d t         _        y r   )r   Úfile_line_progsr!   s    r   r)   zModuleFunctionTest.setUp�   s
   € à!%ŒÕr   c                 óÄ   — t        j                  «        t        t         j                  t         j                  «      D ]!  \  }}| j                  |j                  |«       Œ# y r   )r   Úcompile_progsÚzipÚfile_line_patsrl   r1   Úpattern)r(   ÚpatÚregexs      r   Útest_compile_progsz%ModuleFunctionTest.test_compile_progs“   sD   € Ü×ÑÔÜœf×3Ñ3´V×5KÑ5KÖL‰JˆC�Ø×Ñ˜UŸ]™]¨CÕ0ñ Mr   zbuiltins.openc                 óš   — t         j                  }d}|D ]4  \  }}| j                   ||«      |«       |sŒ!|j                  |d   «       Œ6 y )N))z"foo file "testfile1", line 42, bar)Ú	testfile1rY   )zfoo testfile2(21) bar)Ú	testfile2rX   )z  testfile3  : 42: foo bar\n)z  testfile3  rY   )zfoo testfile4.py :1: )zfoo testfile4.py r7   )u   testfile5: á§”á§’: )Ú	testfile5rY   )ztestfile6: 42N)ztestfile7 42 textNr   )r   Úfile_line_helperr1   Úassert_called_with)r(   Ú	mock_openÚflhÚ
test_linesÚlineÚexpected_outputs         r   Útest_file_line_helperz(ModuleFunctionTest.test_file_line_helper˜   sO   € ä×%Ñ%ˆðˆ
ó &0Ñ!ˆD�/Ø×Ñ™S ›Y¨Ô8ÚØ×,Ñ,¨_¸QÑ-?Õ@ñ &0r   N)	rd   re   rf   rg   r)   rt   r	   Úpatchr€   rh   r   r   rj   rj   �   s:   „ àñ&ó ð&ò1ð
 €T‡Z�Z�Ó ñAó !ñAr   rj   Ú__main__r9   )Ú	verbosity)Ú__doc__Úidlelibr   r   ÚunittestÚtest.supportr   Útkinterr   r   Úidlelib.idle_test.mock_tkr   Úidlelib.idle_test.mock_idler   r	   ÚTestCaser   rj   rd   Úmainrh   r   r   Ú<module>r�      sf   ðÙ å Û 
Û Ý !ß Ý /Ý ,Ý ô}.�x×(Ñ(ô }.ô@A˜×*Ñ*ô Að: ˆzÒØ€H‡M�M˜AÖð r   