o
    JAf
                     @   sn   d Z ddlmZ ed ddlZddlmZ ddlZddlmZ G dd dej	Z
ed	kr5ejd
d dS dS )zNTest (selected) IDLE Edit menu items.

Edit modules have their own test files
    )requiresZguiN)ttk)pyshellc                   @   s@   e Zd ZdZedd Zedd Zdd Zdd	 Zd
d Z	dS )	PasteTestzeTest pasting into widgets that allow pasting.

    On X11, replacing selections requires tk fix.
    c                 C   sh   t   | _}| j  t| t || _t || _	t
|| _t || _|  |d d S )Ntwo)tkZTkrootZwithdrawr   Zfix_x11_pasteZTexttextZEntryentryr   tentryZSpinboxspinclipboard_clearZclipboard_append)clsr    r   6/usr/lib/python3.10/idlelib/idle_test/test_editmenu.py
setUpClass   s   

zPasteTest.setUpClassc                 C   s2   | ` | `| `| j  | j  | j  | `d S )N)r	   r
   r   r   r   Zupdate_idletasksZdestroy)r   r   r   r   tearDownClass   s
   


zPasteTest.tearDownClassc              	   C   s~   | j }dD ]7\}}| j||d$ |dd |dd| |d | |dd| W d   n1 s7w   Y  qdS )z4Test pasting into text with and without a selection.)) zonetwo
)Zselztwo
)tagansz1.0endone	<<Paste>>N)r	   subTestdeleteinsertevent_generateassertEqualget)selfr	   r   r   r   r   r   test_paste_text%   s   
zPasteTest.test_paste_textc              
   C   s   | j | jfD ]@}dD ];\}}| j|||d' |dd |dd |d| |d | | | W d   n1 s@w   Y  q
qdS )z8Test pasting into an entry with and without a selection.)r   Zonetwo)r   r   )r
   r   r   r   r   r   r   N)	r
   r   r   r   r   Zselect_ranger   r   r   )r   r
   r   r   r   r   r   test_paste_entry/   s   
zPasteTest.test_paste_entryc              	   C   s   | j }dD ];\}}| j||d( |dd |dd |dd| |d | | | W d   n1 s;w   Y  qdS )	z9Test pasting into a spinbox with and without a selection.r!   )r   r   r   r   r   ranger   N)r   r   r   r   Z	selectionr   r   r   )r   r   r   r   r   r   r   test_paste_spin<   s   
zPasteTest.test_paste_spinN)
__name__
__module____qualname____doc__classmethodr   r   r    r"   r$   r   r   r   r   r      s    


r   __main__   )	verbosity)r(   Ztest.supportr   tkinterr   r   ZunittestZidlelibr   ZTestCaser   r%   mainr   r   r   r   <module>   s    =