Your IP : 216.73.216.147


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



��Yf2�@s�dZdZdZddlZdd�Zdddd	�Zd
d�Zdd
�Zddddd�Zddddd�Z	dddd�Z
dddd�ZGdd�d�ZGdd�dej
�Zedkr�ej�dS)z?Unit tests for the keyword only argument specified in PEP 3102.z	Jiwon Seozseojiwon at gmail dot com�NcOs|t|�t|j��S)N)�sum�values)Zpos_arg1�arg�kwarg�r�=/opt/alt/python35/lib64/python3.5/test/test_keywordonlyarg.py�posonly_sumsr�k1cCs||S)Nr)r	�k2rrr�keywordonly_sum
srcCs||S)Nr)r	r
rrr�keywordonly_nodefaults_sumsrcKs||t|j��S)N)rr)r	r
rrrr�keywordonly_and_kwarg_sumsr
r
cGs||||t|�S)N)r)�a�br	r
rrrr�
mixedargs_sumsrcOs*||||t|�t|j��S)N)rr)rrr	r
r�kwargsrrr�mixedargs_sum2sr�reverseFcGstt|�d|�S)Nr)�sorted�list)rZnumsrrr�sortnumsrcOstt|�d|�S)Nr)rr)rZwordsrrrr�	sortwordssrc@s:eZdZdddd�Zdd�Zdd�Zd	S)
�Foor
rcCs||_||_dS)N)r	r
)�selfr	r
rrr�__init__s	zFoo.__init__cCs||_||_dS)N)r	r
)r�p1r	r
rrr�sets	zFoo.setcCs|j|jS)N)r	r
)rrrrr"szFoo.sumN)�__name__�
__module__�__qualname__rrrrrrrrsrc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�KeywordOnlyArgTestCasecCs#dd�}|jt||�dS)NcSst|dd�dS)Nz<test>�single)�compile)�srrr�shouldRaiseSyntaxError'szNKeywordOnlyArgTestCase.assertRaisesSyntaxError.<locals>.shouldRaiseSyntaxError)�assertRaises�SyntaxError)rZcodestrr$rrr�assertRaisesSyntaxError&sz.KeywordOnlyArgTestCase.assertRaisesSyntaxErrorcCsl|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�dS)	Nzdef f(p, *):
  pass
zdef f(p1, *, p1=100):
  pass
zdef f(p1, *k1, k1=100):
  pass
z!def f(p1, *, k1, k1=100):
  pass
zdef f(p1, *, **k1):
  pass
zdef f(p1, *, k1, **k1):
  pass
z!def f(p1, *, None, **k1):
  pass
z$def f(p, *, (k1, k2), **kw):
  pass
)r')rrrr�$testSyntaxErrorForFunctionDefinition+s






z;KeywordOnlyArgTestCase.testSyntaxErrorForFunctionDefinitioncCs�d}x"td�D]}|d|7}qW|d7}|j|�d}x"td�D]}|d|7}qUW|d7}|j|�d}x"td�D]}|d|7}q�W|d7}t|d	d
�dS)Nzdef f(�zi%d, z*, key=100):
 pass
zdef foo(i,*,zlastarg):
  pass
z
def f(i,*,�z<test>r!)�ranger'r")rZfundef�iZfundef2Zfundef3rrr�testSyntaxForManyArguments5s




z1KeywordOnlyArgTestCase.testSyntaxForManyArgumentscCsaddddd�}|jt��}|ddd�WdQRXd}|jt|j�|�dS)N�ccSsdS)Nr)rrr.rrr�fJszCKeywordOnlyArgTestCase.testTooManyPositionalErrorMessage.<locals>.f���z;f() takes from 1 to 2 positional arguments but 3 were given)r%�	TypeError�assertEqual�str�	exception)rr/�excZexpectedrrr�!testTooManyPositionalErrorMessageIs
z8KeywordOnlyArgTestCase.testTooManyPositionalErrorMessagecCs|jd�|jd�dS)Nz
f(p, k=1, p2)zf(p, k1=50, *(1,2), k1=100))r')rrrr�testSyntaxErrorForFunctionCallQs
z5KeywordOnlyArgTestCase.testSyntaxErrorForFunctionCallcCs�|jttf�|jttf�|jttf�y$tdddd�|jd�Wntk
rqYnXytdd�|jd�Wntk
r�YnXdS)Nr
�dZnon_existing_arg��zshould raise TypeErrorr1)r%r3rrr�fail)rrrr�2testRaiseErrorFuncallWithUnexpectedKeywordArgumentUs


zIKeywordOnlyArgTestCase.testRaiseErrorFuncallWithUnexpectedKeywordArgumentcCs�|jdtd��|jdtdddi��|jdtdd��|jdtddddi��|jdtdd��|jdtdddd��|jdtdddd��|jdtddddd	d��|jd tddddd
dddi��|jd!tddd��|jd#tdddd��|jd&tdddddd��|jd*tddddddd��|jd+tddd��|jd-tdddd��|jd0tdddddd��|jd4tddddddd��|jd9tdddddddd	d
��|jd>tdddddddd	d
i��|jdtdd�j��|jd?tdddd�j��|jdddgtddd��|jdddgtddddd��|jd
ddgt	d
dd��|jddd
gt	d
dddd��|jddd
gt	d
dddddd��dS)@Nr0r1�2r2��4r
r	Zk3rr��rTr.�ignorer2r2rB)r1r2r2rB�
)r1r2r2r2r2rBr2rBrDr2r2rBr2rBrDr2rBrD�r2r2rBr2rBrDr2rBrDrEr2rBrDrE�r2rBrDrErFr2)
r4rrr
rrrrrr)rrrr�testFunctionCallds>"%	%(%(	%	(%%+%+z'KeywordOnlyArgTestCase.testFunctionCallcCs�ddddd�}|jd|jj�|jddi|j�ddi|_y!|ddd�|jd	�Wntk
r�YnXdS)
Nrr
cSs||||S)Nr)rZp2r	r
rrr�foo�sz2KeywordOnlyArgTestCase.testKwDefaults.<locals>.foor1r	r0rDz&__kwdefaults__ is not properly changed)r4�__code__�co_kwonlyargcount�__kwdefaults__r<r3)rrHrrr�testKwDefaults�s
z%KeywordOnlyArgTestCase.testKwDefaultscCs�Gdd�d�}|j|�jdddd�d�|j|j|�dddd�d�|jt|jdddd�dS)	Nc@s(eZdZdddddd�ZdS)z;KeywordOnlyArgTestCase.test_kwonly_methods.<locals>.Exampler	r0r
r1cSs
||fS)Nr)rr	r
rrrr/�sz=KeywordOnlyArgTestCase.test_kwonly_methods.<locals>.Example.fN)rrrr/rrrr�Example�srMr	r0r
r1)r0r1)r0r1)r4r/r%r3)rrMrrr�test_kwonly_methods�s%(z*KeywordOnlyArgTestCase.test_kwonly_methodscCsdtdd�dS)Nr	cSsdS)Nr)r	rrr�<lambda>�sz8KeywordOnlyArgTestCase.test_issue13343.<locals>.<lambda>)�unittest)rrrr�test_issue13343�sz&KeywordOnlyArgTestCase.test_issue13343cCs0Gdd�d�}|j|�j�d�dS)Nc@s"eZdZdddd�ZdS)z/KeywordOnlyArgTestCase.test_mangling.<locals>.X�_X__a�*cSs|S)Nr)rrRrrrr/�sz1KeywordOnlyArgTestCase.test_mangling.<locals>.X.fN)rrrr/rrrr�X�srTrS)r4r/)rrTrrr�
test_mangling�sz$KeywordOnlyArgTestCase.test_manglingcCs�d}|jt��%}|tdtdtdd�}WdQRX|jt|j�d�|jt��%}|tdtdtdd�}WdQRX|jt|j�d�dS)	NrS�y�zcSsdS)Nr)�v�xrVrWrrrr/�sz?KeywordOnlyArgTestCase.test_default_evaluation_order.<locals>.fzname 'b' is not definedcSsdS)Nr)rXrYrVrWrrrrO�szFKeywordOnlyArgTestCase.test_default_evaluation_order.<locals>.<lambda>)r%�	NameErrorrr.�dr4r5r6)rr�errr/rrr�test_default_evaluation_order�s%%z4KeywordOnlyArgTestCase.test_default_evaluation_orderN)rrrr'r(r-r8r9r=rGrLrNrQrUr]rrrrr %s
(
	r �__main__)�__doc__�
__author__Z	__email__rPrrrr
rrrrrZTestCaser r�mainrrrr�<module>s
�