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.opt-2.pyc



���]�l�@s�ddlZddlmZddlZddlZddlmZdZeje�ZGdd�dej�Z	Gdd�dej�Z
Gd	d
�d
ej�ZGdd�dej�Ze
d
kr�ej�dS)�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__��//opt/alt/python35/lib64/python3.5/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)rrrr�Futurer-rr.rrr/�lenr9�
set_resultr6�	cancelledr!r0)r	r<�fa�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/rAr9r r6r0rC)r	rrErFrGrrr�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�failrJr/�strr!r)r	r�errrrr�test_context_manager_no_yield�s	z'LockTests.test_context_manager_no_yield)�__name__�
__module__�__qualname__rrrrr#r4r:rHrIrKrLrMrPrTrr)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)rrrrYrr)r	rZrrr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]>�extrasZunsetz[set]>z	waiters:1)rrYrrrrrrr/�group�setr9r&rr
)r	rZrrrr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')rZrrr()sz EventTests.test_wait.<locals>.c1c3s"�j�EdHr|jd�dS)Nr))r^r&)r')rZrrr*.sz EventTests.test_wait.<locals>.c2c3s"�j�EdHr|jd�dS)Nr+)r^r&)r')rZrrr,3sz EventTests.test_wait.<locals>.c3r+r$r))rrYrr!�is_setrr-rr.r/r]rr0ZassertIsNoner')r	r'r(r*r,r1r2r3r)rZr�	test_wait#s(
zEventTests.test_waitcCsHtjd|j�}|j�|jj|j��}|j|�dS)Nr)rrYrr]rr^r)r	rZr"rrr�test_wait_on_setKs
zEventTests.test_wait_on_setcCsvtjd|j�}tj|j�d|j�}|jj|j�|jtj|jj	|�|j
|j�dS)Nr)rrYrr-r^r5r6r7r8rr!r9)r	rZr^rrr�test_wait_cancelRszEventTests.test_wait_cancelcCsftjd|j�}|j|j��|j�|j|j��|j�|j|j��dS)Nr)rrYrr!r_r]r�clear)r	rZrrr�
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)r^r&)r')rZrrr(js
z.EventTests.test_clear_with_waiters.<locals>.c1r$r)rrYrrr-rr.r/r]rcr!r_rAr9rr0r')r	r'r(�tr)rZr�test_clear_with_waitersfs"



z"EventTests.test_clear_with_waiters)rUrVrWrrrrr`rarbrdrfrr)r
rrXs(

rXcs�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)rrrrhrr)r	rirrr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%r^r&)r')rirrr(�s
z$ConditionTests.test_wait.<locals>.c1c3s1�j�EdH�j�EdHr-|jd�dS)Nr)T)r%r^r&)r')rirrr*�s
z$ConditionTests.test_wait.<locals>.c2c3s1�j�EdH�j�EdHr-|jd�dS)Nr+T)r%r^r&)r')rirrr,�s
z$ConditionTests.test_wait.<locals>.c3r$r)r+)rrhrrr-rr.r/r!rrrr%�notifyr r0r')r	r'r(r*r,r1r2r3r)rirr`�sL




zConditionTests.test_waitcCs�tjd|j�}|jj|j��tj|j�d|j�}|jj|j�|j	tj
|jj|�|j|j�|j
|j��dS)Nr)rrhrrr%r-r^r5r6r7r8r!r9rr)r	rir^rrrrb�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)rrhrrr%rrr-r^rr.r!rjr5r6r r8)r	riZ	wait_taskrrr�test_wait_cancel_contested�s 
z)ConditionTests.test_wait_cancel_contestedcCs8tjd|j�}|jt|jj|j��dS)Nr)rrhrr7rJrr^)r	rirrr�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')rirnrrr(
s


z(ConditionTests.test_wait_for.<locals>.c1Tr$)rrhrrr-rr.r/rr%rjr rr0r')r	r'r(rer)rirnrmr�
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rq4s)rrhrrror/r7rJ)r	rir"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%r^r&r )r')rirrr(:s


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


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


z&ConditionTests.test_notify.<locals>.c3r$ir)r+)rrhrrr-rr.r/rr%rjr rr0r')r	r'r(r*r,r1r2r3r)rir�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%r^r&r )r')rirrr(rs


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


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

zConditionTests.test_notify_allcCs,tjd|j�}|jt|j�dS)Nr)rrhrr7rJrj)r	rirrr�test_notify_unacquired�sz%ConditionTests.test_notify_unacquiredcCs,tjd|j�}|jt|j�dS)Nr)rrhrr7rJrt)r	rirrr�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)Nr�unlockedrz	waiters:1z	waiters:2)
rrhrrrrrrr%r9r&rr
)r	rirrrr�szConditionTests.test_reprc	swtjd|j��tj�fdd��}|jj|���|j�j��WdQRX|j�j��dS)Nrc3s	�EdHS)Nrr)rirr�acquire_cond�sz9ConditionTests.test_context_manager.<locals>.acquire_cond)rrhrrrrrr!)r	ryr)rirrM�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)	rrhrrQrJr/rRr!r)r	rirSrrrrT�s	z,ConditionTests.test_context_manager_no_yieldcCsZtjd|j�}tj|d|j�}|j|j|�|j|j|j�dS)Nr)rrrrhr�_lockr)r	rrirrr�test_explicit_lock�sz!ConditionTests.test_explicit_lockcCs_|j�}|j|j�tjd|j�}|jt��tj|d|�WdQRXdS)Nr)	rZ
addCleanup�closerrrr7�
ValueErrorrh)r	rrrrr�test_ambiguous_loops�s
z#ConditionTests.test_ambiguous_loops)rUrVrWrrrr`rbrkrlrprrrsrurvrwrrMrTr{r~rr)r
rrg�s$B&7&
rgcs�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$���)r7r}rr�)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')�.0rerrr�
<listcomp>Ls	z/SemaphoreTests.test_acquire.<locals>.<listcomp>)rr�rrrr%r!rrr-rr.r/rAr9r�r 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��waiterrrr�	<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�rerrr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)r�BoundedSemaphorerr7r}r )r	r�rrrrK�sz(SemaphoreTests.test_release_not_acquiredcCs_tjd|j�}|jj|j��|j|j��|j�|j|j��dS)Nr)	rr�rrr%rrr r!)r	r�rrrrL�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/r�r)r	rr)r�rrM�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�rrQrJr/rRr�)r	r�rSrrrrT�s	z,SemaphoreTests.test_context_manager_no_yield)rUrVrWrrrr�rr�r�r4r:r�r�rKrLrMrTrr)r
rr�sAr�__main__)Zunittestr�rerrZSTR_RGX_REPR�compilerZTestCaserrXrgrrU�mainrrrr�<module>s���Q�