a
    	3j                     @   s   d Z 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rejddd dS )z Test history, coverage 100%.    )HistoryN)requires)Text)idleConfza = 7zb = ac                   @   sD   e Zd ZdZedd Zdd Zdd Zdd	 Zd
d Z	dd Z
dS )	StoreTestz7Tests History.__init__ and History.store with mock Textc                 C   s   t  | _t| j| _d S N)mkTexttextr   historycls r   Z/www/server/python_manager/versions/3.9.10/lib/python3.9/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____doc__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/   r2   r3   r   r   r   r   r+   :   s   r+   c                   @   s   e Zd 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 )	FetchTestz-Test History.fetch with wrapped tk.Text.
    c                 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+   r6   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   )r6   Zdestroyr   r   r   r   tearDownClassU   s    
zFetchTest.tearDownClassFr3   c                C   sv   | j }|| | j}|| jdd| || jj| |rDd| j_||j| ||j| || jdddd d S )Nr7   zend-1cFr9   z==r   )	r
   fetchr   r	   getr.   r   r   Zcompare)r   reverseliner   indexr3   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=   )rC   r#   r"   r   r   testr   r   r   test_fetch_prev_cyclicj   s
    z FetchTest.test_fetch_prev_cyclicc                 C   s<   d}| j }|dt|d |dt|d |d|d d dd d S )NrD   Fr   r   Tr=   )rC   r"   r#   rE   r   r   r   test_fetch_next_cyclicq   s
    z FetchTest.test_fetch_next_cyclicc                 C   s:   d}| j d| | dt|d | jd|d d dd d S )Nr   r7   Tr   r=   r	   r9   rC   r"   r   r   r   r   r   test_fetch_prev_prefixy   s    z FetchTest.test_fetch_prev_prefixc                 C   s:   d}| j d| | dt|d | jd|d d dd d S )Nr   r7   Fr   Tr=   rI   rJ   r   r   r   test_fetch_next_prefix   s    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 )NrD   FTr   r   r=   )r
   r   rC   r#   r"   rE   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 )NrD   FTr=   r   )r
   r   rC   r#   rE   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@   r9   r7   r=   )r
   r>   r	   r:   rC   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 )NTrO   r7   r9   za =r   )r
   r>   r	   r   r9   rC   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;   r<   rC   rG   rH   rK   rL   rM   rN   rP   rQ   rR   r   r   r   r   r4   D   s    

	r4   __main__   )	verbosityexit)r)   Zidlelib.historyr   ZunittestZtest.supportr   tkinterr5   r   r-   Zidlelib.idle_test.mock_tkr   Zidlelib.configr   r"   r#   ZTestCaser   r+   r4   r&   r   r   r   r   r   <module>   s   *
g