ó
W¾÷Xc           @   sÐ   d  d l  m Z y e Wn e k
 r7 e Z e Z n Xd  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l m Z m Z d  d l m Z d e j f d „  ƒ  YZ e d k rÌ e j ƒ  n  d S(   iÿÿÿÿ(   t   divisionN(   t   Mockt	   MagicMock(   t   _magicst   TestMockingMagicMethodsc           B   sš  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j	 e
 j d ƒ d „  ƒ Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j	 e
 j d ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j	 d e  j! k d ƒ d „  ƒ Z" d „  Z# d  „  Z$ d! „  Z% e j	 e  j& d) k  d$ ƒ d% „  ƒ Z' d& „  Z( d' „  Z) d( „  Z* RS(*   c         C   sa   t  ƒ  } |  j t | d ƒ ƒ t  ƒ  | _ |  j t | d ƒ ƒ | ` |  j t | d ƒ ƒ d  S(   Nt   __getitem__(   R   t   assertFalset   hasattrR   t
   assertTrue(   t   selft   mock(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_deleting_magic_methods   s    	c            s\   t  ƒ  ‰  ˆ  ` |  j t ‡  f d †  ƒ t  ƒ  ‰  ˆ  d ˆ  ` |  j t ‡  f d †  ƒ d  S(   Nc              s   ˆ  d S(   Nt   foo(    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   <lambda>+   s    R   c              s   ˆ  d S(   NR   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   1   s    (   R   R   t   assertRaisest	   TypeError(   R	   (    (   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magicmock_del'   s    		c         C   s‡   t  ƒ  } d „  } | | _ |  j | j | ƒ |  j | d | d f ƒ |  j | j d ƒ | d f ƒ | | _ |  j | j | ƒ d  S(   Nc         S   s
   |  d f S(   Nt   fish(    (   R	   t   name(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   f6   s    R   R   (   R   R   t   assertIsNott   assertEqualt   assertIs(   R	   R
   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magic_method_wrapping4   s    				c            s]   t  ƒ  } t  ƒ  ‰  t  d t g  ƒ ƒ | _ |  j t | ƒ g  ƒ |  j t ‡  f d †  ƒ d  S(   Nt   return_valuec              s
   t  ˆ  ƒ S(   N(   t   list(    (   t   mock2(    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   H   s    (   R   t   itert   __iter__R   R   R   R   (   R	   t   mock1(    (   R   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt)   test_magic_methods_isolated_between_mocksB   s
    		c         C   sO   t  ƒ  } |  j t | ƒ d t | ƒ ƒ d „  | _ |  j t | ƒ d ƒ d  S(   Ns   <Mock id='%s'>c         S   s   d S(   NR   (    (   t   s(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   N   s    R   (   R   R   t   reprt   idt   __repr__(   R	   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt	   test_reprK   s    	 c         C   sN   t  ƒ  } |  j t | ƒ t j | ƒ ƒ d „  | _ |  j t | ƒ d ƒ d  S(   Nc         S   s   d S(   NR   (    (   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   U   s    R   (   R   R   t   strt   objectt   __str__(   R	   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_strR   s    	s   no unicode in Python 3c         C   sW   t  ƒ  } |  j t | ƒ t t | ƒ ƒ ƒ d „  | _ |  j t | ƒ t d ƒ ƒ d  S(   Nc         S   s
   t  d ƒ S(   NR   (   t   unicode(   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ^   s    R   (   R   R   R(   R$   t   __unicode__(   R	   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_unicodeY   s    	"c            s  t  ƒ  ‰ |  j t ‡ f d †  ƒ ‡ f d †  } ‡ f d †  } |  j t | ƒ |  j t | ƒ i  ‰  ‡  f d †  } ‡  f d †  } ‡  f d †  } | ˆ _ | ˆ _ | ˆ _ |  j t ‡ f d †  ƒ d ˆ d	 <|  j ˆ  i d d	 6ƒ |  j ˆ d	 d ƒ ˆ d	 =|  j ˆ  i  ƒ d  S(
   Nc              s   ˆ  d S(   NR   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   e   s    c              s   ˆ  d =d  S(   NR   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   _delf   s    c              s   d ˆ  d <d  S(   Ni   R   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   _seth   s    c            s   ˆ  | S(   N(    (   R   R   (   t   _dict(    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   getitemn   s    c            s   | ˆ  | <d  S(   N(    (   R   R   t   value(   R-   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   setitemp   s    c            s   ˆ  | =d  S(   N(    (   R   R   (   R-   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   delitemr   s    c              s   ˆ  d S(   NR   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   y   s    t   barR   (   R   R   R   t   __setitem__R   t   __delitem__t   KeyErrorR   (   R	   R+   R,   R.   R0   R1   (    (   R-   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_dict_methodsb   s&    				
c            s  t  ƒ  } ‰  d ˆ  _ |  j t ‡  f d †  ƒ ‡  f d †  } | ˆ  _ |  j ˆ  d ˆ  ƒ |  j ˆ  j d ƒ ˆ  ` d „  } |  j t | ˆ  ƒ | ˆ  _ ˆ  d 7‰  |  j ˆ  | ƒ |  j ˆ  j d ƒ |  j t ‡  f d †  ƒ | ˆ  _ |  j d	 ˆ  ˆ  ƒ |  j ˆ  j d
 ƒ d  S(   Ni    c              s   ˆ  d S(   Ni   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   …   s    c            s   ˆ  j  | 7_  |  S(   N(   R/   (   R	   t   other(   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   add‡   s    i   c         S   s   |  d 7}  d  S(   Ni   (    (   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   iadd   s    i   i	   c              s   d ˆ  S(   Ni   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   —   s    i   i   (   R   R/   R   R   t   __add__R   t   __iadd__t   __radd__(   R	   t   originalR8   R9   (    (   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_numeric   s$    				
	c            s(  t  ƒ  } ‰  d ˆ  _ |  j t ‡  f d †  ƒ ‡  f d †  } | ˆ  _ |  j ˆ  d ˆ  ƒ |  j ˆ  j d ƒ ˆ  ` t j rÒ d „  } |  j t | ˆ  ƒ | ˆ  _ ˆ  d ‰  |  j ˆ  | ƒ |  j ˆ  j d ƒ n	 d ˆ  _ |  j t ‡  f d †  ƒ | ˆ  _	 |  j d	 ˆ  ˆ  ƒ |  j ˆ  j d
 ƒ d  S(   Ni    c              s   ˆ  d S(   Ni   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   Ÿ   s    c            s   ˆ  j  | _  |  S(   N(   R/   (   R	   R7   (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   truediv¡   s    i   i   c         S   s   |  d }  d  S(   Ni   (    (   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   itruedivª   s    i   c              s   d ˆ  S(   Ni   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ´   s    g      à?i   (
   R   R/   R   R   t   __truediv__R   t   sixt   PY3t   __itruediv__t   __rtruediv__(   R	   R=   R?   R@   (    (   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_divisionœ   s(    					
		c         C   sT   t  ƒ  } |  j t | ƒ t  j | ƒ ƒ d „  } | | _ |  j t | ƒ d ƒ d  S(   Nc         S   s   d S(   Ni   (    (   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   _hash¾   s    i   (   R   R   t   hasht   __hash__(   R	   R
   RG   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt	   test_hash¹   s
    			c         C   sZ   t  ƒ  } |  j t | ƒ ƒ d „  } t j r: | | _ n	 | | _ |  j t | ƒ ƒ d  S(   Nc         S   s   t  S(   N(   t   False(   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   È   s    (   R   R   t   boolRB   t   PY2t   __nonzero__t   __bool__R   (   R	   t   mt   nonzero(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_nonzeroÄ   s    				c         C   sø  t  ƒ  } d „  } | | _ | _ | _ | _ |  j | d k  ƒ |  j | d k ƒ |  j | d k ƒ |  j | d k ƒ t j r|  j t  ƒ  d k  t	 ƒ  d k  ƒ |  j t  ƒ  d k t	 ƒ  d k ƒ |  j t  ƒ  d k t	 ƒ  d k ƒ |  j t  ƒ  d k t	 ƒ  d k ƒ nä |  j
 t d „  ƒ |  j
 t d „  ƒ |  j
 t d „  ƒ |  j
 t d „  ƒ |  j
 t d „  ƒ |  j
 t d „  ƒ |  j
 t d	 „  ƒ |  j
 t d
 „  ƒ |  j
 t d „  ƒ |  j
 t d „  ƒ |  j
 t d „  ƒ |  j
 t d „  ƒ d  S(   Nc         S   s   t  S(   N(   t   True(   R   t   o(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   compÓ   s    i   c           S   s   t  ƒ  t ƒ  k  S(   N(   R   R%   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   â   s    c           S   s   t  ƒ  t ƒ  k  S(   N(   R%   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ã   s    c           S   s   t  ƒ  t  ƒ  k  S(   N(   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ä   s    c           S   s   t  ƒ  t ƒ  k S(   N(   R   R%   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   å   s    c           S   s   t  ƒ  t ƒ  k S(   N(   R%   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   æ   s    c           S   s   t  ƒ  t  ƒ  k S(   N(   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ç   s    c           S   s   t  ƒ  t ƒ  k S(   N(   R   R%   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   è   s    c           S   s   t  ƒ  t ƒ  k S(   N(   R%   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   é   s    c           S   s   t  ƒ  t  ƒ  k S(   N(   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ê   s    c           S   s   t  ƒ  t ƒ  k S(   N(   R   R%   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ë   s    c           S   s   t  ƒ  t ƒ  k S(   N(   R%   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ì   s    c           S   s   t  ƒ  t  ƒ  k S(   N(   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   í   s    (   R   t   __lt__t   __gt__t   __le__t   __ge__R   RB   RM   R   R%   R   R   (   R	   R
   RU   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_comparisonÑ   s0    			"""%c         C   s”  xt  ƒ  t ƒ  f D] } |  j | | k t ƒ |  j | | k t ƒ |  j | | k t ƒ |  j | | k t ƒ |  j | t ƒ  k t ƒ |  j | t ƒ  k t ƒ d „  } | | _ |  j	 | d k ƒ |  j
 | d k ƒ d „  } | | _ |  j	 | d k ƒ |  j
 | d k ƒ q Wt ƒ  } t | j _ |  j | d k t ƒ |  j | d k t ƒ t | j _ |  j | d k t ƒ |  j | d k t ƒ d  S(   Nc         S   s
   | d k S(   Ni   (    (   R	   R7   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   eqù   s    i   i   c         S   s
   | d k S(   Ni   (    (   R	   R7   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   neÿ   s    (   R   R   R   RS   t   assertIsInstanceRL   RK   R%   t   __eq__R   R   t   __ne__R   (   R	   R
   R[   R\   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_equalityð   s,    					c            sÂ   t  ƒ  ‰  |  j t t ˆ  ƒ |  j t t ˆ  ƒ |  j t ‡  f d †  ƒ d „  ˆ  _ |  j t ˆ  ƒ d ƒ d „  ˆ  _ |  j d ˆ  ƒ |  j	 d ˆ  ƒ d „  ˆ  _
 |  j t ˆ  ƒ t d ƒ ƒ d  S(   Nc              s
   d ˆ  k S(   NR   (    (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR     s    c         S   s   d S(   Ni   (    (   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR     s    i   c         S   s
   | d k S(   Ni   (    (   R   RT   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR     s    i   c         S   s
   t  d ƒ S(   Nt	   foobarbaz(   R   (   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR     s    Ra   (   R   R   R   t   lenR   t   __len__R   t   __contains__t   assertInt   assertNotInR   R   (   R	   (    (   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_len_contains_iter  s    	c         C   sä   t  ƒ  } t d d d g ƒ | j _ |  j t | ƒ d d d g ƒ d } d } t j rh | | } } n  t t	 | | ƒ _ |  j
 t | | ƒ ƒ |  j
 t | ƒ ƒ x$ t D] } |  j t | | ƒ ƒ qª W|  j
 t | d ƒ ƒ d  S(   Ni   i   i   RN   RO   t   __imaginery__(   R   R   R   R   R   R   RB   RC   RK   t   getattrR   R   RL   R   R   (   R	   R
   R   R7   t   entry(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magicmock!  s    		c         C   s   t  ƒ  } |  j | t ƒ  k t ƒ |  j | t ƒ  k t ƒ |  j | t ƒ  k t ƒ |  j | t ƒ  k t ƒ |  j | | k t ƒ |  j | | k t ƒ d  S(   N(   R   R]   R%   RL   R   RK   RS   (   R	   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magic_mock_equality4  s    	c         C   s~  t  ƒ  } |  j t | ƒ d ƒ |  j t | ƒ d ƒ |  j t | ƒ d ƒ |  j t | ƒ t d ƒ ƒ |  j t ƒ  | ƒ |  j t | ƒ d ƒ |  j t	 | ƒ g  ƒ |  j t
 | ƒ t j | ƒ ƒ |  j t | ƒ t j | ƒ ƒ |  j t | ƒ t j | ƒ ƒ |  j t | ƒ t ƒ |  j t | ƒ ƒ t j rN|  j t | ƒ d ƒ n |  j t | ƒ d ƒ |  j t | ƒ d ƒ d  S(   Ni   y              ð?g      ð?i    t   1t   0o1t   0x1(   R   R   t   intt   complext   floatt   longRf   R%   Rb   R   RH   RI   R$   R&   R(   R]   R   RL   RB   RM   t   octt   hex(   R	   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magicmock_defaults?  s"    		s   no __cmp__ in Python 3c            sN   t  ƒ  ‰  |  j t ‡  f d †  ƒ t ƒ  ‰  d „  ˆ  _ |  j ˆ  t ƒ  ƒ d  S(   Nc              s   ˆ  j  S(   N(   t   __cmp__(    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   Z  s    c         S   s   d S(   Ni    (    (   R   RT   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ]  s    (   R   R   t   AttributeErrorR   Rw   R   R%   (   R	   (    (   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_non_default_magic_methodsW  s
    		c            s  d t  f d „  ƒ  Y} t d | ƒ ‰  |  j t ‡  f d †  ƒ t d t g  ƒ ƒ ˆ  _ |  j t ˆ  ƒ g  ƒ d t  f d „  ƒ  Y} t d | ƒ ‰  |  j t ‡  f d †  ƒ ‡  f d	 †  } |  j t | ƒ t d | ƒ ‰  |  j t ˆ  ƒ g  ƒ |  j t | ƒ d  S(
   Nt   Iterablec           B   s   e  Z d  „  Z RS(   c         S   s   d  S(   N(    (   R	   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   d  s    (   t   __name__t
   __module__R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyRz   c  s   t   specc              s   ˆ  j  S(   N(   R   (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   h  s    R   t   NonIterablec           B   s   e  Z RS(    (   R{   R|   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR~   m  s   c              s   ˆ  j  S(   N(   R   (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   p  s    c              s   t  d t g  ƒ ƒ ˆ  _ d  S(   NR   (   R   R   t   __int__(    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   set_intr  s    (	   R%   R   R   Rx   R   R   R   R   R   (   R	   Rz   R~   R€   (    (   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magic_methods_and_specb  s    c            s  d t  f d „  ƒ  Y} t d | ƒ ‰  |  j t ‡  f d †  ƒ t d t g  ƒ ƒ ˆ  _ |  j t ˆ  ƒ g  ƒ d t  f d „  ƒ  Y} t d | ƒ ‰  |  j t ‡  f d †  ƒ ‡  f d	 †  } |  j t | ƒ t d | ƒ ‰  |  j t ˆ  ƒ g  ƒ |  j t | ƒ d  S(
   NRz   c           B   s   e  Z d  „  Z RS(   c         S   s   d  S(   N(    (   R	   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   }  s    (   R{   R|   R   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyRz   |  s   t   spec_setc              s   ˆ  j  S(   N(   R   (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR     s    R   R~   c           B   s   e  Z RS(    (   R{   R|   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR~   †  s   c              s   ˆ  j  S(   N(   R   (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   ‰  s    c              s   t  d t g  ƒ ƒ ˆ  _ d  S(   NR   (   R   R   R   (    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR€   ‹  s    (	   R%   R   R   Rx   R   R   R   R   R   (   R	   Rz   R~   R€   (    (   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magic_methods_and_spec_set{  s    c            s/   t  ƒ  ‰  ‡  f d †  } |  j t d | ƒ d  S(   Nc              s   d „  ˆ  _  d  S(   Nc         S   s   d  S(   N(   t   None(   R	   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR   —  s    (   t   __setattr__(    (   R
   (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   set_setattr–  s    s9   Attempting to set unsupported magic method '__setattr__'.(   R   t   assertRaisesRegexRx   (   R	   R†   (    (   R
   s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt%   test_setting_unsupported_magic_method”  s
    		c         C   sT   t  ƒ  } | j } d „  } |  j | | ƒ t  ƒ | ƒ  } |  j | | ƒ t  ƒ d  S(   Nc         S   s   t  |  ƒ j d S(   Ni   (   t   typet   __mro__(   t   obj(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt	   _get_type¡  s    (   R   R   R   (   R	   R
   t   attrRŒ   t   returned(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt    test_attributes_and_return_valuež  s    				c         C   sP   t  ƒ  } |  j | j t  ƒ d | d d j _ |  j | d d d d ƒ d  S(   Ni   i   i   (   R   R]   R   R   R   (   R	   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt"   test_magic_methods_are_magic_mocks«  s    	c         C   sG   t  ƒ  } t | ƒ |  j | j j ƒ | j ƒ  |  j | j j ƒ d  S(   N(   R   R$   R   R&   t   calledt
   reset_mockR   (   R	   R
   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magic_method_reset_mock³  s
    	

c         C   sL   xE t  ƒ  t ƒ  f D]1 } d „  } | | _ |  j t | ƒ d g ƒ q Wd  S(   Nc         S   s   d g S(   NR   (    (   R	   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   _dir½  s    R   (   R   R   t   __dir__R   t   dir(   R	   R
   R”   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_dirº  s    		t   PyPys   This fails differently on pypyc         C   s/   t  ƒ  } d g j | _ |  j t t | ƒ d  S(   Ni   (   R   R   R   R   R   (   R	   RP   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_bound_methodsÃ  s    	c         C   s6   d t  f d „  ƒ  Y} | ƒ  } |  j | j | ƒ d  S(   Nt   Fooc           B   s   e  Z RS(    (   R{   R|   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyRš   Ð  s   (   R   R]   R   (   R	   Rš   R   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magic_method_typeÏ  s    	c         C   s5   t  ƒ  } d t | ƒ j _ |  j t | ƒ d ƒ d  S(   NR   (   R   R‰   R&   R   R   R$   (   R	   RP   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_descriptor_from_class×  s    	c         C   s°   t  ƒ  } d d d g | j _ |  j t | ƒ d d d g ƒ |  j t | ƒ d d d g ƒ t d d d g ƒ | j _ |  j t | ƒ d d d g ƒ |  j t | ƒ g  ƒ d  S(   Ni   i   i   i   i   i   (   R   R   R   R   R   R   (   R	   RP   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt"   test_iterable_as_iter_return_valueÝ  s    	i   i   s   @ added in Python 3.5c         B   s   e  j d ƒ } | d  Ud  S(   Nse              m = MagicMock()
            self.assertIsInstance(m @ 1, MagicMock)
            m.__matmul__.return_value = 42
            m.__rmatmul__.return_value = 666
            m.__imatmul__.return_value = 24
            self.assertEqual(m @ 1, 42)
            self.assertEqual(1 @ m, 666)
            m @= 24
            self.assertEqual(m, 24)
        (   t   textwrapt   dedent(   R	   t   src(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_matmulç  s    
	c         C   sÐ   t  ƒ  } |  j t d | ƒ t  ƒ d | j _ |  j t | d ƒ d ƒ t  ƒ  } t d | ƒ } |  j | t  ƒ | j d ƒ } |  j | t  ƒ t | d ƒ } |  j | t  ƒ | j d ƒ } |  j | t  ƒ d  S(   Ni   i   i   (   i   i   (   i   i   (   R   R]   t   divmodt
   __divmod__R   R   t   __rdivmod__(   R	   RP   R   t
   foo_directR2   t
   bar_direct(    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_divmod_and_rdivmodö  s    		c         C   s-   t  i d d 6  } |  j t | ƒ d ƒ d  S(   Nt   12s   __str__.return_value(   R   R   R$   (   R	   RP   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   test_magic_in_initialization  s    c         C   sv   t  i d d 6  } d | j _ |  j t | ƒ d ƒ t  i d d 6  } | j i d d 6  |  j t | ƒ d ƒ d  S(   NR¨   s   __str__.return_valuet   13t   14(   R   R&   R   R   R$   t   configure_mock(   R	   RP   (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt)   test_changing_magic_set_in_initialization  s    (   i   i   (+   R{   R|   R   R   R   R   R#   R'   t   unittestt   skipIfRB   RC   R*   R6   R>   RF   RJ   RR   RZ   R`   Rg   Rk   Rl   Rv   Ry   R   Rƒ   Rˆ   R   R   R“   R—   t   syst   versionR™   R›   Rœ   R   t   version_infoR¡   R§   R©   R­   (    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyR      sD   																						
					$			
$		t   __main__(   t
   __future__R    R(   t	   NameErrorR$   Rp   Rs   t   inspectR°   Rž   RB   t	   unittest2R®   R
   R   R   t	   mock.mockR   t   TestCaseR   R{   t   main(    (    (    s9   /tmp/pip-build-h1VYrz/mock/mock/tests/testmagicmethods.pyt   <module>   s    
ÿ û