ó
L]c           @@  sÌ   d  d l  m Z y d  d l Z Wn e k
 r9 d Z n Xd  d l m Z d  d l Z d  d l Z y6 d  d l	 Z	 d  d l	 m
 Z
 d  d l m Z m Z Wn e k
 r± d Z	 n Xd e f d     YZ d S(   i    (   t   absolute_importN(   t   TestCase(   t   gen(   t   ioloopt	   zmqstreamt   TestZMQStreamc           B@  sA   e  Z d    Z d   Z d d  Z d   Z d   Z d   Z RS(   c         C@  sØ   t  d  k r t j   n  t r5 t j t j    n  t j   |  _	 t
 j   |  _ |  j j   t j |  j	 j t j   |  _ t j |  j	 j t j   |  _ |  j j d  } |  j j d |  |  j |  _ d  S(   Ns   tcp://127.0.0.1s   tcp://127.0.0.1:%i(   t   tornadot   Nonet   pytestt   skipt   asynciot   set_event_loopt   new_event_loopt   zmqt   Contextt   contextR   t   IOLoopt   loopt   make_currentR   t	   ZMQStreamt   sockett   PUSHt   pusht   PULLt   pullt   bind_to_random_portt   connectt   stream(   t   selft   port(    (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   setUp   s    !!c         C@  s1   |  j  j d t  |  j j   t j j   d  S(   Nt   all_fds(   R   t   closet   TrueR   t   termR   R   t   clear_current(   R   (    (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   tearDown&   s    i
   c         @  s[   g   t  j     f d       j j  f d      j j    sW t  d  S(   Nc           3@  s)   t  j   Vd g  (  j j   d  S(   Ns	   timed out(   R   t   sleepR   t   stop(    (   R   t	   timed_outt   timeout(    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   sleep_timeout-   s    
c           @  s       S(   N(    (    (   R)   (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   <lambda>2   t    (   R   t	   coroutineR   t   add_callbackt   startt   AssertionError(   R   R(   (    (   R   R)   R'   R(   s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   run_until_timeout+   s
    c         C@  su   |  j  j d    |  j  j d    |  j t |  j  j d  |  j t |  j  j d  |  j t |  j  j t  d S(   s#   Ensure callable check works (py3k).c          W@  s   d  S(   N(   R   (   t   args(    (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyR*   9   R+   c          W@  s   d  S(   N(   R   (   R1   (    (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyR*   :   R+   i   N(   R   t   on_sendt   on_recvt   assertRaisesR/   R   (   R   (    (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   test_callable_check6   s
    c         @  sU   d g     f d   }   j  j    f d      j j |    j   d  S(   Nt   basicc         @  s#   |   k s t     j j   d  S(   N(   R/   R   R&   (   t   msg(   R   t   sent(    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   callbackA   s    c           @  s     j  j   S(   N(   R   t   send_multipart(    (   R   R8   (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyR*   D   R+   (   R   R-   R   R3   R0   (   R   R9   (    (   R   R8   s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   test_on_recv_basic?   s
    	c         @  sX   d g     f d   }   j  j |    j j d    f d      j   d  S(   Nt   wakec         @  s#   |   k s t     j j   d  S(   N(   R/   R   R&   (   R7   (   R   R8   (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyR9   J   s    i   c           @  s     j  j   S(   N(   R   R:   (    (   R   R8   (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyR*   N   R+   (   R   R3   R   t
   call_laterR0   (   R   R9   (    (   R   R8   s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   test_on_recv_wakeH   s
    	(   t   __name__t
   __module__R   R$   R0   R5   R;   R>   (    (    (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyR      s   						(   t
   __future__R    R
   t   ImportErrorR   t   unittestR   R   R   R   R   t   zmq.eventloopR   R   R   (    (    (    s7   lib/python2.7/site-packages/zmq/tests/test_zmqstream.pyt   <module>   s   

