<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
     fc                 @   s   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ejZG dd	 d	ejZG d
d dejZdd ZG dd dejZG dd dejZedkrejdd dS )zTest editor, coverage 35%.    )editorN)
namedtuple)requires)Tk)Funcc               @   s,   e Zd Zedd Zedd Zdd ZdS )EditorWindowTestc             C   s   t d t | _| j  d S )Ngui)r   r   rootwithdraw)cls r   B/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_editor.py
setUpClass   s    zEditorWindowTest.setUpClassc             C   sB   | j   x$| j jddD ]}| j | qW | j   | ` d S )Nafterinfo)r	   update_idletaskstkcallafter_canceldestroy)r   idr   r   r   tearDownClass   s
    

zEditorWindowTest.tearDownClassc             C   s(   t | jd}| |j| j |  d S )N)r	   )Editorr	   assertEqual_close)selfer   r   r   	test_init   s    zEditorWindowTest.test_initN)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r      s   r   c               @   s$   e Zd Zdd Zdd Zdd ZdS )TestGetLineIndentc             C   sP   xJdD ]B}x<dD ]4}| j ||d | tj||dd W d Q R X qW qW d S )N)               ) 
)linetabwidth)r+   )r   r   )subTestr   r   get_line_indent)r   r+   r*   r   r   r   test_empty_lines$   s    

z"TestGetLineIndent.test_empty_linesc          
   C   sH   d}x>|D ]6\}}| j |d | tj|dd| W d Q R X q
W d S )N))z	no spaces)r   r   )z    space test)r%   r%   )z		tab test)r#   r%   )z		double tabs test)r$   r'   )z    	mixed test)   r'   )z  	  mixed test)r/   r&   )z	    mixed test)r/   r'   )z  	mixed test)   r%   )z 	 mixed test)r0   r/   )z	  mixed test)r0   r&   )z
newline test)r   r   )r*   r%   )r+   )r,   r   r   r-   )r   testsr*   expectedr   r   r   test_tabwidth_4-   s    z!TestGetLineIndent.test_tabwidth_4c          
   C   sH   d}x>|D ]6\}}| j |d | tj|dd| W d Q R X q
W d S )N))z	no spaces)r   r   )z        space test)r'   r'   )z		tab test)r#   r'   )z		double tabs test)r$      )z        	mixed test)	   r4   )z      	  mixed test)r5   
   )z	        mixed test)r5   r4   )z  	mixed test)r0   r'   )z 	 mixed test)r0   r5   )z	  mixed test)r0   r6   )z
newline test)r   r   )r*   r'   )r+   )r,   r   r   r-   )r   r1   r*   r2   r   r   r   test_tabwidth_8F   s    z!TestGetLineIndent.test_tabwidth_8N)r   r   r    r.   r3   r7   r   r   r   r   r"   #   s   	r"   c             C   s$   |  dd | d| |   d S )Nz1.0end)deleteinsertupdate)textstringr   r   r   r:   `   s    r:   c               @   s,   e Zd Zedd Zedd Zdd ZdS )IndentAndNewlineTestc             C   s<   t d t | _| j  t| jd| _d| j_d| j_d S )Nr   )r	   r$   )r   r   r	   r
   r   windowZindentwidthr+   )r   r   r   r   r   h   s    
zIndentAndNewlineTest.setUpClassc             C   sP   | j   | ` | j  x$| jjddD ]}| j| q*W | j  | `d S )Nr   r   )r?   r   r	   r   r   r   r   r   )r   r   r   r   r   r   q   s    


z"IndentAndNewlineTest.tearDownClassc       	      C   sl  | j }| j}|j}|j}|j}tdddddg}|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d|ddd d	|d!dd"df	}d#|_x\|D ]T}| j|jd$< t	||j |
d%|j |d d& ||d'd(|j W d Q R X qW t	|d) |d*d+d	 |d  ||d'd(d, d-|_t	|d. |
d%d/ |d  ||d'd(d0 d S )1NZTestslabelr<   r2   markz"Empty line inserts with no indent.z  
  def __init__(self):z
  
  def __init__(self):
z1.endz+Inside bracket before space, deletes space.z  def f1(self, a, b):z  def f1(self,
         a, b):
z1.14z*Inside bracket after space, deletes space.z1.15z(Inside string with one line - no indent.z  """Docstring."""z  """Docstring.
"""
z&Inside string with more than one line.z%  """Docstring.
  Docstring Line 2"""z)  """Docstring.
  Docstring Line 2
  """
z2.18zBackslash with one line.za =\za =\
  
z"Backslash with more than one line.za =\
          multiline\z%a =\
          multiline\
          
z2.endz Block opener - indents +1 level.z  def f1(self):
    passz  def f1(self):
    
    pass
z Block closer - dedents -1 level.z  def f1(self):
    pass
  
r(   )r@   r:   )Zeventz1.0r8   z&  def f1(self, a, b):
    return a + bZselz1.17z-  def f1(self, a,
         
    return a + b
z>>> z	>>> 		a =z1.5z	>>> 
a =
)r   r?   r<   getZnewline_and_indent_eventr   Zprompt_last_liner,   r@   r:   Zmark_setrA   r2   Ztag_add)	r   eqwr<   rB   nlZTestInfor1   Ztestr   r   r   test_indent_and_newline_event{   st    

 

z2IndentAndNewlineTest.test_indent_and_newline_eventN)r   r   r    r!   r   r   rF   r   r   r   r   r>   f   s   	
r>   c               @   s:   e Zd Zedd Zedd ZG dd dZdd Zd	S )
	RMenuTestc             C   s,   t d t | _| j  t| jd| _d S )Nr   )r	   )r   r   r	   r
   r   r?   )r   r   r   r   r      s    
zRMenuTest.setUpClassc             C   sP   | j   | ` | j  x$| jjddD ]}| j| q*W | j  | `d S )Nr   r   )r?   r   r	   r   r   r   r   r   )r   r   r   r   r   r      s    


zRMenuTest.tearDownClassc               @   s   e Zd Zdd ZdS )zRMenuTest.DummyRMenuc             C   s   d S )Nr   )xyr   r   r   tk_popup       zRMenuTest.DummyRMenu.tk_popupN)r   r   r    rJ   r   r   r   r   
DummyRMenu   s   rL   c             C   s   d S )Nr   )r   r   r   r   test_rclick   s    zRMenuTest.test_rclickN)r   r   r    r!   r   r   rL   rM   r   r   r   r   rG      s   
rG   __main__r$   )	verbosity)__doc__Zidlelibr   Zunittestcollectionsr   Ztest.supportr   Ztkinterr   Zidlelib.idle_test.mock_idler   ZEditorWindowr   ZTestCaser   r"   r:   r>   rG   r   mainr   r   r   r   <module>   s   =[