
    z%i                         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
ej                         Z G d d      Z G d dej                         Zedk(  r ej*                  dd       yy)z Test history, coverage 100%.    )HistoryN)requires)Text)idleConfza = 7zb = ac                   >    e Zd ZdZed        Zd Zd Zd Zd Z	d Z
y)		StoreTestz7Tests History.__init__ and History.store with mock Textc                 V    t               | _        t        | j                        | _        y N)mkTexttextr   historyclss    R/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_history.py
setUpClasszStoreTest.setUpClass   s    8chh'    c                 ^    | j                   j                  dd       g | j                  _        y )N1.0end)r   deleter   selfs    r   tearDownzStoreTest.tearDown   s"    		&!r   c           
         | j                  | j                  j                  | j                         | j                  | j                  j                  g        | j	                  | j                  j
                         | j	                  | j                  j                         | j                  | j                  j                  t        j                  ddddd             y )Nmainr   cyclic   bool)
assertIsr   r   assertEqualassertIsNoneprefixpointerr   r   	GetOptionr   s    r   	test_initzStoreTest.test_init   s    dll''3--r2$,,--.$,,../,,""69xFK	Mr   c                    | j                   j                  d       | j                  | j                   j                   g        | j                   j                  d       | j                  | j                   j                   g        y )Naz  a  )r   storer    r   s    r   test_store_shortzStoreTest.test_store_short$   sZ    3--r27#--r2r   c                    | j                   j                  t               | j                  | j                   j                   t        g       | j                   j                  t               | j                  | j                   j                   t        t        g       | j                   j                  t               | j                  | j                   j                   t        t        g       y r
   )r   r(   line1r    line2r   s    r   test_store_dupzStoreTest.test_store_dup*   s    5!--w75!--u~>5!--u~>r   c                 "   t         | j                  _        d| j                  _        | j                  j	                  t
               | j                  | j                  j                         | j                  | j                  j                         y )Nr   )r+   r   r"   r#   r(   r,   r!   r   s    r   test_store_resetzStoreTest.test_store_reset2   s\    # 5!$,,--.$,,../r   N)__name__
__module____qualname____doc__classmethodr   r   r%   r)   r-   r/    r   r   r   r      s1    A( ("M3?0r   r   c                       e Zd Zd Zd Zd Zy)TextWrapperc                 4    t        |      | _        d| _        y )N)masterF)tkTextr   _bell)r   r9   s     r   __init__zTextWrapper.__init__;   s    &)	
r   c                 .    t        | j                  |      S r
   )getattrr   )r   names     r   __getattr__zTextWrapper.__getattr__>   s    tyy$''r   c                     d| _         y )NT)r;   r   s    r   bellzTextWrapper.bell@   s	    
r   N)r0   r1   r2   r<   r@   rB   r5   r   r   r7   r7   :   s    (r   r7   c                   x    e Zd ZdZed        Zd Zed        ZdddZd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zy)	FetchTestz-Test History.fetch with wrapped tk.Text.
    c                     t        d       t        j                         | _        | j                  j	                          y )Ngui)r   tkTkrootwithdrawr   s    r   r   zFetchTest.setUpClassG   s&    557r   c                     t        | j                        x| _        }|j                  dd       |j	                  dd       |j                  dd       t        |      | _        t        t        g| j                  _        y )Nr   z>>> iomarkz1.4left)
r7   rI   r   insertmark_setmark_gravityr   r   r+   r,   )r   r   s     r   setUpzFetchTest.setUpM   s^    &tyy11	DE6"h&(F+t} %u~r   c                 <    | j                   j                          | ` y r
   )rI   destroyr   s    r   tearDownClasszFetchTest.tearDownClassU   s    Hr   FrB   c                   | j                   } |j                  |       | j                  } || j                  j	                  dd      |        || j                  j
                  |       |rd| j                  _         ||j                  |        ||j                  |        || j                  j                  ddd      d       y )NrL   zend-1cFrN   z==r   )	r   fetchr    r   getr;   r"   r#   compare)r   reverseliner"   indexrB   r   Equals           r   
fetch_testzFetchTest.fetch_testZ   s     ,,g  diimmHh/6diioot$#DIIOgnnf%goou%dii$91=r   c                 v    d}| j                   } |dt        |d        |dt        |d        |d|d d d       y )N Tr   r   rU   )r^   r,   r+   r   r"   tests      r   test_fetch_prev_cyclicz FetchTest.test_fetch_prev_cyclicj   s<    T5&!$T5&!$T64D1r   c                 v    d}| j                   } |dt        |d        |dt        |d        |d|d d d       y )Nr`   Fr   r   TrU   )r^   r+   r,   ra   s      r   test_fetch_next_cyclicz FetchTest.test_fetch_next_cyclicq   s<    UE61%UE61%UFD$T2r   c                     d}| j                   j                  d|       | j                  dt        |d       | j                  d|d d d       y )Nr'   rL   Tr   rU   r   rN   r^   r+   r   r"   s     r   test_fetch_prev_prefixz FetchTest.test_fetch_prev_prefixy   sC    		6*eVQ/fdDt<r   c                     d}| j                   j                  d|       | j                  dt        |d       | j                  d|d d d       y )Nr'   rL   Fr   TrU   rg   rh   s     r   test_fetch_next_prefixz FetchTest.test_fetch_next_prefix   sC    		6*ufa0vtT=r   c                     d}d| j                   _        | j                  } |dt        |d        |dt        |d        |dt        |dd       y )Nr`   FTr   r   rU   )r   r   r^   r,   r+   ra   s      r   test_fetch_prev_noncyclicz#FetchTest.test_fetch_prev_noncyclic   sH    #T5&!$T5&!$T5&!$/r   c                     d}d| j                   _        | j                  } |d|d d d        |dt        |d        |d|d d d        |d|d d d       y )Nr`   FTrU   r   )r   r   r^   r,   ra   s      r   test_fetch_next_noncyclicz#FetchTest.test_fetch_next_noncyclic   sZ    #UFD$T2T5&!$UFD$T2UFD$T2r   c                     | j                   j                  d       | j                  j                  dd       | j	                  dt
        d d d       y )NTrZ   rN   rL   rU   )r   rW   r   rO   r^   r,   r   s    r   test_fetch_cursor_movez FetchTest.test_fetch_cursor_move   sA    4(		8X.eT4d;r   c                     | j                   j                  d       | j                  j                  dd       | j                  j	                  dd       | j                  dt        dd       y )NTrq   rL   rN   za =r   )r   rW   r   r   rN   r^   r+   r   s    r   test_fetch_editzFetchTest.test_fetch_edit   sQ    4(		8.		5)eUA.r   c                    | j                   j                  d       | j                  | j                   j                  d       | j                   j	                  d       | j                  | j                   j                  d        y )Nzdummy eventr   )r   history_prevr    r#   history_nextr   s    r   test_history_prev_nextz FetchTest.test_history_prev_next   sZ    !!-0--q1!!-0--t4r   N)r0   r1   r2   r3   r4   r   rQ   rT   r^   rc   re   ri   rk   rm   ro   rr   rt   rx   r5   r   r   rD   rD   D   sk     
.   @E > 23=>03</5r   rD   __main__   )	verbosityexit)r3   idlelib.historyr   unittesttest.supportr   tkinterrG   r   r:   idlelib.idle_test.mock_tkr   idlelib.configr   r+   r,   TestCaser   r7   rD   r0   r   r5   r   r   <module>r      sx     #  !  " 4 #'0!! '0T d5!! d5N zHMMAA& r   