o
    JAf                     @   s   	 d dl mZ d dl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ZdZG dd	 d	ejZG d
d dZG dd dejZedkrQejddd dS dS )    )HistoryN)requires)Text)idleConfza = 7zb = ac                   @   sB   e Zd Z	 edd Zdd Zdd Zdd Zd	d
 Zdd Z	dS )	StoreTestc                 C   s   t  | _t| j| _d S N)mkTexttextr   historycls r   5/usr/lib/python3.10/idlelib/idle_test/test_history.py
setUpClass   s   zStoreTest.setUpClassc                 C   s   | j dd g | j_d S )N1.0end)r	   deleter
   selfr   r   r   tearDown   s   zStoreTest.tearDownc              
   C   s`   |  | jj| j | | jjg  | | jj | | jj | | jjt	ddddd d S )Nmainr   cyclic   bool)
ZassertIsr
   r	   assertEqualassertIsNoneprefixpointerr   r   Z	GetOptionr   r   r   r   	test_init   s   
zStoreTest.test_initc                 C   s<   | j d | | j j g  | j d | | j j g  d S )Naz  a  )r
   storer   r   r   r   r   test_store_short$   s   zStoreTest.test_store_shortc                 C   sb   | j t | | j j tg | j t | | j j ttg | j t | | j j ttg d S r   )r
   r    line1r   line2r   r   r   r   test_store_dup*   s   zStoreTest.test_store_dupc                 C   s<   t | j_d| j_| jt | | jj | | jj d S )Nr   )r"   r
   r   r   r    r#   r   r   r   r   r   test_store_reset2   s
   zStoreTest.test_store_resetN)
__name__
__module____qualname__classmethodr   r   r   r!   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 )TextWrapperc                 C   s   t |d| _d| _d S )N)masterF)tkTextr	   _bell)r   r+   r   r   r   __init__;   s   
zTextWrapper.__init__c                 C   s   t | j|S r   )getattrr	   )r   namer   r   r   __getattr__>   s   zTextWrapper.__getattr__c                 C   s
   d| _ d S )NT)r-   r   r   r   r   bell@   s   
zTextWrapper.bellN)r&   r'   r(   r.   r1   r2   r   r   r   r   r*   :   s    r*   c                   @   s   e Zd Z	 edd Zdd Zedd Zdd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 )	FetchTestc                 C   s    t d t | _| j  d S )NZgui)r   tkZTkrootZwithdrawr   r   r   r   r   G   s   
zFetchTest.setUpClassc                 C   sN   t | j | _}|dd |dd |dd t|| _tt	g| j_d S )Nr   z>>> iomarkz1.4left)
r*   r5   r	   insertmark_setZmark_gravityr   r
   r"   r#   )r   r	   r   r   r   setUpM   s   
zFetchTest.setUpc                 C   s   | j   | ` d S r   )r5   Zdestroyr   r   r   r   tearDownClassU   s   
zFetchTest.tearDownClassFr2   c                C   sv   | j }|| | j}|| jdd| || jj| |r"d| j_||j| ||j| || jdddd d S )Nr6   zend-1cFr8   z==r   )	r
   fetchr   r	   getr-   r   r   Zcompare)r   reverseliner   indexr2   r   ZEqualr   r   r   
fetch_testZ   s   
zFetchTest.fetch_testc                 C   s<   d}| j }|dt|d |dt|d |d|d d dd d S )N Tr   r   r<   )rB   r#   r"   r   r   testr   r   r   test_fetch_prev_cyclicj   
   z FetchTest.test_fetch_prev_cyclicc                 C   s<   d}| j }|dt|d |dt|d |d|d d dd d S )NrC   Fr   r   Tr<   )rB   r"   r#   rD   r   r   r   test_fetch_next_cyclicq   rG   z FetchTest.test_fetch_next_cyclicc                 C   s:   d}| j d| | dt|d | jd|d d dd d S )Nr   r6   Tr   r<   r	   r8   rB   r"   r   r   r   r   r   test_fetch_prev_prefixy      z FetchTest.test_fetch_prev_prefixc                 C   s:   d}| j d| | dt|d | jd|d d dd d S )Nr   r6   Fr   Tr<   rI   rJ   r   r   r   test_fetch_next_prefix   rL   z FetchTest.test_fetch_next_prefixc                 C   sD   d}d| j _| j}|dt|d |dt|d |dt|ddd d S )NrC   FTr   r   r<   )r
   r   rB   r#   r"   rD   r   r   r   test_fetch_prev_noncyclic   s   z#FetchTest.test_fetch_prev_noncyclicc                 C   sZ   d}d| j _| j}|d|d d dd |dt|d |d|d d dd |d|d d dd d S )NrC   FTr<   r   )r
   r   rB   r#   rD   r   r   r   test_fetch_next_noncyclic   s   z#FetchTest.test_fetch_next_noncyclicc                 C   s4   | j jdd | jdd | jdtd d dd d S )NTr?   r8   r6   r<   )r
   r=   r	   r9   rB   r#   r   r   r   r   test_fetch_cursor_move   s   z FetchTest.test_fetch_cursor_movec                 C   s>   | j jdd | jdd | jdd | dtdd d S )NTrP   r6   r8   za =r   )r
   r=   r	   r   r8   rB   r"   r   r   r   r   test_fetch_edit   s   zFetchTest.test_fetch_editc                 C   s<   | j d | | j jd | j d | | j jd  d S )Nzdummy eventr   )r
   Zhistory_prevr   r   Zhistory_nextr   r   r   r   test_history_prev_next   s   z FetchTest.test_history_prev_nextN)r&   r'   r(   r)   r   r:   r;   rB   rF   rH   rK   rM   rN   rO   rQ   rR   rS   r   r   r   r   r3   D   s"    

	r3   __main__   )	verbosityexit)Zidlelib.historyr   ZunittestZtest.supportr   tkinterr4   r   r,   Zidlelib.idle_test.mock_tkr   Zidlelib.configr   r"   r#   ZTestCaser   r*   r3   r&   r   r   r   r   r   <module>   s     *
g