o
    û›h	  ã                   @   s`   d Z ddlZddlmZ ddlmZ G dd„ deƒZG dd„ deƒZd	d
„ Z	dd„ Z
dd„ ZdS )z!Tests for CommandChainDispatcher.é    N)ÚTryNext)ÚCommandChainDispatcherc                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚOkayc                 C   ó   || _ d| _d S ©NF©ÚmessageÚcalled©Úselfr	   © r   úSc:\Users\shubh\Videos\agent\nova\Lib\site-packages\IPython/core/tests/test_hooks.pyÚ__init__   ó   
zOkay.__init__c                 C   s   d| _ | jS ©NT)r
   r	   ©r   r   r   r   Ú__call__   s   zOkay.__call__N©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      ó    r   c                   @   r   )ÚFailc                 C   r   r   r   r   r   r   r   r      r   zFail.__init__c                 C   s   d| _ t| jƒ‚r   )r
   r   r	   r   r   r   r   r      r   zFail.__call__Nr   r   r   r   r   r      r   r   c                  C   s†   t dƒ} t dƒ}td| fd|fgƒ}t t¡�}|ƒ  W d  ƒ n1 s%w   Y  t|jƒdks3J ‚| jdu s:J ‚|jdu sAJ ‚dS )zTest two failing hooksÚfail1Úfail2r   é
   NT)r   r   ÚpytestZraisesr   ÚstrÚvaluer
   )r   r   ÚdpÚer   r   r   Ú test_command_chain_dispatcher_ff'   s   ÿr"   c                  C   s�   t dƒ} t dƒ}tdƒ}tdƒ}td| fd|fd|fgƒ}| |d¡ |ƒ dks*J ‚| jd	u s1J ‚|jd	u s8J ‚|jd
u s?J ‚|jd
u sFJ ‚dS )z/Test a mixture of failing and succeeding hooks.r   r   Úokay1Úokay2r   r   é   é   TFN)r   r   r   Úaddr
   )r   r   r#   r$   r    r   r   r   Ú"test_command_chain_dispatcher_fofo4   s   ýr(   c                  C   s.   t dƒ} t dƒ}td| fgƒ}| |d¡ d S )Nr#   r$   é   )r   r   r'   )r#   r$   r    r   r   r   Ú)test_command_chain_dispatcher_eq_priorityH   s   r*   )Ú__doc__r   ZIPython.core.errorr   ZIPython.core.hooksr   Úobjectr   r   r"   r(   r*   r   r   r   r   Ú<module>   s   