ó
W¾÷Xc           @   s»   d  d l  m Z d  d l Z d  d l m Z d  d l m Z m Z m	 Z	 m
 Z
 m Z m Z e
 j Z e
 j Z d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ e d	 k r· e j ƒ  n  d S(
   iÿÿÿÿ(   t   catch_warningsN(   t   is_instance(   t	   MagicMockt   Mockt   patcht   sentinelt	   mock_opent   callt   WithTestc           B   sk   e  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   sJ   t  d t t j ƒ  |  j t t j d ƒ Wd  QX|  j t t j ƒ d  S(   Ns   %s.somethingt	   unpatched(   R   t   __name__R   t
   Something2t   assertEqualt	   somethingt	   Something(   t   self(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_with_statement   s    c         C   s{   yC t  d t t j ƒ ' |  j t t j d ƒ t d ƒ ‚ Wd  QXWn t k
 rV n X|  j d ƒ |  j t t j ƒ d  S(   Ns   %s.somethingR	   t   pows   patch swallowed exception(	   R   R
   R   R   R   R   t	   Exceptiont   failR   (   R   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_with_statement_exception   s    c         C   s\   t  d t ƒ 3 } |  j t | d ƒ |  j t | t ƒ d ƒ Wd  QX|  j t t j ƒ d  S(   Ns   %s.somethingR	   s   patching wrong type(	   R   R
   R   R   t
   assertTrueR   R   R   R   (   R   t   mock_something(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_with_statement_as&   s
    c         C   se   d t  f d „  ƒ  Y} | j } t j  | d ƒ  |  j | j | d ƒ Wd  QX|  j | j | ƒ d  S(   Nt   Fooc           B   s   e  Z d  Z RS(   t   foo(   R
   t
   __module__R   (    (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyR   /   s   R   R	   (   t   objectR   R   t   assertNotEqualR   (   R   R   t   original(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt    test_patch_object_with_statement.   s
    	c         C   s˜   t  d t ƒ ] t d t ƒ F } t d t ƒ - } |  j t | d ƒ |  j t | d ƒ Wd  QXWd  QXWd  QX|  j t t j ƒ |  j t t j	 ƒ d  S(   Nt   records   %s.somethings   %s.something_elseR	   (
   R    t   TrueR   R
   R   R   t   something_elseR   R   t   SomethingElse(   R   R   t   mock_something_else(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_with_statement_nested7   s    c         C   s_   t  d t t j ƒ 0 } |  j t | d ƒ |  j | t j d ƒ Wd  QX|  j t t j ƒ d  S(   Ns   %s.somethingR	   s   wrong patch(   R   R
   R   t   PatchedR   R   R   (   R   R   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_with_statement_specifiedC   s    c         C   sy   t  ƒ  } t  ƒ  | _ t  ƒ  | _ t | j _ |  } |  j | | j j ƒ Wd  QX| j j ƒ  | j j d  d  d  ƒ d  S(   N(   R   t	   __enter__t   __exit__t   Falset   return_valueR   t   assert_called_witht   None(   R   t   mockt   m(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   testContextManagerMockingJ   s    		c      
   C   sX   t  ƒ  } |  j t ƒ  |  d d Wd  QXWd  QX| j j ƒ  |  j | j j ƒ d  S(   NR   i   (   R   t   assertRaisest	   TypeErrorR'   R+   R   R(   t   called(   R   R-   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt$   test_context_manager_with_magic_mockV   s    	c         C   s‹   t  d t t j ƒ Y } |  j t | d ƒ t  d t ƒ  } |  j t | d ƒ Wd  QX|  j t | d ƒ Wd  QX|  j t t j d ƒ d  S(   Ns   %s.somethingR	   s   restored with wrong instances   not restored(   R   R
   R   R%   R   R   R   (   R   R   t
   mock_again(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt"   test_with_statement_same_attribute`   s    c         C   s‚   t  d t ƒ F } |  j t | d ƒ t  d t ƒ  } |  j t | d ƒ Wd  QXWd  QX|  j t t j ƒ |  j t t j ƒ d  S(   Ns   %s.somethingR	   s   %s.something_else(   R   R
   R   R   R!   R   R   R"   (   R   R   R#   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_with_statement_imbricatedm   s    c         C   sº   i  } t  j | i d d 6ƒ  |  j | i d d 6ƒ Wd  QX|  j | i  ƒ |  j t ƒ H t  j | i d d 6ƒ ( |  j | i d d 6ƒ t d ƒ ‚ Wd  QXWd  QX|  j | i  ƒ d  S(   Nt   bt   at   Konrad(   R   t   dictR   R0   t	   NameError(   R   R   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_dict_context_managery   s    (   R
   R   R   R   R   R   R$   R&   R/   R3   R5   R6   R<   (    (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyR      s   									
		t   TestMockOpenc           B   s}   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 d „  Z RS(   c         C   sV   t  ƒ  } t d t | d t ƒ! } |  j | | ƒ t d ƒ Wd  QX| j d ƒ d  S(   Ns   %s.opent   createR   (   R   R   R
   R    t   assertIst   opent   assert_called_once_with(   R   R-   t   patched(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_mock_openŠ   s
    	c      	   C   s´   t  ƒ  } | j } t d t | d t ƒ$ t d ƒ  } | j ƒ  Wd  QXWd  QXt d ƒ t ƒ  j ƒ  t ƒ  j ƒ  t ƒ  j	 d  d  d  ƒ g } |  j | j | ƒ |  j | | ƒ d  S(   Ns   %s.openR>   R   (   R   R*   R   R
   R    R@   t   readR   R'   R(   R,   R   t
   mock_callsR?   (   R   R-   t   handlet   ft   expected_calls(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_mock_open_context_manager“   s    		!c         C   sð   t  ƒ  } t d t | d t ƒC t d ƒ  } | j ƒ  Wd  QXt d ƒ  } | j ƒ  Wd  QXWd  QXt d ƒ t ƒ  j ƒ  t ƒ  j ƒ  t ƒ  j d  d  d  ƒ t d ƒ t ƒ  j ƒ  t ƒ  j ƒ  t ƒ  j d  d  d  ƒ g } |  j
 | j | ƒ d  S(   Ns   %s.openR>   R   t   bar(   R   R   R
   R    R@   RD   R   R'   R(   R,   R   RE   (   R   R-   RG   RH   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt-   test_mock_open_context_manager_multiple_timesŸ   s    	!!c         C   s`   t  ƒ  } t | ƒ t d t | d t ƒ! } |  j | | ƒ t d ƒ Wd  QX| j d ƒ d  S(   Ns   %s.openR>   R   (   R   R   R   R
   R    R?   R@   RA   (   R   R-   RB   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_explicit_mock®   s    	
c         C   s[   t  d d ƒ } t d t | d t ƒ t d ƒ } | j ƒ  } Wd  QX|  j | d ƒ d  S(   Nt	   read_dataR   s   %s.openR>   RJ   (   R   R   R
   R    R@   RD   R   (   R   R-   t   ht   result(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_read_data¹   s
    c         C   sê   t  d d ƒ } t d t | d t ƒ5 t d ƒ } | j ƒ  } | j ƒ  } | j ƒ  } Wd  QX|  j | d ƒ |  j | d ƒ |  j | d ƒ t  d d	 ƒ } t d t | d t ƒ t d ƒ } | j ƒ  } Wd  QX|  j | d	 ƒ d  S(
   NRM   s   foo
bar
baz
s   %s.openR>   RJ   s   foo
s   bar
s   baz
R   (   R   R   R
   R    R@   t   readlineR   (   R   R-   RN   t   line1t   line2t   line3RO   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_readline_dataÂ   s    c         C   sÄ   t  d d ƒ } t d t | d t ƒ t d ƒ } | j ƒ  } Wd  QX|  j | d d d g ƒ t  d d	 ƒ } t d t | d t ƒ t d ƒ } | j ƒ  } Wd  QX|  j | d d d
 g ƒ d  S(   NRM   s   foo
bar
baz
s   %s.openR>   RJ   s   foo
s   bar
s   baz
s   foo
bar
bazt   baz(   R   R   R
   R    R@   t	   readlinesR   (   R   R-   RN   RO   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_readlines_dataÖ   s    c      	   C   sg   t  d d ƒ } t d t | d t ƒ) t d d ƒ  } | j ƒ  } Wd  QXWd  QX|  j | d ƒ d  S(   NRM   s   Æs   %s.openR>   t   abct   rb(   R   R   R
   R    R@   RD   R   (   R   R-   RG   RO   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_read_bytesè   s
    c      	   C   sŸ   t  d d ƒ } t d t | d t ƒA t d d ƒ + } | j ƒ  } | j ƒ  } | j ƒ  } Wd  QXWd  QX|  j | d ƒ |  j | d ƒ |  j | d	 ƒ d  S(
   NRM   s   abc
def
ghi
s   %s.openR>   RY   RZ   s   abc
s   def
s   ghi
(   R   R   R
   R    R@   RQ   R   (   R   R.   RG   RR   RS   RT   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_readline_bytesð   s    c      	   C   sp   t  d d ƒ } t d t | d t ƒ) t d d ƒ  } | j ƒ  } Wd  QXWd  QX|  j | d d d	 g ƒ d  S(
   NRM   s   abc
def
ghi
s   %s.openR>   RY   RZ   s   abc
s   def
s   ghi
(   R   R   R
   R    R@   RW   R   (   R   R.   RG   RO   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_readlines_bytesü   s
    c         C   s5   d } t  d | ƒ } |  j | ƒ  j d ƒ | ƒ d  S(   Ns   foo
bar
bazRM   i
   (   R   R   RD   (   R   t	   some_dataR-   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt!   test_mock_open_read_with_argument  s    c         C   sð   t  d d ƒ } t d t | d t ƒ) t d ƒ } | j ƒ  } | j ƒ  } Wd  QX|  j | d ƒ |  j | d d g ƒ t  d d ƒ } t d t | d t ƒ) t d ƒ } | j ƒ  } | j ƒ  } Wd  QX|  j | d ƒ |  j | d	 ƒ d  S(
   NRM   s   foo
bar
baz
s   %s.openR>   RJ   s   foo
s   bar
s   baz
s   bar
baz
(	   R   R   R
   R    R@   RQ   RW   R   RD   (   R   R-   RN   RR   t   rest(    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_interleaved_reads  s    c         C   s´   t  d d ƒ } | ƒ  } d | j _ d | j _ d g | j _ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d g ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ d  S(   NRM   R   RJ   (   R   RD   R*   RQ   RW   R   (   R   R-   RF   (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   test_overriding_return_values   s    	(   R
   R   RC   RI   RK   RL   RP   RU   RX   R[   R\   R]   R_   Ra   Rb   (    (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyR=   ˆ   s   														t   __main__(   t   warningsR    t	   unittest2t   unittestt   mock.tests.supportR   R-   R   R   R   R   R   R   R   R   R"   R!   t   TestCaseR   R=   R
   t   main(    (    (    s1   /tmp/pip-build-h1VYrz/mock/mock/tests/testwith.pyt   <module>   s   .		v©