B
    4\/                 @   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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d	gd
 ddd Zedddd Zedddd Zedddd Zdd Zedddd Zdd Zedddd Zedddd ZdS )    )print_functiondivisionabsolute_importN)sleep)Lock
get_client)time)gen_cluster)clientcluster_fixtureloopT)z	127.0.0.1      )r
   Zncoresc             c   sN   |  dd dd }| |td}|V }|jd jr:t|jd jrJtd S )NlockedFc          	   S   sb   t  }tdJ}|ddks"t|dd td |ddksHt|dd W d Q R X d S )Nxr   FTg?)r   r   get_metadataAssertionErrorset_metadatar   )r   r
   lock r   ;lib/python3.7/site-packages/distributed/tests/test_locks.pyf   s    
ztest_lock.<locals>.f   locks)r   maprange
extensionseventsr   ids)csabr   futuresZresultsr   r   r   	test_lock   s    	r$   )r
   c       
      c   s   |j d }td}| V }|dks(t|jd |jks<ttd}|j|jksTtt }|jddV }t }	|	| dk s~t|dkst|jd |jkst|jd rt| V  d S )Nr   r   Tg?)timeoutg333333?F)	r   r   acquirer   r   idr   r   release)
r   r    r!   r"   r   r   resultlock2startstopr   r   r   test_timeout!   s    

r-   c             c   s`   t d}|jddV  | s"t| V  |jddV  | V  |jddV  | V  d S )Nr   r   )r%      )r   r&   r   r   r(   )r   r    r!   r"   r   r   r   r   test_acquires_with_zero_timeout7   s    

r/   c          	   c   s`   t d}|jddV  | s"t| V  | r8ttt |jddd W d Q R X d S )Nr   F)blockingr.   )r0   r%   )r   r&   r   r   r(   pytestraises
ValueError)r   r    r!   r"   r   r   r   r   test_acquires_blockingD   s    
r4   c          	   C   s0   t d}t djdddks"tW d Q R X d S )Nr   g?)r%   F)r   r&   r   )r
   r   r   r   r   test_timeout_syncP   s    
r5   c          	   c   s,   t d}tt | V  W d Q R X d S )Nr   )r   r1   r2   r3   r(   )r   r    r!   r"   r   r   r   r   test_errorsU   s    r6   c             C   s2   dd }|  dd | |td}| | d S )Nc          	   S   sb   t dP}t }|ddks"t|dd td |ddksHt|dd W d Q R X d S )Nr   r   FTg?)r   r   r   r   r   r   )r   r   r
   r   r   r   r   ]   s    
ztest_lock_sync.<locals>.fr   F
   )r   r   r   gather)r
   r   r#   r   r   r   test_lock_sync\   s    	r9   c             c   sZ   xDddddgddgD ].}t |}|j|ks.t| V  | V  qW |jd jrVtd S )Nr.   )r!   r.   r!   s   123Z123r   )r   namer   r&   r(   r   r   )r   r    r!   r"   r:   r   r   r   r   test_lock_typesk   s    
r;   c             c   sf   ddd}t d}| j|td|d}| |V  tt|}|j|jksRt|j	|j	ksbtd S )Nc          	   S   s&   | |j dkst| d S Q R X d S )Nr   r.   )r:   r   )r   r   r   r   r   r   y   s    ztest_serializable.<locals>.fr   r7   )r   )N)
r   r   r   r8   pickleloadsdumpsr:   r   r
   )r   r    r!   r"   r   r   r#   r*   r   r   r   test_serializablew   s    
r?   )Z
__future__r   r   r   r<   r   r   r1   Zdistributedr   r   Zdistributed.metricsZdistributed.utils_testr	   r
   r   r   r$   r-   r/   r4   r5   r6   r9   r;   r?   r   r   r   r   <module>   s    