Your IP : 216.73.216.85


Current Path : /opt/alt/python39/lib64/python3.9/test/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/__pycache__/test_positional_only_arg.cpython-39.opt-2.pyc

a

XC?hG�@sdddlZddlZddlZddlmZdd�Zdd�Zdd	d
�ZGdd�dej�Z	e
d
kr`e��dS)�N��check_syntax_errorcCs||fS�N���a�brr�B/opt/alt/python39/lib64/python3.9/test/test_positional_only_arg.py�global_pos_only_f
sr
cCs||fSrrrrrr	�global_pos_only_and_normal
sr��cCs||fSrrrrrr	�global_pos_only_defaultssrc@s�eZdZd=dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<S)>�PositionalOnlyTestCase�invalid syntaxcCs@|�t|�� t|ddd�Wd�n1s20YdS)N�
�<test>�single)�assertRaisesRegex�SyntaxError�compile)�selfZcodestrZregexrrr	�assertRaisesSyntaxErrorsz.PositionalOnlyTestCase.assertRaisesSyntaxErrorcCs�t|dd�t|dd�t|dd�t|dd�t|d�t|d�t|d�t|d	�t|d
�t|d�t|d�t|d
�t|dd�t|dd�t|d�t|d�t|d�t|d�t|d�dS)Nzdef f(a, b = 5, /, c): pass�-non-default argument follows default argumentzdef f(a = 5, b, /, c): passz%def f(a = 5, b=1, /, c, *, d=2): passzdef f(a = 5, b, /): passzdef f(*args, /): passzdef f(*args, a, /): passzdef f(**kwargs, /): passzdef f(/, a = 1): passzdef f(/, a): passzdef f(/): passzdef f(*, a, /): passzdef f(*, /, a): passzdef f(a, /, a): pass�-duplicate argument 'a' in function definitionzdef f(a, /, *, a): passzdef f(a, b/2, c): passzdef f(a, /, c, /): passzdef f(a, /, c, /, d): passz def f(a, /, c, /, d, *, e): passzdef f(a, *, c, /, d, e): passr�rrrr	�test_invalid_syntax_errorss&











z1PositionalOnlyTestCase.test_invalid_syntax_errorscCs�t|dd�t|dd�t|dd�t|dd�t|d�t|d�t|d�t|d	�t|d
�t|d�t|d�t|d
�t|dd�t|dd�t|d�t|d�t|d�t|d�t|d�dS)Nz!async def f(a, b = 5, /, c): passrz!async def f(a = 5, b, /, c): passz(async def f(a = 5, b=1, /, c, d=2): passzasync def f(a = 5, b, /): passzasync def f(*args, /): passzasync def f(*args, a, /): passzasync def f(**kwargs, /): passzasync def f(/, a = 1): passzasync def f(/, a): passzasync def f(/): passzasync def f(*, a, /): passzasync def f(*, /, a): passzasync def f(a, /, a): passrzasync def f(a, /, *, a): passzasync def f(a, b/2, c): passzasync def f(a, /, c, /): passz async def f(a, /, c, /, d): passz&async def f(a, /, c, /, d, *, e): passz#async def f(a, *, c, /, d, e): passrrrrr	� test_invalid_syntax_errors_async.s&











z7PositionalOnlyTestCase.test_invalid_syntax_errors_asynccCs�ddd�}|�|ddd�d�|�|dddd	�d�|�td
��|dddd�Wd�n1sd0Y|�|dd�d�|�td
��|ddd
�Wd�n1s�0Y|�|ddd	�d�ddd�}|�|ddd�d�|�|dddd	�d�|�td
��|dddd�Wd�n1�s20Y|�|dd�d�|�td
��|ddd
�Wd�n1�s~0Y|�|ddd	�d�dS)N�
�dcSs|||Srr�rr�crrr	�fDszDPositionalOnlyTestCase.test_optional_positional_only_args.<locals>.frr
���r!�If\(\) got some positional-only arguments passed as keyword arguments: 'b'�rr!�g�r�
cSs|||Srrr rrr	r"Qs)rr)rrr��assertEqualr�	TypeError�rr"rrr	�"test_optional_positional_only_argsCs$
,*
.,z9PositionalOnlyTestCase.test_optional_positional_only_argscCs,dd�dd�td�D��}t|dd�dS)N�def f(%s, /):
  pass
�, css|]}d|VqdS�zi%dNr��.0�irrr	�	<genexpr>`�zNPositionalOnlyTestCase.test_syntax_for_many_positional_only.<locals>.<genexpr>�,rr��join�ranger�rZfundefrrr	�$test_syntax_for_many_positional_only^sz;PositionalOnlyTestCase.test_syntax_for_many_positional_onlycCs�ddd�dd�}|�d|jj�|�d|jj�|�d|j�d
d	d�d
d�}|�d|jj�|�d|jj�|�d|j�dS)Nrr
)�gcSsdSrr�rrr!�d�er"r>rrr	r"dsz:PositionalOnlyTestCase.test_pos_only_definition.<locals>.f�r#)r�cSsdSrrr?rrr	r"ks�rr
r#)r)rr
r#)r,�__code__�co_argcount�co_posonlyargcount�__defaults__r.rrr	�test_pos_only_definitioncsz/PositionalOnlyTestCase.test_pos_only_definitioncCs dd�}|�|ddg�d�dS)NcSs||Srrrrrr	r"sszBPositionalOnlyTestCase.test_pos_only_call_via_unpacking.<locals>.frr
r#�r,r.rrr	� test_pos_only_call_via_unpackingrsz7PositionalOnlyTestCase.test_pos_only_call_via_unpackingcCs�dd�}d}|�t|��|dd�Wd�n1s80Ydd�}d}|�t|��|ddd�Wd�n1s|0Yd	d�}d
}|�t|��|ddd�Wd�n1s�0YdS)NcSsdSrr�rrrr	r"ysz@PositionalOnlyTestCase.test_use_positional_as_keyword.<locals>.f�If\(\) got some positional-only arguments passed as keyword arguments: 'a'rrLcSsdSrrrrrr	r"sr
rcSsdSrrrrrr	r"�szLf\(\) got some positional-only arguments passed as keyword arguments: 'a, b'�rr-)rr"�expectedrrr	�test_use_positional_as_keywordxs(*z5PositionalOnlyTestCase.test_use_positional_as_keywordcCs�dd�}|�td��|dd�Wd�n1s40Y|�td��|d�Wd�n1sh0Y|�td��|�Wd�n1s�0Y|�td��|ddd	d
�Wd�n1s�0YdS)NcSsdSrrr rrr	r"�szLPositionalOnlyTestCase.test_positional_only_and_arg_invalid_calls.<locals>.f�1f\(\) missing 1 required positional argument: 'c'rr
�:f\(\) missing 2 required positional arguments: 'b' and 'c'z@f\(\) missing 3 required positional arguments: 'a', 'b', and 'c'z3f\(\) takes 3 positional arguments but 4 were givenr#rCrNr.rrr	�*test_positional_only_and_arg_invalid_calls�s(&$zAPositionalOnlyTestCase.test_positional_only_and_arg_invalid_callscCs�d
dd�}|dd�|�td��|d�Wd�n1s>0Y|�td��|�Wd�n1sp0Y|�td��|dddd	�Wd�n1s�0YdS)Nr#cSsdSrrr rrr	r"�szUPositionalOnlyTestCase.test_positional_only_and_optional_arg_invalid_calls.<locals>.frr
�1f\(\) missing 1 required positional argument: 'b'�:f\(\) missing 2 required positional arguments: 'a' and 'b'z=f\(\) takes from 2 to 3 positional arguments but 4 were givenrC)r#rNr.rrr	�3test_positional_only_and_optional_arg_invalid_calls�s

&$zJPositionalOnlyTestCase.test_positional_only_and_optional_arg_invalid_callscCs�dd�}|dddddd�|�td�� |ddddd�Wd�n1sL0Y|�td	��|ddd�Wd�n1s�0Y|�td
��|dd�Wd�n1s�0Y|�td��|d�Wd�n1s�0Y|�td��|�Wd�n1�s"0Y|�td
��(|ddddddddd�Wd�n1�sh0Y|�td��$|ddddddd�Wd�n1�s�0YdS)NcSsdSrr)rrr!r@rArrr	r"�szSPositionalOnlyTestCase.test_positional_only_and_kwonlyargs_invalid_calls.<locals>.frr
r#)r@rAz-missing 1 required keyword-only argument: 'd')rAz6missing 2 required keyword-only arguments: 'd' and 'e'rQrRz; missing 3 required positional arguments: 'a', 'b', and 'c'zif\(\) takes 3 positional arguments but 6 positional arguments \(and 2 keyword-only arguments\) were givenrCrBr$��z,f\(\) got an unexpected keyword argument 'f'�8)r@rAr"rNr.rrr	�1test_positional_only_and_kwonlyargs_invalid_calls�s .*(&&8zHPositionalOnlyTestCase.test_positional_only_and_kwonlyargs_invalid_callscCs�dd�}|dd�|�td��|d�Wd�n1s<0Y|�td��|�Wd�n1sn0Y|�td��|ddd�Wd�n1s�0YdS)	NcSsdSrrrrrr	r"�szDPositionalOnlyTestCase.test_positional_only_invalid_calls.<locals>.frr
rTrUz3f\(\) takes 2 positional arguments but 3 were givenr#rNr.rrr	�"test_positional_only_invalid_calls�s
&$z9PositionalOnlyTestCase.test_positional_only_invalid_callscCs�ddd�}|d�|�td��|�Wd�n1s:0Y|�td��|ddd�Wd�n1sr0YdS)	Nr
cSsdSrrrrrr	r"�szRPositionalOnlyTestCase.test_positional_only_with_optional_invalid_calls.<locals>.frz1f\(\) missing 1 required positional argument: 'a'z=f\(\) takes from 1 to 2 positional arguments but 3 were givenr#)r
rNr.rrr	�0test_positional_only_with_optional_invalid_calls�s
$zGPositionalOnlyTestCase.test_positional_only_with_optional_invalid_callscCsRdd�}|dddd�|�t��|dddd�Wd�n1sD0YdS)NcSsdSrrr rrr	r"�sz=PositionalOnlyTestCase.test_no_standard_args_usage.<locals>.frr
r#r%r')�assertRaisesr-r.rrr	�test_no_standard_args_usage�sz2PositionalOnlyTestCase.test_no_standard_args_usagecCs6d	dd�}|�d|j�d|_|�|ddd�d�dS)
Nr
r#cSs|||Srrr rrr	r"�sz>PositionalOnlyTestCase.test_change_default_pos_only.<locals>.f)r
r#rDrr$)r
r#)r,rHr.rrr	�test_change_default_pos_only�s
z3PositionalOnlyTestCase.test_change_default_pos_onlycCs�dd�}|�|dd�d�|�|ddd�d�d
dd�}|�|d�d�dd�}|�|dd�d�d	d�}|�|dd�d�dS)NcSs||Srrrrrr	�<lambda>�r7z5PositionalOnlyTestCase.test_lambdas.<locals>.<lambda>rr
r#r)cSs||Srrrrrr	r`�r7cSs||Srrrrrr	r`�r7cSs||Srrrrrr	r`�r7)r
rJ)r�xrrr	�test_lambdas�s
z#PositionalOnlyTestCase.test_lambdascCs�t|dd�t|dd�t|dd�t|d�t|d�t|d�t|d�t|d	�t|d
�t|d�t|d�t|d
d�t|dd�t|d�t|d�t|d�t|d�dS)Nzlambda a, b = 5, /, c: Nonerzlambda a = 5, b, /, c: Nonezlambda a = 5, b, /: Nonezlambda *args, /: Nonezlambda *args, a, /: Nonezlambda **kwargs, /: Nonezlambda /, a = 1: Nonezlambda /, a: Nonezlambda /: Nonezlambda *, a, /: Nonezlambda *, /, a: Nonezlambda a, /, a: Nonerzlambda a, /, *, a: Nonezlambda a, /, b, /: Nonezlambda a, /, b, /, c: Nonez lambda a, /, b, /, c, *, d: Nonezlambda a, *, b, /, c: Nonerrrrr	�test_invalid_syntax_lambda�s"










z1PositionalOnlyTestCase.test_invalid_syntax_lambdacCs�Gdd�d�}|�|��dd�d�|�|�|�dd�d�|�t|jdd�d}|�t|�� |�jddd�Wd�n1s�0YdS)Nc@seZdZdd�ZdS)z<PositionalOnlyTestCase.test_posonly_methods.<locals>.ExamplecSs||fSrr)rrrrrr	r"�sz>PositionalOnlyTestCase.test_posonly_methods.<locals>.Example.fN)�__name__�
__module__�__qualname__r"rrrr	�Example�srgrr
�rr
r&r))r,r"r]r-r)rrgrOrrr	�test_posonly_methods�sz+PositionalOnlyTestCase.test_posonly_methodscCs6|�td��t�Wd�n1s(0YdS)NrU)rr-r
rrrr	�test_module_functionsz+PositionalOnlyTestCase.test_module_functioncCsXdd�}|�|dd�dd�d�|�td��|dd�d�Wd�n1sP0Y|�td	��"|dd�ddd
�Wd�n1s�0Ydd�}|�|dd�dd�d�dd�}|�|dd�dd�d�|�td��|dd�d�Wd�n1�s
0Y|�td	��"|dd�ddd
�Wd�n1�sJ0YdS)
Ncs��fdd�}|S)Ncs��||Srr�Zx2Zy2�ra�yrr	r>s�:PositionalOnlyTestCase.test_closures.<locals>.f.<locals>.gr�rarmr>rrlr	r"sz/PositionalOnlyTestCase.test_closures.<locals>.frr
r#rCrz2g\(\) missing 1 required positional argument: 'y2'z3g\(\) takes 2 positional arguments but 3 were givenrBcs��fdd�}|S)Ncs��||Srrrkrlrr	r>srnrrorrlr	r"scs��fdd�}|S)Ncs��||Srrrkrlrr	r>!srnrrorrlr	r" sr+r.rrr	�
test_closures
s,0.z$PositionalOnlyTestCase.test_closurescCs"dd�}Gdd�d�}dd�}dS)NcSstd�dd�}|S)N�racSsdSrrrqrrr	r".r7zZPositionalOnlyTestCase.test_annotations_in_closures.<locals>.inner_has_pos_only.<locals>.f��int�r"rrr	�inner_has_pos_only-szOPositionalOnlyTestCase.test_annotations_in_closures.<locals>.inner_has_pos_onlyc@seZdZdd�ZdS)zFPositionalOnlyTestCase.test_annotations_in_closures.<locals>.SomethingcSstd�dd�}|S)NrqcSsdSrrrqrrr	r"5r7zXPositionalOnlyTestCase.test_annotations_in_closures.<locals>.Something.method.<locals>.frrr.rrr	�method4szMPositionalOnlyTestCase.test_annotations_in_closures.<locals>.Something.methodN�rdrerfrvrrrr	�	Something3srxcSsdd�}|�S)NcSstd�dd�}|S)NrqcSsdSrrrqrrr	r"<r7zsPositionalOnlyTestCase.test_annotations_in_closures.<locals>.multiple_levels.<locals>.inner_has_pos_only.<locals>.frrrtrrr	ru;szhPositionalOnlyTestCase.test_annotations_in_closures.<locals>.multiple_levels.<locals>.inner_has_pos_onlyr)rurrr	�multiple_levels:szLPositionalOnlyTestCase.test_annotations_in_closures.<locals>.multiple_levelsr)rrurxryrrr	�test_annotations_in_closures+sz3PositionalOnlyTestCase.test_annotations_in_closurescCsrdd�}|�|ddd�dddif�|�td��|dd�Wd�n1sP0Y|�|d�dif�dS)Nc[s||fSrr)�	something�kwargsrrr	r"CszMPositionalOnlyTestCase.test_same_keyword_as_positional_with_kwargs.<locals>.f�*)r{r{z9f\(\) missing 1 required positional argument: 'something'r+r.rrr	�+test_same_keyword_as_positional_with_kwargsBs
(zBPositionalOnlyTestCase.test_same_keyword_as_positional_with_kwargscCsHGdd�d�}|�|���d�|�|���d�|�|���d�dS)Nc@s0eZdZddd�Zd
dd�Zddd�d	d
�ZdS)z/PositionalOnlyTestCase.test_mangling.<locals>.Xr}cSs|Srr)r�_X__arrr	r"Osz1PositionalOnlyTestCase.test_mangling.<locals>.X.f�+cSs||fSrr)rr�_X__brrr	�f2Rsz2PositionalOnlyTestCase.test_mangling.<locals>.X.f2�,)�_X__ccSs
|||fSrr)rrr�r�rrr	�f3Usz2PositionalOnlyTestCase.test_mangling.<locals>.X.f3N)r})r}r�)r}r�)rdrerfr"r�r�rrrr	�XNs

r�r})r}r�)r}r�r�)r,r"r�r�)rr�rrr	�
test_manglingMs
z$PositionalOnlyTestCase.test_manglingcCs,dd�dd�td�D��}t|dd�dS)Nr0r1css|]}d|VqdSr2rr3rrr	r6^r7zAPositionalOnlyTestCase.test_too_many_arguments.<locals>.<genexpr>r8rrr9r<rrr	�test_too_many_arguments\sz.PositionalOnlyTestCase.test_too_many_argumentscCs(t�t�}t�t�}t�t�}t�|�}t�|�}t�|�}|�|dd�d�d}|�t|��|ddd�Wd�n1s�0Y|�|dd�d�d}|�t|��|ddd�Wd�n1s�0Y|�|�d�d}|�t|��|ddd�Wd�n1�s0YdS)Nrr
rhz\global_pos_only_f\(\) got some positional-only arguments passed as keyword arguments: 'a, b'rzbglobal_pos_only_and_normal\(\) got some positional-only arguments passed as keyword arguments: 'a'z`global_pos_only_defaults\(\) got some positional-only arguments passed as keyword arguments: 'a')	�pickle�dumpsr
rr�loadsr,rr-)rZpickled_posonlyZpickled_optionalZpickled_defaultsZunpickled_posonlyZunpickled_optionalZunpickled_defaultsrOrrr	�test_serializationas$





**z)PositionalOnlyTestCase.test_serializationcsxd
dd����td���ddd�Wd�n1s80Y��fdd�}|dd�|ddd	�|d�|�dS)Nrr
c�s||fSrrrrrr	r"~sz,PositionalOnlyTestCase.test_async.<locals>.frMrc
sXz�|i|��}|�d�Wn*tyF}z|j}WYd}~n
d}~00��|d�dS)Nrh)�send�
StopIteration�valuer,)�argsr|�cororA�result�r"rrr	�_check_call�sz6PositionalOnlyTestCase.test_async.<locals>._check_callr))rr
rN)rr�rr�r	�
test_async|s
*
z!PositionalOnlyTestCase.test_asynccCs�d	dd�}|�td��|ddd�Wd�n1s80Y|dd�}|�t|�d�|ddd�}|�t|�d�|d�}|�t|�d�|�}|�t|�d�dS)
Nrr
css||fVdSrrrrrr	r"�sz0PositionalOnlyTestCase.test_generator.<locals>.frMrrhr))rr
)rr-r,�next)rr"�genrrr	�test_generator�s
*
z%PositionalOnlyTestCase.test_generatorcs>t��G�fdd�d�}Gdd�d|�}|�|�����dS)NcseZdZ�fdd�ZdS)z,PositionalOnlyTestCase.test_super.<locals>.Acs�Srrr��sentinelrr	rv�sz3PositionalOnlyTestCase.test_super.<locals>.A.methodNrwrr�rr	�A�sr�cseZdZ�fdd�Z�ZS)z,PositionalOnlyTestCase.test_super.<locals>.Ccs
t���Sr)�superrvr��	__class__rr	rv�sz3PositionalOnlyTestCase.test_super.<locals>.C.method)rdrerfrv�
__classcell__rrr�r	�C�sr�)�objectr,rv)rr�r�rr�r	�
test_super�sz!PositionalOnlyTestCase.test_supercCs8dd�}dd�t�|�D�}|�d|�|�d|�dS)NcSsttud�dd�}dS)NrqcSsdSrrrqrrr	r"�r7zKPositionalOnlyTestCase.test_annotations_constant_fold.<locals>.g.<locals>.frrrtrrr	r>�sz@PositionalOnlyTestCase.test_annotations_constant_fold.<locals>.gcSsg|]}|j|jf�qSr)�opnameZargvalr3rrr	�
<listcomp>�r7zIPositionalOnlyTestCase.test_annotations_constant_fold.<locals>.<listcomp>)Z	UNARY_NOTN)ZIS_OPr)�disZget_instructionsZassertNotInZassertIn)rr>Zcodesrrr	�test_annotations_constant_fold�sz5PositionalOnlyTestCase.test_annotations_constant_foldN)r) rdrerfrrrr/r=rIrKrPrSrVrZr[r\r^r_rbrcrirjrprzr~r�r�r�r�r�r�r�rrrr	rs:

r�__main__)rr
)r�r�ZunittestZtest.supportrr
rrZTestCaserrd�mainrrrr	�<module>s
,