ó
L]c           @   sÓ   d  d l  Z  d  d l Z d  d l Z d  d l m Z d  d l Z d  d l m Z m Z m	 Z	 d „  Z
 d e f d „  ƒ  YZ d e f d „  ƒ  YZ e rÏ d  d l Z d  d	 l m Z d
 e	 e f d „  ƒ  YZ n  d S(   iÿÿÿÿN(   t   mark(   t   PollZMQTestCaset   have_geventt	   GreenTestc           C   s   t  j d ƒ d  S(   Ng      Ð?(   t   timet   sleep(    (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   wait   s    t   TestPollc           B   sh   e  Z e j Z d  „  Z d „  Z d „  Z d „  Z e j	 e
 j j d ƒ d d ƒd „  ƒ Z d „  Z RS(	   c         C   s†  |  j  t j t j ƒ \ } } t ƒ  |  j ƒ  } | j | t j t j Bƒ | j | t j t j Bƒ t | j	 ƒ  ƒ } |  j
 | | t j ƒ |  j
 | | t j ƒ | j d ƒ | j d ƒ t ƒ  t | j	 ƒ  ƒ } |  j
 | | t j t j Bƒ |  j
 | | t j t j Bƒ | j ƒ  | j ƒ  t | j	 ƒ  ƒ } |  j
 | | t j ƒ |  j
 | | t j ƒ | j | ƒ | j | ƒ d  S(   Nt   msg1t   msg2(   t   create_bound_pairt   zmqt   PAIRR   t   Pollert   registert   POLLINt   POLLOUTt   dictt   pollt   assertEqualt   sendt   recvt
   unregister(   t   selft   s1t   s2t   pollert   socks(    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt	   test_pair   s*    

c         C   sþ  |  j  t j t j ƒ \ } } t ƒ  |  j ƒ  } | j | t j t j Bƒ | j | t j t j Bƒ t	 | j
 ƒ  ƒ } |  j | | k d ƒ |  j | | t j ƒ | j d ƒ t	 | j
 ƒ  ƒ } |  j | | k d ƒ t j d ƒ t	 | j
 ƒ  ƒ } |  j | | t j ƒ | j ƒ  t	 | j
 ƒ  ƒ } |  j | | t j ƒ | j d ƒ t	 | j
 ƒ  ƒ } |  j | | k d ƒ t j d ƒ t	 | j
 ƒ  ƒ } |  j | | t j ƒ | j ƒ  t	 | j
 ƒ  ƒ } |  j | | t j ƒ | j | ƒ | j | ƒ d  S(   Ni    R   g      à?R	   (   R
   R   t   REPt   REQR   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R   (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   test_reqrep6   s8    

c         C   s¡   |  j  t j t j ƒ \ } } |  j ƒ  } | j | t j t j Bƒ | j | d ƒ |  j | | k ƒ |  j | | k ƒ | j | d ƒ |  j | | k ƒ d  S(   Ni    (	   R
   R   R   R   R   R   R   t
   assertTruet   assertFalse(   R   R   R   R   (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   test_no_eventsf   s    c         C   sf  |  j  t j t j ƒ \ } } | j t j d ƒ t ƒ  |  j ƒ  } | j | t j	 t j
 Bƒ | j | t j	 ƒ t | j ƒ  ƒ } |  j | | t j
 ƒ |  j | | k d ƒ | j d ƒ t | j ƒ  ƒ } |  j | | t j
 ƒ t ƒ  t | j ƒ  ƒ } |  j | | t j	 ƒ | j ƒ  t | j ƒ  ƒ } |  j | | k d ƒ | j | ƒ | j | ƒ d  S(   Nt    i    R   (   R
   R   t   PUBt   SUBt
   setsockoptt	   SUBSCRIBER   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R   (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   test_pubsubp   s(    
t   wint   reasont   Windowsc         C   sâ   t  j ƒ  \ } } t  j | d ƒ } t  j | d ƒ } |  j ƒ  } | j | t j ƒ t | j d ƒ ƒ } | i  k s| t	 ‚ | j
 d ƒ | j ƒ  t | j d ƒ ƒ } | i t j | j ƒ  6k sÊ t	 ‚ | j ƒ  | j ƒ  d  S(   Nt   rbt   wbi   t   x(   t   ost   pipet   fdopenR   R   R   R   R   R   t   AssertionErrort   writet   flusht   filenot   close(   R   t   rt   wt   pR   (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   test_raw‘   s    
"
c         C   s)  |  j  t j t j ƒ \ } } |  j ƒ  } | j | t j ƒ t j ƒ  } | j d ƒ } t j ƒ  } |  j | | d k  ƒ t j ƒ  } | j d ƒ } t j ƒ  } |  j | | d k  ƒ |  j | | d k ƒ t j ƒ  } | j d ƒ } t j ƒ  } |  j | | d k  ƒ |  j | | d k ƒ d S(   sA   make sure Poller.poll timeout has the right units (milliseconds).g{®Gázt?gš™™™™™¹?i   gü©ñÒMbP?iô  i   N(	   R
   R   R   R   R   R   R   R   R    (   R   R   R   R   t   tict   evtt   toc(    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   test_timeout¡   s"    (   t   __name__t
   __module__R   R   R   R   R"   R(   R    t   skipift   syst   platformt
   startswithR:   R>   (    (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyR      s   		 	0	
	!*t
   TestSelectc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s¥   |  j  t j t j ƒ \ } } t ƒ  t j | | g | | g | | g ƒ \ } } } |  j | | k ƒ |  j | | k ƒ |  j | | k ƒ |  j | | k ƒ d  S(   N(   R
   R   R   R   t   selectt   assert_(   R   R   R   t   rlistt   wlistt   xlist(    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyR   ·   s    0c         C   sü   |  j  t j t j ƒ \ } } t j ƒ  } t j | | g g  g  d ƒ \ } } } t j ƒ  } |  j | | d k  ƒ |  j | | d k ƒ t j ƒ  } t j | | g g  g  d ƒ \ } } } t j ƒ  } |  j | | d k  ƒ |  j | | d k ƒ d S(   s7   make sure select timeout has the right units (seconds).g{®Gázt?i   gü©ñÒMbP?g      Ð?gš™™™™™¹?N(   R
   R   R   R   RF   R    (   R   R   R   R;   R7   R8   R.   R=   (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyR>   Ã   s    ''(   R?   R@   R   R>   (    (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyRE   µ   s   	(   t   greent   TestPollGreenc           B   s#   e  Z e j Z d  „  Z d „  Z RS(   c            sª   |  j  t j t j ƒ \ ‰ } |  j ƒ  ‰  ˆ  j | t j ƒ t j ƒ  } t j ‡  f d †  ƒ } t j ‡ f d †  ƒ } | j	 ƒ  t j ƒ  } |  j
 | | d k  ƒ d  S(   Nc              s   ˆ  j  d ƒ S(   Ni'  (   R   (    (   R   (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   <lambda>ß   R#   c              s   ˆ  j  d ƒ S(   NR   (   R   (    (   R   (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyRM   à   R#   i   (   R
   R   R   R   R   R   R   t   geventt   spawnt   joinR    (   R   R   R;   R7   t   sR=   (    (   R   R   s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   test_wakeupÙ   s    
c            s‹   |  j  t j t j ƒ \ ‰  ‰ t j ƒ  } t j ‡ f d †  ƒ } t j ‡  f d †  ƒ } | j ƒ  t j ƒ  } |  j | | d k  ƒ d  S(   Nc              s   ˆ  j  d ƒ S(   Ni'  (   R   (    (   R   (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyRM   é   R#   c              s   ˆ  j  d ƒ S(   NR   (   R   (    (   R   (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyRM   ê   R#   i   (   R
   R   R   R   RN   RO   RP   R    (   R   R;   R7   RQ   R=   (    (   R   R   s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   test_socket_pollå   s    
(   R?   R@   t   gzmqR   RR   RS   (    (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyRL   Ö   s   		(   R/   RB   R   t   pytestR    R   t	   zmq.testsR   R   R   R   R   RE   RN   RK   RT   RL   (    (    (    s2   lib/python2.7/site-packages/zmq/tests/test_poll.pyt   <module>   s   	£