σ
ίόΪ\c           @` sa  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 m	 Z	 m
 Z
 d  d l m Z d  d l m Z d  d l m Z m Z m Z e d e d	 d g d  d    Z e d e  d    Z e d e  d    Z e d e  d    Z d   Z e d e  d    Z d   Z e d e  d    Z e d e  d    Z d S(   i    (   t   print_functiont   divisiont   absolute_importN(   t   sleep(   t   Lockt
   get_client(   t   time(   t   gen_cluster(   t   clientt   cluster_fixturet   loopR   t   ncoress	   127.0.0.1i   i   c         c` sj   |  j  d t  d   } |  j | t d   } | V} | j d j sO t  | j d j sf t  d  S(   Nt   lockedc         S` s   t    } t d  g } | j d  t k s3 t  | j d t  t d  | j d  t k sh t  | j d t  Wd  QXd  S(   Nt   xR   g©?(   R   R   t   get_metadatat   Falset   AssertionErrort   set_metadatat   TrueR   (   R   R   t   lock(    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   f   s    	
i   t   locks(   R   R   t   mapt   ranget
   extensionst   eventsR   t   ids(   t   ct   st   at   bR   t   futurest   results(    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt	   test_lock   s    		c   
      c` s  | j  d } t d  } | j   V} | t k s8 t  | j d | j k sT t  t d  } | j | j k sx t  t   } | j d d  V} t   }	 |	 | d k  s³ t  | t k sΕ t  | j d | j k sα t  | j	 d sυ t  | j
   Vd  S(   NR   R   t   timeoutgΉ?g333333Σ?(   R   R   t   acquireR   R   R   t   idR   R   R   t   release(
   R   R   R   R   R   R   t   resultt   lock2t   startt   stop(    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   test_timeout!   s    		c         c` sv   t  d  } | j d d  V| j   s/ t  | j   V| j d d  V| j   V| j d d  V| j   Vd  S(   NR   R"   i    i   (   R   R#   R   R   R%   (   R   R   R   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   test_acquires_with_zero_timeout7   s    c      	   c` s}   t  d  } | j d t  V| j   s/ t  | j   V| j   sM t  t j t   | j d t d d  Wd  QXd  S(   NR   t   blockingR"   i   (	   R   R#   R   R   R   R%   t   pytestt   raisest
   ValueError(   R   R   R   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   test_acquires_blockingD   s    c         C` s=   t  d  + } t  d  j d d  t k s3 t  Wd  QXd  S(   NR   R"   gΉ?(   R   R#   R   R   (   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   test_timeout_syncP   s    c         c` s1   t  d  } t j t   | j   VWd  QXd  S(   NR   (   R   R-   R.   R/   R%   (   R   R   R   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   test_errorsU   s    c         C` sB   d   } |  j  d t  |  j | t d   } |  j |  d  S(   Nc         S` s   t  d  p } t   } | j d  t k s3 t  | j d t  t d  | j d  t k sh t  | j d t  Wd  QXd  S(   NR   R   g©?(   R   R   R   R   R   R   R   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyR   ]   s    	
R   i
   (   R   R   R   R   t   gather(   R   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   test_lock_sync\   s    		c         c` sx   xZ d d d d g d d g D]= } t  |  } | j | k sC t  | j   V| j   Vq W| j d j st t  d  S(   Ni   R   t   123R   (   R   i   (   R   t   nameR   R#   R%   R   R   (   R   R   R   R   R6   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   test_lock_typesk   s    "c         c` s   d  d  } t d  } |  j | t d  d | } |  j |  Vt j t j |   } | j | j k st t	  | j
 | j
 k s t	  d  S(   Nc         S` s.   | " | j  d k s t  |  d SWd  QXd  S(   NR   i   (   R6   R   (   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyR   y   s    R   i
   R   (   t   NoneR   R   R   R3   t   picklet   loadst   dumpsR6   R   R   (   R   R   R   R   R   R   R   R'   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   test_serializablew   s    (   s	   127.0.0.1i   (   t
   __future__R    R   R   R9   R   R   R-   t   distributedR   R   t   distributed.metricst   distributed.utils_testR   R   R	   R
   R   R!   R*   R+   R0   R1   R2   R4   R7   R<   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_locks.pyt   <module>   s    %		