ó
W¾÷Xc           @   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 d e j f d „  ƒ  YZ e d k rŽ e j ƒ  n  d S(   iÿÿÿÿN(   t   is_instancet   Xt	   SomeClass(   t   Mockt	   MagicMockt   NonCallableMagicMockt   NonCallableMockt   patcht   create_autospect   CallableMixint   TestCallablec           B   st   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z RS(   c         C   s0   |  j  t | t ƒ ƒ |  j t | t ƒ ƒ d  S(   N(   t
   assertTrueR    R   t   assertFalseR	   (   t   selft   mock(    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   assertNotCallable   s    c         C   sc   x\ t  ƒ  t ƒ  f D]H } |  j t | ƒ |  j t | d ƒ ƒ |  j | j j t	 | ƒ ƒ q Wd  S(   Nt   __call__(
   R   R   t   assertRaisest	   TypeErrorR   t   hasattrt   assertInt	   __class__t   __name__t   repr(   R   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_non_callable   s    c         C   s0   |  j  t t t ƒ ƒ |  j  t t t ƒ ƒ d  S(   N(   R   t
   issubclassR   R   R   R   (   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_heirarchy   s    c         C   sT   t  ƒ  } |  j t t | j ƒ t ƒ ƒ t ƒ  } |  j t t | j ƒ t ƒ ƒ d  S(   N(	   R   R   R   t   typet   oneR   R   t   twoR   (   R   R   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_attributes#   s    		c         C   s€   d t  f d „  ƒ  Y} | ƒ  } |  j t t | j ƒ | ƒ ƒ d t f d „  ƒ  Y} | ƒ  } |  j t t | j ƒ | ƒ ƒ d  S(   Nt   MockSubc           B   s   e  Z RS(    (   R   t
   __module__(    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR   ,   s   t   MagicSubc           B   s   e  Z RS(    (   R   R    (    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR!   2   s   (   R   R   R   R   R   R   R   (   R   R   R   R!   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_subclasses+   s    		c         C   sf   t  d t d t ƒ} | j ƒ  } |  j | j ƒ | ƒ  } | j ƒ  |  j | ƒ |  j t	 | ƒ d  S(   Ns   %s.Xt   spec(
   R   R   t   Truet   startt
   addCleanupt   stopt   assert_called_once_withR   R   R   (   R   t   patcherR   t   instance(    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_patch_spec9   s    	
c         C   sf   t  d t d t ƒ} | j ƒ  } |  j | j ƒ | ƒ  } | j ƒ  |  j | ƒ |  j t	 | ƒ d  S(   Ns   %s.Xt   spec_set(
   R   R   R$   R%   R&   R'   R(   R   R   R   (   R   R)   R   R*   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_patch_spec_setE   s    	
c         C   sV   t  d t d t ƒ  ƒ} | j ƒ  } |  j | j ƒ |  j | ƒ |  j t | ƒ d  S(   Ns   %s.XR#   (	   R   R   R   R%   R&   R'   R   R   R   (   R   R)   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_patch_spec_instanceQ   s
    c         C   sV   t  d t d t ƒ  ƒ} | j ƒ  } |  j | j ƒ |  j | ƒ |  j t | ƒ d  S(   Ns   %s.XR,   (	   R   R   R   R%   R&   R'   R   R   R   (   R   R)   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_patch_spec_set_instanceZ   s
    c         C   sd  d t  f d „  ƒ  Y} d | f d „  ƒ  Y} d t | f d „  ƒ  Y} d d d „  ƒ  Y} d	 | f d
 „  ƒ  Y} xï d D]ç } xÞ | | | | | f D]Ç } t d t i | | 6 ¥ } | ƒ  }	 | j ƒ  |  j t |	 t ƒ ƒ |  j t	 t
 |	 d ƒ |	 ƒ  }
 |	 j ƒ  |
 d d d ƒ |
 j d d d ƒ |
 j d d d ƒ |
 j j d d d ƒ Wd  QXq‘ Wqu Wd  S(   Nt	   CallableXc           B   s   e  Z d  „  Z RS(   c         S   s   d  S(   N(    (   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR   e   s    (   R   R    R   (    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR0   d   s   t   Subc           B   s   e  Z RS(    (   R   R    (    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR1   h   s   t   Multic           B   s   e  Z RS(    (   R   R    (    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR2   k   s   t   OldStylec           B   s   e  Z d  „  Z RS(   c         S   s   d  S(   N(    (   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR   o   s    (   R   R    R   (    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR3   n   s   t   OldStyleSubc           B   s   e  Z RS(    (   R   R    (    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR4   r   s   R#   R,   s   %s.Xt	   foobarbazi   i   i   (    (   s   specs   spec_set(   R   R   R   R   R(   R   R    R   R   t   AttributeErrort   getattrt   foo(   R   R0   R1   R2   R3   R4   t   argt   KlassR   R*   t   result(    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_patch_spec_callable_classc   s&    	
	
c         C   sH   t  t ƒ } | ƒ  } |  j t | ƒ t  t ƒ  ƒ } |  j t | ƒ d  S(   N(   R   R   R   R   (   R   R   R*   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_create_autospecŠ   s
    	c         C   sV   t  t d t ƒ} |  j t | ƒ | j ƒ  | j j ƒ  |  j t | j d d ƒ d  S(   NR*   t   somet   args(   R   R   R$   R   R   t   wibbleR(   (   R   R   (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   test_create_autospec_instance“   s
    
(   R   R    R   R   R   R   R"   R+   R-   R.   R/   R<   R=   RA   (    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyR
      s   												'		t   __main__(   t	   unittest2t   unittestt   mock.tests.supportR    R   R   R   R   R   R   R   R   R   R	   t   TestCaseR
   R   t   main(    (    (    s5   /tmp/pip-build-h1VYrz/mock/mock/tests/testcallable.pyt   <module>   s
   4