o
    JAf                     @   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rRejddd dS 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   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____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| |r"d| 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   
   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   rH   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      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=   rJ   rK   r   r   r   test_fetch_next_prefix   rM   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 )NTrQ   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   rI   rL   rN   rO   rP   rR   rS   rT   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