
    z%ie                         	 d dl mZ d dlZd dlmZ d dlmZ  G d dej                        Z G d dej                        Z	 G d	 d
ej                        Z
edk(  r ej                  d       yy)    )pyshellN)requires)Tkc                       e Zd Zd Zd Zy)FunctionTestc           
         | j                   }dD ]k  \  }}}d}|dz  }| j                  ||      5  |xs d}t        j                  ||      } |t	        |      |        ||||z    d| d|        d d d        m y # 1 sw Y   xxY w)N))    r	   )finame   =<   r   )filebarShellz
 RESTART:  )assertEqualsubTestr   restart_linelen)selfeqr   mulextrawidthr   lines           R/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_pyshell.pytest_restart_line_widez#FunctionTest.test_restart_line_wide   s     C 	?D#uE)C4S1 ?w++E483t9e$4CI;jau=>	? ?	?? ?s   AA>>B	c                     d\  }}|dz
  ||dz   fD ]C  }| j                  |      5  | j                  t        j                  |d      |       d d d        E | j                  t        j                  |dz   d      |dz          y # 1 sw Y   |xY w)N)z= RESTART: Shell      )r   r	      z =)r   r   r   r   )r   expecttaglenr   s       r   test_restart_line_narrowz%FunctionTest.test_restart_line_narrow   s    /Qhq1 	JEE* J  !5!5eR!@&IJ J	J 	--fQh;VD[IJ Js   'BB	N)__name__
__module____qualname__r   r%        r   r   r   
   s    	?Jr*   r   c                   2    e Zd Zed        Zed        Zd Zy)PyShellFileListTestc                 l    t        d       t               | _        | j                  j                          y )Ngui)r   r   rootwithdrawclss    r   
setUpClasszPyShellFileListTest.setUpClass"   s"    4r*   c                 <    | j                   j                          | ` y N)r/   destroyr1   s    r   tearDownClassz!PyShellFileListTest.tearDownClass(   s    
 	Hr*   c                     t        j                  | j                        }| j                  |j                  t         j
                         | j                  |j                          y r5   )r   PyShellFileListr/   r   EditorWindowPyShellEditorWindowassertIsNone)r   psfls     r   	test_initzPyShellFileListTest.test_init0   sD    &&tyy1**G,G,GH$,,'r*   N)r&   r'   r(   classmethodr3   r7   r>   r)   r*   r   r,   r,       s-     
  (r*   r,   c                   t    e Zd Zej                  j
                  Zd Zd Zd Z	d Z
d Zd Zd Zd Zd	 Zd
 Zy)4PyShellRemoveLastNewlineAndSurroundingWhitespaceTestc                 \    | j                  d| j                  j                  d|             y Nr	   r   regexpsubr   texts     r   all_removedz@PyShellRemoveLastNewlineAndSurroundingWhitespaceTest.all_removedB   s!    T[[__R67r*   c                 \    | j                  || j                  j                  d|             y rC   rD   rG   s     r   none_removedzAPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.none_removedE   s!    t{{r489r*   c                 \    | j                  || j                  j                  d|             y rC   rD   )r   rH   expecteds      r   check_resultzAPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.check_resultH   s!    4;;??2t#<=r*   c                 &    | j                  d       y rC   rI   r   s    r   
test_emptyz?PyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_emptyK   s    r*   c                 &    | j                  d       y )N
rP   rQ   s    r   test_newlinezAPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_newlineN   s    r*   c                    | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d	       | j                  d
       | j                  d       | j                  d       y )Nr   z  z   z                    	z		z			z																				z	 z 	z 	 	 z	 	 	rP   rQ   s    r   test_whitespace_no_newlinezOPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_whitespace_no_newlineQ   s    " "##$r*   c                 $   | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d	       | j                  d
       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       y )N 
	
z 	
z	 
z
 z
	z
 	z
	 z 
 z	
 z 
	z	
	z	 	 	
z 	 	 
z
	 	 	z
 	 	 rP   rQ   s    r   test_newline_with_whitespacezQPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_newline_with_whitespace_   s     !! !! !!"&%&%r*   c                    | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  d	d
       | j                  dd
       | j                  dd
       | j                  dd       | j                  dd       | j                  dd       | j                  d	d
       | j                  dd       y )Nz

rT   z




z



z




	z



















z


















z



















 z 
 
 rZ   z 

 z 

z	

r[   z

 z

	z	
	
	)rN   rQ   s    r   test_multiple_newlineszKPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_multiple_newlinesq   s    &$'(H-/84)Y//95)U+(E*'5)(F+'4((D))U+,/r*   c                 B   | j                  d       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  d       | j                  dd       | j                  d       | j                  d	d       y )
Naza
za
 za 
 za 
	-z-
.z.
rK   rN   rQ   s    r   test_non_whitespacezHPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_non_whitespace   s    #%%&#&'3'(C(#%%#%%r*   c                     | j                  d       | j                  d       | j                  dd       | j                  d       | j                  dd       y )Nz
z
z 
z
 rc   rQ   s    r   test_unsupported_whitespacezPPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_unsupported_whitespace   sL    $&!&$''"'4(r*   N)r&   r'   r(   r   PyShell_last_newline_rerE   rI   rK   rN   rR   rU   rX   r\   r^   rd   rg   r)   r*   r   rA   rA   ?   sC    __--F8:>%&$0	&)r*   rA   __main__r"   )	verbosity)idlelibr   unittesttest.supportr   tkinterr   TestCaser   r,   rA   r&   mainr)   r*   r   <module>rr      sn       ! J8$$ J,((++ (>Q)8;L;L Q)h zHMMA r*   