ó
ßüÚ\c           @` s  d  d l  m Z m Z m Z d  d l 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 d	 e ƒ d „  ƒ Z d „  Z  e d	 e ƒ d „  ƒ Z! d „  Z" e d	 e ƒ 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* d „  Z+ d S(    i    (   t   print_functiont   divisiont   absolute_importN(   t   sleep(   t   gen(   t   Clientt   Variablet   worker_clientt   Nannyt   wait(   t   time(   t   gen_clustert   inct   slowt   div(   t   clientt   cluster_fixturet   loopR   c   	      c` sã   t  d ƒ } t  d ƒ } | j |  k s- t ‚ |  j t d ƒ } | j | ƒ V| j ƒ  V} | j | j k sr t ‚ ~ ~ t j	 d ƒ V| j
 s• t ‚ | j ƒ  t ƒ  } x4 | j
 rÞ t j	 d ƒ Vt ƒ  | d k  s« t ‚ q« Wd  S(   Nt   xi   gš™™™™™¹?g{®Gáz„?i   (   R   R   t   AssertionErrort   submitR   t   sett   gett   keyR   R   t   taskst   deleteR
   (	   t   ct   st   at   bR   t   xxt   futuret   future2t   start(    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_variable   s    
	c         c` s^   t  d ƒ } t  d ƒ } | j |  k s- t ‚ | j d ƒ V| j ƒ  V} | d k sZ t ‚ d  S(   NR   i   t   hello(   i   R#   (   i   R#   (   R   R   R   R   R   (   R   R   R   R   R   R   t   data(    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_queue_with_data)   s    c         C` sb   |  j  d „  d ƒ } t d ƒ } t d ƒ } | j | ƒ | j ƒ  } | j ƒ  d k s^ t ‚ d  S(   Nc         S` s   |  d S(   Ni   (    (   R   (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   <lambda>6   t    i
   R   i   (   R   R   R   R   t   resultR   (   R   R   R   R   R    (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt	   test_sync5   s    c   
      c` s¸   t  |  j d t ƒV} | j d „  d ƒ } t d ƒ } | j | ƒ V~ | j ƒ  Vt j d ƒ Vt  |  j d t ƒV} t d ƒ } | 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_variable.pyR&   B   R'   i
   R   gš™™™™™¹?i   (   R   t   addresst   TrueR   R   R   t   closeR   R   R   R   (
   R   R   R   t   c1R   t   x1t   c2t   x2R    R(   (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_hold_futures?   s    c         c` sr   t  d ƒ } t ƒ  } t j t j ƒ  | j d d ƒ VWd  QXt ƒ  } d | | k  oc d k  n sn t ‚ d  S(   Nt   vt   timeoutgš™™™™™¹?g       @(   R   R
   t   pytestt   raisesR   t   TimeoutErrorR   R   (   R   R   R   R   R3   R!   t   stop(    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_timeoutS   s    		c         C` sq   t  d ƒ } t ƒ  } t j t j ƒ  | j d d ƒ Wd  QXt ƒ  } d | | k  ob d k  n sm t ‚ d  S(   NR3   R4   gš™™™™™¹?g       @(   R   R
   R5   R6   R   R7   R   R   (   R   R3   R!   R8   (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_timeout_sync^   s    		c         c` sÈ   t  d ƒ } t  d ƒ } |  j d „  d ƒ } |  j d „  d ƒ } | j } | j | ƒ V~ t j d ƒ V| j ƒ  }	 }
 t j V| j | ƒ |	 V} | j | k s« t	 ‚ | V} | d k sÄ t	 ‚ d  S(   NR3   c         S` s   |  d S(   Ni   (    (   R   (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyR&   l   R'   i
   c         S` s   |  d S(   Ni   (    (   R   (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyR&   m   R'   i   gš™™™™™¹?i   (
   R   R   R   R   R   R   t   _gett   momentt   _setR   (   R   R   R   R   R3   t   vvR   t   yt   x_keyt   t_futureR   R   R(   (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_cleanupg   s    	c         ` sM   t  d ƒ ‰  ‡  f d †  } |  j | d ƒ j ƒ  ˆ  j ƒ  d k sI t ‚ d  S(   NR3   c         ` s   ˆ  j  |  d ƒ d  S(   Ni   (   R   (   R   (   R3   (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   f   s    i
   i   (   R   R   R(   R   R   (   R   RC   (    (   R3   s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_pickleable~   s    c         c` sO   t  d ƒ } | j ƒ  } t  d ƒ } | j d ƒ V| V} | d k sK t ‚ d  S(   NR3   i   (   R   R   R   R   (   R   R   R   R   R3   t   tornado_futureR>   R(   (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_timeout_getˆ   s    i   t   reasons   Multi-client issuest   ncoress	   127.0.0.1i   t   WorkerR4   c   	      '` sã   d ‰  ‡  f d †  } t  d d |  ƒ} |  j d ƒ V} | j | ƒ V|  j | t d ƒ ƒ } |  j | ƒ V} t ‡  f d †  | Dƒ ƒ s t ‚ t ƒ  } xD t	 | j
 d ƒ d k rÞ t j d	 ƒ Vt ƒ  | d
 k  s› t ‚ q› Wd  S(   Ni2   c         ` sª   t  ƒ  › } t d d | ƒ} x_ t ˆ  ƒ D]Q } | j ƒ  } | j ƒ  } | j t | ƒ } | j | ƒ t d t	 j	 ƒ  ƒ q+ W| j ƒ  j ƒ  } t d ƒ | SWd  QXd  S(   NR   R   g{®Gáz„?gš™™™™™¹?(
   R   R   t   rangeR   R(   R   R   R   R   t   random(   t   iR   R3   t   _R   R   R?   R(   (   t   NITERS(    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyRC   ›   s    
R   R   i   i   c         3` s   |  ] } | ˆ  d  k Vq d S(   gš™™™™™é?N(    (   t   .0t   r(   RN   (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pys	   <genexpr>®   s    s
   variable-xg{®Gáz„?i   (   R   t   scatterR   t   mapRJ   t   gathert   allR   R
   t   lent
   wants_whatR   R   (	   R   R   t   workersRC   R3   R   t   futurest   resultsR!   (    (   RN   s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt	   test_race•   s    "	c         c` sY  |  j  d ƒ V} t d ƒ } | j | ƒ Vt | j d t ƒV} t d d | ƒ} | j ƒ  V} | j d k st t ‚ |  j	 t
 d d ƒ } t | ƒ V| j | ƒ V| j ƒ  V}	 |	 j d k sÄ t ‚ t j t ƒ 
 |	 VWd  QXt ƒ  }
 x_ t rIy	 |	 VWqë t k
 rPqë t k
 rEt ƒ  |
 d	 k  s4t ‚ t j d
 ƒ Vqë Xqë W| j ƒ  Vd  S(   Ni{   R   R*   R   t   finishedi   i    t   errori   gš™™™™™©?(   RQ   R   R   R   R+   R,   R   t   statusR   R   R   R	   R5   R6   t	   ExceptionR
   t   ZeroDivisionErrorR   R   R-   (   R   R   R   R   R   R3   R0   t   v2R   R    R!   (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.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   R5   R6   R_   R(   t	   exceptiont
   isinstanceR   (   R   R   R   R   R   t   varR    t   exc(    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_erred_future×   s    	c         C` se   |  j  t d d ƒ } t ƒ  } | j | ƒ t d ƒ | j ƒ  } t j t ƒ  | j	 ƒ  Wd  QXd  S(   Ni   i    gš™™™™™¹?(
   R   R   R   R   R   R   R5   R6   R_   R(   (   R   R   Rd   R    (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   test_future_erred_syncå   s    	
(   s	   127.0.0.1i   (,   t
   __future__R    R   R   RK   R
   R   t   sysR5   t   tornadoR   t   distributedR   R   R   R   R	   t   distributed.metricst   distributed.utils_testR   R   R   R   R   R   R   R,   R"   R%   R)   R2   R9   R:   RB   RD   RF   t   markt   skipift   version_infot   NoneRZ   Ra   Rf   Rg   (    (    (    s>   lib/python2.7/site-packages/distributed/tests/test_variable.pyt   <module>   s0   ("	
			
"7!