HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/python38/lib/python3.8/idlelib/idle_test/__pycache__/test_parenmatch.cpython-38.pyc
U

�i�_�
�@s�dZddlmZddlmZed�ddlZddlmZddlm	Z	m
Z
Gdd	�d	�ZGd
d�dej�Z
edkr|ejd
d�dS)z�Test parenmatch, coverage 91%.

This must currently be a gui test because ParenMatch methods use
several text methods not defined on idlelib.idle_test.mock_tk.Text.
�)�
ParenMatch)�requiresZguiN)�Mock)�Tk�Textc@seZdZdd�ZdS)�DummyEditwincCs||_d|_d|_d|_dS)N�z>>>)�textZindentwidthZtabwidthZprompt_last_line)�selfr	�r�@/opt/python38/lib/python3.8/idlelib/idle_test/test_parenmatch.py�__init__szDummyEditwin.__init__N)�__name__�
__module__�__qualname__r
rrrrrsrc@sLeZdZedd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dS)�ParenMatchTestcCs8t�|_|j��t|j�|_t|j�|_t�|j_dS�N)	r�rootZwithdrawrr	r�editwinrZ
text_frame��clsrrr�
setUpClasss

zParenMatchTest.setUpClasscCs$|`|`|j��|j��|`dSr)r	rrZupdate_idletasksZdestroyrrrr�
tearDownClass!s

zParenMatchTest.tearDownClasscCs|j�dd�dS)N�1.0�end)r	�delete)r
rrr�tearDown(szParenMatchTest.tearDowncCst|j�}dd�|_|S)NcSsdSrrrrrr�<lambda>-�z/ParenMatchTest.get_parenmatch.<locals>.<lambda>)rrZbell�r
�pmrrr�get_parenmatch+s

zParenMatchTest.get_parenmatchc
Cs�|j}|��}dD]�\}}}|j|d���|�dd�||_|�dd�|�d�|�d|���|d	kr~|�	|�
d
d�d�|�	|�d
d�|�|�dd�|��|�
d|���|�|�d
d�d
�|�d�|�	|�d
d�|�W5QRXqdS)z2
        Test ParenMatch with each style.
        ))�opener��1.10z1.11r#)�defaultr#r#)�parens)z1.14�1.15)r'�1.16)Z
expression)r$r')r$r()�stylerr�insertzdef foobar(a, b�eventz<<parenmatch-check-restore>>r&Zparenr#�)rN)r	r!ZsubTestrZSTYLEr*�flash_paren_eventZassertInZ
event_infoZassertTupleEqualZ
tag_nextrangeZ
tag_prevrange�
restore_eventZassertNotInZassertEqual�paren_closed_event)r
r	r r)Zrange1Zrange2rrr�test_paren_styles0s8
�
��

�z ParenMatchTest.test_paren_stylescCs^|j}|��}|�dd�|�d�|�dd�|�d�|�d�|�dd�|�d�dS)z�
        Test corner cases in flash_paren_event and paren_closed_event.

        These cases force conditional expression and alternate paths.
        r*z# this is a commen)r+z
defz	 a, *arg)N)r	r!r*r/r-)r
r	r rrr�test_paren_cornerRs


z ParenMatchTest.test_paren_cornercCsN|��}t�|_|�d�|�|jj�|j��|�d�|�|jj�dS)Nr�)r!rr.Zhandle_restore_timerZ
assertTrueZcalledZ
reset_mockZassertFalserrrr�test_handle_restore_timeres


z(ParenMatchTest.test_handle_restore_timerN)rrr�classmethodrrrr!r0r1r3rrrrrs

"r�__main__�)�	verbosity)�__doc__Zidlelib.parenmatchrZtest.supportrZunittestZ
unittest.mockr�tkinterrrrZTestCaserr�mainrrrr�<module>sX