ó
L]c           @   sx  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z 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 m Z m Z d  d l m Z e j ƒ  j ƒ  d k Z e j ƒ  j ƒ  j d ƒ Z e e j j d ƒ ƒ Z e r#d n d	 Z d
 e f d „  ƒ  YZ e oIe rtd  d l Z d e e f d „  ƒ  YZ  n  d S(   iÿÿÿÿN(   t   mark(   t   BaseZMQTestCaset   SkipTestt   have_geventt	   GreenTestt	   skip_pypy(   t   unicodet   pypyt   windowst   TRAVIS_PYTHON_VERSIONiè  id   t
   TestSocketc           B   s|  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j e d d ƒd „  ƒ Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# e j e$ rAe% pSe& j' d% k  pSe d d" ƒe j( d# „  ƒ ƒ Z) d$ „  Z* RS(&   c         C   sz   |  j  ƒ  } | j t j ƒ } |  j t j | j d ƒ |  j t j | j d ƒ |  j t j | j d ƒ | j	 ƒ  ~ d  S(   Ns   ftl://as   tcp://(
   t   Contextt   sockett   zmqt   PUBt   assertRaisesErrnot   EPROTONOSUPPORTt   bindt   connectt   EINVALt   close(   t   selft   ctxt   s(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_create!   s    
c         C   sÚ   d } |  j  ƒ  ¯ } | j t j ƒ  } | j | ƒ | j t j ƒ F } | j | ƒ d } | j | ƒ |  j | ƒ } |  j	 | | ƒ Wd  QX|  j	 | j
 t ƒ Wd  QX|  j	 | j
 t ƒ Wd  QX|  j	 | j
 t ƒ d  S(   Ns
   inproc://at   hi(   R   R   R   t   PUSHR   t   PULLR   t   sendt   recvt   assertEqualt   closedt   True(   R   t   urlR   t   at   bt   msgt   rcvd(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_context_manager+   s    c         C   sš   |  j  ƒ  } | j t j ƒ } |  j d t | ƒ k ƒ |  j d t | ƒ k ƒ |  j d t | ƒ k ƒ |  j d t | ƒ k ƒ | j ƒ  | j ƒ  d  S(   NR   t   IDENTITYt   AFFINITYt   FD(   R   R   R   R   t
   assertTruet   dirR   t   term(   R   R   R   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_dir:   s    
c         C   s+   |  j  t j ƒ } | j t d ƒ ƒ } d  S(   Ns   tcp://*(   R   R   R   t   bind_to_random_portR   (   R   R   t   p(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_bind_unicodeD   s    c         C   s)   |  j  t j ƒ } | j t d ƒ ƒ d  S(   Ns   tcp://127.0.0.1:5555(   R   R   R   R   R   (   R   R   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_connect_unicodeH   s    c         C   s¢   |  j  ƒ  } | j t j ƒ } y | j d ƒ Wn, t j k
 r] } |  j | j t j ƒ n Xy | j d ƒ Wn, t j k
 r } |  j | j t j	 ƒ n Xd  S(   Ns   tcp:*s   rand://*(
   R   R   R   R   R.   t   ZMQErrorR   t   errnoR   R   (   R   R   t   ct   e(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_bind_to_random_portL   s    c         C   sT   |  j  j t j ƒ } |  j j | ƒ d } | | _ |  j | j t j	 ƒ | ƒ d  S(   Ns
   identity  (
   t   contextR   R   R   t   socketst   appendt   identityR   t   getR'   (   R   R   t   ident(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_identity[   s
    	c         C   s×  d } t  t k	 r$ | j d ƒ } n  |  j t j t j ƒ \ } } |  j | j | j ƒ |  j | j	 | j	 ƒ |  j
 t | j t j | ƒ |  j
 t | j t j | ƒ | j t j | d ƒ |  j
 t | j t j | ƒ | j t j | ƒ |  j
 t | j t j ƒ |  j t j | j t j ƒ | j t j ƒ } | j d ƒ } | j t j d ƒ } |  j | | ƒ t j d ƒ | j | t j ƒ | j | d d d ƒ|  j | | j	 ƒ  ƒ |  j | d | j	 d d ƒ ƒ d S(	   s2   test setting/getting sockopts with unicode stringss   tÃ©stt   utf8t   utf16gš™™™™™¹?i   t   encodings   latin-1N(   t   strR   t   decodet   create_bound_pairR   R   t   SUBR   t   send_unicodet   recv_unicodet   assertRaisest	   TypeErrort
   setsockoptt	   SUBSCRIBER'   t   setsockopt_unicodeR(   t   getsockopt_unicodeR   R   t
   getsockoptt   timet   sleept   SNDMORE(   R   t   topicR/   R   t   identbt   identut   identu2(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_unicode_sockoptsb   s,    c         C   s²  t  j ƒ  } | d k  r! d } n d } |  j t  j t  j ƒ \ } } | j t  j d ƒ |  j | j t  j ƒ d ƒ | j t  j d ƒ |  j | j t  j ƒ d ƒ |  j | j	 | ƒ d | _	 |  j | j	 d ƒ |  j | j t  j
 ƒ t  j ƒ |  j t  j | j t  j
 d ƒ |  j | j t  j ƒ | j ƒ |  j | j t  j ƒ t  j ƒ |  j | j t  j ƒ | j ƒ |  j | j t  j ƒ t  j ƒ g  } i  } t  j } x< | j D]1 } t | | ƒ }	 t |	 t ƒ r«| | |	 <q«q«Wx¥ t  j j j t  j j ƒ D]ˆ }
 | |
 } | j d  ƒ r!qün  y | j |
 ƒ } Wn- t  j k
 rc} | j d | | f ƒ qüX| d! k rü| j d | ƒ qüqüW| r®|  j d j d g | ƒ ƒ n  d S("   s   test integer sockoptsi   i    iè  iÿÿÿÿi   i   i   i   t   ROUTERt   XPUBt   TCPt   FAILt   REQ_t   CURVE_t   PROBE_ROUTERt
   IPC_FILTERt   GSSAPIt   STREAM_t   VMCI_BUFFER_SIZEt   VMCI_BUFFER_MIN_SIZEt   VMCI_BUFFER_MAX_SIZEt   VMCI_CONNECT_TIMEOUTs   getsockopt(zmq.%s) raised '%s'.i   sN   getsockopt(zmq.%s) returned a ridiculous value. It is probably the wrong type.s   
t    N(   i   i    i€   i   (   RV   RW   RX   RY   RZ   R[   R\   R]   R^   R_   R`   Ra   Rb   Rc   I   €    (   R   t   zmq_version_infoRC   R   RD   RI   t   LINGERR   RM   t   hwmt   EVENTSt   POLLOUTR   R   t   TYPEt   socket_typet	   constantst   __all__t   getattrt
   isinstancet   intt   int_sockoptst   uniont   int64_sockoptst
   startswithR2   R9   t   failt   join(   R   t   vt   default_hwmR/   R   t   errorst   backrefRl   t   namet   valuet   optt   soptt   nR5   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_int_sockopts|   sV    			"
    		c         C   s©   |  j  j t j ƒ } |  j j | ƒ | j t j d ƒ |  j t j	 | j d d ƒ |  j t j	 | j
 d ƒ |  j t | j d d ƒ |  j t j	 | j t j d ƒ d S(   s=   Test that appropriate errors are raised on bad socket optionsi    i'  i   t   5R   N(   R7   R   R   R   R8   R9   RI   Rf   R   R   RM   RG   RH   RJ   (   R   R   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_bad_sockopts±   s    c         C   sX   |  j  j t j ƒ } |  j j | ƒ | j t j d ƒ |  j | j	 t j ƒ d ƒ d S(   s   test set/getsockopt roundtrip.i   N(
   R7   R   R   R   R8   R9   RI   Rf   R   RM   (   R   R/   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_sockopt_roundtrip¾   s    c         C   s  |  j  t j t j ƒ \ } } |  j j | | g ƒ d } t t k	 rX | j d ƒ } n  |  j t	 | j
 | d t ƒ|  j t	 | j
 | d t ƒ| j | ƒ | j ƒ  } |  j | | j d ƒ ƒ |  j | j d ƒ | ƒ | j | d d ƒ| j d d ƒ } |  j | | ƒ d S(   s   test sending unicode objectss   Ã§Ï€Â§R>   t   copyR@   R?   N(   RC   R   t   PAIRR8   t   extendRA   R   RB   RG   RH   R   t   FalseR    RE   R   R   t   encodeRF   (   R   R"   R#   t   uR   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_send_unicodeÅ   s    c         C   s†   |  j  t j t j ƒ \ } } |  j j | | g ƒ |  j t | j d d g ƒ | j d g ƒ |  j | ƒ } |  j	 | d g ƒ d S(   s*   check type on all frames in send_multipartR"   i   R#   N(
   RC   R   R…   R8   R†   RG   RH   t   send_multipartt   recv_multipartR   (   R   R"   R#   R%   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_send_multipart_check_typeÖ   s    c         C   s   d } t  j  ƒ  } | j d ƒ | j ƒ  d } d | | f } | j ƒ  t j d ƒ |  j j  t j ƒ } |  j j  t j	 ƒ } |  j
 j | | g ƒ | j | ƒ t j d ƒ | j d d t d	 t ƒ} t | t j ƒ sã t ‚ | t j k sø t ‚ | j st ‚ d | _ | j d d
 g d t d	 t ƒ} t | t j ƒ sIt ‚ | j sYt ‚ | j | ƒ |  j | ƒ }	 x. t d ƒ D]  }
 | j r•Pn  t j d ƒ q‚W|  j | j t ƒ |  j |	 d g ƒ |  j | ƒ }	 x. t d ƒ D]  }
 | j rûPn  t j d ƒ qèW|  j | j t ƒ |  j |	 d d
 g ƒ t j d d t d	 t ƒ} |  j | j j t ƒ | j | d t ƒ} | j | d t ƒ} |  j | j j t ƒ |  j | j t ƒ |  j | j t ƒ |  j | ƒ }	 |  j | j j t ƒ |  j |	 d g ƒ |  j | ƒ }	 |  j | j j t ƒ |  j |	 d g ƒ |  j | j t ƒ |  j | j t ƒ | j } ~ x. t d ƒ D]  }
 | j rŽPn  t j d ƒ q{W|  j | j t ƒ |  j | j t ƒ t j d d	 t ƒ} |  j t | j | d t d	 t ƒd S(   sJ   test the MessageTracker object for tracking when zmq is done with a buffers   tcp://127.0.0.1s	   127.0.0.1i    i   s   %s:%igš™™™™™¹?t	   somethingR„   t   trackt   elsei
   t   againN(   s	   127.0.0.1i    (   R   R   t   getsocknameR   RN   RO   R7   R   R   R   R8   R†   R   R   R‡   R    Ro   t   MessageTrackert   AssertionErrort   _FINISHED_TRACKERt   donet   copy_thresholdR‹   RŒ   t   rangeR   t   Framet   trackerRG   t
   ValueError(   R   t   addrt   sockt   portt   ifaceR"   R#   t   p1t   p2R$   t   it   mt   pm(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_trackerß   sx    
	!				c         C   s¯   |  j  ƒ  } | j t j ƒ } | j ƒ  |  j t j | j d ƒ |  j t j | j d ƒ |  j t j | j	 t j
 d ƒ |  j t j | j d ƒ |  j t j | j ƒ ~ d  S(   NRd   t   asdf(   R   R   R   R   R   R   t   ENOTSOCKR   R   RI   RJ   R   R   (   R   R   R   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt
   test_close&  s    
c         C   s†   |  j  j t j ƒ } |  j j | ƒ d } | | _ |  j | | j ƒ |  j | | j t j	 ƒ ƒ |  j | j
 | j t j ƒ ƒ d S(   s*   set setting/getting sockopts as attributesi
   N(   R7   R   R   t   DEALERR8   R9   t   lingerR   RM   Rf   t   fdR)   (   R   R   Rª   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt	   test_attr1  s    	c         C   sƒ   |  j  j t j ƒ } |  j j | ƒ y d | _ Wn t k
 rE n X|  j d ƒ y | j Wn t k
 rq n X|  j d ƒ d  S(   Nt   foos-   bad setattr should have raised AttributeErrors-   bad getattr should have raised AttributeError(	   R7   R   R   R©   R8   R9   t   applet   AttributeErrorRu   (   R   R   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_bad_attr;  s    c            s   d t  j f ‡  f d †  ƒ  Y‰  ˆ  |  j t  j ƒ } |  j j | ƒ |  j | j d ƒ d | _ |  j | j d ƒ | j } |  j | d ƒ d S(   s    subclasses can assign attributest   Sc              s   e  Z d Z ‡  f d  †  Z RS(   c            s&   d |  _  t ˆ  |  ƒ j | | Ž  d  S(   Niÿÿÿÿ(   R"   t   supert   __init__(   R   R"   t   kw(   R±   (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyR³   O  s    	N(   t   __name__t
   __module__t   NoneR"   R³   (    (   R±   (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyR±   M  s   iÿÿÿÿi   N(   R   t   SocketR7   t   REPR8   R9   R   R"   (   R   R   R"   (    (   R±   s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_subclassK  s    		c         C   s€   |  j  ƒ  \ } } d } x! t d ƒ D] } | j | ƒ q% Wt j d ƒ x0 t d ƒ D]" } |  j |  j | ƒ | g ƒ qV Wd  S(   NR   i   gš™™™™™¹?(   RC   R˜   R   RN   RO   R   RŒ   (   R   R"   R#   R$   R¢   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_recv_multipart[  s    c         C   sS   |  j  ƒ  } | j t j ƒ } | j ƒ  t j d ƒ | j ƒ  |  j | j	 ƒ d S(   s,   s.close() after ctx.destroy() should be fineg{®Gáz„?N(
   R   R   R   R¹   t   destroyRN   RO   R   R*   R   (   R   R   R   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_close_after_destroyd  s    

c         C   sÜ   |  j  ƒ  \ } } t j ƒ  } | j t ƒ } |  j | d ƒ | j t t j ƒ } |  j | t j ƒ d } | j | ƒ | j t ƒ } |  j | t j ƒ |  j	 | ƒ } | j t ƒ } |  j | d ƒ |  j | | ƒ d  S(   Ni    R   (
   RC   RN   t   pollt   POLL_TIMEOUTR   R   Ri   R   t   POLLINR   (   R   R"   R#   t   tict   evtR$   t   msg2(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt	   test_polln  s    c         C   sa   t  j d k r t d ƒ ‚ n  d t  j } |  j t  j d k | ƒ |  j t  j d k  | ƒ d S(   s$   IPC_PATH_MAX_LEN is a sensible valuei    s   IPC_PATH_MAX_LEN undefineds)   Surprising value for IPC_PATH_MAX_LEN: %si   i  N(   R   t   IPC_PATH_MAX_LENR   R*   (   R   R$   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_ipc_path_max_length~  s
    c         C   s¤   t  j d k r t d ƒ ‚ n  |  j j t  j ƒ } |  j j | ƒ y% | j d j	 d t  j d ƒ ƒ Wn5 t  j
 k
 rŸ } |  j t t  j ƒ | j k ƒ n Xd  S(   Ni    s   IPC_PATH_MAX_LEN undefineds	   ipc://{0}R"   i   (   R   RÅ   R   R7   R   R   R8   R9   R   t   formatR2   R*   RA   t   strerror(   R   R   R5   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_ipc_path_max_length_msg‡  s    %t   reasons   ipc not supported on Windows.c         C   s´   |  j  j t j ƒ } |  j j | ƒ d } t j t j ƒ  } | j	 d j
 | ƒ ƒ Wd QX| j j t j k sw t ‚ t | j ƒ } | | k s˜ t ‚ d | j ƒ  k s° t ‚ d S(   s3   Display the ipc path in case of an ENOENT exceptions   /foo/bars	   ipc://{0}Ns   no such file or directory(   R7   R   R   R   R8   R9   t   pytestt   raisesR2   R   RÇ   R|   R3   t   ENOENTR”   RA   t   lower(   R   R   t   invalid_patht   errort   error_message(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt/   test_ipc_path_no_such_file_or_directory_message’  s    c         C   sà   t  j ƒ  d d k } xÃ t  j t  j t  j t  j t  j f D] } |  j j | ƒ } d | _	 |  j
 | j	 d ƒ | rÎ y |  j
 | j d ƒ Wn t k
 rŸ n Xy |  j
 | j d ƒ WqÎ t k
 rÊ qÎ Xn  | j ƒ  q; Wd  S(   Ni    i   id   (   R   Re   R   RV   RD   t   REQR©   R7   R   Rg   R   t   sndhwmR¯   t   rcvhwmR   (   R   t   zmq3t   stypeR   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_hwmŸ  s    +	c         C   sŠ   |  j  t j ƒ } t j | ƒ } t j | ƒ } |  j | j ƒ |  j | j ƒ |  j | j | j ƒ |  j | j | j ƒ | j	 ƒ  d  S(   N(
   R   R   R   R„   t   deepcopyt   assert_t   _shadowR   t
   underlyingR   (   R   R   t   scopyt   sdcopy(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt	   test_copy°  s    c         C   s…   |  j  t j t j ƒ \ } } x` t t f D]R } t | ƒ j d ƒ } | | ƒ } | j | ƒ | j	 ƒ  } | | k s+ t
 ‚ q+ Wd  S(   Nt   ascii(   RC   R   R   R   t
   memoryviewt	   bytearrayRA   Rˆ   R   R   R”   (   R   R"   R#   t   buffer_typet   rawbytesR$   t   recvd(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_send_bufferº  s    c         C   sà   |  j  t j ƒ } | j d ƒ t j j | j ƒ } |  j | j | j ƒ |  j  t j ƒ } t j j | j ƒ } |  j	 | j | j ƒ |  j | j | j ƒ | j
 d ƒ d } | j | ƒ |  j | ƒ } |  j | | ƒ d  S(   Ns   tcp://127.0.0.1:5555R   (   R   R   R   R   R¸   t   shadowRÜ   R   R   t   assertNotEqualR   R   R   (   R   R/   R¡   R   t   s2t   sentR%   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_shadowÃ  s    c   	      C   sÞ   y d d l  m } m } Wn t k
 r9 t d ƒ ‚ n X| j ƒ  } | j | t j ƒ } | j | t j ƒ } t j	 j
 | ƒ } t j	 j
 | ƒ } | j d ƒ | j d ƒ | j d ƒ |  j | ƒ } |  j | d ƒ d  S(   Niÿÿÿÿ(   t   zctxt   zsockets   Requires pyczmqs
   inproc://aR   (   t   pyczmqRì   Rí   t	   ExceptionR   t   newR   R   R   R¸   Rç   R   R   R   R   R   (	   R   Rì   Rí   R   t   cat   cbR"   R#   R%   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_shadow_pyczmqÒ  s    c         C   s  |  j  t j t j ƒ \ } } | j d ƒ d | _ t j ƒ  } | j | t j ƒ x: t d ƒ D], } | j	 d ƒ | j
 d ƒ } | r` Pq` q` W|  j | ƒ | j	 d ƒ |  j | ƒ } |  j | d ƒ | j d ƒ | j	 d ƒ | j
 d ƒ } |  j | g  ƒ d  S(   Nt   prefixR4   id   t   canaryiú   t   prefixmessageiè  (   RC   R   R   RD   t	   subscribet   Pollert   registerRÀ   R˜   R   R¾   R   R   t   unsubscribe(   R   t   pubt   subR/   R¢   t   eventsR$   (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_subscribe_methodã  s$    	i   i    s"   only run on 64b and not on Travis.c   
      C   s  t  j d ƒ } d
 } y | | } Wn# t k
 rH } t d | ƒ ‚ n X|  j ƒ  \ } } y) | j | d t ƒ| j d t ƒ } Wn# t k
 r© } t d | ƒ ‚ n Xt j	 d k  r¿ | n	 t
 | ƒ } t | ƒ }	 t |	 ƒ | k sï t ‚ |	 d | k st ‚ |	 d | k st ‚ d  S(   Ni   i   i   s   Not enough memory: %sR„   i   i    iÿÿÿÿI   €    I  €    (   i   (   t   ost   urandomt   MemoryErrorR   RC   R   R‡   R   t   syst   version_infot   ordRá   t   lenR”   (
   R   R4   t   Nt   bufR5   R"   R#   R%   t   bytet   view(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_large_sendù  s"    !c         C   sâ   |  j  t j t j ƒ \ } } d „  } d „  } i i d d 6d d 6d 6} | j | | ƒ | j | ƒ } | d | d k s„ t ‚ | d s” t ‚ | j | | ƒ | j | ƒ } | d | d k sÍ t ‚ | d sÞ t ‚ d  S(	   Nc         S   sL   g  } | j  |  j d g  ƒ ƒ t j |  d ƒ j d ƒ } | j | ƒ | S(   Nt
   identitiest   contentR>   (   R†   R;   t   jsont   dumpsRˆ   R9   (   R$   t   framesR  (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt	   serialize  s
    c         S   s8   |  d  } t  j |  d j d ƒ ƒ } i | d 6| d 6S(   NiÿÿÿÿR>   R  R  (   R  t   loadsRB   (   R  R  R  (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   deserialize$  s
    
i   R"   t   beeR#   R  R  (   RC   R   R©   RV   t   send_serializedt   recv_serializedR”   (   R   R"   R#   R  R  R$   Rå   t   r2(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_custom_serialize  s    		I       (+   Rµ   R¶   R   R&   R-   R0   R1   R6   R=   RU   R€   R‚   Rƒ   RŠ   R   R   R¥   R¨   R¬   R°   Rº   R»   R½   RÄ   RÆ   RÉ   R    t   skipifR   RÒ   RØ   Rß   Ræ   Rë   Ró   Rþ   R   t	   on_travisR  t   maxsizet   largeR
  R  (    (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyR
      sJ   	
		
						5					G		
					
						
					t   TestSocketGreenc           B   ss   e  Z e j Z e j Z d  „  Z e j e	 e
 d ƒ d d ƒd „  ƒ Z e j e	 e
 d ƒ d d ƒd „  ƒ Z RS(   c            sj   |  j  ƒ  \ ‰  } t j d ‡  f d †  ƒ } t j d ƒ } | j ƒ  |  j t j | j ƒ | j ƒ  d  S(   Ng      à?c              s   ˆ  j  d ƒ S(   NR   (   R   (    (   R"   (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   <lambda>F  Rd   gš™™™™™¹?(   RC   t   geventt   spawn_latert   Timeoutt   startRG   R   t   kill(   R   R#   t   gt   timeout(    (   R"   s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_timeoutD  s    
t   RCVTIMEORÊ   s   requires RCVTIMEOc         C   st   |  j  j t j ƒ } t j d t ƒ  } d | _ Wd  QX| j ƒ  |  j	 t
 | ƒ d ƒ |  j	 | d j t ƒ d  S(   Nt   recordi   i   i    (   R7   R   R   RÓ   t   warningst   catch_warningsR    t   rcvtimeoR   R   R  t   categoryt   UserWarning(   R   R   t   w(    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_warn_set_timeoL  s    
t   SNDTIMEOs   requires SNDTIMEOc         C   sr   |  j  j t j ƒ } t j d t ƒ  } | j Wd  QX| j ƒ  |  j	 t
 | ƒ d ƒ |  j	 | d j t ƒ d  S(   NR'  i   i    (   R7   R   R   RÓ   R(  R)  R    t   sndtimeoR   R   R  R+  R,  (   R   R   R-  (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   test_warn_get_timeoV  s    
(   Rµ   R¶   R   t
   skip_greenR°   R½   R%  R    R  t   hasattrR   R.  R1  (    (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyR  @  s
   			(
(!   R„   R3   R  Rÿ   t   platformRN   R(  R   R  RË   R    R   t	   zmq.testsR   R   R   R   R   t   zmq.utils.strtypesR   t   python_implementationRÎ   R   Rt   R   t   boolt   environR;   R  R¿   R
   R  R  (    (    (    s4   lib/python2.7/site-packages/zmq/tests/test_socket.pyt   <module>   s.   (ÿ ÿ  