U
    luf                     @   sh   d dl Z d dlZ d dlmZ d dlmZ eZd dlZejddgddd Z	d	d
 Z
dd Zdd ZdS )    N)require_zmq_4)recv_monitor_messagezmqasyncio)paramsc                 C   s   | j dkrtjjS tjS d S )Nr   )paramr   r   Context)requestZ
event_loop r
   :/tmp/pip-unpacked-wheel-h6ekxre8/zmq/tests/test_monitor.pyr      s    
r   c                    s  |t j}|t j}|d |dt jt jB t jB  |t j}|	d d|_
|	d t|}t| t jjr||I dH }|d t jkr|d dkstt|}t| t jjr|I dH }|d t jkst|d dkst|  t|}t| t jjr|I dH }|d t jkstdS )z&Test monitoring interface for sockets.ztcp://127.0.0.1:6666zinproc://monitor.repr   Neventendpoints   tcp://127.0.0.1:6666)r   REPREQbindZmonitorEVENT_CONNECT_DELAYEDEVENT_CONNECTEDEVENT_MONITOR_STOPPEDZPAIRconnectlingerr   
isinstancer   r   AssertionErrordisable_monitor)contextsockets_reps_reqs_eventmr
   r
   r   test_monitor   s4    








r   c                    s~   |t j}| }|| | }||ks0t|  t|}t| t jj	rX|I d H }|d t j
ksjt|  |  d S )Nr   )r   ZPULLget_monitor_socketappendr   r   r   r   r   r   r   close)r   r   socketssr   m2Zevtr
   r
   r   test_monitor_repeat9   s    


r&   c                    s   |t j}|t j}|d | }d|_|| |d t|}t	| t j
jr`|I dH }|d t jkr|d dks~tt|}t	| t j
jr|I dH }|d t jkst|d dkstdS )z!Test connected monitoring socket.ztcp://127.0.0.1:6667r   Nr   r   s   tcp://127.0.0.1:6667)r   r   r   r   r    r   r!   r   r   r   r   r   r   r   r   )r   r   r#   r   r   r   r   r
   r
   r   test_monitor_connectedH   s"    






r'   )r   Zzmq.asyncioZ	zmq.testsr   Zzmq.utils.monitorr   Z
pytestmarkZpytestZfixturer   r   r&   r'   r
   r
   r
   r   <module>   s   
$