<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

íÕYfì  ã               @   s®   d  Z  d d l m Z e d ƒ d d l Z d d l m Z d d l m Z m Z d d l	 m
 Z
 Gd d	 „  d	 ƒ Z Gd
 d „  d e j ƒ Z e d k rª e j d d ƒ d S)zŸTest idlelib.ParenMatch.

This must currently be a gui test because ParenMatch methods use
several text methods not defined on idlelib.idle_test.mock_tk.Text.
é    )ÚrequiresZguiN)ÚMock)ÚTkÚText)Ú
ParenMatchc               @   s   e  Z d  Z d d „  Z d S)ÚDummyEditwinc             C   s(   | |  _  d |  _ d |  _ d |  _ d  S)Né   T)ÚtextZindentwidthZtabwidthZcontext_use_ps1)Úselfr	   © r   úF/opt/alt/python35/lib64/python3.5/idlelib/idle_test/test_parenmatch.pyÚ__init__   s    			zDummyEditwin.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   c               @   sp   e  Z d  Z e d d „  ƒ Z e d d „  ƒ Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z	 d d „  Z
 d S)ÚParenMatchTestc             C   sC   t  ƒ  |  _ t |  j ƒ |  _ t |  j ƒ |  _ t ƒ  |  j _ d  S)N)r   Úrootr   r	   r   Úeditwinr   Z
text_frame)Úclsr   r   r   Ú
setUpClass   s    zParenMatchTest.setUpClassc             C   s0   |  `  |  ` |  j j ƒ  |  j j ƒ  |  ` d  S)N)r	   r   r   Zupdate_idletasksZdestroy)r   r   r   r   ÚtearDownClass   s    zParenMatchTest.tearDownClassc             C   s   |  j  j d d ƒ d  S)Nz1.0Úend)r	   Zdelete)r
   r   r   r   ÚtearDown&   s    zParenMatchTest.tearDownc             C   sí   |  j  } t |  j ƒ } | j d ƒ | j d d ƒ | j d ƒ |  j d | j ƒ  ƒ |  j | j	 d d ƒ d ƒ | j d d
 ƒ | j
 ƒ  |  j d | j ƒ  ƒ |  j | j	 d d ƒ f  ƒ | j d ƒ |  j | j	 d d ƒ d ƒ d S)z:
        Test ParenMatch with 'expression' style.
        Z
expressionÚinsertzdef foobar(a, bÚeventz<<parenmatch-check-restore>>Úparenr   ú1.10ú1.15ú)ú1.16N)r   r   )r   r   )r	   r   r   Ú	set_styler   Úflash_paren_eventÚassertInÚ
event_infoÚassertTupleEqualÚtag_prevrangeÚrestore_eventÚassertNotInÚassertEqualÚparen_closed_event)r
   r	   Úpmr   r   r   Útest_paren_expression)   s    	
z$ParenMatchTest.test_paren_expressionc             C   sÄ   |  j  } t |  j ƒ } | j d ƒ | j d d ƒ | j d ƒ |  j d | j ƒ  ƒ |  j | j	 d d ƒ d ƒ | j d d
 ƒ | j
 ƒ  |  j d | j ƒ  ƒ |  j | j	 d d ƒ f  ƒ d S)z7
        Test ParenMatch with 'default' style.
        Údefaultr   zdef foobar(a, br   z<<parenmatch-check-restore>>r   r   ú1.10ú1.11r   N)r-   r.   )r	   r   r   r    r   r!   r"   r#   r$   r%   r&   r'   r(   )r
   r	   r*   r   r   r   Útest_paren_default@   s    	
z!ParenMatchTest.test_paren_defaultc             C   s¤   |  j  } t |  j ƒ } | j d d ƒ |  j | j d ƒ ƒ | j d d ƒ |  j | j d ƒ ƒ |  j | j d ƒ ƒ | j d d ƒ |  j | j d ƒ ƒ d S)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   ZassertIsNoner)   r!   )r
   r	   r*   r   r   r   Útest_paren_cornerR   s    	z ParenMatchTest.test_paren_cornerc             C   sl   t  |  j ƒ } t ƒ  | _ | j d ƒ |  j | j j ƒ | j j ƒ  | j d ƒ |  j | j j ƒ d  S)Nr   é   )	r   r   r   r&   Zhandle_restore_timerZ
assertTrueZcalledZ
reset_mockZassertFalse)r
   r*   r   r   r   Útest_handle_restore_timere   s    z(ParenMatchTest.test_handle_restore_timerN)r   r   r   Úclassmethodr   r   r   r+   r/   r0   r2   r   r   r   r   r      s   r   Ú__main__Ú	verbosityé   )Ú__doc__Ztest.supportr   ZunittestZunittest.mockr   Ztkinterr   r   Zidlelib.ParenMatchr   r   ZTestCaser   r   Úmainr   r   r   r   Ú<module>   s   
Y