Sindbad~EG File Manager
�
'ΜgI>��|�ddlZddlZddlZddlZd�ZGd�dej
�ZGd�de�ZGd�de�ZGd �d
e�Z Gd�de�Z
Gd
�de�Zd�Zdd�Z
Gd�dej
�ZGd�dej
�ZGd�dej
�Zedk(rej$�yy)�Nc���d���fd�S)Nc� �Gd�d�}d�a|S)Nc��eZdZy)�;global_function.<locals>.inner_function.<locals>.LocalClassN)�__name__�
__module__�__qualname__���0/usr/local/lib/python3.12/test/test_funcattrs.py�
LocalClassr s��rr
c��d�}|S)Nc��y�Nr
r
rr�inner_function2z.inner_global_function.<locals>.inner_function2
���rr
)rs r�inner_global_functionrs
��
�"�"r)r)r
s r�inner_functionz'global_function.<locals>.inner_functions�� � � #��rc����Srr
�rs�r�<lambda>z!global_function.<locals>.<lambda>s���>rr
rs@r�global_functionrs����"�!rc��eZdZd�Zd�Zy)�
FuncAttrsTestc�R�Gd�d�}d�}|�|_||_||_y)Nc��eZdZd�Zy)�FuncAttrsTest.setUp.<locals>.Fc��yrr
��selfs r�az FuncAttrsTest.setUp.<locals>.F.arrN)rrr r!r
rr�Frs��
rr"c��y�N�r
r
rr�bzFuncAttrsTest.setUp.<locals>.bs��r)�fir"r&)r r"r&s r�setUpzFuncAttrsTest.setUps(�� � � ��#��������rc�� t|||�|jd|�d|��� t||�|jd|z�y#|$rY�)wxYw#|$rYywxYw)Nzshouldn't be able to set z to zshouldn't be able to del %s)�setattr�fail�delattr)r �obj�name�value�
exceptionss r�cannot_set_attrzFuncAttrsTest.cannot_set_attrsq�� K��C��u�%�
�I�I�T�5�I�J� <��C���
�I�I�3�d�:�;��� �� ��� �� �s"�
A�A�A�A�A�AN)rrr r(r1r
rrrrs���<rrc�l�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zy)�FunctionPropertiesTestc�X�|j|jjt�yr)�assertEqualr&rrrs r�test_modulez"FunctionPropertiesTest.test_module0s��������*�*�H�5rc��d|j_|jdt|j�d�d|jj
_|jdt|jj
�d�y)N��
known_attrz+set attributes not in dir listing of methodzEset attribute on function implementations, should show up in next dir)r&r9�assertIn�dirr"r!r'rs r�test_dir_includes_correct_attrsz6FunctionPropertiesTest.test_dir_includes_correct_attrs3s^��������
�
�l�C����K�9� ;� ��������
�
�l�C���� � �N�5C� Drc�B�d�}|j|j|�y)Nc�� yr$r
r
rr� duplicatezJFunctionPropertiesTest.test_duplicate_function_equality.<locals>.duplicate>s���r)�assertNotEqualr&)r r?s r� test_duplicate_function_equalityz7FunctionPropertiesTest.test_duplicate_function_equality<s�� �
���D�F�F�I�.rc��d�}|j|�d�|jj|_|j|�d�y)Nc��yrr
r
rr�testz:FunctionPropertiesTest.test_copying___code__.<locals>.testDs��Drr%)r5r&�__code__)r rDs r�test_copying___code__z,FunctionPropertiesTest.test_copying___code__Cs8���������&�������
�������#rc��|j|jjt��|j |jddt
tf�y)N�__globals__�)�assertIsr&rH�globalsr1�AttributeError� TypeErrorrs r�test___globals__z'FunctionPropertiesTest.test___globals__Is<���
�
�d�f�f�(�(�'�)�4����T�V�V�]�A�,�i�8� :rc��|j|jjt�|j|jddtt
f�d�}i}t
|�|j|�}|j|j|�|j|jt�|j|d�d�|j|i�tjd�}ddi}t|d�}t||�|j|d j|�|j|d
j|�|j|d jd|�|jd|d
j�y)N�__builtins__rIc��t|�Sr)�len)�ss r�funcz6FunctionPropertiesTest.test___builtins__.<locals>.funcUs
��C��F�]r�abcr%z\
def func3(s): pass
func4 = type(func3)(func3.__code__, {})
�None)�typerP�func3�func4)rJr&rPr1rLrMrWrErHr5�textwrap�dedent�exec�assertNotIn)r rT�ns�func2�code�
safe_builtinss r�test___builtins__z(FunctionPropertiesTest.test___builtins__NsB���
�
�d�f�f�)�)�<�8����T�V�V�^�Q�,�i�8� :�
#�
����T�
�4�=�=�"�-���
�
�e�'�'��,��
�
�e�(�(�,�7�
����u��q�)�����R� ���� �
�� ���
��M�
:���T�2���
�
�b��k�.�.�
�>��
�
�b��k�.�.�
�>��
�
�b��k�-�-�n�=�}�M������G��)@�)@�Arc���d��fd�}|j}|j|t�|jt |�d�|j|dj
jd�|j|d|t�y)N�c���t��yr��print�r!s�r�fz2FunctionPropertiesTest.test___closure__.<locals>.fo� ����q�r�r�cell�__closure__) rm�assertIsInstance�tupler5rR� __class__rr1rL�r ri�cr!s @r�test___closure__z'FunctionPropertiesTest.test___closure__msj������
�M�M�����a��'�����Q���#�����1����0�0�&�9����Q�
�q�.�Arc��tjd�}|j|jd�tj�}d}|j t
|��5|jddd�y#1swYyxYw)Nrk�'shouldn't be able to read an empty cell)�msg)�types�CellTyper5�
cell_contents�assertRaises�
ValueError)r �cell_objrvs r�
test_cell_newz$FunctionPropertiesTest.test_cell_newws_���>�>�!�$������/�/��3��>�>�#��7��
�
�
�z�s�
�
3��"�"�4�
3�
3�s�
A5�5A>c����fd�} |jdj|jd�d�y#t$rYd�ywxYw)Nc���t��yrrfrhs�rriz1FunctionPropertiesTest.test_empty_cell.<locals>.f�rjrrrurd)rmryr+r{)r rir!s @r�test_empty_cellz&FunctionPropertiesTest.test_empty_cell�sM���� A�
�M�M�!��*�*�
�I�I�?�@���� � ��
�� �s�5� A�Ac���d��fd�}|j}d|d_|j|djd�|j|�d�|j�d�|d` |dj|jd�|jt�5|�ddd�|jt�5t��ddd�y#t$rY�ZwxYw#1swY�BxYw#1swYyxYw)Nrdc����Srr
rhs�rriz/FunctionPropertiesTest.test_set_cell.<locals>.f�s����r� rru) rmryr5r+r{rz� NameError�UnboundLocalErrorrgrqs @r�
test_set_cellz$FunctionPropertiesTest.test_set_cell�s�������
�M�M����!�������1��+�+�Q�/������a� �����A��
�a�D�� A�
�a�D���
�I�I�?�@�
�
�
�y�
)�
�C�*�
�
�
�0�
1��!�H�2�
1��
� �� ��*�
)��
1�
1�s*�-C�"C+�C7� C(�'C(�+C4�7Dc�H�|j|jjd�d|j_|j|jjd�d|j_|j|jjd�|j|jddt�d}t|dii�|j|jjjd�|j|jjddt�y) Nr&rr�drr8zdef f(): pass
f.__name__rPr!) r5r&rr1rMr\r'r!rL)r rSs r�
test___name__z$FunctionPropertiesTest.test___name__�s�����������#�.��������������#�.��������������#�.����T�V�V�Z��I�>�
,���Q���$�%���������+�+�S�1����T�W�W�Y�Y�
�C��Hrc��|j|jjd�|jtjjd�|jt
jd�|jt�jd�|jt��jd�|jt���jd�|jtjd�|jt
�jd�d |j_|j|jjd �d
|j_|j|jjd
�|j|jddt�y)
NzFuncAttrsTest.setUp.<locals>.bzFuncAttrsTest.setUprz!global_function.<locals>.<lambda>z'global_function.<locals>.inner_functionrrz.inner_global_function.<locals>.inner_function2rrr�r r8) r5r&r rr(rrr1rMrs r�test___qualname__z(FunctionPropertiesTest.test___qualname__�sP��������,�,�.N�O�����,�,�9�9�;P�Q�����5�5�7H�I�����*�7�7�<� >����*��*�,�9�9�B� D����,�*��*�,�.�;�;�V� X����.�;�;�=T�U����.�0�=�=�?o�p�!�����������,�,�c�2�!�����������,�,�c�2����T�V�V�^�Q� �Brc�R�d��}d�}d�}|j\}|j|tj�|j |j|f�||fD]�}|j|��5|j |jd�|j
t�5|`ddd�|j
t�5d|_ddd�|f|_|j |j|f�ddd���y#1swY�^xYw#1swY�ExYw#1swY��xYw)Nc��d�x}fd�c�S)�Tc��yrr
r
rr�genericz<FunctionPropertiesTest.test___type_params__.<locals>.generic�s��$rr
)� .defaultsr�s rz<generic parameters of generic>zTFunctionPropertiesTest.test___type_params__.<locals>.<generic parameters of generic>�s��A�rc��yrr
r
rr�not_genericz@FunctionPropertiesTest.test___type_params__.<locals>.not_generic�s��4rc��y)N.r
r
rrrz=FunctionPropertiesTest.test___type_params__.<locals>.<lambda>�s��#r)rTr
�*)�__type_params__rn�typing�TypeVarr5�subTestrzrM)r r�r��lambda_r�rTs r�test___type_params__z+FunctionPropertiesTest.test___type_params__�s�������
�
$�
$������a����0�����0�0�1�$�7� �'�*�D����4��(�� � ��!5�!5�r�:��&�&�y�1��,�2��&�&�y�1�+-�D�(�2�()�t��$�� � ��!5�!5��t�<�)�(�+�2�1��1�1�� )�(�s<�32D�%D�(D�D�
-D�D�
D�D�D�D& c�|���d\��d�}d�}�fd�}�fd�}��fd�}|||||fD]5}|jt|j�tj��7|j|�d�|j|�d�|j|_|j|j|j�|j|�d� |j|_|jd � |j|_|jd �y#t$rY�/wxYw#t$rYywxYw)
N)r8�c��yrr
r
rrr!z/FunctionPropertiesTest.test___code__.<locals>.a�s��rc��y)Nrdr
r
rrr&z/FunctionPropertiesTest.test___code__.<locals>.b�s��rc����Srr
)�num_ones�rrrz/FunctionPropertiesTest.test___code__.<locals>.c������rc����Srr
)�num_twos�rr�z/FunctionPropertiesTest.test___code__.<locals>.d�r�rc�����fSrr
)r�r�s��r�ez/FunctionPropertiesTest.test___code__.<locals>.e�s
�����(�(rr8r�zC__code__ with different numbers of free vars should not be possible)r5rWrErw�CodeTyper+r{) r r!r&rrr�r�rTr�r�s @@r�
test___code__z$FunctionPropertiesTest.test___code__�s�����������(���1�a��O�D����T�$�-�-�0�%�.�.�A�$������a� ������a� ��Z�Z��
�������Q�Z�Z�0������a� � )����A�J�
�I�I�(�
)� )����A�J�
�I�I�(�
)��� �� ��� �� �s$�D �=D/� D,�+D,�/ D;�:D;c��|j|jjd�|j`|j|jjd�yr)r5r&�__defaults__rs r�test_blank_func_defaultsz/FunctionPropertiesTest.test_blank_func_defaults�s@��������,�,�d�3��F�F��������,�,�d�3rc���d�}dd�}|j|jd�|j|jd�d|_|j|jd�|j|�d�|j|d�d�|j|dd�d�|`|j|jd� |�|jd�y#t$rYywxYw)Nc��||zSrr
�r!r&s r�
first_funczAFunctionPropertiesTest.test_func_default_args.<locals>.first_func�����Q�3�Jrc��||zSrr
r�s r�second_funczBFunctionPropertiesTest.test_func_default_args.<locals>.second_func�r�r)rkrIr%�r�zE__defaults__ does not update; deleting it does not remove requirement)r5r�r+rM)r r�r�s r�test_func_default_argsz-FunctionPropertiesTest.test_func_default_args�s��� � �����0�0�$�7�����1�1�6�:�"(�
������0�0�&�9������q�)�����A���*�����A�q�)�1�-��$�����1�1�4�8� ,��M�
�I�I�+�
,��� �� �s�
C#�# C/�.C/N)rrr r6r<rArFrNrbrsr}r�r�r�r�r�r�r�r�r
rrr3r3.sW��6�D�/�$�:�
B�>B�#���(I� C�(=�")�<4�
,rr3c�$�eZdZd�Zd�Zd�Zd�Zy)�InstancemethodAttrTestc��|j|jjjj|j
�|j
|jjd|j
t�y)Nrp)r5r'r!�__self__rpr"r1rMrs r�test___class__z%InstancemethodAttrTest.test___class__sJ����������+�+�5�5�t�v�v�>����T�W�W�Y�Y��T�V�V�Y�Grc��|j|jjj|jj�|j|jjd|jjt�y)N�__func__)r5r'r!r�r"r1rLrs r�
test___func__z$InstancemethodAttrTest.test___func__sL����������+�+�T�V�V�X�X�6����T�W�W�Y�Y�
�D�F�F�H�H�n�Mrc���|j|jjj|j�|j |jjd|jt
�y)Nr�)r5r'r!r�r1rLrs r�
test___self__z$InstancemethodAttrTest.test___self__sD����������+�+�T�W�W�5����T�W�W�Y�Y�
�D�G�G�^�Lrc��tjt|j�|j_|j |jj�t|j�� |jjj
|j
d�|j|jjddt�y#t$rY�8wxYw)N�4using unknown attributes should raise AttributeError�unknown_attrrI) rw�
MethodType�idr'r5r�r+rLr1rs r�test___func___non_methodz/InstancemethodAttrTest.test___func___non_methods����%�%�b�$�'�'�2����
����������r�$�'�'�{�3� N��G�G�J�J�#�#�
�I�I�L�M����T�W�W�Z�Z���N�K��� �� �s�2 C� C�CN)rrr r�r�r�r�r
rrr�r�
s��H�N�M�
Lrr�c��eZdZd�Zd�Zd�Zy)�ArbitraryFunctionAttrTestc���d|j_|j|jjd� d|jj_|jd�y#t$rYywxYw)Nr8z0setting attributes on methods should raise error)r&r9r5r'r!r+rLrs r�
test_set_attrz'ArbitraryFunctionAttrTest.test_set_attr,sa�������������*�*�A�.� J�#$�D�G�G�I�I� �
�I�I�H�I��� �� �s�A&�& A2�1A2c�^� |j`|jd�y#t$rYywxYw)Nz1deleting unknown attribute should raise TypeError)r&r�r+rLrs r�test_delete_unknown_attrz2ArbitraryFunctionAttrTest.test_delete_unknown_attr6s5�� K����#�
�I�I�I�J��� �� ��� � ,�,c��|j|jjfD] } |j|j d��"y#t
$rY�/wxYw)Nr�)r&r'r!�non_existent_attrr+rL)r rTs r�test_unset_attrz)ArbitraryFunctionAttrTest.test_unset_attr>sR���V�V�T�W�W�Y�Y�'�D�
,��&�&�� � �+�,�
(��"�
��
�s�A� A�AN)rrr r�r�r�r
rrr�r�+s��J�K�,rr�c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�FunctionDictsTestc���|j|jddt�ddlm}|ddi�}|j|j
jjd|t�y)N�__dict__r)�UserDictr9r8)r1r&rM�collectionsr�r'r!r�)r r�r�s r�test_setting_dict_to_invalidz.FunctionDictsTest.test_setting_dict_to_invalidJsN�����T�V�V�Z��y�A�(��l�A�&�'�����T�W�W�Y�Y�/�/��Q� �Jrc��ddi}||j_|j||jj�||jj_|j||j
jjj�|j||j
jj�|j|jjd�|j|jjdd�|j|j
jjjd�|j|j
jjd�y)Nr9r8) r&r�rJr"r!r'r�r5r9)r r�s r�test_setting_dict_to_validz,FunctionDictsTest.test_setting_dict_to_validPs���
�1���������
�
�a������)���������
�
�a������+�+�4�4�5��
�
�a������+�+�,�������*�*�A�.����������6��:���������+�+�6�6��:���������-�-�q�1rc�^� |j`|jd�y#t$rYywxYw)Nz3deleting function dictionary should raise TypeError)r&r�r+rMrs r�test_delete___dict__z&FunctionDictsTest.test_delete___dict__`s4�� M�����
�I�I�K�L��� �� �r�c�P�|j|jji�yr)r5r&r�rs r�test_unassigned_dictz&FunctionDictsTest.test_unassigned_dicths����������"�-rc�h�d}i}|||j<|j||j|�y)NzSome string)r&r5)r r/r�s r�test_func_as_dict_keyz'FunctionDictsTest.test_func_as_dict_keyks1��������$�&�&� �����4�6�6��E�*rN)rrr r�r�r�r�r�r
rrr�r�Is��K�2� M�.�+rr�c��eZdZd�Zd�Zy)�FunctionDocstringTestc��|j|jjd�d}||j_||jj_|j|jj|�|j|j
jj|�|j
|j
jd|t�y)NzA test method that does nothing�__doc__)r5r&r�r"r!r'r1rL)r �docstrs r�test_set_docstring_attrz-FunctionDocstringTest.test_set_docstring_attrss������������.�2�������!����������������0���������*�*�F�3����T�W�W�Y�Y� �6�>�Jrc��d|j_|j`|j|jjd�y)Nz
The docstring)r&r�r5rs r�test_delete_docstringz+FunctionDocstringTest.test_delete_docstring|s.��(������F�F�N����������.rN)rrr r�r�r
rrr�r�rs
��K�/rr�c�2�� �fd�}|�|jdS)Nc���t��yrrfrhs�rrizcell.<locals>.f��
���
�a�rr�rm)r/rir!s @rrlrl�s���3��
�A��=�=���rc�6�� �fd�}|sd�|jdS)Nc���t��yrrfrhs�rrizempty_cell.<locals>.f�r�ri�rr�)�emptyrir!s @r�
empty_cellr��s$�����
����=�=���rc��eZdZd�Zy)�CellTestc�x�|jtd�td�k�|jt�td�k�|jt�t�k(�|jtd�td�k(�|jtd�t�kD�y)NrIr%�saturdayi���gB�T)�
assertTruerlr�rs r�test_comparisonzCellTest.test_comparison�sz��
����Q��$�q�'�)�*����
��t�J�'7�7�8����
��
��4�5�����S� �T�%�[�0�1�����T�
�Z�\�1�2rN)rrr r�r
rrr�r��s�� 3rr�c��eZdZd�Zy)�StaticMethodAttrsTestc��d�}t|�}|j|j|u�t|�}|j|j|u�y)Nc��yrr
r
rrriz4StaticMethodAttrsTest.test_func_attribute.<locals>.f�s��r)�classmethodr�r��staticmethod)r rirrrSs r�test_func_attributez)StaticMethodAttrsTest.test_func_attribute�sC�� �
��N������
�
�a��(���O������
�
�a��(rN)rrr r�r
rrr�r��s��)rr�c��eZdZd�Zy)�BuiltinFunctionPropertiesTestc��ddl}|jtjd�|j|jjd�|jtj
jd�|jtjjd�|jtjjd�|jtjjd�|jgd�jjd �|jd
dijjd�y)
NrrR�timez
dict.fromkeyszfloat.__getformat__z
str.maketranszbytes.maketrans)rkrIr%zlist.append�foo�barzdict.pop)
r�r5rRr �dict�fromkeys�float�
__getformat__�str� maketrans�bytes�append�pop)r r�s r�test_builtin__qualname__z6BuiltinFunctionPropertiesTest.test_builtin__qualname__�s����
����)�)�5�1�������/�/��8�
������3�3�_�E�����,�,�9�9�.� 0�
������3�3�_�E�������5�5�7H�I�
����)�)�6�6�
�F����%���+�+�8�8�*�ErN)rrr r
r
rrr�r��s��Frr��__main__)T)rZrwr��unittestr�TestCaserr3r�r�r�r�rlr�r�r�r�r�mainr
rr�<module>rs�����
��
"�<�H�%�%�<�4\,�]�\,�~L�]�L�<,�
�,�<&+�
�&+�R
/�M�
/� � �
3�x� � �
3� )�H�-�-� )�F�H�$5�$5�F�2�z���H�M�M�O�r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists