�
���_�? � � � d dl Z d dlZd dlZd dlmZmZmZ d dlmZ d dl m
Z
G d� dej � � Ze
dk r ej � � dS dS )� N)� AsyncMock�Mock� MagicMock)�iscoroutinefunction)�_magicsc �� � e Zd Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z
d � Zd
� Zd� Z
d� Zd
� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z!d � Z"d!� Z#d"� Z$d#S )$�TestMockingMagicMethodsc � � t � � }| � t |d� � � � t � � |_ | � t |d� � � � |`| � t |d� � � � d S )N�__getitem__)r �assertFalse�hasattrr �
assertTrue��self�mocks �=/usr/lib/python3/dist-packages/mock/tests/testmagicmethods.py�test_deleting_magic_methodsz3TestMockingMagicMethods.test_deleting_magic_methods s{ � ��v�v�������}�5�5�6�6�6��6�6��������m�4�4�5�5�5��������}�5�5�6�6�6�6�6� c �� �� t � � ��`| � t �fd�� � t � � ��d �`| � t �fd�� � d S )Nc � �� � d S �N�foo� �r s �r �<lambda>z<TestMockingMagicMethods.test_magicmock_del.<locals>.<lambda> � �� �T�%�[� r r c � �� � d S r r r s �r r z<TestMockingMagicMethods.test_magicmock_del.<locals>.<lambda> r r )r r �assertRaises� TypeErrorr s @r �test_magicmock_delz*TestMockingMagicMethods.test_magicmock_del sp �� ��{�{�������)�%8�%8�%8�%8�9�9�9��{�{���U��������)�%8�%8�%8�%8�9�9�9�9�9r c �B � t � � }d� }||_ | � |j |� � | � |d |df� � | � |� d� � |df� � ||_ | � |j |� � d S )Nc �
� | dfS )N�fishr �r �names r �fz=TestMockingMagicMethods.test_magic_method_wrapping.<locals>.f% s � ���<�r r r# )r r �assertIsNot�assertEqual�assertIs)r r r& |