
    z%i                         d Z ddlmZmZ ddlZddlmZ  ed       ddlmZm	Z	m
Z
  G d de      Z G d	 d
ej                        Zedk(  r ej                  d       yy)zTest percolator, coverage 100%.    )
Percolator	DelegatorN)requiresgui)TextTkENDc                   6    e Zd Zd Zd Zd ZddZddZddZy)	MyFilterc                 0    t        j                  | d        y N)r   __init__selfs    U/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_percolator.pyr   zMyFilter.__init__   s    4&    c                 D    || _          | j                  j                  |  y r   )insert_called_withdelegateinsertr   argss     r   r   zMyFilter.insert       "&d#r   c                 D    || _          | j                  j                  |  y r   )delete_called_withr   deleter   s     r   r   zMyFilter.delete   r   r   Nc                 \    |j                         }| j                  j                  ||       y r   )upperr   r   r   indexcharstagss       r   uppercase_insertzMyFilter.uppercase_insert   !    UE*r   c                 \    |j                         }| j                  j                  ||       y r   )lowerr   r   r   s       r   lowercase_insertzMyFilter.lowercase_insert   r$   r   c                      y r    r   s       r   dont_insertzMyFilter.dont_insert   s    r   r   )	__name__
__module____qualname__r   r   r   r#   r'   r*   r)   r   r   r   r   
   s     '$$++r   r   c                   h    e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zy)PercolatorTestc                 V    t               | _        t        | j                        | _        y r   )r   rootr   textclss    r   
setUpClasszPercolatorTest.setUpClass$   s    4>r   c                 @    | ` | j                  j                          | `y r   )r2   r1   destroyr3   s    r   tearDownClasszPercolatorTest.tearDownClass)   s    HHr   c                    t        | j                        | _        t               | _        t               | _        | j                  j                  | j                         | j                  j                  | j
                         y r   )r   r2   
percolatorr   
filter_one
filter_twoinsertfilterr   s    r   setUpzPercolatorTest.setUp/   sP    $TYY/"*"*$$T__5$$T__5r   c                 x    | j                   j                          | j                  j                  dt               y )N1.0)r:   closer2   r   r	   r   s    r   tearDownzPercolatorTest.tearDown6   s&    		$r   c                    | j                  | j                  j                         | j                  | j                  j
                  | j                         | j                  | j                  j                  | j                         | j                  | j                  j                  | j                  j                         y r   )assertIsNotNoner;   r   assertEqualr:   topr<   bottomr   s    r   test_insertfilterz PercolatorTest.test_insertfilter:   sz    T__556,,doo>114??C114??3I3IJr   c                 @   t               }| j                  j                  | j                         | j	                  | j                  j
                  | j                         | j                  | j                  j                         t               }| j                  j                  | j                         | j                  j                  |       | j                  j                  | j                         | j	                  | j                  j
                  |       | j	                  |j                  | j                         | j	                  | j                  j                  | j                  j                         | j                  | j                  j                         y r   )r   r:   removefilterr<   rE   rF   r;   assertIsNoner   r=   rG   r   filter_threes     r   test_removefilterz PercolatorTest.test_removefilter@   s
   z$$T__5,,doo>$//223z$$T__5$$\2$$T__5,,l;..@114??3I3IJ$//223r   c                     | j                   j                  dd       | j                  | j                   j                  dt              d       | j                  | j                  j                  d       y )Nr   foor@   zfoo
)r   rP   N)r2   r   rE   getr	   assertTupleEqualr;   r   r   s    r   test_insertzPercolatorTest.test_insertO   sR    		5)uc2G<doo@@5	7r   c                     | j                   j                  | j                   _        | j                  j                  dd       | j	                  | j                  j                  dt              d       y )Nr   bArr@   zBAR
)r;   r#   r   r2   rE   rQ   r	   r   s    r   test_modify_insertz!PercolatorTest.test_modify_insertU   sK    !%!A!A		5)uc2G<r   c                 z   t               }| j                  j                  |       | j                  j                  | j                  _        | j                  j                  | j                  _        | j                  j                  dd       | j                  | j                  j                  dt              d       y )Nr   BaRr@   zbar
)r   r:   r=   r<   r#   r   r;   r'   r2   rE   rQ   r	   rL   s     r   test_modify_chain_insertz'PercolatorTest.test_modify_chain_insertZ   sz    z$$\2!%!A!A!%!A!A		5)uc2G<r   c                    | j                   j                  | j                   _        | j                  j                  dd       | j	                  | j                  j                  dt              d       | j                   j                  | j                   _        | j                  j                  dd       | j	                  | j                  j                  dt              d       y )Nr   zfoo barr@   
)r;   r*   r   r2   rE   rQ   r	   r   s    r   test_dont_insertzPercolatorTest.test_dont_insertb   s    !%!<!<		9-uc2D9!%!<!<		9-uc2D9r   c                     | j                   j                  dd       | j                  | j                   j                  dd      d       y )Nr   hellor@   endzhello
)r2   r   rE   rQ   r   s    r   test_without_filterz"PercolatorTest.test_without_filterj   s5    		7+ue4i@r   c                     | j                   j                  dd       | j                   j                  dd       | j                  | j                   j	                  dt
              d       | j                  | j                  j                  d       y )Nr   rP   r@   1.2zo
)r@   rb   )	r2   r   r   rE   rQ   r	   rR   r;   r   r   s    r   test_deletezPercolatorTest.test_deleten   sf    		5)		&uc2E:doo@@,	.r   N)r+   r,   r-   classmethodr5   r8   r>   rB   rH   rN   rS   rV   rY   r\   r`   rc   r)   r   r   r/   r/   "   s\    " "  
6%K47=
=:A.r   r/   __main__   )	verbosity)__doc__idlelib.percolatorr   r   unittesttest.supportr   tkinterr   r   r	   r   TestCaser/   r+   mainr)   r   r   <module>ro      s\    ! 4  !  ! !y 0Q.X&& Q.f zHMMA r   