ó
ßüÚ\c           @` sc  d  d l  m Z m Z m Z d  d l m Z d  d l m Z d  d l Z d  d l	 Z	 d  d l
 m Z d  d l m Z m Z m Z m Z m Z d  d l m Z d  d l m Z m Z m Z m Z d  d	 l m Z m Z m Z e d
 e ƒ d „  ƒ Z e d
 e ƒ d „  ƒ Z d „  Z e ƒ  d „  ƒ Z e	 j  j! d d ƒ e d
 e ƒ d „  ƒ ƒ Z" d „  Z# e	 j  j$ e j% d  d k d d ƒe e d
 e d d" g d d e d d ƒ d „  ƒ ƒ ƒ Z' e d
 e ƒ d „  ƒ Z( e d
 e ƒ d „  ƒ Z) e d
 e ƒ d „  ƒ Z* e d
 e ƒ d „  ƒ Z+ e d
 e ƒ d „  ƒ Z, e d
 e ƒ d  „  ƒ Z- e d
 e ƒ d! „  ƒ Z. d S(#   i    (   t   print_functiont   divisiont   absolute_import(   t	   timedelta(   t   sleepN(   t   gen(   t   Clientt   Queuet   Nannyt   worker_clientt   wait(   t   time(   t   gen_clustert   inct   slowt   div(   t   clientt   cluster_fixturet   loopR   c   
      c` s+  t  d ƒ V} t  d ƒ V} t  d ƒ V} | j |  k s< t ‚ |  j t d ƒ } | j | ƒ V| j | ƒ V| j ƒ  V} | j | j k s t ‚ t j	 t
 j ƒ  | j d d ƒ VWd  QX~ ~ t
 j d ƒ V| j sÜ t ‚ | j ƒ  Vt ƒ  }	 x4 | j r&t
 j d ƒ Vt ƒ  |	 d k  só t ‚ qó Wd  S(   Nt   xt   yi   t   timeoutgš™™™™™¹?g{®Gáz„?i   (   R   R   t   AssertionErrort   submitR   t   putt   gett   keyt   pytestt   raisesR   t   TimeoutErrorR   t   tasksR   (
   t   ct   st   at   bR   R   t   xxt   futuret   future2t   start(    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt
   test_queue   s&    	c         c` sŠ   t  d ƒ V} t  d ƒ V} | j |  k s/ t ‚ | j d ƒ V| j ƒ  V} | d k s\ t ‚ t j t j ƒ  | j d d ƒ VWd  QXd  S(   NR   i   t   helloR   gš™™™™™¹?(   i   R(   (   i   R(   (	   R   R   R   R   R   R   R   R   R   (   R   R    R!   R"   R   R#   t   data(    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   test_queue_with_data-   s    c         C` s’   |  j  d „  d ƒ } t d ƒ } t d ƒ } | j | ƒ | j ƒ  d k sR t ‚ | j ƒ  d k sj t ‚ | j ƒ  } | j ƒ  d k sŽ t ‚ d  S(   Nc         S` s   |  d S(   Ni   (    (   R   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   <lambda>=   t    i
   R   i   i   (   R   R   R   t   qsizeR   R   t   result(   R   R$   R   R#   R%   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt	   test_sync<   s    c   
      c` sº   t  |  j d t ƒV} | j d „  d ƒ } t d ƒ V} | j | ƒ V~ | j ƒ  Vt j d ƒ Vt  |  j d t ƒV} t d ƒ V} | j	 ƒ  V} | V}	 |	 d k s« t
 ‚ | j ƒ  Vd  S(   Nt   asynchronousc         S` s   |  d S(   Ni   (    (   R   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyR+   K   R,   i
   t   qgš™™™™™¹?i   (   R   t   addresst   TrueR   R   R   t   closeR   R   R   R   (
   R    R!   R"   t   c1R$   t   q1t   c2t   q2R%   R.   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   test_hold_futuresH   s    t   reasons$   getting same client from main threadc         #` sL   t  ƒ  ‰  ‡  f d †  } |  j | d ƒ Vˆ  j ƒ  V} | d k sH t ‚ d  S(   Nc         ` s   ˆ  j  |  d ƒ d  S(   Ni   (   R   (   R   (   R1   (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   fa   s    i
   i   (   R   R   R   R   (   R   R    R!   R"   R;   R.   (    (   R1   s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   test_picklability\   s
    	c         ` sJ   t  ƒ  ‰  ‡  f d †  } |  j | d ƒ j ƒ  ˆ  j ƒ  d k sF t ‚ d  S(   Nc         ` s   ˆ  j  |  d ƒ d  S(   Ni   (   R   (   R   (   R1   (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyR;   l   s    i
   i   (   R   R   R.   R   R   (   R   R;   (    (   R1   s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   test_picklability_synci   s    	i   s   Multi-client issuest   ncoress	   127.0.0.1i   t   WorkerR   c   
      g` sÊ   d „  } t  d d |  ƒ} |  j t d ƒ ƒ V} x | D] } | j | ƒ Vq8 W|  j | t d ƒ ƒ } |  j | ƒ V} t d „  | Dƒ ƒ s” t ‚ t | ƒ d k s¬ t ‚ | j	 ƒ  V}	 |	 sÆ t ‚ d  S(   Nc         S` s–   t  ƒ  ‡ } t d d | ƒ} xU t d ƒ D]G } | j ƒ  } | j ƒ  } | j t | ƒ } | j | ƒ t d ƒ q+ W| j ƒ  j ƒ  } | SWd  QXd  S(   NR   R   id   g{®Gáz„?(	   R	   R   t   rangeR   R.   R   R   R   R   (   t   iR   R1   t   _R$   R   R   R.   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyR;   x   s    R   R   i   c         s` s   |  ] } | d  k Vq d S(   i2   N(    (   t   .0t   r(    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pys	   <genexpr>‹   s    iþ  (
   R   t   scatterR@   R   t   mapt   gathert   allR   t   sumR-   (
   R   R    t   workersR;   R1   t   LR$   t   futurest   resultsR-   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt	   test_racet   s    	c   	      c` s#  t  d ƒ } |  j d ƒ V} x" t d ƒ D] } | j | ƒ Vq) W| j d | j h k s` t ‚ xm t d ƒ D]_ } | j ƒ  V} | j d | j h k sŸ t ‚ t j	 d ƒ V| j d | j h k sm t ‚ qm W| j ƒ  Vt
 ƒ  } x8 | j d rt j	 d ƒ Vt
 ƒ  | d k  sç t ‚ qç Wd  S(	   NR   i{   i   s   queue-xi   gš™™™™™©?g{®Gáz„?i   (   R   RE   R@   R   t
   wants_whatR   R   R   R   R   R   (	   R   R    R!   R"   R1   R$   RA   R%   R&   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   test_same_futures‘   s    #	c      	   c` s  t  d ƒ V} t  d ƒ V} | j d ƒ V| j d ƒ V| j d ƒ V| j d t ƒ V} | d d d g k sr t ‚ | j d ƒ V| j d ƒ V| j d ƒ V| j d d ƒ V} | d d g k sÇ t ‚ t j t j ƒ - t j	 t
 d d ƒ | j d d ƒ ƒ V} Wd  QXd  S(   NR   i   i   i   t   batcht   secondsgš™™™™™¹?(   R   R   R   R3   R   R   R   R   R   t   with_timeoutR   (   R   R    R!   R"   R   R#   R)   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   test_get_many©   s    c         c` s[  |  j  d ƒ V} t d ƒ V} | j | ƒ Vt | j d t ƒV} t d d | ƒV} | j ƒ  V} | j d k sv t ‚ |  j	 t
 d d ƒ } t | ƒ V| j | ƒ V| j ƒ  V}	 |	 j d k sÆ t ‚ t j t ƒ 
 |	 VWd  QXt ƒ  }
 x_ t rKy	 |	 VWqí t k
 rPqí t k
 rGt ƒ  |
 d	 k  s6t ‚ t j d
 ƒ Vqí Xqí W| j ƒ  Vd  S(   Ni{   R1   R0   R   t   finishedi   i    t   errori   gš™™™™™©?(   RE   R   R   R   R2   R3   R   t   statusR   R   R   R
   R   R   t	   ExceptionR   t   ZeroDivisionErrorR   R   R4   (   R   R    R!   R"   R   R1   R7   R8   R$   R%   R&   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt$   test_Future_knows_status_immediatelyÀ   s0    			c         c` sŽ   |  j  t d d ƒ } t ƒ  } | j | ƒ Vt j d ƒ V| j ƒ  V} t j t	 ƒ  | j
 ƒ  VWd  QX| j ƒ  V} t | t	 ƒ sŠ t ‚ d  S(   Ni   i    gš™™™™™¹?(   R   R   R   R   R   R   R   R   R   RY   R.   t	   exceptiont
   isinstanceR   (   R   R    R!   R"   R$   R1   R%   t   exc(    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   test_erred_futureá   s    	c         c` s}   t  ƒ  } x+ | j | j d j k r6 t j d ƒ Vq W| j ƒ  | j ƒ  x+ | j | j d j k rx t j d ƒ VqN Wd  S(   Nt   queuesg{®Gáz„?(   R   t   namet
   extensionsR_   R   R   R4   (   R   R    R!   R"   R1   (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt
   test_closeï   s    	

c      	   c` së   t  d d d ƒ} t ƒ  } t j t j ƒ  | j d d ƒ VWd  QXt ƒ  } d | | k  oi d k  n st t ‚ | j d ƒ Vt ƒ  } t j t j ƒ  | j d d d ƒVWd  QXt ƒ  } d	 | | k  oÜ d k  n sç t ‚ d  S(
   Nt   vt   maxsizei   R   g333333Ó?gš™™™™™É?g       @i   gš™™™™™¹?(	   R   R   R   R   R   R   R   R   R   (   R   R    R!   R"   R1   R&   t   stop(    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   test_timeoutý   s    		&		c         #` sT   t  ƒ  ‰  ‡  f d †  } ‡  f d †  } |  j | ƒ } |  j | ƒ } | | g Vd  S(   Nc           ` s   ˆ  j  d ƒ d  S(   Ni7   (   R   (    (   R1   (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyR     s    c           ` s   t  ˆ  j ƒ  ƒ d  S(   N(   t   printR   (    (   R1   (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyR     s    (   R   R   (   R   R    R!   R"   R   R   t   futt   res(    (   R1   s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt	   test_2220  s    	(   s	   127.0.0.1i   (/   t
   __future__R    R   R   t   datetimeR   R   R   t   sysR   t   tornadoR   t   distributedR   R   R   R	   R
   t   distributed.metricst   distributed.utils_testR   R   R   R   R   R   R   R3   R'   R*   R/   R9   t   markt   skipR<   R=   t   skipift   version_infot   NoneRN   RP   RT   RZ   R^   Rb   Rf   Rj   (    (    (    s<   lib/python2.7/site-packages/distributed/tests/test_queues.pyt   <module>   s4   ("		"7!