Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/test_asyncio/__pycache__/test_locks.cpython-35.pyc



��Yf�l�@s�dZddlZddlmZddlZddlZddlmZdZeje�ZGdd�dej	�Z
Gdd	�d	ej	�ZGd
d�dej	�ZGdd
�d
ej	�Z
edkr�ej�dS)zTests for lock.py�N)�mock)�
test_utilszt^<(?P<class>.*?) object at (?P<address>.*?)\[(?P<extras>(set|unset|locked|unlocked)(,value:\d)?(,waiters:\d+)?)\]>\Zcs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Z�S)�	LockTestscs t�j�|j�|_dS)N)�super�setUp�
new_test_loop�loop)�self)�	__class__��A/opt/alt/python35/lib64/python3.5/test/test_asyncio/test_locks.pyrs
zLockTests.setUpcCs`tj�}tjd|�}|j|j|�tjd|j�}|j|j|j�dS)Nr)r�Mock�asyncio�Lock�assertIs�_loopr)r	r�lockrrr�test_ctor_loops
zLockTests.test_ctor_loopcCs6tj|j�tj�}|j|j|j�dS)N)r�set_event_looprrrr)r	rrrr�test_ctor_noloop!szLockTests.test_ctor_noloopcs�tjd|j��|jt��jd��|jtjt����tj�fdd��}|jj	|��|jt��jd��|jtjt����dS)Nrz[unlocked]>c3s
�EdHdS)Nrr)rrr�acquire_lock+sz)LockTests.test_repr.<locals>.acquire_lockz	[locked]>)
rrr�
assertTrue�repr�endswith�RGX_REPR�match�	coroutine�run_until_complete)r	rr)rr�	test_repr&szLockTests.test_reprcs�tjd|j��tj�fdd��}|jj|��}|j|�|j�j���j�|j�j��dS)Nrc3s	�EdHS)Nrr)rrrr6sz)LockTests.test_lock.<locals>.acquire_lock)	rrrrrr�locked�release�assertFalse)r	r�resr)rr�	test_lock3s

zLockTests.test_lockcs.tjd|j��g}|j|jj�j���tj�fdd��}tj�fdd��}tj�fdd��}tj||�d|j�}tj||�d|j�}tj	|j�|j
g|��j�tj	|j�|j
dg|�tj	|j�|j
dg|�tj||�d|j�}�j�tj	|j�|j
dd	g|��j�tj	|j�|j
dd	d
g|�|j|j��|j|j
��|j|j��|j|j
��|j|j��|j|j
��dS)Nrc3s"�j�EdHr|jd�dS)N�T)�acquire�append)�result)rrr�c1Hs
z"LockTests.test_acquire.<locals>.c1c3s"�j�EdHr|jd�dS)N�T)r%r&)r')rrr�c2Ns
z"LockTests.test_acquire.<locals>.c2c3s"�j�EdHr|jd�dS)N�T)r%r&)r')rrr�c3Ts
z"LockTests.test_acquire.<locals>.c3r$r)r+)rrrrrr%r�Taskr�run_briefly�assertEqualr �doner')r	r'r(r*r,�t1�t2�t3r)rr�test_acquireBs8


zLockTests.test_acquirecCs�tjd|j�}|j|jj|j���tj|j�d|j�}|jj|j�|j	tj
|jj|�|j|j�dS)Nr)
rrrrrr%r-�	call_soon�cancel�assertRaises�CancelledErrorr!�_waiters)r	rZtaskrrr�test_acquire_cancelxszLockTests.test_acquire_cancelcs�tjd|j��tj�fdd��}tjd|j�}tj|d|�d|j�}tj|j�|j�j	��tj|dd�d|j�}tj|j�|j
t�j�d�tj|dd�d|j�}tj|j�|j
t�j�d�|j
d�|j�|j�jd	j��tj|j�|j�j	��|j|j��|j|j��|j|j��dS)
Nrc
3s:�j�EdHz|dk	r'|EdHWd�j�XdS)N)r%r )�nameZblocker)rrr�lockit�s

z*LockTests.test_cancel_race.<locals>.lockit�A�Br$�Cr)r)rrrrZFuturer-rr.rrr/�lenr9Z
set_resultr6�	cancelledr!r0)r	r<Zfa�ta�tb�tcr)rr�test_cancel_race�s(	!!!

zLockTests.test_cancel_racecCstjd|j�}tj|j�d|j�}tj|j�|j|j��tj|j�d|j�}tj|j�|j	t
|j�d�tj|j�d|j�}|j�|j
�tj|j�|j|j��|j|j��|j|j��dS)Nrr$)rrrr-r%rr.rrr/r@r9r r6r0rA)r	rrBrCrDrrr�test_finished_waiter_cancelled�s

z(LockTests.test_finished_waiter_cancelledcCs,tjd|j�}|jt|j�dS)Nr)rrrr7�RuntimeErrorr )r	rrrr�test_release_not_acquired�sz#LockTests.test_release_not_acquiredcCs_tjd|j�}|jj|j��|j|j��|j�|j|j��dS)Nr)	rrrrr%rrr r!)r	rrrr�test_release_no_waiters�s

z!LockTests.test_release_no_waitersc	swtjd|j��tj�fdd��}|jj|���|j�j��WdQRX|j�j��dS)Nrc3s	�EdHS)Nrr)rrrr�sz4LockTests.test_context_manager.<locals>.acquire_lock)rrrrrrrr!)r	rr)rr�test_context_manager�s
zLockTests.test_context_managercs�tjd|j��tj�fdd��}|jj|��}|�|j�j��WdQRX|j�j��|jt	��|�WdQRXWdQRXdS)Nrc3s	�EdHS)Nrr)rrrr�sz?LockTests.test_context_manager_cant_reuse.<locals>.acquire_lock)
rrrrrrrr!r7�AttributeError)r	r�cmr)rr�test_context_manager_cant_reuse�sz)LockTests.test_context_manager_cant_reusecCs�tjd|j�}y|�|jd�WdQRXWn;tk
rq}z|jt|�d�WYdd}~XnX|j|j��dS)Nrz-RuntimeError is not raised in with expressionz9"yield from" should be used as context manager expression)	rrr�failrGr/�strr!r)r	r�errrrr�test_context_manager_no_yield�s	z'LockTests.test_context_manager_no_yield)�__name__�
__module__�__qualname__rrrrr#r4r:rErFrHrIrJrMrQrr)r
rrs
60rcs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Z�S)�
EventTestscs t�j�|j�|_dS)N)rrrr)r	)r
rrrs
zEventTests.setUpcCs`tj�}tjd|�}|j|j|�tjd|j�}|j|j|j�dS)Nr)rr
r�Eventrrr)r	r�evrrrrs
zEventTests.test_ctor_loopcCs6tj|j�tj�}|j|j|j�dS)N)rrrrVrr)r	rWrrrrszEventTests.test_ctor_noloopcCs�tjd|j�}|jt|�jd��tjt|��}|j|j	d�d�|j
�|jt|�jd��|jtjt|���|jjt
j��|jdt|�k�|jtjt|���dS)Nrz[unset]>ZextrasZunsetz[set]>z	waiters:1)rrVrrrrrrr/�group�setr9r&rr
)r	rWrrrrrs
zEventTests.test_reprcs�tjd|j��|j�j��g}tj�fdd��}tj�fdd��}tj�fdd��}tj||�d|j�}tj||�d|j�}tj|j�|j	g|�tj||�d|j�}�j
�tj|j�|j	dd	d
g|�|j|j��|j
|j��|j|j��|j
|j��|j|j��|j
|j��dS)Nrc3s"�j�EdHr|jd�dS)Nr$)�waitr&)r')rWrrr()sz EventTests.test_wait.<locals>.c1c3s"�j�EdHr|jd�dS)Nr))rZr&)r')rWrrr*.sz EventTests.test_wait.<locals>.c2c3s"�j�EdHr|jd�dS)Nr+)rZr&)r')rWrrr,3sz EventTests.test_wait.<locals>.c3r+r$r))rrVrr!�is_setrr-rr.r/rYrr0ZassertIsNoner')r	r'r(r*r,r1r2r3r)rWr�	test_wait#s(
zEventTests.test_waitcCsHtjd|j�}|j�|jj|j��}|j|�dS)Nr)rrVrrYrrZr)r	rWr"rrr�test_wait_on_setKs
zEventTests.test_wait_on_setcCsvtjd|j�}tj|j�d|j�}|jj|j�|jtj|jj	|�|j
|j�dS)Nr)rrVrr-rZr5r6r7r8rr!r9)r	rWrZrrr�test_wait_cancelRszEventTests.test_wait_cancelcCsftjd|j�}|j|j��|j�|j|j��|j�|j|j��dS)Nr)rrVrr!r[rYr�clear)r	rWrrr�
test_clear\s

zEventTests.test_clearcs.tjd|j��g}tj�fdd��}tj||�d|j�}tj|j�|jg|��j��j	�|j
�j���j��j�|jdt�j
��tj|j�|jdg|�|jdt�j
��|j|j��|j|j��dS)Nrc3s"�j�EdHr|jd�dS)Nr$T)rZr&)r')rWrrr(js
z.EventTests.test_clear_with_waiters.<locals>.c1r$r)rrVrrr-rr.r/rYr_r!r[r@r9rr0r')r	r'r(�tr)rWr�test_clear_with_waitersfs"



z"EventTests.test_clear_with_waiters)rRrSrTrrrrr\r]r^r`rbrr)r
rrUs(

rUcs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Z�S)%�ConditionTestscs t�j�|j�|_dS)N)rrrr)r	)r
rrr�s
zConditionTests.setUpcCs`tj�}tjd|�}|j|j|�tjd|j�}|j|j|j�dS)Nr)rr
r�	Conditionrrr)r	r�condrrrr�s
zConditionTests.test_ctor_loopcCs6tj|j�tj�}|j|j|j�dS)N)rrrrdrr)r	rerrrr�szConditionTests.test_ctor_noloopcs�tjd|j��g}tj�fdd��}tj�fdd��}tj�fdd��}tj||�d|j�}tj||�d|j�}tj||�d|j�}tj|j�|jg|�|j�j	��|j
|jj�j����j
�tj|j�|jg|�|j
�j	���j�tj|j�|jdg|�|j
�j	���j
d	�tj|j�|jdg|�|j
�j	���j�tj|j�|jdd	g|�|j
�j	���j�tj|j�|jdd	d
g|�|j
�j	��|j
|j��|j
|j��|j
|j��|j
|j��|j
|j��|j
|j��dS)Nrc3s1�j�EdH�j�EdHr-|jd�dS)Nr$T)r%rZr&)r')rerrr(�s
z$ConditionTests.test_wait.<locals>.c1c3s1�j�EdH�j�EdHr-|jd�dS)Nr)T)r%rZr&)r')rerrr*�s
z$ConditionTests.test_wait.<locals>.c2c3s1�j�EdH�j�EdHr-|jd�dS)Nr+T)r%rZr&)r')rerrr,�s
z$ConditionTests.test_wait.<locals>.c3r$r)r+)rrdrrr-rr.r/r!rrrr%�notifyr r0r')r	r'r(r*r,r1r2r3r)rerr\�sL




zConditionTests.test_waitcCs�tjd|j�}|jj|j��tj|j�d|j�}|jj|j�|j	tj
|jj|�|j|j�|j
|j��dS)Nr)rrdrrr%r-rZr5r6r7r8r!r9rr)r	rerZrrrr^�szConditionTests.test_wait_cancelcCstjd|j�}|jj|j��|j|j��tj|j�d|j�}t	j
|j�|j|j��|jj|j��|j|j��|j�|jj
|j�|jj
|j�y|jj|�Wntjk
rYnX|j|j��dS)Nr)rrdrrr%rrr-rZrr.r!rfr5r6r r8)r	reZ	wait_taskrrr�test_wait_cancel_contested�s 
z)ConditionTests.test_wait_cancel_contestedcCs8tjd|j�}|jt|jj|j��dS)Nr)rrdrr7rGrrZ)r	rerrr�test_wait_unacquired�sz#ConditionTests.test_wait_unacquiredcsVtjd|j��d��fdd��g}tj��fdd��}tj||�d|j�}tj|j�|jg|�|jj�j	���j
��j�tj|j�|jg|�d�|jj�j	���j
��j�tj|j�|jdg|�|j|j
��|j|j��dS)	NrFcs�S)Nrr)�presultrr�	predicatesz/ConditionTests.test_wait_for.<locals>.predicatec3s>�j�EdH�j��EdHr:|jd��j�dS)Nr$T)r%�wait_forr&r )r')rerjrrr(
s


z(ConditionTests.test_wait_for.<locals>.c1Tr$)rrdrrr-rr.r/rr%rfr rr0r')r	r'r(rar)rerjrir�
test_wait_fors*



zConditionTests.test_wait_forcCs{tjd|j�}|jj|jdd���}|jdddg|�|jt|jj|jdd���dS)NrcSs
dddgS)Nr$r)r+rrrrr�<lambda>.sz9ConditionTests.test_wait_for_unacquired.<locals>.<lambda>r$r)r+cSsdS)NFrrrrrrm4s)rrdrrrkr/r7rG)r	rer"rrr�test_wait_for_unacquired*s!	z'ConditionTests.test_wait_for_unacquiredcstjd|j��g}tj�fdd��}tj�fdd��}tj�fdd��}tj||�d|j�}tj||�d|j�}tj||�d|j�}tj|j�|jg|�|jj�j	���j
d��j�tj|j�|jdg|�|jj�j	���j
d��j
d	��j�tj|j�|jdd
dg|�|j|j
��|j|j��|j|j
��|j|j��|j|j
��|j|j��dS)Nrc3s;�j�EdH�j�EdHr7|jd��j�dS)Nr$T)r%rZr&r )r')rerrr(:s


z&ConditionTests.test_notify.<locals>.c1c3s;�j�EdH�j�EdHr7|jd��j�dS)Nr)T)r%rZr&r )r')rerrr*Bs


z&ConditionTests.test_notify.<locals>.c2c3s;�j�EdH�j�EdHr7|jd��j�dS)Nr+T)r%rZr&r )r')rerrr,Js


z&ConditionTests.test_notify.<locals>.c3r$ir)r+)rrdrrr-rr.r/rr%rfr rr0r')r	r'r(r*r,r1r2r3r)rer�test_notify6s6




zConditionTests.test_notifycsMtjd|j��g}tj�fdd��}tj�fdd��}tj||�d|j�}tj||�d|j�}tj|j�|jg|�|jj�j	���j
��j�tj|j�|jddg|�|j|j
��|j|j��|j|j
��|j|j��dS)Nrc3s;�j�EdH�j�EdHr7|jd��j�dS)Nr$T)r%rZr&r )r')rerrr(rs


z*ConditionTests.test_notify_all.<locals>.c1c3s;�j�EdH�j�EdHr7|jd��j�dS)Nr)T)r%rZr&r )r')rerrr*zs


z*ConditionTests.test_notify_all.<locals>.c2r$r))rrdrrr-rr.r/rr%�
notify_allr rr0r')r	r'r(r*r1r2r)rer�test_notify_allms"

zConditionTests.test_notify_allcCs,tjd|j�}|jt|j�dS)Nr)rrdrr7rGrf)r	rerrr�test_notify_unacquired�sz%ConditionTests.test_notify_unacquiredcCs,tjd|j�}|jt|j�dS)Nr)rrdrr7rGrp)r	rerrr�test_notify_all_unacquired�sz)ConditionTests.test_notify_all_unacquiredcCstjd|j�}|jdt|�k�|jtjt|���|jj|j��|jdt|�k�|j	j
tj��|jdt|�k�|jtjt|���|j	j
tj��|jdt|�k�|jtjt|���dS)NrZunlockedrz	waiters:1z	waiters:2)
rrdrrrrrrr%r9r&rr
)r	rerrrr�szConditionTests.test_reprc	swtjd|j��tj�fdd��}|jj|���|j�j��WdQRX|j�j��dS)Nrc3s	�EdHS)Nrr)rerr�acquire_cond�sz9ConditionTests.test_context_manager.<locals>.acquire_cond)rrdrrrrrr!)r	rtr)rerrJ�s
z#ConditionTests.test_context_managercCs�tjd|j�}y|�|jd�WdQRXWn;tk
rq}z|jt|�d�WYdd}~XnX|j|j��dS)Nrz-RuntimeError is not raised in with expressionz9"yield from" should be used as context manager expression)	rrdrrNrGr/rOr!r)r	rerPrrrrQ�s	z,ConditionTests.test_context_manager_no_yieldcCsZtjd|j�}tj|d|j�}|j|j|�|j|j|j�dS)Nr)rrrrdr�_lockr)r	rrerrr�test_explicit_lock�sz!ConditionTests.test_explicit_lockcCs_|j�}|j|j�tjd|j�}|jt��tj|d|�WdQRXdS)Nr)	rZ
addCleanup�closerrrr7�
ValueErrorrd)r	rrrrr�test_ambiguous_loops�s
z#ConditionTests.test_ambiguous_loops)rRrSrTrrrr\r^rgrhrlrnrorqrrrsrrJrQrvryrr)r
rrc�s$B&7&
rccs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Z�S)�SemaphoreTestscs t�j�|j�|_dS)N)rrrr)r	)r
rrr�s
zSemaphoreTests.setUpcCs`tj�}tjd|�}|j|j|�tjd|j�}|j|j|j�dS)Nr)rr
r�	Semaphorerrr)r	r�semrrrr�s
zSemaphoreTests.test_ctor_loopcCs6tj|j�tj�}|j|j|j�dS)N)rrrr{rr)r	r|rrrr�szSemaphoreTests.test_ctor_noloopcCs/tjdd|j�}|j|j��dS)Nrr)rr{rrr)r	r|rrr�test_initial_value_zero�sz&SemaphoreTests.test_initial_value_zerocCsNtjd|j�}|jt|�jd��|jtjt|���|jj|j	��|jt|�jd��|jdt|�k�|jtjt|���|j
jtj
��|jdt|�k�|jtjt|���|j
jtj
��|jdt|�k�|jtjt|���dS)Nrz[unlocked,value:1]>z	[locked]>�waitersz	waiters:1z	waiters:2)rr{rrrrrrrr%r9r&rr
)r	r|rrrr�szSemaphoreTests.test_reprcs�tjd|j��|jd�j�tj�fdd��}|jj|��}|j|�|j�j��|jd�j��j	�|j
�j��|jd�j�dS)Nrr$c3s	�EdHS)Nrr)r|rrrsz3SemaphoreTests.test_semaphore.<locals>.acquire_lockr)rr{rr/�_valuerrrrr r!)r	rr"r)r|r�test_semaphore�s

zSemaphoreTests.test_semaphorecCs|jttjd�dS)Nr$���)r7rxrr{)r	rrr�test_semaphore_valuesz#SemaphoreTests.test_semaphore_valuecs�tjdd|j��g}|j|jj�j���|j|jj�j���|j�j��tj�fdd��}tj�fdd��}tj�fdd��}tj�fd	d
��}tj	||�d|j�}tj	||�d|j�}tj	||�d|j�}t
j|j�|jdg|�|j�j��|jdt
�j��|jd
�j�tj	||�d|j�}	�j��j�|jd�j�t
j|j�|jd
�j�|jdt
|��|j�j��|jdt
�j��|jd
�j�|j|j��|j|j��|||	g}
dd�|
D�}|jdt
|���j�|jjtj|
��dS)Nr+rc3s �j�EdH|jd�dS)Nr$T)r%r&)r')r|rrr(s
z'SemaphoreTests.test_acquire.<locals>.c1c3s �j�EdH|jd�dS)Nr)T)r%r&)r')r|rrr* s
z'SemaphoreTests.test_acquire.<locals>.c2c3s �j�EdH|jd�dS)Nr+T)r%r&)r')r|rrr,&s
z'SemaphoreTests.test_acquire.<locals>.c3c3s �j�EdH|jd�dS)N�T)r%r&)r')r|rr�c4,s
z'SemaphoreTests.test_acquire.<locals>.c4r$r)rcSs.g|]$}|j�r|j�r|�qSr)r0r')�.0rarrr�
<listcomp>Ls	z/SemaphoreTests.test_acquire.<locals>.<listcomp>)rr{rrrr%r!rrr-rr.r/r@r9rr r0r'Zgather)r	r'r(r*r,r�r1r2r3�t4Z
race_tasksZ
done_tasksr)r|rr4sD


zSemaphoreTests.test_acquirecCs�tjd|j�}|jj|j��tj|j�d|j�}|jj|j�|jtj	|jj|�|j
|jp�tdd�|jD���dS)Nrcss|]}|j�VqdS)N)r0)r�Zwaiterrrr�	<genexpr>]sz5SemaphoreTests.test_acquire_cancel.<locals>.<genexpr>)
rr{rrr%r-r5r6r7r8rr9�all)r	r|r%rrrr:Ssz"SemaphoreTests.test_acquire_cancelcCs(tjddd|j�}tj|j�d|j�}tj|j�d|j�}tj|j�d|j�}tj|j�d|j�}tj|j�|j�|j�|j�tj|j�t	dd�||gD��}|j
|d�|j�|j�tj|j�dS)N�valuerrcss|]}|j�VqdS)N)r0)r�rarrrr�nszCSemaphoreTests.test_acquire_cancel_before_awoken.<locals>.<genexpr>r$)rr{rr-r%rr.r r6�sumr/)r	r|r1r2r3r�Znum_donerrr�!test_acquire_cancel_before_awoken_s




z0SemaphoreTests.test_acquire_cancel_before_awokencCs�tjddd|j�}tj|j�d|j�}tj|j�d|j�}tj|j�|j�|j�tj|j�|j	|j
��dS)Nr�rr)rr{rr-r%rr.r r6rr)r	r|r1r2rrr�test_acquire_hangus

z SemaphoreTests.test_acquire_hangcCs,tjd|j�}|jt|j�dS)Nr)rZBoundedSemaphorerr7rxr )r	r|rrrrH�sz(SemaphoreTests.test_release_not_acquiredcCs_tjd|j�}|jj|j��|j|j��|j�|j|j��dS)Nr)	rr{rrr%rrr r!)r	r|rrrrI�s

z&SemaphoreTests.test_release_no_waiterscs�tjdd|j��tj�fdd��}|jj|���[|j�j��|jd�j�|jj|���|j	�j��WdQRXWdQRX|jd�j�dS)Nr)rc3s	�EdHS)Nrr)r|rrr�sz9SemaphoreTests.test_context_manager.<locals>.acquire_lockr$)
rr{rrrr!rr/rr)r	rr)r|rrJ�s!z#SemaphoreTests.test_context_managercCs�tjdd|j�}y|�|jd�WdQRXWn;tk
rt}z|jt|�d�WYdd}~XnX|jd|j�dS)Nr)rz-RuntimeError is not raised in with expressionz9"yield from" should be used as context manager expression)rr{rrNrGr/rOr)r	r|rPrrrrQ�s	z,SemaphoreTests.test_context_manager_no_yield)rRrSrTrrrr}rr�r�r4r:r�r�rHrIrJrQrr)r
rrz�sArz�__main__)�__doc__Zunittestr�rerrZSTR_RGX_REPR�compilerZTestCaserrUrcrzrR�mainrrrr�<module>s���Q�