ó
ßüÚ\c           @` sÞ  d  Z  d d l m Z m Z m Z d d l m Z d d l m Z m	 Z	 m
 Z
 d d l m Z d d l m Z d d l m Z d d l m Z m Z m Z m Z m Z e d	 e ƒ d
 „  ƒ Z e d	 e d d ƒ d „  ƒ Z e d	 e ƒ d „  ƒ Z e d	 e ƒ d „  ƒ Z e d	 e d e ƒ d „  ƒ Z e d	 e ƒ d „  ƒ Z e d	 e d d g d ƒ d „  ƒ Z e d	 e ƒ d „  ƒ Z e d	 e d d g d ƒ d „  ƒ Z  e d	 e ƒ d „  ƒ Z! e d	 e d e ƒ d „  ƒ Z" d S(   s`   
Various functional tests for TLS networking.
Most are taken from other test files and adapted.
i    (   t   print_functiont   divisiont   absolute_import(   t   gen(   t   Nannyt   worker_clientt   Queue(   t   wait(   t   time(   R   (   t   gen_tls_clustert   inct   doublet   slowinct   slowaddt   clientc   	      c` s˜   | j  j d ƒ s t ‚ t d ƒ } t d ƒ } | j ƒ  V} | d k sO t ‚ |  j t d ƒ } | j | ƒ V| j ƒ  V} | j	 | j	 k s” t ‚ d  S(   Ns   tls://t   xt   yi    i   (
   t   addresst
   startswitht   AssertionErrorR   t   qsizet   submitR
   t   putt   gett   key(	   t   ct   st   at   bR   R   t   sizet   futuret   future2(    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt
   test_Queue   s    t   timeoutc   
      c` s¸   | j  j d ƒ s t ‚ |  j t d ƒ } | V} | d k sC t ‚ g  t d ƒ D] } |  j t | ƒ ^ qP } g  } x | D] }	 | j |	 Vƒ q{ W| t t d d ƒ ƒ k s´ t ‚ d  S(   Ns   tls://i
   i   i   (	   R   R   R   R   R
   t   rangeR   t   appendt   list(
   R   R   R   R   R   t   resultt   it   yyt   resultsR   (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_client_submit$   s    +c         c` sÎ   | j  j d ƒ s t ‚ |  j t d ƒ } |  j t | ƒ } |  j | ƒ V} | d k s^ t ‚ |  j | g ƒ V} | d g k s† t ‚ |  j i | d 6| g d 6ƒ V} | i d d 6d g d 6k sÊ t ‚ d  S(   Ns   tls://i
   i   R   R   i   (   R   R   R   R   R
   t   _gather(   R   R   R   R   R   R   R%   (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_gather3   s    !c         c` s   | j  j d ƒ s t ‚ |  j i d d 6ƒ V} | j d } | j sK t ‚ | j d k s` t ‚ |  j | d g ƒ V} | d g k sŒ t ‚ d  S(   Ns   tls://i   R   i    (   R   R   R   t   _scattert   taskst   who_hast   nbytesR*   (   R   R   R   R   t   dt   tsR'   (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_scatterB   s    t   Workerc         c` sÈ   | j  j d ƒ s t ‚ xY | | g D]K } t | t ƒ s@ t ‚ | j  j d ƒ sX t ‚ | j j d ƒ s% t ‚ q% W| j d „  | | g Dƒ k s™ t ‚ |  j t d ƒ } | V} | d k sÄ t ‚ d  S(   Ns   tls://c         S` s   i  |  ] } | j  | j “ q S(    (   t   ncorest   worker_address(   t   .0t   n(    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pys
   <dictcomp>U   s   	 i
   i   (	   R   R   R   t
   isinstanceR   R5   R4   R   R
   (   R   R   R   R   R7   R   R%   (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt
   test_nannyN   s    %c         c` s£   |  j  d d g d | j g ƒV\ } } t | j ƒ d k sC t ‚ t | j ƒ d k s^ t ‚ |  j ƒ  Vt | j ƒ d k s„ t ‚ t | j ƒ d k sŸ t ‚ d  S(   Ni   i   t   workersi    (   R,   R   t   lent   dataR   t
   _rebalance(   R   R   R   R   R   R   (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_rebalance\   s    (R4   s   tls://127.0.0.1i   c         c` sš   |  j  d g d | j ƒV\ } |  j t t d ƒ | g d d d ƒ} t j d ƒ Vt | ƒ Vt | j	 ƒ d k s{ t
 ‚ t | j	 ƒ d k s– t
 ‚ d  S(   Ni   R:   i2   t   delaygš™™™™™¹?i
   (   R,   R   t   mapR   R"   R   t   sleepR   R;   R<   R   (   R   R   R   R   R   t   futures(    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_work_stealingh   s    (c   	      c` ss   d „  } |  j  | d d g ƒ \ } } |  j | | g ƒ V\ } } | d d k sY t ‚ | d	 d k so t ‚ d  S(   Nc         S` sT   t  ƒ  E } | j t |  ƒ }  | j t |  ƒ } |  j ƒ  | j ƒ  } | SWd  QXd  S(   N(   R   R   R
   R   R%   (   R   R   R   R%   (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   funct   s
    i
   i   i   i   i   i   i   i   i   i*   (   R@   R*   R   (	   R   R   R   R   RD   R   R   t   xxR'   (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_worker_clientr   s
    	i   c         #` sŒ   | j  ‰  | j  ‰ ˆ  j d ƒ s' t ‚ ˆ j d ƒ s< t ‚ ˆ  ˆ k sN t ‚ ‡  ‡ f d †  } |  j | ƒ } | V} | d k sˆ t ‚ d  S(   Ns   tls://c       	   ` sg   t  ƒ  R }  |  j t d d ˆ  ƒ} |  j t d d ˆ ƒ} |  j | | g ƒ \ } } Wd  QX| | f S(   Ni   R:   i   (   R   R   R
   t   gather(   t   eeR   R   RE   R'   (   t	   a_addresst	   b_address(    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyRD   Š   s
    !i   i   (   i   i   (   R   R   R   R   (   R   R   R   R   RD   R   R%   (    (   RI   RJ   sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_worker_client_gather‚   s    		c         c` s5   d „  } |  j  | ƒ } | V} | d k s1 t ‚ d  S(   Nc          S` sG   t  ƒ  8 }  |  j ƒ  # } t | j t t d ƒ ƒ ƒ SWd  QXWd  QXd  S(   Ni   (   R   t   get_executort   sumR@   R   R"   (   R   t   e(    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   mysumš   s    i   i   if  (   R   R   (   R   R   R   R   RO   R   R%   (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_worker_client_executor˜   s    	c         c` s¯   t  | j ƒ | j | j h k s' t ‚ |  j d | j g d t ƒ Vt  | j ƒ | j h k se t ‚ t ƒ  } x: | j d k rª t j	 d ƒ Vt ƒ  | d k  sq t ‚ qq Wd  S(   NR:   t   close_workerst   closedg{®Gáz„?i   (
   t   setR:   R5   R   t   retire_workerst   TrueR   t   statusR   RA   (   R   R   R   R   t   start(    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   test_retire_workers¤   s    '!	N(   s   tls://127.0.0.1i   (   s   tls://127.0.0.1i   (#   t   __doc__t
   __future__R    R   R   t   tornadoR   t   distributedR   R   R   t   distributed.clientR   t   distributed.metricsR   t   distributed.nannyt   distributed.utils_testR	   R
   R   R   R   RU   R    t   NoneR)   R+   R2   R9   R>   RC   RF   RK   RP   RX   (    (    (    sD   lib/python2.7/site-packages/distributed/tests/test_tls_functional.pyt   <module>   s$   (%
%