Sindbad~EG File Manager
�
'Μg�����dZdZdZddlZd�Zdd�d�Zd�Zd �Zddd
�d�Zddd
�d�Z d
d�d�Z
d
d�d�ZGd�d�ZGd�dej�Zedk(rej �yy)z?Unit tests for the keyword only argument specified in PEP 3102.z Jiwon Seozseojiwon at gmail dot com�Nc�R�|t|�zt|j��zS�N��sum�values)�pos_arg1�arg�kwargs �5/usr/local/lib/python3.12/test/test_keywordonlyarg.py�posonly_sumrs!���c�#�h���U�\�\�^�!4�4�4���k1c��||zSr��r�k2s r�keywordonly_sumr
���
��7�Nr
c��||zSrrrs r�keywordonly_nodefaults_sumrrr
c�@�||zt|j��zSrr)rrr
s r�keywordonly_and_kwarg_sumrs��
��7�S�����(�(�(r
�rc�0�||z|z|zt|�zSr)r)�a�brrr s r�
mixedargs_sumrs���q�5�2�:��?�S��X�%�%r
c�d�||z|z|zt|�zt|j��zSrr)rrrrr �kwargss r�mixedargs_sum2r!s-���q�5�2�:��?�S��X�%��F�M�M�O�(<�<�<r
F��reversec�.�tt|�|��S�Nr"��sorted�list)r#�numss r�sortnumr*s���$�t�*�g�.�.r
c�.�tt|�|��Sr%r&)r#�wordsr s r� sortwordsr-s���$�u�+�w�/�/r
c�$�eZdZdd�d�Zd�Zd�Zy)�Foorrc� �||_||_yrr��selfrrs r�__init__zFoo.__init__��������r
c� �||_||_yrr)r2�p1rrs r�setzFoo.setr4r
c�4�|j|jzSrr�r2s rrzFoo.sum"s���w�w���� � r
N)�__name__�
__module__�__qualname__r3r7rrr
rr/r/s��!"���!r
r/c�T�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zy
)�KeywordOnlyArgTestCasec�8�d�}|jt||�y)Nc��t|dd�y)N�<test>�single)�compile)�ss r�shouldRaiseSyntaxErrorzNKeywordOnlyArgTestCase.assertRaisesSyntaxError.<locals>.shouldRaiseSyntaxError's���A�x��*r
)�assertRaises�SyntaxError)r2�codestrrEs r�assertRaisesSyntaxErrorz.KeywordOnlyArgTestCase.assertRaisesSyntaxError&s�� +����+�'=�w�Gr
c��|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�y) 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
�rIr9s r�$testSyntaxErrorForFunctionDefinitionz;KeywordOnlyArgTestCase.testSyntaxErrorForFunctionDefinition+sz���$�$�%=�>��$�$�%F�G��$�$�%H�I��$�$�%J�K��$�$�%D�E��$�$�%H�I��$�$�%J�K��$�$�%M�Nr
c���ddjd�td�D��z}t|dd�ddjd�td�D��z}t|dd�y) Nzdef f(%s):
pass
z, c3�&K�|] }d|z���y�w�zi%dNr��.0�is r� <genexpr>zDKeywordOnlyArgTestCase.testSyntaxForManyArguments.<locals>.<genexpr>7s����3R�z�!�E�A�I�z���i,rArBzdef f(*, %s):
pass
c3�&K�|] }d|z���y�wrOrrPs rrSzDKeywordOnlyArgTestCase.testSyntaxForManyArguments.<locals>.<genexpr>:s����6U�*�Q�u�q�y�*�rT)�join�rangerC)r2�fundefs r�testSyntaxForManyArgumentsz1KeywordOnlyArgTestCase.testSyntaxForManyArguments5sU��'�$�)�)�3R�u�S�z�3R�*R�R�����(�+�*�T�Y�Y�6U�%�PS�*�6U�-U�U�����(�+r
c���ddd�d�}|jt�5}|ddd�ddd�|j�d�}|jt j
�|�y#1swY�>xYw)N)�cc��yrr�rrr[s r�fzCKeywordOnlyArgTestCase.testTooManyPositionalErrorMessage.<locals>.f>s��r
���z:() takes from 1 to 2 positional arguments but 3 were givenr)rF� TypeErrorr<�assertEqual�str� exception)r2r^�exc�expecteds r�!testTooManyPositionalErrorMessagez8KeywordOnlyArgTestCase.testTooManyPositionalErrorMessage=sf�� �d� �
�
�
�y�
)�S�
�a��A�J�*��~�~�&�'<�<������S�]�]�+�X�6� *�
)�s�A%�%A.c�H�|jd�|jd�y)Nz
f(p, k=1, p2)zf(p, k1=50, *(1,2), k1=100)rKr9s r�testSyntaxErrorForFunctionCallz5KeywordOnlyArgTestCase.testSyntaxErrorForFunctionCallFs���$�$�_�5��$�$�%B�Cr
c�\�|jttd�|jttd�|jttd� tdd��|jd� td��|jd�y#t$rY�*wxYw#t$rYywxYw)Nr�d��)r�non_existing_argzshould raise TypeErrorr`r)rFrbrrr/�failr9s r�2testRaiseErrorFuncallWithUnexpectedKeywordArgumentzIKeywordOnlyArgTestCase.testRaiseErrorFuncallWithUnexpectedKeywordArgumentJs������)�_�b�9����)�%?��D����)�S�"�-� ��s�S�9��I�I�.�/� �&�!�,��I�I�.�/�� � �� ��
� �� �s$�B�2B� B�B� B+�*B+c�p�|jdtd��|jdtdiddi���|jdtdgd����|jdtdgd��idd i���|jdtd�
��|jdtdd���|jdtdd���|jdtddd���|jdtd ddd�dd d
����|jdt dd���|jdt ddd���|jdt dddd ���|jdt dddd d���|jdtdd���|jdtddd���|jdtdddd ���|jdtdddd d���|jdtdddd dd���|jdtddd iddd����|jdt
d��j��|jdt
dd��j��|jgd�tddd��|jgd�tdddd���|jgd�tddd��|jgd�tdddd���|jgd�tddddd���y)!Nr_ra�2r`�)r`ra�
�4�rr)rr�k3)rrr���)r_r`rar)rrw)rar`r_Tr"r]rr[r)r[rr�ignore)r#r{)r_r)
rcrrrrr!r/rr*r-r9s r�testFunctionCallz'KeywordOnlyArgTestCase.testFunctionCallYs�������K��N�+�����k�6�s�1�g�6�7������A� 5�u� 5�6�����+�a�"A��"A�#�a��"A�B�����O�q�1�2�����o��q�9�:�����7�1��C�D����� 9�Q�1�� K�L�����2�E�a�A�E�;<��m�E� F�
����m�A�!�4�5�����
�a��q� 9�:�����-��1��q�"A�B�����M�!�Q��a�A�$F�G�����n�Q�1�5�6������q�!�� :�;�����.��A�!��"B�C�����N�1�a��q�Q�$G�H�����'��1�a�A�!��B� D�����'�J�A�J�q�q�9I�J� L�
����C�1�I�M�M�O�,�����c�Q�!�n�0�0�2�3�����'�!�A�a�.�1�����'�!�A�a��">�?����� �#�c�#�(>�?����� �#�c�#�t�(L�M�����"�3�s�3��X�N� Pr
c��ddd�d�}|jd|jj�|jddi|j�ddi|_ |dd� �|j d
�y#t
$rYywxYw)Nrrc��||z|z|zSrr)r6�p2rrs r�fooz2KeywordOnlyArgTestCase.testKwDefaults.<locals>.foo�s����7�R�<�"�$�$r
r`rrr_rtrz&__kwdefaults__ is not properly changed�r)rc�__code__�co_kwonlyargcount�__kwdefaults__rorb)r2r�s r�testKwDefaultsz%KeywordOnlyArgTestCase.testKwDefaults�s}�� %�1� %�
����C�L�L�:�:�;����$�q��3�#5�#5�6�"�1�X��� ���R�L��I�I�>�?��� �� �s�A2�2 A>�=A>c��Gd�d�}|j|�jdd��d�|j|j|�dd��d�|jt|jdd��y)Nc��eZdZddd�d�Zy)�;KeywordOnlyArgTestCase.test_kwonly_methods.<locals>.Exampler_r`rc�
�||fSrrr1s rr^z=KeywordOnlyArgTestCase.test_kwonly_methods.<locals>.Example.f�s���2�v�
r
N�r:r;r<r^rr
r�Exampler��s���A�
r
r�r_r`r)r_r`)rcr^rFrb)r2r�s r�test_kwonly_methodsz*KeywordOnlyArgTestCase.test_kwonly_methods�si�� � �
��������a��0�&�9�������7�9��q��9�6�B����)�W�Y�Y�1���;r
c��td�d�y)Nrc��yrrrs r�<lambda>z8KeywordOnlyArgTestCase.test_issue13343.<locals>.<lambda>�s��tr
)�unittestr9s r�test_issue13343z&KeywordOnlyArgTestCase.test_issue13343�s
���#r
c�b�Gd�d�}|j|�j�d�y)Nc��eZdZdd�d�Zy)�/KeywordOnlyArgTestCase.test_mangling.<locals>.X�*)�_X__ac��|Srr)r2r�s rr^z1KeywordOnlyArgTestCase.test_mangling.<locals>.X.f�s���
r
Nr�rr
r�Xr��s
��!�
r
r�r�)rcr^)r2r�s r�
test_manglingz$KeywordOnlyArgTestCase.test_mangling�s&�� � �
��������"�%r
c��d}|jt�5}|tfttd�d�}ddd�|jt
j�d�|jt�5}|tfttd�d�}ddd�|jt
|j�d�y#1swY��xYw#1swY�;xYw)Nr�)�y�zc��yrr��v�xr�r�s rr^z?KeywordOnlyArgTestCase.test_default_evaluation_order.<locals>.f�s��r
zname 'b' is not definedc��yrrr�s rr�zFKeywordOnlyArgTestCase.test_default_evaluation_order.<locals>.<lambda>�s��dr
)rF� NameErrorrr[�drcrdre)r2r�errr^�gs r�test_default_evaluation_orderz4KeywordOnlyArgTestCase.test_default_evaluation_order�s�����
�
�
�y�
)�S���
��a�
�*�
����S�]�]�+�-F�G�
�
�
�y�
)�S��a�2�a�1�2�A�*�����S�]�]�+�-F�G�
*�
)��*�
)�s�B6�1C�6B?�CN)r:r;r<rIrLrYrhrjrpr|r�r�r�r�r�rr
rr>r>%sD��H�
O�,�7�D�
�&P�P�<�$�&� Hr
r>�__main__r�)�__doc__�
__author__� __email__r�rrrrrr!r*r-r/�TestCaser>r:�mainrr
r�<module>r�s���E�
�
�'� ��5����)�&�q�&�=��=�!�/�$�0�!�!�IH�X�.�.�IH�X�z���H�M�M�O�r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists