
    /hh%                         S r SSKJr  SSKrSSKrSSKJr  SSKJrJ	r	  SSK
Jr  SSKJr  SSKJr   " S	 S
\R                  5      r " S S\R                  5      r\S:X  a  \R&                  " SS9  gg)zTest outwin, coverage 76%.    )outwinN)requires)TkText)	Mbox_func)Func)mockc                   ^    \ rS rSr\S 5       r\S 5       rS rS rS r	S r
S rS	 rS
 rSrg)OutputWindowTest   c                 :   [        S5        [        5       =ol        UR                  5         [        R
                  " S S S U5      =o l        [        U5      =U l        Ul        [        R                  S:X  a&  U R                  R                  U R                  l        g g )Nguidarwin)r   r   rootwithdrawr   OutputWindowwindowr   textsysplatformupdate_idletasksupdate)clsr   ws      F/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/test_outwin.py
setUpClassOutputWindowTest.setUpClass   sq    $x,,T4tDDJ J&16<<8#!hh77CHHO $    c                 x    U R                   R                  5         U ?U ? U R                  R	                  5         U ?g N)r   closer   r   destroyr   s    r   tearDownClassOutputWindowTest.tearDownClass   s0    

HcjHr   c                 <    U R                   R                  SS5        g )N1.0end)r   deleteselfs    r   setUpOutputWindowTest.setUp"   s    		&r   c                     U R                   nU R                  UR                  S5      5        U R                  UR                  [        5      5        g )Nztest.txt)r   assertFalseispythonsource__file__)r+   r   s     r   test_ispythonsource$OutputWindowTest.test_ispythonsource%   s=    KK))*56))(34r   c                 l    U R                  U R                  R                  R                  5       S5        g )NOutput)assertEqualr   toptitler*   s    r   test_window_title"OutputWindowTest.test_window_title+   s#    ..0(;r   c                 j   U R                   nU R                  n[        5       Ul        SUR                  l        U" UR                  5       S5        U" UR                  R                  S5        SUR                  l        U" UR                  5       S5        U" UR                  R                  S5        U?g )NFno   Tyes   )r   r6   r   	get_savedresult	maybesavecalled)r+   r   eqs      r   test_maybesaveOutputWindowTest.test_maybesave.   s    KKf"
1;;=$
1;;q!!
1;;=% 
1;;q!Kr   c                    U R                   nU R                  R                  nU R                  R                  nU R                  R
                  nU" SS5        SnU" U" U5      [        U5      5        U" U" SS5      S5        U" U" SS5      S5        U" SS5        SnU" U" U5      [        U5      5        U" U" SS5      S5        U" U" SS5      S5        U" SS5        S	nU" U" U5      [        U5      5        U" U" SS5      S5        U" U" S
S5      S5        U" U" SS5      S5        U" SS5        SnSnU" U" USS9[        U5      5        U" U" USS9[        U5      5        U" U" SS5      U5        U" U" SS5      U5        U" U" SS5      UR                  S5      5        U" U" S
S5      UR                  S5      5        g )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
)r6   r   r)   getr   writelenrstrip)r+   rD   r)   rT   rU   	test_text
test_text2s          r   
test_writeOutputWindowTest.test_write<   s   !!iimm!! 	ue	
5S^,
3ug,
3!#34kB 	ue!	
5S^,
3ug,
3!#34b9 	ue'	
5S^,
3ug,
3ug)
3!#34h? 	ue!	

5)3y>:
5+.J@
3}l+Y7
3 "23Z@
3ug	 0 0 67
3ug
 1 1$ 78r   c                    U R                   nU R                  R                  nU R                  R                  nU" S5        U" U" SS5      S5        U" U" SS5      S5        U" U" SS	5      S
5        U" U" SS5      S5        g )N)zLine 1
rO   zLine 3
r'   rH   zLine 1rL   rM   rN   z3.0z3.endzLine 3rI   rJ   rK   )r6   r   rT   r   
writelines)r+   rD   rT   r]   s       r   test_writelines OutputWindowTest.test_writelinesc   sx    iimm[[++
78
3ug)
3ug)
3ug)
3!#34b9r   c                    U R                   nU R                  nU R                  n[        R                  " 5       Ul        [        5       =oBR
                  l        [        5       =oRl	        UR                  S5        U R                  UR                  5       5        U" UR                  S5        U" UR                  S5        UR                  [        [         5       S35        UR                  [        [         5       S35        U R                  UR                  5       5        U" UR"                  [        [         5      S45        UR%                  SS5        UR                  [        [         5       S35        UR                  S5        U R                  UR                  5       5        U" UR"                  [        [         5      S	45        UR
                  ?U?	g )
NzNot a file liner   zNo special linez: 42: spam
z
: 21: spam   r'   r(   *   )r6   r   r   r	   Mockflistr   gotofileliner   	showerrorrU   assertIsNonegoto_file_linerC   r8   strr1   argsr)   )r+   rD   r   r   gflrf   s         r   test_goto_file_line$OutputWindowTest.test_goto_file_linen   sZ   KKyy))+%)V+gg""++-	K 	
!"!**,-
3::q
9??-. 	
3x=/./	3x=/,-!**,-
388c(mR() 	E5!	3x=/./	!"!**,-
388c(mR()GG !+r    N)__name__
__module____qualname____firstlineno__classmethodr   r$   r,   r2   r9   rE   rZ   r^   rl   __static_attributes__rn   r   r   r   r      sL    8 8  '5<%9N	:.r   r   c                   Z    \ rS rSr\S 5       rS r\R                  " S5      S 5       r	Sr
g)ModuleFunctionTest   c                     S [         l        g r    )r   file_line_progsr#   s    r   r,   ModuleFunctionTest.setUp   s
    !%r   c                     [         R                  " 5         [        [         R                  [         R                  5       H!  u  pU R                  UR                  U5        M#     g r    )r   compile_progszipfile_line_patsry   r6   pattern)r+   patregexs      r   test_compile_progs%ModuleFunctionTest.test_compile_progs   sB    f33V5K5KLJCU]]C0 Mr   zbuiltins.openc                     [         R                  nSnU H:  u  pEU R                  U" U5      U5        U(       d  M&  UR                  US   5        M<     g )N))z"foo file "testfile1", line 42, bar)	testfile1rb   )zfoo testfile2(21) bar)	testfile2ra   )z  testfile3  : 42: foo bar\n)z  testfile3  rb   )zfoo testfile4.py :1: )zfoo testfile4.py r=   )u   testfile5: ᧔᧒: )	testfile5rb   )ztestfile6: 42N)ztestfile7 42 textNr   )r   file_line_helperr6   assert_called_with)r+   	mock_openflh
test_lineslineexpected_outputs         r   test_file_line_helper(ModuleFunctionTest.test_file_line_helper   sO    %%
 &0!DSY8,,_Q-?@ &0r   rn   N)ro   rp   rq   rr   rs   r,   r   r	   patchr   rt   rn   r   r   rv   rv      s8    & &1
 
ZZ A !Ar   rv   __main__r?   )	verbosity)__doc__idlelibr   r   unittesttest.supportr   tkinterr   r   idlelib.idle_test.mock_tkr   idlelib.idle_test.mock_idler   r	   TestCaser   rv   ro   mainrn   r   r   <module>r      sd      
  !  / , }.x(( }.@A** A: zMMA r   