Sindbad~EG File Manager
�
*Μg� � � � d dl Z d dlmZmZmZ d dlmZmZmZm Z m
Z
mZmZ G d� de j � Zedk( r e j � yy)� N)�is_instance�X� SomeClass)�Mock� MagicMock�NonCallableMagicMock�NonCallableMock�patch�create_autospec�
CallableMixinc �T � e Zd Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z
d � Zd
� Zd� Z
d� Zy
)�TestCallablec � � | j t |t � � | j t |t � � y �N)�
assertTruer r �assertFalser ��self�mocks �E/usr/local/lib/python3.12/test/test_unittest/testmock/testcallable.py�assertNotCallablezTestCallable.assertNotCallable s+ � �����D�*>�?�@�����T�=�9�:� c � � t � t � fD ]b }| j t |� | j t |d� � | j
|j j t |� � �d y )N�__call__)
r r �assertRaises� TypeErrorr �hasattr�assertIn� __class__�__name__�reprr s r �test_non_callablezTestCallable.test_non_callable sX � �(�*�O�,=�=�D����i��.����W�T�:�6�7��M�M�$�.�.�1�1�4��:�>� >r c � � | j t t t � � | j t t t
� � y r )r �
issubclassr r r r �r s r �test_hierarchyzTestCallable.test_hierarchy s) � ����
�9�d�3�4����
�#7��I�Jr c �� � t � }| j t t |j � t
� � t
� }| j t t |j � t � � y r ) r r r$ �type�oner r �twor )r r) r* s r �test_attributeszTestCallable.test_attributes# sH � �������
�4����=�$�7�8�"�$�����
�4����=�)�<�=r c � � G d� dt � } |� }| j t t |j � |� � G d� dt
� } |� }| j t t |j � |� � y )Nc � � e Zd Zy)�-TestCallable.test_subclasses.<locals>.MockSubN�r �
__module__�__qualname__� r r �MockSubr. , � � �r r3 c � � e Zd Zy)�.TestCallable.test_subclasses.<locals>.MagicSubNr/ r2 r r �MagicSubr6 2 r4 r r7 )r r r$ r( r) r r* )r r3 r) r7 r* s r �test_subclasseszTestCallable.test_subclasses+ sb � � �d� � �i�����
�4����=�'�:�;� �y� � �j�����
�4����=�(�;�<r c � � t dt z d�� }|j � }| j |j � |� }|j � | j
|� | j t |� y )N�%s.XT��spec� r
r �start�
addCleanup�stop�assert_called_once_withr r r �r �patcherr �instances r �test_patch_speczTestCallable.test_patch_spec9 s_ � ����)��5���}�}���������%��6���$�$�&����x�(����)�X�.r c � � t dt z d�� }|j � }| j |j � |� }|j � | j
|� | j t |� y )Nr: T��spec_setr= rB s r �test_patch_spec_setz TestCallable.test_patch_spec_setE s_ � ����)�D�9���}�}���������%��6���$�$�&����x�(����)�X�.r c �� � t dt z t � �� }|j � }| j |j
� | j
|� | j t |� y )Nr: r; � r
r r r>