
    ѝi                         S r SSKJr  SSKrSSKJr  SSKrSSKJr	  SSK
Jr  SSKJr  SrSr " S	 S
\R                   5      r " S S5      r " S S\R                   5      r\S:X  a  \R*                  " SSS9  gg)zTest history, coverage 100%.    )HistoryN)requires)Text)idleConfza = 7zb = ac                   F    \ rS rSrSr\S 5       rS rS rS r	S r
S rS	rg
)	StoreTest   z7Tests History.__init__ and History.store with mock Textc                 V    [        5       U l        [        U R                  5      U l        g N)mkTexttextr   historyclss    0lib/python3.13/idlelib/idle_test/test_history.py
setUpClassStoreTest.setUpClass   s    8chh'    c                 ^    U R                   R                  SS5        / U R                  l        g )N1.0end)r   deleter   selfs    r   tearDownStoreTest.tearDown   s"    		&!r   c           
         U R                  U R                  R                  U R                  5        U R                  U R                  R                  / 5        U R	                  U R                  R
                  5        U R	                  U R                  R                  5        U R                  U R                  R                  [        R                  " SSSSS5      5        g )Nmainr   cyclic   bool)
assertIsr   r   assertEqualassertIsNoneprefixpointerr   r   	GetOptionr   s    r   	test_initStoreTest.test_init   s    dll''3--r2$,,--.$,,../,,""69xFK	Mr   c                    U R                   R                  S5        U R                  U R                   R                   / 5        U R                   R                  S5        U R                  U R                   R                   / 5        g )Naz  a  )r   storer#   r   s    r   test_store_shortStoreTest.test_store_short$   sZ    3--r27#--r2r   c                    U R                   R                  [        5        U R                  U R                   R                   [        /5        U R                   R                  [        5        U R                  U R                   R                   [        [        /5        U R                   R                  [        5        U R                  U R                   R                   [        [        /5        g r   )r   r,   line1r#   line2r   s    r   test_store_dupStoreTest.test_store_dup*   s    5!--w75!--u~>5!--u~>r   c                 "   [         U R                  l        SU R                  l        U R                  R	                  [
        5        U R                  U R                  R                  5        U R                  U R                  R                  5        g )Nr   )r0   r   r%   r&   r,   r1   r$   r   s    r   test_store_resetStoreTest.test_store_reset2   s\    # 5!$,,--.$,,../r    N)__name__
__module____qualname____firstlineno____doc__classmethodr   r   r(   r-   r2   r5   __static_attributes__r7   r   r   r   r      s1    A( ("M3?0r   r   c                   &    \ rS rSrS rS rS rSrg)TextWrapper:   c                 .    [        US9U l        SU l        g )N)masterF)tkTextr   _bell)r   rC   s     r   __init__TextWrapper.__init__;   s    &)	
r   c                 .    [        U R                  U5      $ r   )getattrr   )r   names     r   __getattr__TextWrapper.__getattr__>   s    tyy$''r   c                     SU l         g )NT)rE   r   s    r   bellTextWrapper.bell@   s	    
r   )rE   r   N)r8   r9   r:   r;   rF   rK   rN   r>   r7   r   r   r@   r@   :   s    (r   r@   c                       \ rS rSrSr\S 5       rS r\S 5       rSS.S jr	S	 r
S
 rS rS rS rS rS rS rS rSrg)	FetchTestD   z-Test History.fetch with wrapped tk.Text.
    c                     [        S5        [        R                  " 5       U l        U R                  R	                  5         g )Ngui)r   tkTkrootwithdrawr   s    r   r   FetchTest.setUpClassG   s&    557r   c                     [        U R                  5      =U l        nUR                  SS5        UR	                  SS5        UR                  SS5        [        U5      U l        [        [        /U R                  l        g )Nr   z>>> iomarkz1.4left)
r@   rW   r   insertmark_setmark_gravityr   r   r0   r1   )r   r   s     r   setUpFetchTest.setUpM   s^    &tyy11	DE6"h&(F+t} %u~r   c                 <    U R                   R                  5         U ? g r   )rW   destroyr   s    r   tearDownClassFetchTest.tearDownClassU   s    Hr   FrN   c                   U R                   nUR                  " U5        U R                  nU" U R                  R	                  SS5      U5        U" U R                  R
                  U5        U(       a  SU R                  l        U" UR                  U5        U" UR                  U5        U" U R                  R                  SSS5      S5        g )Nr[   zend-1cFr]   z==r    )	r   fetchr#   r   getrE   r%   r&   compare)r   reverseliner%   indexrN   r   Equals           r   
fetch_testFetchTest.fetch_testZ   s     ,,g  diimmHh/6diioot$#DIIOgnnf%goou%dii$91=r   c                 p    SnU R                   nU" S[        US5        U" S[        US5        U" SUS S SS9  g )N Tr    r   rf   )ro   r1   r0   r   r%   tests      r   test_fetch_prev_cyclic FetchTest.test_fetch_prev_cyclicj   s<    T5&!$T5&!$T64D1r   c                 p    SnU R                   nU" S[        US5        U" S[        US5        U" SUS S SS9  g )Nrr   Fr   r    Trf   )ro   r0   r1   rs   s      r   test_fetch_next_cyclic FetchTest.test_fetch_next_cyclicq   s<    UE61%UE61%UFD$T2r   c                     SnU R                   R                  SU5        U R                  S[        US5        U R                  SUS S SS9  g )Nr+   r[   Tr   rf   r   r]   ro   r0   r   r%   s     r   test_fetch_prev_prefix FetchTest.test_fetch_prev_prefixy   sC    		6*eVQ/fdDt<r   c                     SnU R                   R                  SU5        U R                  S[        US5        U R                  SUS S SS9  g )Nr+   r[   Fr   Trf   r{   r|   s     r   test_fetch_next_prefix FetchTest.test_fetch_next_prefix   sC    		6*ufa0vtT=r   c                     SnSU R                   l        U R                  nU" S[        US5        U" S[        US5        U" S[        USSS9  g )Nrr   FTr    r   rf   )r   r   ro   r1   r0   rs   s      r   test_fetch_prev_noncyclic#FetchTest.test_fetch_prev_noncyclic   sH    #T5&!$T5&!$T5&!$/r   c                     SnSU R                   l        U R                  nU" SUS S SS9  U" S[        US5        U" SUS S SS9  U" SUS S SS9  g )Nrr   FTrf   r    )r   r   ro   r1   rs   s      r   test_fetch_next_noncyclic#FetchTest.test_fetch_next_noncyclic   sZ    #UFD$T2T5&!$UFD$T2UFD$T2r   c                     U R                   R                  SS9  U R                  R                  SS5        U R	                  S[
        S S SS9  g )NTrk   r]   r[   rf   )r   rh   r   r^   ro   r1   r   s    r   test_fetch_cursor_move FetchTest.test_fetch_cursor_move   sA    4(		8X.eT4d;r   c                     U R                   R                  SS9  U R                  R                  SS5        U R                  R	                  SS5        U R                  S[        SS5        g )NTr   r[   r]   za =r   )r   rh   r   r   r]   ro   r0   r   s    r   test_fetch_editFetchTest.test_fetch_edit   sQ    4(		8.		5)eUA.r   c                    U R                   R                  S5        U R                  U R                   R                  S5        U R                   R	                  S5        U R                  U R                   R                  S 5        g )Nzdummy eventr    )r   history_prevr#   r&   history_nextr   s    r   test_history_prev_next FetchTest.test_history_prev_next   sZ    !!-0--q1!!-0--t4r   )r   r   N)r8   r9   r:   r;   r<   r=   r   r`   rd   ro   ru   rx   r}   r   r   r   r   r   r   r>   r7   r   r   rQ   rQ   D   sk     
.   @E > 23=>03</5r   rQ   __main__   )	verbosityexit)r<   idlelib.historyr   unittesttest.supportr   tkinterrU   r   rD   idlelib.idle_test.mock_tkr   idlelib.configr   r0   r1   TestCaser   r@   rQ   r8   r   r7   r   r   <module>r      sv     #  !  " 4 #'0!! '0T d5!! d5N zMMAA& r   