o
    JAfe  ã                   @   s‚   d Z ddlmZ ddlZddlmZ ddlmZ G dd„ dejƒZ	G dd	„ d	ejƒZ
G d
d„ dejƒZedkr?ejdd dS dS )zTest pyshell, coverage 12%.é    )ÚpyshellN)Úrequires)ÚTkc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚFunctionTestc              	   C   s”   | j }dD ]B\}}}d}|d }| j||d( |pd}t ||¡}|t|ƒ|ƒ |||| › d|› d|› ƒ W d   ƒ n1 sBw   Y  qd S )N))Ú é   r   )Zfinameé   ú=é<   r	   )ÚfileÚbarZShellz
 RESTART: ú )ÚassertEqualÚsubTestr   Úrestart_lineÚlen)ÚselfÚeqr   ÚmulÚextraÚwidthr   Úline© r   ú5/usr/lib/python3.10/idlelib/idle_test/test_pyshell.pyÚtest_restart_line_wide   s    ü€ýz#FunctionTest.test_restart_line_widec              	   C   s€   d\}}|d ||d fD ]"}| j |d |  t |d¡|¡ W d   ƒ n1 s*w   Y  q|  t |d d¡|d ¡ d S )N)z= RESTART: Shellé   é   )r   r   é   z =)r   r   r   r   )r   ÚexpectZtaglenr   r   r   r   Útest_restart_line_narrow   s   ÿ€ z%FunctionTest.test_restart_line_narrowN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   
   s    r   c                   @   s,   e Zd Zedd„ ƒZedd„ ƒZdd„ ZdS )ÚPyShellFileListTestc                 C   s   t dƒ tƒ | _| j ¡  d S )NZgui)r   r   ÚrootZwithdraw©Úclsr   r   r   Ú
setUpClass"   s   zPyShellFileListTest.setUpClassc                 C   s   | j  ¡  | ` d S ©N)r$   Zdestroyr%   r   r   r   ÚtearDownClass(   s   
z!PyShellFileListTest.tearDownClassc                 C   s,   t  | j¡}|  |jt j¡ |  |j ¡ d S r(   )r   ZPyShellFileListr$   r   ZEditorWindowZPyShellEditorWindowZassertIsNone)r   Zpsflr   r   r   Ú	test_init0   s   zPyShellFileListTest.test_initN)r    r!   r"   Úclassmethodr'   r)   r*   r   r   r   r   r#       s    

r#   c                   @   sd   e Zd ZejjZdd„ Zdd„ Zdd„ Z	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú4PyShellRemoveLastNewlineAndSurroundingWhitespaceTestc                 C   s   |   d| j d|¡¡ d S ©Nr   ©r   ÚregexpÚsub©r   Útextr   r   r   Úall_removedB   ó   z@PyShellRemoveLastNewlineAndSurroundingWhitespaceTest.all_removedc                 C   s   |   || j d|¡¡ d S r-   r.   r1   r   r   r   Únone_removedE   r4   zAPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.none_removedc                 C   s   |   || j d|¡¡ d S r-   r.   )r   r2   Zexpectedr   r   r   Úcheck_resultH   r4   zAPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.check_resultc                 C   ó   |   d¡ d S r-   ©r3   ©r   r   r   r   Ú
test_emptyK   ó   z?PyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_emptyc                 C   r7   )NÚ
r8   r9   r   r   r   Útest_newlineN   r;   zAPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_newlinec                 C   s|   |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d	¡ |   d
¡ |   d¡ |   d¡ d S )Nr   z  z   z                    ú	z		z			z																				z	 z 	z 	 	 z	 	 	r8   r9   r   r   r   Útest_whitespace_no_newlineQ   s   










zOPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_whitespace_no_newlinec                 C   s¤   |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d	¡ |   d
¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ d S )Nú 
ú	
z 	
z	 
z
 z
	z
 	z
	 z 
 z	
 z 
	z	
	z	 	 	
z 	 	 
z
	 	 	z
 	 	 r8   r9   r   r   r   Útest_newline_with_whitespace_   s    














zQPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_newline_with_whitespacec                 C   s    |   dd¡ |   dd¡ |   dd¡ |   dd¡ |   dd¡ |   d	d
¡ |   dd
¡ |   dd
¡ |   dd¡ |   dd¡ |   dd¡ |   d	d
¡ |   dd¡ d S )Nz

r<   z




z



z




	z



















z


















z



















 z 
 
 r@   z 

 z 

z	

rA   z

 z

	z	
	
	)r6   r9   r   r   r   Útest_multiple_newlinesq   s   zKPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_multiple_newlinesc                 C   sj   |   d¡ |  dd¡ |  dd¡ |  dd¡ |  dd¡ |   d¡ |  dd¡ |   d¡ |  d	d¡ d S )
NÚaza
za
 za 
 za 
	ú-z-
Ú.z.
©r5   r6   r9   r   r   r   Útest_non_whitespace€   s   


zHPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_non_whitespacec                 C   s:   |   d¡ |   d¡ |  dd¡ |   d¡ |  dd¡ d S )Núz
z
z 
z
 rG   r9   r   r   r   Útest_unsupported_whitespace‹   s
   


zPPyShellRemoveLastNewlineAndSurroundingWhitespaceTest.test_unsupported_whitespaceN)r    r!   r"   r   ZPyShellZ_last_newline_rer/   r3   r5   r6   r:   r=   r?   rB   rC   rH   rJ   r   r   r   r   r,   ?   s    r,   Ú__main__r   )Ú	verbosity)Ú__doc__Zidlelibr   ZunittestZtest.supportr   Útkinterr   ZTestCaser   r#   r,   r    Úmainr   r   r   r   Ú<module>   s    Tÿ