HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/__pycache__/test_positional_only_arg.cpython-38.pyc
U

.D�g�E�@spdZddlZddlZddlZddlmZdd�Zdd�Zdd
d�Zdd
�Z	Gdd�dej
�Zedkrle�
�dS)zHUnit tests for the positional only argument syntax specified in PEP 570.�N��check_syntax_errorcCs||fS�N���a�brr�</opt/cppython/lib/python3.8/test/test_positional_only_arg.py�global_pos_only_f
sr
cCs||fSrrrrrr	�global_pos_only_and_normal
sr��cCs||fSrrrrrr	�global_pos_only_defaultssrcCstd�dd�}|S)N��xcSsdSrrrrrr	�f�z$global_inner_has_pos_only.<locals>.f��int�rrrr	�global_inner_has_pos_onlysrc@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'�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Zd=S)?�PositionalOnlyTestCase�invalid syntaxc	Cs,|�t|��t|ddd�W5QRXdS)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): passr!z!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): passr"zasync 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): passrr#rrr	� test_invalid_syntax_errors_async3s&











z7PositionalOnlyTestCase.test_invalid_syntax_errors_asyncc	CsLddd�}|�|ddd�d�|�|dddd	�d�|�td
��|dddd�W5QRX|�|dd�d�|�td
��|ddd
�W5QRX|�|ddd	�d�ddd�}|�|ddd�d�|�|dddd	�d�|�td
��|dddd�W5QRX|�|dd�d�|�td
��|ddd
�W5QRX|�|ddd	�d�dS)N�
�dcSs|||Srr�rr�crrr	rIszDPositionalOnlyTestCase.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	rVs)r&r')rr&r'��assertEqualr�	TypeError�rrrrr	�"test_optional_positional_only_argsHs$

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>eszNPositionalOnlyTestCase.test_syntax_for_many_positional_only.<locals>.<genexpr>�,rr��join�ranger�rZfundefrrr	�$test_syntax_for_many_positional_onlycsz;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�errDrrr	risz:PositionalOnlyTestCase.test_pos_only_definition.<locals>.f�r*)r�cSsdSrrrErrr	rps�rr
r*)r)rr
r*)r3�__code__�co_argcount�co_posonlyargcount�__defaults__r5rrr	�test_pos_only_definitionhsz/PositionalOnlyTestCase.test_pos_only_definitioncCs dd�}|�|ddg�d�dS)NcSs||Srrrrrr	rxszBPositionalOnlyTestCase.test_pos_only_call_via_unpacking.<locals>.frr
r*�r3r5rrr	� test_pos_only_call_via_unpackingwsz7PositionalOnlyTestCase.test_pos_only_call_via_unpackingc	Cs�dd�}d}|�t|��|dd�W5QRXdd�}d}|�t|��|ddd�W5QRXd	d�}d
}|�t|��|ddd�W5QRXdS)NcSsdSrr�rrrr	r~sz@PositionalOnlyTestCase.test_use_positional_as_keyword.<locals>.f�If\(\) got some positional-only arguments passed as keyword arguments: 'a'rrRcSsdSrrrrrr	r�sr
rcSsdSrrrrrr	r�szLf\(\) got some positional-only arguments passed as keyword arguments: 'a, b'�rr4)rr�expectedrrr	�test_use_positional_as_keyword}sz5PositionalOnlyTestCase.test_use_positional_as_keywordc	Cs�dd�}|�td��|dd�W5QRX|�td��|d�W5QRX|�td��|�W5QRX|�td��|ddd	d
�W5QRXdS)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*rIrTr5rrr	�*test_positional_only_and_arg_invalid_calls�szAPositionalOnlyTestCase.test_positional_only_and_arg_invalid_callsc	Cs|d
dd�}|dd�|�td��|d�W5QRX|�td��|�W5QRX|�td��|dddd	�W5QRXdS)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 givenrI)r*rTr5rrr	�3test_positional_only_and_optional_arg_invalid_calls�s

zJPositionalOnlyTestCase.test_positional_only_and_optional_arg_invalid_callscCs&dd�}|dddddd�|�td��|ddddd�W5QRX|�td	��|ddd�W5QRX|�td
��|dd�W5QRX|�td��|d�W5QRX|�td��|�W5QRX|�td
��|ddddddddd�W5QRX|�td��|ddddddd�W5QRXdS)NcSsdSrr)rrr)rFrGrrr	r�szSPositionalOnlyTestCase.test_positional_only_and_kwonlyargs_invalid_calls.<locals>.frr
r*)rFrGz-missing 1 required keyword-only argument: 'd')rGz6missing 2 required keyword-only arguments: 'd' and 'e'rWrXz; missing 3 required positional arguments: 'a', 'b', and 'c'zif\(\) takes 3 positional arguments but 6 positional arguments \(and 2 keyword-only arguments\) were givenrIrHr+��z,f\(\) got an unexpected keyword argument 'f'�8)rFrGrrTr5rrr	�1test_positional_only_and_kwonlyargs_invalid_calls�s "zHPositionalOnlyTestCase.test_positional_only_and_kwonlyargs_invalid_callsc	Csxdd�}|dd�|�td��|d�W5QRX|�td��|�W5QRX|�td��|ddd�W5QRXdS)	NcSsdSrrrrrr	r�szDPositionalOnlyTestCase.test_positional_only_invalid_calls.<locals>.frr
rZr[z3f\(\) takes 2 positional arguments but 3 were givenr*rTr5rrr	�"test_positional_only_invalid_calls�s
z9PositionalOnlyTestCase.test_positional_only_invalid_callsc	CsXddd�}|d�|�td��|�W5QRX|�td��|ddd�W5QRXdS)	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
rTr5rrr	�0test_positional_only_with_optional_invalid_calls�s
zGPositionalOnlyTestCase.test_positional_only_with_optional_invalid_callsc	Cs>dd�}|dddd�|�t��|dddd�W5QRXdS)NcSsdSrrr(rrr	r�sz=PositionalOnlyTestCase.test_no_standard_args_usage.<locals>.frr
r*r,r.)�assertRaisesr4r5rrr	�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*rJrr+)r
r*)r3rNr5rrr	�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>�rz5PositionalOnlyTestCase.test_lambdas.<locals>.<lambda>rr
r*r0cSs||Srrrrrr	rf�rcSs||Srrrrrr	rf�rcSs||Srrrrrr	rf�r)r
rP)rrrrr	�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: Noner!zlambda 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: Noner"zlambda a, /, *, a: Nonezlambda a, /, b, /: Nonezlambda a, /, b, /, c: Nonez lambda a, /, b, /, c, *, d: Nonezlambda a, *, b, /, c: Nonerr#rrr	�test_invalid_syntax_lambda�s"










z1PositionalOnlyTestCase.test_invalid_syntax_lambdac	Cs~Gdd�d�}|�|��dd�d�|�|�|�dd�d�|�t|jdd�d}|�t|��|�jddd�W5QRXdS)Nc@seZdZdd�ZdS)z<PositionalOnlyTestCase.test_posonly_methods.<locals>.ExamplecSs||fSrr)rrrrrr	rsz>PositionalOnlyTestCase.test_posonly_methods.<locals>.Example.fN��__name__�
__module__�__qualname__rrrrr	�Examplesrmrr
�rr
r-r0)r3rrcr4r)rrmrUrrr	�test_posonly_methodssz+PositionalOnlyTestCase.test_posonly_methodscCs$Gdd�d�}|�|���d�dS)Nc@seZdZdd�dd�ZdS)�/PositionalOnlyTestCase.test_mangling.<locals>.X�*)�_X__acSs|Srr�rrrrrr	rs�1PositionalOnlyTestCase.test_mangling.<locals>.X.fNrirrrr	�Xsrurq)r3r�rrurrr	�
test_mangling
sz$PositionalOnlyTestCase.test_manglingc	Cs"|�td��t�W5QRXdS)Nr[)rr4r
r#rrr	�test_module_functionsz+PositionalOnlyTestCase.test_module_functionc	Csdd�}|�|dd�dd�d�|�td��|dd�d�W5QRX|�td	��|dd�ddd
�W5QRXdd�}|�|dd�dd�d�dd�}|�|dd�dd�d�|�td��|dd�d�W5QRX|�td	��|dd�ddd
�W5QRXdS)
Ncs��fdd�}|S)Ncs��||Srr�Zx2Zy2�r�yrr	rDs�:PositionalOnlyTestCase.test_closures.<locals>.f.<locals>.gr�rr{rDrrzr	rsz/PositionalOnlyTestCase.test_closures.<locals>.frr
r*rIr&z2g\(\) missing 1 required positional argument: 'y2'z3g\(\) takes 2 positional arguments but 3 were givenrHcs��fdd�}|S)Ncs��||Srrryrzrr	rD%sr|rr}rrzr	r$scs��fdd�}|S)Ncs��||Srrryrzrr	rD,sr|rr}rrzr	r+sr2r5rrr	�
test_closuressz$PositionalOnlyTestCase.test_closuresc	Cs^dd�}|�|ddd�dddif�|�td��|dd�W5QRX|�|d�dif�dS)Nc[s||fSrr)�	something�kwargsrrr	r7szMPositionalOnlyTestCase.test_same_keyword_as_positional_with_kwargs.<locals>.frq)rrz9f\(\) missing 1 required positional argument: 'something'r2r5rrr	�+test_same_keyword_as_positional_with_kwargs6s
zBPositionalOnlyTestCase.test_same_keyword_as_positional_with_kwargscCsHGdd�d�}|�|���d�|�|���d�|�|���d�dS)Nc@s0eZdZddd�Zd
dd�Zddd�d	d
�ZdS)rprqcSs|Srrrsrrr	rCsrt�+cSs||fSrr)rrr�_X__brrr	�f2Fsz2PositionalOnlyTestCase.test_mangling.<locals>.X.f2�,)�_X__ccSs
|||fSrr)rrrr�r�rrr	�f3Isz2PositionalOnlyTestCase.test_mangling.<locals>.X.f3N)rq)rqr�)rqr�)rjrkrlrr�r�rrrr	ruBs

rurq)rqr�)rqr�r�)r3rr�r�rvrrr	rwAs
cCs,dd�dd�td�D��}t|dd�dS)Nr7r8css|]}d|VqdSr9rr:rrr	r=RszAPositionalOnlyTestCase.test_too_many_arguments.<locals>.<genexpr>r>rrr?rBrrr	�test_too_many_argumentsPsz.PositionalOnlyTestCase.test_too_many_argumentsc	Cs�t�t�}t�t�}t�t�}t�|�}t�|�}t�|�}|�|dd�d�d}|�t|��|ddd�W5QRX|�|dd�d�d}|�t|��|ddd�W5QRX|�|�d�d}|�t|��|ddd�W5QRXdS)Nrr
rnz\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�loadsr3rr4)rZpickled_posonlyZpickled_optionalZpickled_defaultsZunpickled_posonlyZunpickled_optionalZunpickled_defaultsrUrrr	�test_serializationUs$





z)PositionalOnlyTestCase.test_serializationc	sdd
dd����td���ddd�W5QRX��fdd�}|dd�|ddd	�|d�|�dS)Nrr
c�s||fSrrrrrr	rrsz,PositionalOnlyTestCase.test_async.<locals>.frSrc
sRz�||�}|�d�Wn(tk
r@}z
|j}W5d}~XYnX��|d�dS)Nrn)�send�
StopIteration�valuer3)�argsr��cororG�result�rrrr	�_check_callxs
z6PositionalOnlyTestCase.test_async.<locals>._check_callr0)rr
rT)rr�rr�r	�
test_asyncps

z!PositionalOnlyTestCase.test_asyncc	Cs�d	dd�}|�td��|ddd�W5QRX|dd�}|�t|�d�|ddd�}|�t|�d�|d�}|�t|�d�|�}|�t|�d�dS)
Nrr
css||fVdSrrrrrr	r�sz0PositionalOnlyTestCase.test_generator.<locals>.frSrrnr0)rr
)rr4r3�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	�method�sz3PositionalOnlyTestCase.test_super.<locals>.A.methodN)rjrkrlr�rr�rr	�A�sr�cseZdZ�fdd�Z�ZS)z,PositionalOnlyTestCase.test_super.<locals>.Ccs
t���Sr)�superr�r#��	__class__rr	r��sz3PositionalOnlyTestCase.test_super.<locals>.C.method)rjrkrlr��
__classcell__rrr�r	�C�sr�)�objectr3r�)rr�r�rr�r	�
test_super�sz!PositionalOnlyTestCase.test_supercCst�jdtikst�dS)Nr)r�__annotations__r�AssertionErrorr#rrr	�test_annotations�sz'PositionalOnlyTestCase.test_annotationscCs8dd�}dd�t�|�D�}|�d|�|�d|�dS)NcSsttk	d�dd�}dS)NrcSsdSrrrrrr	r�rzKPositionalOnlyTestCase.test_annotations_constant_fold.<locals>.g.<locals>.frrrrr	rD�sz@PositionalOnlyTestCase.test_annotations_constant_fold.<locals>.gcSsg|]}|j|jf�qSr)�opnameZargvalr:rrr	�
<listcomp>�szIPositionalOnlyTestCase.test_annotations_constant_fold.<locals>.<listcomp>)Z	UNARY_NOTN)Z
COMPARE_OPzis not)�disZget_instructionsZassertNotInZassertIn)rrDZcodesrrr	�test_annotations_constant_fold�sz5PositionalOnlyTestCase.test_annotations_constant_foldN)r) rjrkrlr r$r%r6rCrOrQrVrYr\r`rarbrdrergrhrorwrxr~r�r�r�r�r�r�r�r�rrrr	rs<

r�__main__)rr
)�__doc__r�r�ZunittestZtest.supportrr
rrrZTestCaserrj�mainrrrr	�<module>s