
    Ef                      v    d dl Z d dlZd dlZd dlm Z d dlmZmZ d dlm	Z	 d Z
 G d de      Z G d de      Zy)	    N)BaseZMQTestCaserequire_zmq_4recv_monitor_messagec                 4   K   t        |        d{   S 7 w)z=As a coroutine, to avoid deprected references to current loopNr   )
mon_sockets    8/usr/lib/python3/dist-packages/zmq/tests/test_monitor.pyrecv_monitor_asyncr
      s     %j1111s   c                   <    e Zd Zed        Zed        Zed        Zy)TestSocketMonitorc                 x   | j                   j                  t        j                        }| j                   j                  t        j                        }| j
                  j                  ||g       |j                  d       |j                  dt        j                  t        j                  z  t        j                  z         | j                   j                  t        j                        }| j
                  j                  |       |j                  d       d|_        |j                  d       t!        |      }|d   t        j                  k(  r|d   dk(  sJ t!        |      }|d   t        j                  k(  sJ |d   dk(  sJ |j#                          t!        |      }|d   t        j                  k(  sJ yz&Test monitoring interface for sockets.ztcp://127.0.0.1:6666zinproc://monitor.repr   eventendpoints   tcp://127.0.0.1:6666N)contextsocketzmqREPREQsocketsextendbindmonitorEVENT_CONNECT_DELAYEDEVENT_CONNECTEDEVENT_MONITOR_STOPPEDPAIRappendconnectlingerr   disable_monitorselfs_reps_reqs_eventms        r	   test_monitorzTestSocketMonitor.test_monitor   sh    ##CGG,##CGG,UEN+

)* 	"%%(;(;;c>W>WW	

 ,,%%chh/G$./,- )W:222Z=$;;;;$W-AzS00000} 7777 	 )zS66666    c                 j   | j                  t        j                        }|j                         }| j                  j                  |       |j                         }||u sJ |j                          t        |      }|d   t        j                  k(  sJ |j                          |j                          y Nr   )
r   r   PULLget_monitor_socketr   r   r!   r   r   closer#   sr'   m2evts        r	   test_monitor_repeatz%TestSocketMonitor.test_monitor_repeat4   s    KK!  "A!!#Bww	"1%7|s88888				r)   c                 :   | j                   j                  t        j                        }| j                   j                  t        j                        }| j
                  j                  ||g       |j                  d       |j                         }d|_	        | j
                  j                  |       |j                  d       t        |      }|d   t        j                  k(  r|d   dk(  sJ t        |      }|d   t        j                  k(  sJ |d   dk(  sJ yz!Test connected monitoring socket.ztcp://127.0.0.1:6667r   r   r   s   tcp://127.0.0.1:6667N)r   r   r   r   r   r   r   r   r-   r    r   r   r   r   r   r"   s        r	   test_monitor_connectedz(TestSocketMonitor.test_monitor_connectedA   s     ##CGG,##CGG,UEN+

)* **,G$,- )W:222Z=$;;;;$W-AzS00000} 7777r)   N)__name__
__module____qualname__r   r(   r3   r6    r)   r	   r   r      s=    7 7@ 
 
 8 8r)   r   c                   p     e Zd Zej                  Z fdZ fdZed        Zed        Z	ed        Z
 xZS )TestSocketMonitorAsyncIOc                     t        j                         | _        t        |           t
        j                  j                         }y )N)asyncionew_event_looploopsupersetUpzaioContextinstance)r#   r   	__class__s     r	   rB   zTestSocketMonitorAsyncIO.setUp[   s.    **,	,,'')r)   c                     t         |           | j                  j                          t        j
                  i k(  sJ dt        j                  v r(t        j                  j                  t               k(  sJ y y )Nzzmq._asyncio_selector)rA   tearDownr@   r.   rC   
_selectorssysmodulesr   _asyncio_selector_selector_loopsset)r#   rF   s    r	   rH   z!TestSocketMonitorAsyncIO.tearDown`   s[    		"$$$"ckk1((88CEAAA 2r)   c                    | j                   j                  t        j                        }| j                   j                  t        j                        }| j
                  j                  ||g       |j                  d       |j                  dt        j                  t        j                  z  t        j                  z         | j                   j                  t        j                        }| j
                  j                  |       |j                  d       d|_        |j                  d       | j                   j#                  t%        |            }|d   t        j                  k(  r.|d   dk(  sJ | j                   j#                  t%        |            }|d   t        j                  k(  sJ |d   dk(  sJ |j'                          | j                   j#                  t%        |            }|d   t        j                  k(  sJ yr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r@   run_until_completer
   r!   r"   s        r	   r(   z%TestSocketMonitorAsyncIO.test_monitorh   s    ##CGG,##CGG,UEN+

)* 	"%%(;(;;c>W>WW	

 ,,%%chh/G$./,-II(();G)DEW:222Z=$;;;;		,,-?-HIAzS00000} 7777 	II(();G)DEzS66666r)   c                    | j                  t        j                        }|j                         }| j                  j                  |       |j                         }||u sJ |j                          | j                  j                  t        |            }|d   t        j                  k(  sJ |j                          |j                          y r+   )r   r   r,   r-   r   r   r!   r@   rP   r
   r   r.   r/   s        r	   r3   z,TestSocketMonitorAsyncIO.test_monitor_repeat   s    KK!  "A!!#Bww	ii**+=a+@A7|s88888				r)   c                    | j                   j                  t        j                        }| j                   j                  t        j                        }| j
                  j                  ||g       |j                  d       |j                         }d|_	        | j
                  j                  |       |j                  d       | j                  j                  t        |            }|d   t        j                  k(  r.|d   dk(  sJ | j                  j                  t        |            }|d   t        j                   k(  sJ |d   dk(  sJ yr5   )r   r   r   r   r   r   r   r   r-   r    r   r   r@   rP   r
   r   r   r"   s        r	   r6   z/TestSocketMonitorAsyncIO.test_monitor_connected   s    ##CGG,##CGG,UEN+

)* **,G$,-II(();G)DEW:222Z=$;;;;		,,-?-HIAzS00000} 7777r)   )r7   r8   r9   rC   rD   rB   rH   r   r(   r3   r6   __classcell__)rF   s   @r	   r<   r<   X   sT    llG*
B 7 7@   8 8r)   r<   )r>   rJ   r   zmq.asynciorC   	zmq.testsr   r   zmq.utils.monitorr   r
   r   r<   r:   r)   r	   <module>rW      s;     
 
  4 22
C8 C8LS8 S8r)   