ó
ßüÚ\c        	   @` s7  d  d l  m Z m Z m Z d  d l m 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 d  d l m Z m Z m Z m Z 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 m Z d  d
 l m Z m Z m  Z  m! Z! m" Z" d  d l# m$ Z$ d „  Z% d „  Z& e d e' ƒ d „  ƒ Z( e j) j* d d ƒ d „  ƒ Z+ e d e, ƒ d „  ƒ Z- e d e' d d d d& d' g d e ƒ  ƒ d „  ƒ Z. e ƒ  d „  ƒ Z/ e d  d „ ƒ Z0 d „  Z1 d „  Z2 d „  Z3 d  „  Z3 d! „  Z4 d" „  Z5 e j6 d( k r3d  d% l7 Tn  d S()   i    (   t   print_functiont   divisiont   absolute_import(   t   contextmanagerN(   t   sleep(   t   gen(   t	   Schedulert   Workert   Clientt   configt   default_client(   t   rpc(   t   time(   t   clustert   gen_clustert   inct   gen_testt   wait_for_portt
   new_config(   t   loopt   tls_only_securityt   securityt
   tls_clientt   tls_cluster(   t   get_ipc         C` s"   t  d d ƒ  \ } } Wd  QXd  S(   Nt   nworkersi
   (   R   (   R   t   st   _(    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_bare_cluster"   s    c         C` s   t  ƒ  p \ } \ } } t | d ƒ K } |  j | j ƒ } | d d k sS t ‚ t | d ƒ d k so t ‚ Wd  QXWd  QXd  S(   Nt   addresst   typeR   t   workersi   (   R   R   t   run_synct   identityt   AssertionErrort   len(   R   R   t   at   bt   ident(    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_cluster'   s
    t   clientc         C` s   t  |  t ƒ s t ‚ t  | t ƒ s* t ‚ x) | | g D] } t  | t ƒ s7 t ‚ q7 W| j d „  | | g Dƒ k s{ t ‚ d  S(   Nc         S` s   i  |  ] } | j  | j “ q S(    (   t   ncoresR   (   t   .0t   w(    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pys
   <dictcomp>5   s   	 (   t
   isinstanceR   R"   R   R   R)   (   t   cR   R$   R%   R+   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_gen_cluster/   s
    t   reasons   This hangs on travisc         ` sm   d d  l  ‰  ˆ  j j d d  ƒ s( t ‚ t d t ƒ ‡  f d †  ƒ } | ƒ  ˆ  j j d d  ƒ si t ‚ d  S(   Ni    t   getR(   c         3` s0   ˆ  j  j d d  ƒ s t ‚ |  j t d ƒ Vd  S(   NR0   i   (   R	   R0   t   NoneR"   t   submitR   (   R-   R   R$   R%   (   t   dask(    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   f>   s    (   t   dask.contextR	   R0   R1   R"   R   t   True(   R   R4   (    (   R3   s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt!   test_gen_cluster_cleans_up_client8   s
    c         C` sj   t  |  t ƒ s t ‚ x) | | g D] } t  | t ƒ s" t ‚ q" W|  j d „  | | g Dƒ k sf t ‚ d  S(   Nc         S` s   i  |  ] } | j  | j “ q S(    (   R)   R   (   R*   R+   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pys
   <dictcomp>M   s   	 (   R,   R   R"   R   R)   (   R   R$   R%   R+   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_gen_cluster_without_clientH   s    t	   schedulers   tls://127.0.0.1R)   i   i   R   c         C` s¯   t  |  t ƒ s t ‚ t  | t ƒ s* t ‚ | j j d ƒ sB t ‚ xA | | g D]3 } t  | t ƒ sj t ‚ | j j d ƒ sO t ‚ qO W| j d „  | | g Dƒ k s« t ‚ d  S(   Ns   tls://c         S` s   i  |  ] } | j  | j “ q S(    (   R)   R   (   R*   R+   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pys
   <dictcomp>]   s   	 (   R,   R   R"   R   R   t
   startswithR   R)   (   t   eR   R$   R%   R+   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_gen_cluster_tlsP   s    c           c` s   t  j d ƒ Vd  S(   Ng{®Gáz„?(   R   R   (    (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_gen_test`   s    c         #` s‘   t  j  ƒ  ‰ ˆ j d ƒ t j ƒ  ‰ ‡  ‡ ‡ f d †  } t j d | ƒ } t | _ | j ƒ  z ˆ j ƒ  t	 d ƒ ˆ VWd  | j
 d ƒ Xd  S(   Ns	   127.0.0.1i    c          ` s`   ˆ j  ƒ  t ˆ  ƒ ˆ j d ƒ ˆ j ƒ  }  |  d  k	 rR |  \ } } | j ƒ  n  ˆ j ƒ  d  S(   Ni   (   t   setR   t   listent   acceptR1   t   close(   t   rett   cliR   (   t   delayR;   t   serv(    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt	   do_listenk   s    

t   targetg{®Gáz„?g      @(   s	   127.0.0.1i    (   t   sockett   bindt	   threadingt   Eventt   ThreadR6   t   daemont   startt   waitR   t   join(   RD   RF   t   t(    (   RD   R;   RE   s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   _listene   s    
	


	c          C` sò   t  ƒ  }  t j t ƒ  t t ƒ  d f d ƒ Wd  QXt  ƒ  } | |  d k sT t ‚ t d ƒ ? } t  ƒ  }  t | j ƒ  ƒ t  ƒ  } | |  d k s› t ‚ Wd  QXt d ƒ ? } t  ƒ  }  t | j ƒ  ƒ t  ƒ  } | |  d k sè t ‚ Wd  QXd  S(   Ni'  g      à?i    g      ð?i   g       @(	   R   t   pytestt   raisest   RuntimeErrorR   R   R"   RR   t   getsockname(   t   t1t   t2t   s1(    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_wait_for_port€   s    						c          C` s\   t  j ƒ  }  t i d d 6ƒ  t  d d k Wd  QXt  |  k sF t ‚ d t  k sX t ‚ d  S(   Ni   t   xyzzy(   R	   t   copyR   R"   (   R-   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_new_config”   s
    c          C` s:   t  ƒ  d „  ƒ }  |  ƒ  t j t ƒ  t ƒ  Wd  QXd  S(   Nc         s` s   t  |  j d t ƒV} d  S(   Nt   asynchronous(   R   R   R6   (   R   R$   R%   R-   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyR4   ž   s    (   R   RS   RT   t
   ValueErrorR
   (   R4   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_lingering_client   s    c         C` s8   t  ƒ  ) \ } \ } } t | d d |  ƒ} Wd  QXd  S(   NR   R   (   R   R   (   R   R   R$   R%   R(   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyR`   ¨   s    c         C` s2   |  j  d „  d ƒ j ƒ  d k |  j s. t ‚ d  S(   Nc         S` s   |  d S(   Ni   (    (   t   x(    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   <lambda>®   t    i
   i   (   R2   t   resultR   R"   (   R   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_tls_cluster­   s    c         C` sH   t  d |  d | ƒ } | j d ƒ | j j d ƒ s: t ‚ | j ƒ  d  S(   NR   R   t	   localhostt   tls(   R   RN   R   R:   R"   RA   (   R   R   R   (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   test_tls_scheduler²   s    i   i   (   t   *(   s   tls://127.0.0.1i   (   s   tls://127.0.0.1i   (   i   i   (8   t
   __future__R    R   R   t
   contextlibR   RH   t   sysRJ   R   R   RS   t   tornadoR   t   distributedR   R   R   R	   R
   t   distributed.coreR   t   distributed.metricst   distributed.utils_testR   R   R   R   R   R   R   R   R   R   R   t   distributed.utilsR   R   R'   R6   R.   t   markt   skipR7   t   FalseR8   R<   R=   RR   RZ   R]   R`   Re   Rh   t   version_infot$   distributed.tests.py3_test_utils_tst(    (    (    s@   lib/python2.7/site-packages/distributed/tests/test_utils_test.pyt   <module>   sD   (.	(										