�n�UO � @ s� d d l Z d d l m Z m Z m Z d d l m Z m Z m Z m Z m Z m Z m Z Gd d � d e j � Z e d k r� e j � d S)� N)�is_instance�X� SomeClass)�Mock� MagicMock�NonCallableMagicMock�NonCallableMock�patch�create_autospec� CallableMixinc @ s� e Z d Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d S)�TestCallablec C s0 | j t | t � � | j t | t � � d S)N)� assertTruer r �assertFalser )�self�mock� r �/testcallable.py�assertNotCallable s zTestCallable.assertNotCallablec C sc x\ t � t � f D]H } | j t | � | j t | d � � | j | j j t | � � q Wd S)N�__call__) r r �assertRaises� TypeErrorr �hasattrZassertIn� __class__�__name__�repr)r r r r r �test_non_callable s zTestCallable.test_non_callablec C s0 | j t t t � � | j t t t � � d S)N)r � issubclassr r r r )r r r r �test_heirarchy s zTestCallable.test_heirarchyc C sT t � } | j t t | j � t � � t � } | j t t | j � t � � d S)N) r r r �type�oner r �twor )r r r r r r �test_attributes# s zTestCallable.test_attributesc C s� Gd d � d t � } | � } | j t t | j � | � � Gd d � d t � } | � } | j t t | j � | � � d S)Nc @ s e Z d Z d S)z-TestCallable.test_subclasses.<locals>.MockSubN)r � __module__�__qualname__r r r r �MockSub, s r$ c @ s e Z d Z d S)z.TestCallable.test_subclasses.<locals>.MagicSubN)r r"