
    z%i                         	 d dl mZ d dlmZ  ed       d dlZd dlmZ d dlmZm	Z	  G d d      Z
 G d	 d
ej                        Zedk(  r ej                  d       yy)    )
ParenMatch)requiresguiN)Mock)TkTextc                       e Zd Zd Zy)DummyEditwinc                 <    || _         d| _        d| _        d| _        y )N   z>>>)textindentwidthtabwidthprompt_last_line)selfr   s     U/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_parenmatch.py__init__zDummyEditwin.__init__   s     	 %    N)__name__
__module____qualname__r    r   r   r
   r
      s    &r   r
   c                   J    e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
y)	ParenMatchTestc                     t               | _        | j                  j                          t        | j                        | _        t        | j                        | _        t               | j                  _        y N)	r   rootwithdrawr   r   r
   editwinr   
text_frameclss    r   
setUpClasszParenMatchTest.setUpClass   sH    4>"388,!%r   c                 x    | ` | `| j                  j                          | j                  j	                          | `y r   )r   r   r   update_idletasksdestroyr!   s    r   tearDownClasszParenMatchTest.tearDownClass!   s0    Hck!!#Hr   c                 <    | j                   j                  dd       y )N1.0end)r   delete)r   s    r   tearDownzParenMatchTest.tearDown(   s    		&r   c                 @    t        | j                        }d |_        |S )Nc                       y r   r   r   r   r   <lambda>z/ParenMatchTest.get_parenmatch.<locals>.<lambda>-   s    r   )r   r   bellr   pms     r   get_parenmatchzParenMatchTest.get_parenmatch+   s    %	r   c                     	 | j                   }| j                         }dD ]^  \  }}}| j                  |      5  |j                  dd       ||_        |j                  dd       |j                  d       | j                  d|j                                |d	k(  r"| j                  |j                  d
d      d       | j                  |j                  d
d      |       |j                  dd       |j                          | j                  d|j                                | j                  |j                  d
d      d       |j                  d       | j                  |j                  d
d      |       d d d        a y # 1 sw Y   mxY w)N))opener1.10z1.11r6   )defaultr6   r6   )parens)z1.141.15)r:   1.16)
expression)r7   r:   )r7   r;   )styler)   r*   insertzdef foobar(a, beventz<<parenmatch-check-restore>>r9   parenr6   )r   )r   r3   subTestr+   STYLEr>   flash_paren_eventassertIn
event_infoassertTupleEqualtag_nextrangetag_prevrangerestore_eventassertNotInassertEqualparen_closed_event)r   r   r2   r=   range1range2s         r   test_paren_stylesz ParenMatchTest.test_paren_styles0   s~   	 yy  "&D 	D!E66
 E* DE5) H&78$$W-<doo>OPH$))$*<*<We*L*:<%%**7E:FD Hc*  "  !?!%!24  !3!3GU!CRH%%g.%%**7E:FD)D D	D
D Ds   D=FF	c                 2   	 | j                   }| j                         }|j                  dd       |j                  d       |j                  dd       |j	                  d       |j                  d       |j                  dd       |j                  d       y )Nr>   z# Comment.)r?   z
defz	 a, *arg))r   r3   r>   rM   rD   )r   r   r2   s      r   test_paren_cornerz ParenMatchTest.test_paren_cornerR   s    	
 yy  "Hm,
g&Hg&
W%
g&Hk*
g&r   c                 N   | j                         }t               |_        |j                  d       | j	                  |j                  j
                         |j                  j                          |j                  d       | j                  |j                  j
                         y )Nr      )r3   r   rJ   handle_restore_timer
assertTruecalled
reset_mockassertFalser1   s     r   test_handle_restore_timerz(ParenMatchTest.test_handle_restore_timere   sz      "6
"((//0
##%
"))001r   N)r   r   r   classmethodr#   r'   r,   r3   rP   rR   rZ   r   r   r   r   r      sC    ( (  '
 DD'&2r   r   __main__   )	verbosity)idlelib.parenmatchr   test.supportr   unittestunittest.mockr   tkinterr   r   r
   TestCaser   r   mainr   r   r   <module>rf      s^   
 * !    & &U2X&& U2p zHMMA r   