
    z%i-                    *   d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZmZmZmZ  G d de      Z G d d	e      Z G d
 d      Zd Z G d dej:                        Zedk(  r ej@                          yy)    N)	ALWAYS_EQ)is_instancemock)callDEFAULTpatchsentinel	MagicMockMockNonCallableMockNonCallableMagicMock	AsyncMock_Call	_CallListcreate_autospecInvalidSpecErrorc                   "    e Zd Zd Zd Zd ZeZy)Iterc                 (    t        g d      | _        y )Nthisisaniter)r   thingselfs    X/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_unittest/testmock/testmock.py__init__zIter.__init__   s    67
    c                     | S N r   s    r   __iter__zIter.__iter__   s    r!   c                 ,    t        | j                        S r#   )nextr   r   s    r   r'   z	Iter.next   s    DJJr!   N)__name__
__module____qualname__r    r%   r'   __next__r$   r!   r   r   r      s    8  Hr!   r   c                   8    e Zd ZddZedd       Zedd       Zy)	SomethingNc                      y r#   r$   r   abcds        r   methzSomething.meth        r!   c                      y r#   r$   )clsr0   r1   r2   r3   s        r   cmethzSomething.cmeth"   s    %)r!   c                      y r#   r$   r0   r1   r2   r3   s       r   smethzSomething.smeth%   s     $r!   r#   )r(   r)   r*   r4   classmethodr8   staticmethodr;   r$   r!   r   r-   r-      s!    )) )$ $r!   r-   c                       e Zd ZdZdZdZy)TyposN)r(   r)   r*   	autospect	auto_specset_specr$   r!   r   r?   r?   )   s    IIHr!   r?   c                      y r#   r$   r0   s    r   	somethingrE   /   r5   r!   c                   B   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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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(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdO ZQdP ZRdQ ZSdR ZTdS ZUdT ZVdU ZWdV ZXdW ZYdX ZZdY Z[dZ Z\d[ Z]d\ Z^d] Z_d^ Z`d_ Zad` Zbda Zcdb Zddc Zedd Zfde Zgdf Zhdg Zidh Zjdi Zkdj Zldk Zmdl Zndm Zodn Zpdo Zqdp Zrdq Zsdr Ztds Zudt Zvdu Zwdv Zxdw Zydx Zzdy Z{dz Z|d{ Z}d| Z~d} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)MockTestc                     t        d       y )Nzfrom unittest.mock import *)execr   s    r   test_allzMockTest.test_all4   s     	*+r!   c                 p   t               }| j                  |j                  d       | j                  |j                  dd       | j                  t        |j                  t               d       | j                  |j                  d d       | j                  |j                  g d       | j                  |j                  g d       | j                  d|j                  d	       | j                  |j                  d
       | j                  |j                  d       | j                  |j                   i d       y )Nz called not initialised correctlyr   z$call_count not initialised correctlyz&return_value not initialised correctlyz#call_args not initialised correctly(call_args_list not initialised correctlyz&method_calls not initialised correctly_itemsz/default mock should not have '_items' attributez parent not initialised correctlyz!methods not initialised correctlyz$children not initialised incorrectly)r   assertFalsecalledassertEqual
call_count
assertTruer   return_value	call_argscall_args_listmethod_callsassertNotIn__dict__assertIsNone_mock_parent_mock_methods_mock_childrenr   r   s     r   test_constructorzMockTest.test_constructor;   s   v&HI!?	AD$5$5t<@	B 	>	@,,bC	E**BB	D 	4==J	L 	$++<	>$,,=	?,,b?	Ar!   c                 T    t        d       }| j                  |j                  d       y )NrS   z(return value in constructor not honoured)r   rY   rS   r]   s     r    test_return_value_in_constructorz)MockTest.test_return_value_in_constructorW   s&    &$++D	Fr!   c                 p    d }t        |      }d|j                  _        | j                   |       d       y )Nc                       y r#   r$   r$   r!   r   fz9MockTest.test_change_return_value_via_delegate.<locals>.f^   r5   r!      )r   r   rS   rP   r   rd   r   s      r   %test_change_return_value_via_delegatez.MockTest.test_change_return_value_via_delegate]   s-    q!!"		#r!   c                     d }t        |      }t               |j                  _        | j	                  t              5   |        d d d        y # 1 sw Y   y xY w)Nc                       y r#   r$   r$   r!   r   rd   z8MockTest.test_change_side_effect_via_delegate.<locals>.fe   r5   r!   )r   	TypeErrorr   side_effectassertRaisesrf   s      r   $test_change_side_effect_via_delegatez-MockTest.test_change_side_effect_via_delegated   sE    q! )		y) 	F	 	 	s   AAc           	      B   t        d      }| j                  dt        |             | j                  dt        |      z  t        |             t               dft        d      dfg}|D ]1  \  }}| j                  d|z  t        |j                               | j                  d|z  t         |j
                                      | j                  d|z  t         |j
                         j                               | j                  d	|z  t         |                    | j                  d
|z  t          |                           | j                  d|z  t          |              j
                  j                  j                         j                               4 y )Nfoonamez'%s'r   barz%s.barz%s.foo()z%s.foo().bingz%s()z%s()()z%s()().foo.bar.baz().bing)r   assertInrepridrr   ro   bingbaz)r   r   mocksrq   s       r   	test_reprzMockTest.test_reprl   s4   eT$Z(fr$x'd4&&!De$4e#<= 	=JD$MM(T/4>:MM*t+T($((*-=>MM/D0$xtxxz2GHMM&4-df6MM(T/4>:MM5<vtvx||//335::;=	=r!   c                     G d dt               }t        |      }| j                  dt        |             t         |             }| j                  dt        |             t        |      }| j                  dt        |             t         |             }| j                  dt        |             t        |d      }| j                  dt        |             | j                  d	t        |             t        d
      }| j	                  dt        |             t               }| j	                  dt        |             t        dg      }| j	                  dt        |             y )Nc                       e Zd Zy)'MockTest.test_repr_with_spec.<locals>.XNr(   r)   r*   r$   r!   r   Xr|   }       r!   r~   specz
 spec='X' spec_setz spec_set='X' ro   )r   rq   z name='foo' rp   r   )objectr   rs   rt   rW   r   r~   r   s      r   test_repr_with_speczMockTest.test_repr_with_spec|   s   	 	 |lDJ/~lDJ/Q&T
3QS!&T
3'lDJ/nd4j1d,vd,%!d,r!   c                 
   t               }d }||_        | j                  t        |ddd        |j                  ddd       g dfd}||_        | j                   |        |        |       gg dd	       t        t        j                  
      }| j                  |j                  t        j                  d       d }t        |t        j                        }| j                   |       t        j                         y )Nc                      t        d      )Nkablooie)SystemError)argskwargss     r   effectz)MockTest.test_side_effect.<locals>.effect   s    j))r!   re         fishre   r   r   c                  $     j                         S r#   popresultss   r   r   z)MockTest.test_side_effect.<locals>.effect       ;;= r!   r   r   re   zside effect not used correctlyrk   z#side effect in constructor not usedc                      t         S r#   r   r$   r!   r   rk   z.MockTest.test_side_effect.<locals>.side_effect   s    Nr!   )rk   rS   )	r   rk   rl   r   assert_called_withrP   r
   
SideEffectRETURN)r   r   r   rk   r   s       @r   test_side_effectzMockTest.test_side_effect   s    v	* "+tQ:11-	!!$&$&$&19:	<  3 34))8+>+>?	A	(//J1r!   c                    g dfd}d }t        |      }g d|_        | j                   |        |        |       gg dd       g dt        |      }||_        | j                   |        |        |       gg dd       y )Nr   c                  $     j                         S r#   r   r   s   r   r   z2MockTest.test_autospec_side_effect.<locals>.effect   r   r!   c                       y r#   r$   r$   r!   r   rd   z-MockTest.test_autospec_side_effect.<locals>.f   r5   r!   z1side effect not used correctly in create_autospecr   z'callable side effect not used correctly)r   rk   rP   )r   r   rd   r   r   s       @r   test_autospec_side_effectz"MockTest.test_autospec_side_effect   s    	!q!$$&$&$&19M	O q!!$&$&$&19C	Er!   c                 n    d }t        |      }t        d      |_        | j                  t        d|       y )Nc                       y r#   r$   r$   r!   r   rd   z7MockTest.test_autospec_side_effect_exception.<locals>.f   r5   r!   zBazinga!)r   
ValueErrorrk   assertRaisesRegexrf   s      r   #test_autospec_side_effect_exceptionz,MockTest.test_autospec_side_effect_exception   s.    q!%j1z:t<r!   c                 *    G d dt               }t        j                  j                  |d      5  | j                  t        d      5  t        |      j                   d d d        | j                  t        d      5  t        j                  j                  |dd      j                          d d d        | j                  t        d      5  t        j                  j                  |j                  d	d      j                          d d d        | j                  t        d
      5  t        j                  j                  |d|j                        j                          d d d        | j                  t        d      5  t        j                  j                  |d|j                        j                          d d d        | j                  t        d      5  t        j                  j                  |d|j                        j                          d d d        | j                  t        d      5  t        j                  |j                         d d d        t        j                  dt        j                               5  t        j                          d d d        d d d        y # 1 sw Y   IxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   #xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   kxY w# 1 sw Y   y xY w)Nc                   "    e Zd Z G d de      Zy)&MockTest.test_autospec_mock.<locals>.Ac                       e Zd ZdZy)(MockTest.test_autospec_mock.<locals>.A.BN)r(   r)   r*   Cr$   r!   r   Br      s    r!   r   N)r(   r)   r*   r   r   r$   r!   r   Ar      s    F r!   r   r   z8Cannot autospec attr 'B' from target <MagicMock spec='A'z(Cannot autospec attr 'B' from target 'A'Tautospecz-Cannot autospec attr 'C' as the patch target r   z!Cannot spec attr 'B' as the spec r   z%Cannot spec attr 'B' as the spec_set r   zCannot spec a Mock object.zbuiltins.open)
r   r   r	   r   r   r   r   startr   	mock_open)r   r   s     r   test_autospec_mockzMockTest.test_autospec_mock   s   	 	 ZZq#& 	!''(8(bd %"$$% ''(8(RT A

!!!S4!8>>@A ''(8(WY C

!!!##sT!:@@BC ''(8(KM <

!!!Sqss!399;< ''(8(OQ @

!!!S133!7==?@ ''(8(OQ @

!!!S133!7==?@ ''(8:VW 		!##OT^^-=> ! !+	! 	!% %A AC C< <@ @@ @ ! !+	! 	!s   L	J$L	;1J1,L	
;J>L	#;KL	<;K7L	;K%L	. K10L	>K=L	$J.	)L	1J;	6L	>K	L	K	L	K"	L	%K.	*L	1K:	6L	=L	L		Lc                    t               }dg}t        d||      } |t        j                  t        j                         |j                  } |j                          t        j
                  |_        |j                  } |         |j                          | j                  |j                  dd       | j                  |j                  |d       | j                  |j                  |d       | j                  |j                  d       | j                  |j                  d	d
       | j                  |j                   d d       | j                  |j"                  g d       | j                  |j$                  g d|j$                  dg        | j                  |j&                  g        | j                  |j                  t        j
                  d       | j                  |j                  |d       | j                  |j                  d       | j                  |j(                  d|id       | j                  |j                  |d       | j                  |j                  j                  d       y )NrE   child)rq   parentr   rE   zname incorrectly resetzparent incorrectly resetzmethods incorrectly resetzcalled not resetr   zcall_count not resetzcall_args not resetzcall_args_list not resetz(method_calls not initialised correctly: z != zside_effect incorrectly resetzreturn_value incorrectly resetzreturn value mock not resetzchildren reset incorrectlyzchildren incorrectly clearedzchild not reset)r   r
   r-   SomethingElserE   r   rk   rS   
reset_mockrP   
_mock_namerZ   r[   rN   rO   rQ   rT   rU   rV   
mock_callsr\   )r   r   r   r   rE   rS   s         r   test_reset_mockzMockTest.test_reset_mock   s   }d;X8+A+ABNN	#..(('1	3**F3	5++T4	6 	&89!-CD/DE,,b2LM**B**B0	1 	"-))8+>+>9	;**L:	<,,.KL,,{I.F6	88	:..0ABr!   c                 H    t               }||_         |j                          y r#   )r   rS   r   r]   s     r   test_reset_mock_recursionz"MockTest.test_reset_mock_recursion  s    v  	r!   c                 L    t        j                         }|j                          y r#   )r   r   r   r   r0   s     r   (test_reset_mock_on_mock_open_issue_18622z1MockTest.test_reset_mock_on_mock_open_issue_18622  s    NN	r!   c                    t               }| j                  t        |j                  t               d        |       }| j	                   |       |d        |j
                           |t        j                        }| j                  |j                  d       | j	                  |j                  dd       | j	                  |j                  t        j                  fi fd       | j	                  |j                  j                  t        j                  fd       | j	                  |j                  j                  i d       | j	                  |j                  t        j                  fi fgd       t        j                  |_         |t        j                  t        j                        }| j	                  |t        j                  d	       | j	                  |j                  d
d       | j	                  |j                  t        j                  fdt        j                  ifd       | j	                  |j                  t        j                  fi ft        j                  fdt        j                  ifgd       y )Nz%Default return_value should be a Mockz'different result from consecutive callszcalled not setre   zcall_count incorrectzcall_args not setrL   )keyzincorrect return valuer   r   zcall_args_list not set)r   rR   r   rS   rP   r   r
   ArgrO   rQ   rT   r   r   rU   ReturnValueKeyArg)r   r   resultret_vals       r   	test_callzMockTest.test_call"  s   vD$5$5t<?	A B	Dx||$%56!-CD8<</2)>,	.,,x||o,	...,	.,,/D.EC	E %00x||9("6"61	3 	!-CD#<</E8??+CD,	. 	,,ll_b!ll_uhoo67/
 %		&r!   c           	         t               } |         |t        j                          |t        j                          |t        j                  t        j                         | j	                  |j
                  dt        j                  ffdt        j                  ift        j                  fdt        j                  ifg       | j	                  |j                  t        j                  fdt        j                  if       | j	                  |j                  j                  t        j                  f       | j	                  |j                  j                  dt        j                  i       | j                  |j                  dk(         y )N)kwr$   r   za long sequence)
r   r
   r   KwargrP   rU   rT   r   r   rN   r]   s     r   test_call_args_comparisonz"MockTest.test_call_args_comparisonH  s   vX\\X\\hnn-,,ll_HNN#%ll_tX^^45	/
 	 	#<</D(..+AB	D,,x||o>..x~~0FG 	+<<=r!   c                 h   t        j                         }| j                  ||k(         | j                  ||k7         | j                  |t        j                         k(         | j                  |t        j                         k7         | j                  |t         j                  k(         | j                  |t         j                  k7         | j                  t         j                  |k(         | j                  t         j                  |k7         | j                  |t
        k(         | j                  |t
        k7         t        j                  t        j                               }t        j                  t         j                        }| j                  ||k(         | j                  ||k7         | j                  ||k(         | j                  ||k7         | j                  |t
        k(         | j                  |t
        k7         | j                  |dk(         | j                  |dk7         y )Nre   )r   r   rR   rN   ANYr   r   )r   mmcall1call2s       r   test_calls_equal_with_anyz"MockTest.test_calls_equal_with_any^  s    ^^b!r"t~~//0dnn../dhh'txx(B'R(i(y)		$..*+		$((#'%('%(*+)+,!$
#r!   c                 4   t               } |         |j                          | j                  t        |j                  d        |j                          | j                  t        |j                          |ddddd        |j                  ddddd       y )Nre   r   r   r   nothingr0   r1   )r   r   rl   AssertionErrorr   r]   s     r   test_assert_called_withz MockTest.test_assert_called_withz  s    v 	 !.$*A*A1E.$*A*ABQ1),1a6Y?r!   c                 v    t               } |t                      |j                  t        j                         y r#   )r   r   r   r   r   ms     r   test_assert_called_with_anyz$MockTest.test_assert_called_with_any  s$    K	)+	TXX&r!   c                    d
d}t        |      } |ddd        |j                  ddd        |j                  ddd       | j                  t        |j                  ddd       | j                  t              5 } |j                  d	       d d d        | j	                  j
                  j                  t               y # 1 sw Y   4xY w)Nc                      y r#   r$   r:   s       r   rd   z9MockTest.test_assert_called_with_function_spec.<locals>.f  r5   r!   r   re   r   r   r1   r2   r0   r1   r2      er#   )r   r   rl   r   assertIsInstance	exception	__cause__rj   r   rd   r   cms       r   %test_assert_called_with_function_specz.MockTest.test_assert_called_with_function_spec  s    $|Q!q1a(!qA..$*A*AqA 	 	' ~. 	)"#D##a(	)bll44i@	) 	)s   >CCc                 |     fd}t        t               j                        } ||       t        t        j                        } ||       t        t               j                        } ||       t        t        j                        } ||       t        t               j                        } ||       y )Nc                      | ddd        | j                   ddd        | j                   ddd       j                  t        | j                   ddd       y )Nre   r   r   r   r   )r   rl   r   r   r   s    r   _checkz<MockTest.test_assert_called_with_method_spec.<locals>._check  s[    a1#D##Aq!,#D##a12nd.E.E1  +r!   r   )r   r-   r4   r8   r;   )r   r   r   s   `  r   #test_assert_called_with_method_specz,MockTest.test_assert_called_with_method_spec  s    	+ ))*t)t**+t)t**+tr!   c                 T   d}| j                  t        |j                  d            5  t               j	                          d d d        | j                  t        |j                  d            5  t        d      j	                          d d d        y # 1 sw Y   RxY w# 1 sw Y   y xY w)Nz"Expected '{0}' to have been calledr   	test_namerp   )r   r   formatr   assert_called)r   msgs     r   $test_assert_called_exception_messagez-MockTest.test_assert_called_exception_message  s    2##NCJJv4FG 	#F  "	###NCJJ{4KL 	3k"002	3 	3	# 	#	3 	3s   B.BBB'c                    t                         j                                   | j                  t        j                          j                          | j                  t        j                          ddd        j                  ddd        j                           ddd       | j                  t        fd       y )Nro   rr   r   rw   c                  .      j                   ddd      S )Nbobrr   r   r   assert_called_once_withr   s   r   <lambda>z7MockTest.test_assert_called_once_with.<locals>.<lambda>  s    0D001E r!   )r   r   rl   r   r   r]   s    @r   test_assert_called_once_withz%MockTest.test_assert_called_once_with  s    v 	%$$&.$*F*FG.$*F*FGUEq!$$$UEq9UEq!E	
r!   c                     t                d        d       | j                  t        t        j                  d      fd       y )Nre   r   zCalls: [call(1), call(2)]c                  &     j                  d      S )Nr   r   )r   s   r   r   zAMockTest.test_assert_called_once_with_call_list.<locals>.<lambda>  s    A--a0 r!   )r   r   r   reescaper   s    @r   &test_assert_called_once_with_call_listz/MockTest.test_assert_called_once_with_call_list  s8    F	!	!~II120	2r!   c                 B   dd}t        |      } |ddd        |j                  ddd        |j                  ddd       | j                  t        |j                  ddd       | j                  t              5 } |j                  d	       d d d        | j	                  j
                  j                  t                |d
dd       | j                  t        |j                  ddd       | j                  t        |j                  d
dd       y # 1 sw Y   xY w)Nc                      y r#   r$   r:   s       r   rd   z>MockTest.test_assert_called_once_with_function_spec.<locals>.f  r5   r!   r   re   r   r   r   r   r   r            r#   )r   r   rl   r   r   r   r   rj   r   s       r   *test_assert_called_once_with_function_specz3MockTest.test_assert_called_once_with_function_spec  s    $|Q!q$$$Q1-$$$qA3.$*F*FqA 	 	' ~. 	."(D((1-	.bll44i@Q1.$*F*FQ	#.$*F*FQ	#	. 	.s   >DDc                 p   t               }|j                  }| j                  t        |t               d       | j	                  |j                  |d       t               }d|j                  _        | j	                   |j                         dd       | j                  |j                  j                  d       y )Nzattribute isn't a mockz+different attributes returned for same namer   zmethod returned wrong valuez!method didn't record being called)r   rE   rR   r   rP   rS   rO   r   r   rE   s      r   #test_attribute_access_returns_mocksz,MockTest.test_attribute_access_returns_mocks  s    vNN	It46NOF	H v&'#)1.KL--;	=r!   c                     t               }|j                  }| j                  |j                  dd       | j                  |j                  |d       y )NrE   z attribute name not set correctlyz"attribute parent not set correctly)r   rE   rP   r   rZ   r  s      r   (test_attributes_have_name_and_parent_setz1MockTest.test_attributes_have_name_and_parent_set  sH    vNN	--{;	=//=	?r!   c                 z   t               } |j                  dd        |j                  j                  dt        j                         | j                  |j                  j                  dddt        j                  ifgd       | j                  |j                  dd	d
d ifdddt        j                  ifgd       y )Nr   r   r	  )cakerE   )r	  r  z#method calls not recorded correctly)r   r   zsomething_else.something)r   rE   something_elser
   CakerP   rV   r]   s     r   test_method_calls_recordedz#MockTest.test_method_calls_recorded  s    vqt$%%ahmm%<,,99'/FGH?	A 	**$/'/FG-
 2		3r!   c                    t               } |j                          | j                  |j                  dg       | j                  |j                  ddi fg       t               } |j                  d       | j                  |j                  dg       | j                  |j                  ddi fg       t               } |j                  d       | j                  |j                  dd	difg       | j                  |j                  ddd	difg       t               } |j                  dd
       | j                  |j                  dddd
ifg       y )Nr   rE   r$   	different)rE   r  r  re   xr  more)somer  )r   rE   rP   rV   r]   s     r    test_method_calls_compare_easilyz)MockTest.test_method_calls_compare_easily  s>   v**^,<=**k2r-B,CDv{#**-J,KL**&;<	> v**kC8-D,EF**k2Qx-H,IJv{0**.66*:;-
 	r!   c           	          dgdfD ]?  }dD ]8  }t        di ||i}|j                   | j                  t        dt        |d       : A y )NrE   r   )r   r   z-Mock object has no attribute 'something_else'r  r$   )r   rE   r   AttributeErrorgetattr)r   r   argr   s       r   test_only_allowed_methods_existz(MockTest.test_only_allowed_methods_exist2  s]     M>1 
	D) 	*sDk* &&"CT#3	
	r!   c                       G d dt               } fd} |t        |              |t         |                    y )Nc                       e Zd ZdZdZd Zy)*MockTest.test_from_spec.<locals>.Somethingr   Nc                      y r#   r$   r   s    r   yz,MockTest.test_from_spec.<locals>.Something.yD  r5   r!   )r(   r)   r*   r  __something__r&  r$   r!   r   r-   r$  A  s    A Mr!   r-   c                     | j                    | j                   | j                   j                  t        dt
        | d       j                  t        dt
        | d       y )Nz Mock object has no attribute 'z'zz)Mock object has no attribute '__foobar__'
__foobar__)r  r&  r'  r   r  r  r   s    r   test_attributesz0MockTest.test_from_spec.<locals>.test_attributesF  sR    FFFF""2s
 "";|r!   r   )r   r   )r   r-   r+  s   `  r   test_from_speczMockTest.test_from_spec@  s2    	 	
	  	),-)+./r!   c                     t               }t        |      }| j                   |        |              |j                           |ddd       |j                  ddd       y )Nwrapsre   r   r   r   )r   rP   r   r   r   realr   s      r   test_wraps_callszMockTest.test_wraps_callsZ  sR    v$(Q11-r!   c                 |     G d dt               } |       }t        |      | j                  t        fd       y )Nc                       e Zd Zy)FMockTest.test_wraps_prevents_automatic_creation_of_mocks.<locals>.RealNr}   r$   r!   r   Realr5  g  r   r!   r6  r.  c                  &      j                          S r#   )new_attrr   s   r   r   zJMockTest.test_wraps_prevents_automatic_creation_of_mocks.<locals>.<lambda>m  s    -$--/ r!   )r   r   rl   r  r   r6  r1  r   s      @r   /test_wraps_prevents_automatic_creation_of_mocksz8MockTest.test_wraps_prevents_automatic_creation_of_mocksf  s3    	6 	 v$.*ABr!   c                     t               }t        |      }d|_        | j                   |       d       | j                  |j                         y )Nr.  r   )r   rS   rP   rN   rO   r0  s      r   ,test_wraps_call_with_nondefault_return_valuez5MockTest.test_wraps_call_with_nondefault_return_valuep  s?    v$#%r!   c                     G d dt               } |       }t        |      | j                   j                         |j                                | j	                  t
        fd       | j                  j                  |j                         j                  j                  ddd      }|j                  j                  j                  ddd       | j                  ||j                  j                                y )	Nc                       e Zd Z e       Zy),MockTest.test_wraps_attributes.<locals>.RealN)r(   r)   r*   r   	attributer$   r!   r   r6  r?  {  s	    Ir!   r6  r.  c                       j                   S r#   r   r   s   r   r   z0MockTest.test_wraps_attributes.<locals>.<lambda>  s    $)) r!   re   r   r   r   )	r   r   rP   r@  rl   r  assertNotEqualfrogr   )r   r6  r1  r   r   s       @r   test_wraps_attributeszMockTest.test_wraps_attributesz  s    	6 	 v$)4>>+;<.*;<DNNDNN;$$Q$2..q!!.<!4!4!67r!   c                     G d dt               } |       }t        |      }t        j                  t        g|j
                  _        | j                   |j
                         t        j                         | j                   |j
                         t        j                         | j                  t        |j
                         y )Nc                       e Zd Zd Zy)[MockTest.test_customize_wrapped_object_with_side_effect_iterable_with_default.<locals>.Realc                 "    t         j                  S r#   )r
   ORIGINAL_VALUEr   s    r   methodzbMockTest.test_customize_wrapped_object_with_side_effect_iterable_with_default.<locals>.Real.method  s    ...r!   Nr(   r)   r*   rJ  r$   r!   r   r6  rG    s    /r!   r6  r.  )r   r   r
   VALUE1r   rJ  rk   rP   rI  rl   StopIterationr9  s       r   Dtest_customize_wrapped_object_with_side_effect_iterable_with_defaultzMMockTest.test_customize_wrapped_object_with_side_effect_iterable_with_default  s    	/6 	/ v$#+??G"<8(?(?@-5r!   c                     G d dt               } |       }t        |      }t        j                  t        j                  g|j
                  _        | j                   |j
                         t        j                         | j                   |j
                         t        j                         | j                  t        |j
                         y )Nc                       e Zd Zd Zy)NMockTest.test_customize_wrapped_object_with_side_effect_iterable.<locals>.Realc                      y r#   r$   r   s    r   rJ  zUMockTest.test_customize_wrapped_object_with_side_effect_iterable.<locals>.Real.method  r5   r!   NrK  r$   r!   r   r6  rQ        "r!   r6  r.  )
r   r   r
   rL  VALUE2rJ  rk   rP   rl   rM  r9  s       r   7test_customize_wrapped_object_with_side_effect_iterablez@MockTest.test_customize_wrapped_object_with_side_effect_iterable  s    	#6 	# v$#+??HOO"D88-5r!   c                      G d dt               } |       }t        |      }t        |j                  _        | j                  t        |j                         y )Nc                       e Zd Zd Zy)OMockTest.test_customize_wrapped_object_with_side_effect_exception.<locals>.Realc                      y r#   r$   r   s    r   rJ  zVMockTest.test_customize_wrapped_object_with_side_effect_exception.<locals>.Real.method  r5   r!   NrK  r$   r!   r   r6  rX    rS  r!   r6  r.  )r   r   RuntimeErrorrJ  rk   rl   r9  s       r   8test_customize_wrapped_object_with_side_effect_exceptionzAMockTest.test_customize_wrapped_object_with_side_effect_exception  sA    	#6 	# v$".,4r!   c                      G d dt               }d } |       }t        |      }||j                  _        | j	                   |j                         t
        j                         y )Nc                       e Zd Zd Zy)NMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.Realc                      y r#   r$   r   s    r   rJ  zUMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.Real.method  r5   r!   NrK  r$   r!   r   r6  r^    rS  r!   r6  c                  "    t         j                  S r#   )r
   VALUEr$   r!   r   rk   zUMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.side_effect  s    >>!r!   r.  )r   r   rJ  rk   rP   r
   ra  )r   r6  rk   r1  r   s        r   7test_customize_wrapped_object_with_side_effect_functionz@MockTest.test_customize_wrapped_object_with_side_effect_function  sN    	#6 	#	" v$"-7r!   c                      G d dt               } |       }t        |      }t        j                  |j                  _        | j                   |j                         t        j                         y )Nc                       e Zd Zd Zy)FMockTest.test_customize_wrapped_object_with_return_value.<locals>.Realc                      y r#   r$   r   s    r   rJ  zMMockTest.test_customize_wrapped_object_with_return_value.<locals>.Real.method  r5   r!   NrK  r$   r!   r   r6  re    rS  r!   r6  r.  )r   r   r
   ra  rJ  rS   rP   r9  s       r   /test_customize_wrapped_object_with_return_valuez8MockTest.test_customize_wrapped_object_with_return_value  sM    	#6 	# v$#+>> 7r!   c                     G d dt               } |       }t        |      }t        j                  t        j                  g|j
                  _        t        j                  |j
                  _        | j                   |j
                         t        j                         | j                   |j
                         t        j                         | j                  t        |j
                         y )Nc                       e Zd Zd Zy)VMockTest.test_customize_wrapped_object_with_return_value_and_side_effect.<locals>.Realc                      y r#   r$   r   s    r   rJ  z]MockTest.test_customize_wrapped_object_with_return_value_and_side_effect.<locals>.Real.method  r5   r!   NrK  r$   r!   r   r6  rj    rS  r!   r6  r.  )r   r   r
   rL  rT  rJ  rk   WRONG_VALUErS   rP   rl   rM  r9  s       r   ?test_customize_wrapped_object_with_return_value_and_side_effectzHMockTest.test_customize_wrapped_object_with_return_value_and_side_effect  s    	#6 	# v$#+??HOO"D#+#7#7 88-5r!   c                     G d dt               } |       }t        |      }d |j                  _        t        j
                  |j                  _        | j                   |j                         t        j
                         y )Nc                       e Zd Zd Zy)WMockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.Realc                      y r#   r$   r   s    r   rJ  z^MockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.Real.method  r5   r!   NrK  r$   r!   r   r6  rp    rS  r!   r6  r.  c                      t         S r#   r   r$   r!   r   r   z[MockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.<lambda>  s    ' r!   )r   r   rJ  rk   r
   ra  rS   rP   r9  s       r   @test_customize_wrapped_object_with_return_value_and_side_effect2zIMockTest.test_customize_wrapped_object_with_return_value_and_side_effect2  sY    	#6 	# v$"1#+>> 7r!   c                     G d dt               } |       }t        |      }t        j                  t        g|j
                  _        t        j                  |j
                  _        | j                   |j
                         t        j                         | j                   |j
                         t        j                         | j                  t        |j
                         y )Nc                       e Zd Zd Zy)^MockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default.<locals>.Realc                      y r#   r$   r   s    r   rJ  zeMockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default.<locals>.Real.method  r5   r!   NrK  r$   r!   r   r6  rv    rS  r!   r6  r.  )r   r   r
   rL  r   rJ  rk   r   rS   rP   rl   rM  r9  s       r   Gtest_customize_wrapped_object_with_return_value_and_side_effect_defaultzPMockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default  s    	#6 	# v$#+??G"<#+?? 88-5r!   c                 (   ddi}t        |      }| j                  |j                  d      d       | j                  |d   t                | j	                  d|v        d|j                  _        | j                  |j                  d      d       t        j                  |j                  _        | j                  |j                  d      d       | j                  |j                  d      d        | j                  |d   t                | j	                  d|v        d|d<   | j                  |j                  d      d       | j                  |d   t                | j	                  d|v        |d= | j                  |j                  d      d        y )Nro   rr   r.  rS   rw   spam)r   rP   getr   rN   rS   r
   r   )r   datawrapped_dicts      r   test_magic_method_wraps_dictz%MockTest.test_magic_method_wraps_dict  sg    u~ t,))%0%8l519=,./ )7%))%0.A )1(8(8%))%0%8))%0$7l519=,./U))%0&9l519=,./K))%0$7r!   c                      G d d      }t        |      } |       }| j                  |j                  d      d       | j                  |d   d       | j                  |j                         d       y )Nc                       e Zd Zd Zd Zy)3MockTest.test_magic_method_wraps_class.<locals>.Fooc                     |S r#   r$   )r   indexs     r   __getitem__z?MockTest.test_magic_method_wraps_class.<locals>.Foo.__getitem__  s    r!   c                      yNro   r$   r   s    r   __custom_method__zEMockTest.test_magic_method_wraps_class.<locals>.Foo.__custom_method__  s    r!   N)r(   r)   r*   r  r  r$   r!   r   Foor    s    r!   r  r.  r   ro   )r   rP   r  r  )r   r  klassobjs       r   test_magic_method_wraps_classz&MockTest.test_magic_method_wraps_class  se    	 	 $g+Q/Q#..0%8r!   c                     t        t              }| j                  t        |       t        t        d            }| j                  t        |       y Nr   ro   )r   r  rl   r]   s     r   test_exceptional_side_effectz%MockTest.test_exceptional_side_effect%  s;    /.$/u 56.$/r!   c                     t        t              }| j                  t        |       t        t        d            }| j                  t        |       y r  )r   KeyboardInterruptrl   r]   s     r    test_baseexceptional_side_effectz)MockTest.test_baseexceptional_side_effect-  s?     12+T2 1% 89+T2r!   c                 Z    t               }| j                  t        d|j                         y )Nz
not called)r   r   r   r   r]   s     r   test_assert_called_with_messagez(MockTest.test_assert_called_with_message5  s$    v~| $ 7 7	9r!   c                 ^    t        d      }| j                  t        d|j                         y )Ngeoffreyrp   z'Expected 'geoffrey' to be called once\.)r   r   r   r   r]   s     r   $test_assert_called_once_with_messagez-MockTest.test_assert_called_once_with_message;  s(    $~?11	3r!   c                     t               | j                  t        fd       d_        | j	                  j                  d       y )Nc                       j                   S r#   )r(   r   s   r   r   z'MockTest.test__name__.<locals>.<lambda>D  s    $-- r!   ro   )r   rl   r  r(   rP   r]   s    @r   test__name__zMockTest.test__name__B  s6    v.*?@.r!   c                      G d dt               }t         |dg            } |j                  d       |j                  j                  d       | j	                  t
        t        |d       y )Nc                       e Zd Zy)-MockTest.test_spec_list_subclass.<locals>.SubNr}   r$   r!   r   Subr  K  r   r!   r  ro   r   r   )listr   appendr   rl   r  r  )r   r  r   s      r   test_spec_list_subclassz MockTest.test_spec_list_subclassJ  sQ    	$ 	eW&A&&q).'4?r!   c                     G d dt               }t        |      }| j                  ||       t         |             }| j                  ||       | j                  |j                  |       | j                  t               j                  j                  d       t        |      }| j                  ||       t         |             }| j                  ||       y )Nc                       e Zd Zy)#MockTest.test_spec_class.<locals>.XNr}   r$   r!   r   r~   r  U  r   r!   r~   r   r   r   )r   r   r   assertIs	__class__rP   r(   r   s      r   test_spec_classzMockTest.test_spec_classT  s    	 	 |dA&~dA&dnna())22F;QdA&QS!dA&r!   c                     G d d      }t        |      }| j                  ||       t         |             }| j                  ||       | j                  |j                  |       | j	                  t               j                  j
                  d       t        |      }| j                  ||       t         |             }| j                  ||       y )Nc                       e Zd Zy)2MockTest.test_spec_class_no_object_base.<locals>.XNr}   r$   r!   r   r~   r  i  r   r!   r~   r   r   r   )r   r   r  r  rP   r(   r   s      r   test_spec_class_no_object_basez'MockTest.test_spec_class_no_object_baseh  s    	 	 |dA&~dA&dnna())22F;QdA&QS!dA&r!   c                      G d dt               }t        |      d_        t        |      fd}d_        | j	                  t
        |       y )Nc                       e Zd ZdZy)8MockTest.test_setting_attribute_with_spec_set.<locals>.Xr   N)r(   r)   r*   r&  r$   r!   r   r~   r  }  s    Ar!   r~   r   ro   r   c                      d _         y r  r  r   s   r   set_attrz?MockTest.test_setting_attribute_with_spec_set.<locals>.set_attr  s
    DFr!   )r   r   r  r&  rl   r  )r   r~   r  r   s      @r   $test_setting_attribute_with_spec_setz-MockTest.test_setting_attribute_with_spec_set|  sI    	 	 |Q	 .(3r!   c                     t        j                         }| j                  t         j                  |       t        j                  t	        d             t        j
                  t                      y )Ng    eA)sysgetrecursionlimit
addCleanupsetrecursionlimitintcopyr   )r   currents     r   	test_copyzMockTest.test_copy  sF    '')--w7 	c$i(		$&r!   c                      G d dt               } ||      | j                  j                  d       fd}| j                  t        |       fd}| j                  t
        |       y )Nc                   *    e Zd Zd Zd Z eee      Zy)8MockTest.test_subclass_with_properties.<locals>.SubClassc                      yNr   r$   r   s    r   _getz=MockTest.test_subclass_with_properties.<locals>.SubClass._get  s    r!   c                     t        d      )Nzstrange error)	NameError)r   values     r   _setz=MockTest.test_subclass_with_properties.<locals>.SubClass._set  s    00r!   N)r(   r)   r*   r  r  propertysome_attributer$   r!   r   SubClassr    s    1%dD1Nr!   r  r   r   c                      d _         y r  )r  ss   r   testz4MockTest.test_subclass_with_properties.<locals>.test  s     Ar!   c                      d _         y )Nrr   ro   r  s   r   r  z4MockTest.test_subclass_with_properties.<locals>.test  s
    AEr!   )r   rP   r  rl   r  r  )r   r  r  r  s      @r   test_subclass_with_propertiesz&MockTest.test_subclass_with_properties  s[    	2t 	2 h'))1-	!)T*	.$/r!   c                     t               }d }|t        |      _         |d        |j                  d       | j	                  t
        |dd       y )Nc                 F    | j                  |       | j                  |      S r#   )_increment_mock_call
_mock_callr   s     r   __call__z,MockTest.test_setting_call.<locals>.__call__  s    %%a(??1%%r!   onetwo)r   typer  r   rl   rj   )r   r   r  s      r   test_setting_callzMockTest.test_setting_call  sG    v	& 'T
U&)T5%8r!   c                 ^   t               }t        t        |            }t        t        t               D cg c]  }|j                  d      r| c}      }| j	                  t               ||z
         |j
                  |j                  f | j                  dt        |             | j                  dt        |             d x|_        |_	        | j                  dt        |             | j                  dt        |             d |_
        | j                  dt        |             y c c}w )N_r0   r1   r2   r3   c                     t        g       S r#   )r   r  s    r   r   z#MockTest.test_dir.<locals>.<lambda>  s
    $r( r!   r%   )r   setdir
startswithrP   r0   r1   rs   r2   r3   r%   )r   r   attrsr   
type_attrss        r   test_dirzMockTest.test_dir  s    vCISYHall36G!HI
 	
U 23 	c3t9%c3t9% c3t9%c3t9% +j#d),# Is   D*D*c                 @   t        t        j                        }t        t	        t        j                              }t        t	        |            }| j                  t               ||z
         d|_        | j                  t	        |      j                  d      d       y )Nr   r   versionre   )r   unittestTestCaser  r  rP   r  count)r   r   testcase_attrsr  s       r   test_dir_from_speczMockTest.test_dir_from_spec  ss    **+S!2!234CI 	 67 T3Q7r!   c                 H   t        j                  t        dd      }|j                          	 t	        t        t                           }t	        t        t                    }| j                  t	               ||z
         |j                          y # |j                          w xY w)N
FILTER_DIRF)	r	   r   r   r   r  r  r   rP   stop)r   patcherr  r  s       r   test_filter_dirzMockTest.test_filter_dir  sk    ,,t\59	DF$ESYJ SUJ$67LLNGLLNs   AB B!c                     t               }d|j                  _        | j                  dt	        |             |`| j                  dt	        |             y )Nre   r   )r   r   rS   rs   r  rW   r]   s     r   ,test_dir_does_not_include_deleted_attributesz5MockTest.test_dir_does_not_include_deleted_attributes  s@    v"#

gs4y)J#d),r!   c                    t        d      }| j                  |j                  d       t        d      }| j                  |j                  d       t        dt               d}t        di |}| j                  t        |       | j                  |j                  j                         d       | j                  |j                  t               t               } |j                  di | | j                  t        |       | j                  |j                  j                         d       | j                  |j                  t               y )Nrr   r  !   )rk   zfoo.bar.return_valuero   r$   )	r   rP   ro   r   KeyErrorrl   rr   r   configure_mock)r   r   r   s      r   test_configure_mockzMockTest.test_configure_mock  s    5)U#5)!)2"&~f~(D),dhh	2v%f%(D),dhh	2r!   c                     | j                  |      5 } ||i | d d d        t        j                        }| j                  ||       y # 1 sw Y   1xY wr#   )rl   strr   rP   )r   r   messagefuncr   r   contextr   s           r   assertRaisesWithMsgzMockTest.assertRaisesWithMsg  sT    y) 	"W$!&!	"'##$g&	" 	"s   	AAc           
      Z   t               }d}d}d}| j                  t        |||fz  |j                  dddd        |j                  dddd	       |j                  j                  |j                  j
                  g}|D ])  }d
}d}d}| j                  t        |||fz  |dddd       + |D ]&  }d
}d}d}| j                  t        |||fz  |d       ( |D ]'  }d
}d}d}| j                  t        |||fz  |ddd       ) |D ]$  }d
}d}d}| j                  t        |||fz  |       & y )Nznot called.zmock(1, '2', 3, bar='foo')z0expected call not found.
Expected: %s
Actual: %sre   2r   ro   )rr   r  zfoo(1, '2', 3, foo='foo')zfoo(1, '2', 3, bar='foo')zfoo(bar='foo')zfoo(1, 2, 3)r   zfoo())r   r  r   r   ro   r   )r   r   actualexpectedr  	assertersr4   s          r   'test_assert_called_with_failure_messagez0MockTest.test_assert_called_with_failure_message  s    /F  Gx&88##QQE 	! 	

 	C& HH'')I)I
	  	D0F2HJG$$8V*< <aaU % 		  	D0F'HJG$$8V*< <% % 		  	D0F%HJG$$8V*< <aA		  	D0FHJG$$8V*< <d		r!   c           	         t               }| j                  |j                  g k(  d       t               } |        ddi fg}| j                  |j                  |        |j                          |j                  t        j                                | j                  |j                  |       | j                  |j                  j                  ddi fg       t               } |       j	                  ddddd	       ddi fd
dt        dd	      fg}| j                  |j                  |       | j                  |j                  j                  j                  ddt        dd	      fg       | j                  |j                  j                  ddt        dd	      fg       t               } |       j                  j                         j                          ddi fddi fddi fg}| j                  |j                  |       | j                   |       j                  t        j                  j                         j                         j                                t               t        d      fD ]  }t        di |}t        |j                         ddi fg}| j                  |j                  |       t        di |}  |j                                 ddi fddi fg}| j                  |j                  |       | j                   |j                         j                  t               g       t        di |}   |d      d      d       | j                  |j                    t        d      d      d      j                                | j                   |       j                   t        d      d      j                                | j                    |              j                  t        d      j                                t        di |}   |d      d      d      j                  j                  j                  d       | j                  |j                    t        d      d      d      j                  j                  j                  d      j                                | j                   |       j                   t        d      d      j                  j                  j                  d      j                                | j                    |              j                  t        d      j                  j                  j                  d      j                                t        di |}t         |       j                  j                         j                                ddi f}| j                  |j                  d   |       | j                   |       j                  t        j                  j                         j                         j!                         j                                | j                   |       j                  j                         j                  t        j                         j!                         j                                | j                   |       j                  j                         j                  j                  t               j!                         j                                 y )NT r$   re   r   r   r  r  r   z().foor   ro   z
().foo.barz().foo.bar().bazrr   rp   zfoo.__int__r0   za()z().foo.bar().baz().__int__)r   r  r   rP   ro   r  r   dictrS   rr   rw   	call_listr  r0   r1   r2   __int__)r   r   r  r   	last_calls        r   test_mock_callszMockTest.test_mock_callsE  sV   { 	doo+T2{RL>(3

#(3,,B|n={

1aa1
%RL8YqA?
 	(3**..99y$a.9:	<**55 )TA^<=	? {

RL<R0R(
 	(3**++-779	; fd.. $	;F&v&DM&B/0HT__h7&v&DFDFFHJb"r27HT__h7VTVVX0046(;&v&DGDGAJqMT__jgd1gajm.E.E.GHTV..Q
0D0D0FGVTVX00$q'2C2C2EF&v&DGDGAJqMOO"T__'WT!WQZ]__..003==?ATV..$T!WQZ\\^^--a0::<>VTVX00!!WYY[[]]1-779; &v&D

 $$&'5r2>IT__R0)<TV..!XX\\^//199;EEGITVZZ^^-88!XXZ//1;;=?TVZZ^^-11<<!V^^-779;G$	;r!   c                    t               } |       }|j                          | j                  |j                  t	               t	               j                         g       | j                  |j                  t	        j                         g       y r#   )r   wibblerP   r   r   )r   r   r   s      r   test_child_mock_call_equalz#MockTest.test_child_mock_call_equal  sZ    F'@A**T[[]O<r!   c                 4   t               }|j                         j                          | j                  |j                  d   t        j                         j                                | j                  |j                  d   t        j                                y Nre   r   )r   ro   rE   rB  r   r   r  rP   r   s     r   test_mock_call_not_equal_leafz&MockTest.test_mock_call_not_equal_leaf  s`    F	ALLOTXXZ-A-A-CDa$((*5r!   c                 4   t               }|j                         j                          | j                  |j                  d   t        j                         j                                | j                  |j                  d   t        j                                y r  r   ro   rr   rB  r   r   rw   r   s     r   !test_mock_call_not_equal_non_leafz*MockTest.test_mock_call_not_equal_non_leaf  s[    F	ALLOTXXZ^^-=>ALLOTXXZ8r!   c                     t               }|j                  d      j                          | j                  |j                  d   t        j                  d      j                                y )Nre   r  r   )r   ro   rr   rP   r   r   r   s     r   2test_mock_call_not_equal_non_leaf_params_differentz;MockTest.test_mock_call_not_equal_non_leaf_params_different  sF    F	
a$((Q-*;*;*=>r!   c                     t               }|j                  j                          | j                  |j                  d   t
        j                  j                                y Nr   r  r   s     r   &test_mock_call_not_equal_non_leaf_attrz/MockTest.test_mock_call_not_equal_non_leaf_attr  s8    F			ALLOTXX\\^<r!   c                     t               }|j                  j                          | j                  |j                  d   t        j                         j                                y r  )r   ro   rr   rB  r   r   r   s     r   2test_mock_call_not_equal_non_leaf_call_versus_attrz;MockTest.test_mock_call_not_equal_non_leaf_call_versus_attr  s;    F			ALLOTXXZ^^-=>r!   c                 t   t               }|j                         j                         j                  j	                          | j                  t        |j                  d         d       | j                  t        |j                  d         d       | j                  t        |j                  d         d       y )Nr   z
call.foo()re   zcall.foo().bar()r   zcall.foo().bar().baz.bob())r   ro   rr   rw   r   rP   rt   r   r   s     r   test_mock_call_reprzMockTest.test_mock_call_repr  s    F	all1o.=all1o.0BCall1o.0LMr!   c                     t               }||_        t        |j                                | j                  t        |j                               d       y )Nz<Mock name='mock\(\)' id='\d+'>)r   ro   rt   assertRegexr   s     r   test_mock_call_repr_loopz!MockTest.test_mock_call_repr_loop  s8    FQUUWaeeg(JKr!   c                 d    t               }| j                  t               g|j                  v        y r#   )r   rN   r   r   r   s     r   test_mock_calls_containsz!MockTest.test_mock_calls_contains  s$    F$&Q\\12r!   c                 (    G d dt               } |       }| j                  |j                  |       | j                   |       |        G d dt               } |       }| j                  |j                  |       | j                   |       |       y )Nc                       e Zd Zy)+MockTest.test_subclassing.<locals>.SubclassNr}   r$   r!   r   Subclassr     r   r!   r!  c                       e Zd Zd Zy)r   c                     t        di |S )Nr$   )r   )r   r   s     r   _get_child_mockz;MockTest.test_subclassing.<locals>.Subclass._get_child_mock  s    ~f~%r!   N)r(   r)   r*   r$  r$   r!   r   r!  z+MockTest.test_subclassing.<locals>.Subclass  s    &r!   )r   r   ro   assertNotIsInstance)r   r!  r   s      r   test_subclassingzMockTest.test_subclassing  sx    	t 	 zdhh1dfh/	&t 	& z  84  2r!   c                     t               t               t               t               g} fd}|D ]  } ||       t	        |      r2 |         |dd        |d        |j
                           ||        |j                          |j                  j                  dd        |j                  d      j                         j                  d        |j
                           ||        y )Nc                     d}|D ]L  }t        | |      }j                  |t               j                  |t               j	                  |g        N y )N)rU   rV   r   )r  r   r   r  rP   )r   namesrq   attrr   s       r   assert_attrsz-MockTest.test_arg_lists.<locals>.assert_attrs  sS    BE +tT*%%dI6%%dD1  r*	+r!   re   r   r   rD   )	r   r   r   r   callabler   ro   rr   rw   )r   rx   r+  r   s   `   r   test_arg_listszMockTest.test_arg_lists  s    FK "	
	+  	D~Q
q	!T"DHHJHHLLaL DHHQKOO!!!$DOO!	r!   c                 @   t               } |dd        |dd       | j                  t        |j                        d       | j                  |j                  j                  d       | j                  |j                  j
                  t        d             dt        d      fdt        d      fg}t        ||j                        D ]P  \  }}| j                  t        |      d       | j                  |d	   |d	          | j                  |d   |d          R y )
Nre   r   rD   r   r  r1   )r   re   r   )	r   rP   lenrT   r   r   r  ziprU   )r   r   expected_listr  rT   s        r   test_call_args_two_tuplez!MockTest.test_call_args_two_tuple  s    vQ!Q!T^^,a0,,d3..q	:q	*T4!9,=>#&}d6I6I#J 	8HiS^Q/Xa[)A,7Xa[)A,7	8r!   c                    t        t        g d            }| j                   |        |        |       gg d       | j                  t        |       t        g d      }| j                   |        |        |       gg d       | j                  t        |       t        d      }| j                   |        |        |       gg d       | j                  t        |        G d dt              }t        |      }| j                   |       |       t        t                     }| j                   |        |        |        |       gg d       | j                  t        |       y )	Nr   r   r   ghi)ghic                       e Zd Zy)/MockTest.test_side_effect_iterator.<locals>.FooNr}   r$   r!   r   r  r;  #  r   r!   r  r   )	r   r   rP   rl   rM  r   r   r   r   )r   r   r  s      r   test_side_effect_iteratorz"MockTest.test_side_effect_iterator  s   Y0$&$&$&19=-._5$&$&$&1?C-.&$&$&$&1?C-.	& 	S)dfc*'$&$&$&$&95	7-.r!   c                    t         t        fD ]s  }t        dt        df} ||      }| j	                  t        |       | j                   |       d       | j	                  t        |       | j                   |       d       u y )Nr   r	  r   )r   r   r   r  rl   rP   )r   Klassiterabler   s       r   $test_side_effect_iterator_exceptionsz-MockTest.test_side_effect_iterator_exceptions.  sq    9_ 	%E"Ax3H(+Aj!,QS!$h*QS!$	%r!   c                    t               }t        g d      |_        | j                   |        |        |       gg d       | j	                  t
        |       |j                  }| j                  |t        t        g                    g d|_        | j                   |        |        |       gg d       | j	                  t
        |       |j                  }| j                  |t        t        g                    t               }||_        | j                   |        |        |        |       gg d       | j	                  t
        |       | j                  |j                  |       y )Nr   r   r   )
r   r   rk   rP   rl   rM  r   r  r   r  )r   r   rk   	this_iters       r   !test_side_effect_setting_iteratorz*MockTest.test_side_effect_setting_iterator8  s   v	?$&$&$&19=-.&&k4R>:*$&$&$&1?C-.&&k4R>:F	$$&$&$&$&95	7-.d&&	2r!   c                     t        d      }t        dt        g      |_        | j	                   |        |       gddg       y )Nr   r`   re   )r   r   r   rk   rP   r]   s     r   !test_side_effect_iterator_defaultz*MockTest.test_side_effect_iterator_defaultM  s:    #G-$&$&)Aq62r!   c                    t               } |dd        |d        |dd        |d        |d       t        dd      ddifd	d
ddifddddifddi fdd
ddifg}|D ]  } |j                  |gd        t        dd      t        d      t               dd dfD ]&  }| j                  t        |j                  |gd       ( t        dd      t        d      gt        dd      t        dd      gt        d      t        d      gg}|D ]  } |j                  |d        t        d      t        d      t        d      gt        dd      t        dd      gt        dd      t        dd      t        dd      gt        d      t        dd      t        d      t        dd      t        d      gg}|D ]%  }| j                  t        |j                  |d       ' y )Nre   r   r   rD   r  r	  r/  r0   )r   r  r$   )r   re   r   r   rH  T	any_orderr  ro   r     )r   r   assert_has_callsrl   r   )r   r   kallskall
kall_lists	kall_lists         r   test_assert_has_calls_any_orderz(MockTest.test_assert_has_calls_any_orderR  s   vQ
q	Q
q	q	 AJ#qS!H~2Qx.r2Qx0	
  	:D!D!!4&D9	: CL$)TVQeC 	D 5 5$  	 !QZ#!QZa$AYq	"

 $ 	=I!D!!)t<	= AYq	4!9-!QZa$!QZaT!QZ0AYQ
D1ItAqz4!9E	

 $ 	I 5 5T  	r!   c                    t        dd      ddifdt        d      dd	d
difg}t        j                         t        j                  d      g}|j                  t        j                         j                  d      j                                |j                  t        j                  t               i       j                  dg      j                                g }t               t               fD ]C  } |dd        |d        |dd        |d        |dd       |j                  ||f       E t               } |j                           |j                  d        |j                         j                  d        |j                  t               i       j                  dg       |j                  ||f       |D ]  \  }}t        t        |            D ]e  }dD ]^  }||||z    } |j                  |       t        |      dkD  s,| j!                  t"        |j                  t%        t'        |                   ` g  y )Nre   r   r0   r   rG  r	  r/  r   r0  r1   rD   r  r  r   )r   ro   rr   extendrz  rw   r  bamr  r   r   r   r  ranger1  rL  rl   r   r  reversed)	r   kalls1kalls2rx   r   rM  r9  steptheses	            r   test_assert_has_callszMockTest.test_assert_has_calls~  s   Q
c1XK4!9TC8$

 ((*dhhqk*diikooo*4467dhhsu"-22A37AACDFIK' 	)DAJ1IAJ1IaLLL$(	) v
		!B$$aS)dF^$  	KD%3u:& 
# 	D!!AdFOE)D))%05zA~))* 11 %1	
	r!   c           	      ^    G d d      }t        |      }| |       fD ]h  }|j                  dddd       |j                  t        j                  dddd      g       |j                  t        j                  dddd      g       j |j	                          | |       fD ]  }| j                  t        |j                  t        j                         g       |j                  d      j                  dd       |j                  t        j                  d      t        j                  d      j                  dd      g       |j                  j                  t        d      t               j                  dd      g        |j	                          t        j                  d      t        j                  d      t        j                         j                  d      t        j                         j                  dddd      g}|D ]$  }| j                  t        |j                  |g       & y )Nc                   .    e Zd Zd ZddZ G d d      Zy)=MockTest.test_assert_has_calls_nested_spec.<locals>.Somethingc                      y r#   r$   r   s    r   r    zFMockTest.test_assert_has_calls_nested_spec.<locals>.Something.__init__  r5   r!   Nc                      y r#   r$   r/   s        r   r4   zBMockTest.test_assert_has_calls_nested_spec.<locals>.Something.meth  r5   r!   c                       e Zd Zd Zd Zy)AMockTest.test_assert_has_calls_nested_spec.<locals>.Something.Fooc                      y r#   r$   r   s     r   r    zJMockTest.test_assert_has_calls_nested_spec.<locals>.Something.Foo.__init__  r5   r!   c                      y r#   r$   )r   r0   r1   s      r   meth1zGMockTest.test_assert_has_calls_nested_spec.<locals>.Something.Foo.meth1  r5   r!   N)r(   r)   r*   r    re  r$   r!   r   r  rb    s    ++r!   r  r#   )r(   r)   r*   r    r4   r  r$   r!   r   r-   r^    s    $1, ,r!   r-   re   r   r   r3   r  )
r   r4   rL  r   r   rl   r   r  re  non_existent)r   r-   
mock_classr   invalid_callsrN  s         r   !test_assert_has_calls_nested_specz*MockTest.test_assert_has_calls_nested_spec  s   	, 	, %Y/
jl+ 	8AFF1aaF 		!QQ 789		!Q1 567	8
 	jl+ 	BAna.@.@488:,OEE!HNN1a TXXa[->->q!-DEFEE""DGTV\\!Q-?#@A		B 	1**1-003Aq!46
 " 	Dn(99#f	r!   c                 p   t               } |       j                         j                         j                          |j	                         j                         j                          t        j                         j                         j                         j                         }|j                  |       y r#   )
r   ro   rr   rw   r  r  threer   r  rL  )r   r   callss      r   )test_assert_has_calls_nested_without_specz2MockTest.test_assert_has_calls_nested_without_spec  sm    K			
 &&(224	5!r!   c                    dd}t        |      } |ddd        |ddd	d
        |ddd       ddi fdddd
ifdi fg} |j                  |        |j                  |d        |j                  |dd          |j                  |dd  d        |j                  |d d         |j                  |d d d       t        t        |            }| j	                  t
              5   |j                  |       d d d         |j                  |d       | j	                  t
              5   |j                  |dd         d d d         |j                  |dd  d       | j	                  t
              5   |j                  |d d        d d d         |j                  |d d d       y # 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   9xY w)Nc                      y r#   r$   r:   s       r   rd   z<MockTest.test_assert_has_calls_with_function_spec.<locals>.f  r5   r!   r   re   r   r   r   r  r  r	  rK  r2   r3   
         )r2   r   r   )r  r  r	  r3   )rr  rs  rt  TrI  r  r#   )r   rL  r  rV  rl   r   )r   rd   r   rm  s       r   (test_assert_has_calls_with_function_specz1MockTest.test_assert_has_calls_with_function_spec  s   $|Q!qQQ!RrBS!H%2
 	e$et4eABi(eABi48eCRj)eCRjD9Xe_%~. 	)!D!!%(	)et4~. 	-!D!!%),	-eABi48~. 	.!D!!%*-	.eCRjD9	) 	)	- 	-	. 	.s$   )F--F97G-F69GGc                    dd}t        |      } |d       | j                  t        dj                  t	        j
                  d                  5 } |j                  t               g       d d d        | j                  j                  j                         | j                  t        dj                  t	        j
                  d                  5 } |j                  t               t        dd      g       d d d        | j                  |j                  j                  t               y # 1 sw Y   xY w# 1 sw Y   @xY w)	Nc                      y r#   r$   r  s    r   rd   zAMockTest.test_assert_has_calls_not_matching_spec_error.<locals>.f  r5   r!   r   re   z^{}$z5Calls not found.
Expected: [call()]
Actual: [call(1)]zError processing expected calls.
Errors: [None, TypeError('too many positional arguments')]
Expected: [call(), call(1, 2)]
Actual: [call(1)]r   r#   )r   r   r   r   r  r  rL  r   rY   r   r   r   rj   r   s       r   -test_assert_has_calls_not_matching_spec_errorz6MockTest.test_assert_has_calls_not_matching_spec_error  s   |Q##II 2 345 	,
 9;!D!!46(+	, 	",,001 ##II,-./ 	8 35!D!!4641:"67	8 	bll44i@'	, 	,	8 	8s   D,'D8,D58Ec                    t               } |dd        |d        |dd        |j                  dd        |j                  d        |j                  dd       | j                  t        |j                         | j                  t        |j                  dd       | j                  t        |j                  d       y )Nre   r   r   rD   r	  r/  r  )r   assert_any_callrl   r   r]   s     r   test_assert_any_callzMockTest.test_assert_any_call  s    vQ
q	Q!Q"q!Q!$  	
 	  q	

 	   	 	
r!   c                    dd}t        |      } |ddd        |ddd	d
        |j                  ddd        |j                  ddd        |j                  ddd	d
        |j                  ddd	d
       | j                  t        |j                  ddd       | j                  t              5 } |j                  d       d d d        | j	                  j
                  j                  t               y # 1 sw Y   4xY w)Nc                      y r#   r$   r:   s       r   rd   z;MockTest.test_assert_any_call_with_function_spec.<locals>.f+  r5   r!   r   re   r   r   r   r  r  r	  rK  rq  r   r:   r   r   r#   )r   rz  rl   r   r   r   r   rj   r   s       r   'test_assert_any_call_with_function_specz0MockTest.test_assert_any_call_with_function_spec*  s    $|Q!qQQ!Q1%qA+Q1a(qAa0.$*>*>qA 	 	' ~. 	&" D  1%	&bll44i@	& 	&s   5C<<Dc           	         d }t               }||_        t        |      t        |      j                  g}|D ]F  } |dd        |dd       | j                  |j                  t        dd      t        dd      g       H y )Nc                      y r#   r$   r   s     r   rd   z3MockTest.test_mock_calls_create_autospec.<locals>.f>  r5   r!   re   r   r   r  )r   rd   r   rP   r   r   )r   rd   r  funcsr  s        r   test_mock_calls_create_autospecz(MockTest.test_mock_calls_create_autospec=  s}    f AC ""
  	DAJAJ$q!*d1aj!9		r!   c                 x    t        j                  t               d      }| j                  dt	        |             y )N
sweet_funcrp   )r   r   r   rs   rt   r   s     r   test_create_autospec_with_namez'MockTest.test_create_autospec_with_nameO  s(      =lDG,r!   c                     G d d      }dD ]j  }| j                  |      5  t        j                  t        ||            } |        |j	                          | j                  t        |d       d d d        l y # 1 sw Y   wxY w)Nc                   ,    e Zd Zed        Zed        Zy)MMockTest.test_create_autospec_classmethod_and_staticmethod.<locals>.TestClassc                      y r#   r$   )r7   s    r   class_methodzZMockTest.test_create_autospec_classmethod_and_staticmethod.<locals>.TestClass.class_methodV  s    #'r!   c                       y r#   r$   r$   r!   r   static_methodz[MockTest.test_create_autospec_classmethod_and_staticmethod.<locals>.TestClass.static_methodY  s    !%r!   N)r(   r)   r*   r<   r  r=   r  r$   r!   r   	TestClassr  U  s    ' '% %r!   r  )r  r  )rJ  	extra_arg)subTestr   r   r  r   rl   rj   )r   r  rJ  mock_methods       r   1test_create_autospec_classmethod_and_staticmethodz:MockTest.test_create_autospec_classmethod_and_staticmethodT  s    	& 	& 8 	GFV, G"2279f3MN335!!)[+F	G G	GG Gs   AA;;B	c                    t               }d}| j                  t        |      5  |j                          d d d        | j                  t        |      5  |j	                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d         G d dt              }t        |      }|j                          |j                          |j                  j                          |j                  j                          t        d      }|j                          |j	                          |j                          |j                          |j                          |j                          |j                          |j                          y # 1 sw Y   OxY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w)Nz1is not a valid assertion. Use a spec for the mockc                       e Zd Zd Zd Zy)&MockTest.test_mock_unsafe.<locals>.Fooc                      y r#   r$   r   s    r   called_oncez2MockTest.test_mock_unsafe.<locals>.Foo.called_oncex  r5   r!   c                      y r#   r$   r   s    r   	has_callsz0MockTest.test_mock_unsafe.<locals>.Foo.has_callsz  r5   r!   N)r(   r)   r*   r  r  r$   r!   r   r  r  w  s    '%r!   r  r   T)unsafe)r   r   r  assert_foo_callassret_foo_callasert_foo_callaseert_foo_callassrt_foo_callcalled_once_withr  r  r   assert_called_once)r   r   r   r  s       r   test_mock_unsafezMockTest.test_mock_unsafec  s>   FA##NC8 	 	 ##NC8 	 	 ##NC8 		##NC8 	 	 ##NC8 		##NC8 	! 	!##NC8 	MMO	##NC8 	KKM		&& 	&
 cN			((*	&&(								K	  	 	  	 	 		  	 	 		! 	!	 		 	s_   JJJ0J(J5K=K,KJJJ%(J25J?KKK&c                      G d dt               }t        |      }|j                          |j                          |j                  j	                          |j                  j	                          y )Nc                       e Zd Zd Zd Zy).MockTest.test_mock_safe_with_spec.<locals>.Fooc                      y r#   r$   r   s    r   
assert_barz9MockTest.test_mock_safe_with_spec.<locals>.Foo.assert_bar  r5   r!   c                      y r#   r$   r   s    r   
assertSomez9MockTest.test_mock_safe_with_spec.<locals>.Foo.assertSome  r5   r!   N)r(   r)   r*   r  r  r$   r!   r   r  r    s    &&r!   r  r   )r   r   r  r  r  r   r  r   s      r   test_mock_safe_with_specz!MockTest.test_mock_safe_with_spec  sK    	'& 	'
 cN			'')	'')r!   c                     t               }|j                  j                          |j                          | j                  t              5  |j                  j                          d d d        y # 1 sw Y   y xY wr#   )r   helloassert_not_calledrl   r   r   s     r   test_assert_not_calledzMockTest.test_assert_not_called  sU    F	!!#		~. 	(GG%%'	( 	( 	(s   
A..A7c                     t               } |dd       | j                  t        t        j                  d      |j
                         y )Nre   r   zCalls: [call(1, 2)])r   r   r   r  r  r  r   s     r   test_assert_not_called_messagez'MockTest.test_assert_not_called_message  s8    F	!Q~II+,	!r!   c                 H   t               }| j                  t              5  |j                  j	                          d d d        |j                          |j                  j	                          |j                          |j                  j	                          y # 1 sw Y   ^xY wr#   )r   rl   r   r  r   r   s     r   test_assert_calledzMockTest.test_assert_called  sn    F~. 	$GG!!#	$							$ 	$s   BB!c                    t               }| j                  t              5  |j                  j	                          d d d        |j                          |j                  j	                          |j                          | j                  t              5  |j                  j	                          d d d        y # 1 sw Y   |xY w# 1 sw Y   y xY wr#   )r   rl   r   r  r  r   s     r   test_assert_called_oncez MockTest.test_assert_called_once  s    F~. 	)GG&&(	)			""$		~. 	)GG&&(	) 	)	) 	)	) 	)s   B6C6B?Cc                     t               } |dd        |d       | j                  t        t        j                  d      |j
                         y )Nre   r   r   zCalls: [call(1, 2), call(3)])r   r   r   r  r  r  r   s     r   test_assert_called_once_messagez(MockTest.test_assert_called_once_message  s?    F	!Q	!~II45  	"r!   c                     t               }| j                  t              5 }|j                          d d d        | j	                  dt        j                               y # 1 sw Y   /xY w)NzCalls:)r   rl   r   r  rW   r  r   )r   r   r   s      r   *test_assert_called_once_message_not_calledz3MockTest.test_assert_called_once_message_not_called  sS    F~. 	#!  "	#3q{{#34	# 	#s   AA(c                     t               }|j                  dd       d}| j                  t        |j                  j                        |       y )Nr  hero)rq   daddyz call(name='hello', daddy='hero'))r   r  rP   rt   rT   )r   r   texts      r   test_ordered_call_signaturez$MockTest.test_ordered_call_signature  s=    F	WF+1agg//0$7r!   c                 ,   t        j                         }t        j                  dd      }t               }|j                          |j                  dd       | j	                  |j
                  d   |       | j	                  |j
                  d   |       y )N   r  r   re   )r   r  r  r   rP   rV   )r   r2   r9  r   s       r   test_override_tuple_methodsz$MockTest.test_override_tuple_methods  sm    JJLJJs7#F			G*A.*A.r!   c                     t        dddg      }|j                  dd       | j                  |j                  t                | j	                  |j
                  d        y )Nrr  r   r   rS   rk   T)r   r   r   rS   rP   rk   r   s     r   test_reset_return_sideeffectz%MockTest.test_reset_return_sideeffect  sJ    bqe4	$D9annd3-r!   c                     t        dddg      }|j                  d       | j                  |j                  t                | j	                  |j
                  d        y )Nrr  r   r   r  Tr`   )r   r   r   rS   rB  rk   r   s     r   test_reset_returnzMockTest.test_reset_return  sH    bqe4	$'annd3AMM40r!   c                     t        dddg      }|j                  d       | j                  |j                  d       | j                  |j                  d        y )Nrr  r   r   r  Tr   )r   r   rP   rS   rk   r   s     r   test_reset_sideeffectzMockTest.test_reset_sideeffect  sH    bq!f5	&,-r!   c                     t        t        d            }| j                  |j                         d       |j                  d       | j	                  |j                         d       y )Nre   r`   rd   T)r   rP   rd   r   rB  r   s     r   test_reset_return_with_childrenz(MockTest.test_reset_return_with_children  sK    	q12"	$'ACCE1%r!   c                     t        t        ddg            }| j                  |j                  j                  d        |j	                  d       | j                  |j                  j                  d        y )Nr   r   r   r  T)r   rB  rd   rk   r   rP   r   s     r   +test_reset_return_with_children_side_effectz4MockTest.test_reset_return_with_children_side_effect  sS    	q!f56ACCOOT2	&$/r!   c                   	  G d dt               } G d dt               } G d dt               	t        t        t        t        g}t        |      D ].  }|j                  |f	fd	       |j                  |f	fd	       0 |D ]j  }t               t        d	
      fD ]M  } |       }|j                  |j                  |j                  f ||fdgdgffD ]  \  }}t               t        d	
      fD ]  } |j                  |fi | |j                   | j                  t        t        |d       | j                  t        t        |d       d|v r| j                  t        t        |dd         |j                  |fi | | j                  t        t        |d       |j                   | j                  t        t        |d       d|v s| j                  t        t        |dd          P m y )Nc                       e Zd ZdZy))MockTest.test_mock_add_spec.<locals>._Onere   Nr(   r)   r*   r  r$   r!   r   _Oner        Cr!   r  c                       e Zd ZdZy))MockTest.test_mock_add_spec.<locals>._Twor   N)r(   r)   r*   r  r$   r!   r   _Twor    r  r!   r  c                       e Zd ZdxZxZZy)-MockTest.test_mock_add_spec.<locals>.AnythingfourN)r(   r)   r*   r  r  rl  r$   r!   r   Anythingr    s     &&C&#r!   r  c                      |       S )Nr   r$   Kr  s    r   r   z-MockTest.test_mock_add_spec.<locals>.<lambda>  s    1(+; r!   c                      |       S )Nr   r$   r  s    r   r   z-MockTest.test_mock_add_spec.<locals>.<lambda>	  s    1h+? r!   Tr   r  r  rl  r   )r   r   r   r   r   r  r  r  r  r  rl  mock_add_specrl   r  r  setattr)
r   r  r  klassesr>  r   r   OneTwor  s
            @r   test_mock_add_speczMockTest.test_mock_add_spec  s   	6 		6 		'v 	' )_.B
 '] 	AENNE;<NNE?@	A  !	E&$"55  w$((DJJ."&%/A B HC"&&$*="= ***39&9))*GT5 ))*GT7 &/ -- .w +**39&9))*GT5 ))*GT7 &/ -- .w1 !	r!   c                 |   t         t        fD ]  } |       t                j                  t               | j                  t        t                |       d    dj                  _         j                  t               | j                  t              d       | j                  t        fd        y )Nro   r  c                       d   S r  r$   r   s   r   r   z;MockTest.test_mock_add_spec_magic_methods.<locals>.<lambda>?  s    e r!   )
r   r   r  r  r   rl   rj   r  rS   rP   r   r>  r   s     @r    test_mock_add_spec_magic_methodsz)MockTest.test_mock_add_spec_magic_methods1  s     44 	>E7DIDv&id37DK'(DLL%Ds#SY*i)<=	>r!   c                    t         t        t        t        t        fD ]M  } |       }t               |_         |j
                          | j                  |j                  t        j
                         g       | j                  |j                  t        j
                         g        |       }t        d      |_
         |j                          | j                  |j                  g        | j                  |j                  g         |       } t                      |_         |j                          | j                  |j                  g        | j                  |j                  g        P y )Nrq   rp   )r   r   r   r   r   ro   rP   rV   r   r   rr   rw   r  s      r   test_adding_child_mockzMockTest.test_adding_child_mockB  s   %tY8L! 	2E7DvDHDHHJT..=T__txxzl;7D(DHDHHJT..3T__b1 7D"y{}DHDHHJT..3T__b1+	2r!   c                     t         t        fD ]W  } |       }t               |_          |               | j                  |j                  t                t                      g       Y y r#   )r   r   rS   rP   r   r   r  s      r   test_adding_return_value_mockz&MockTest.test_adding_return_value_mock[  sR    9_ 	BE7D )DDFHT__tvvtvx.@A	Br!   c                 F    G d dt               }t               }t        j                   |d      }t        j                   |d      }|j                         }| j	                  |j
                         |j                         }| j	                  |j
                         |j                  |d       |j                  |d       |j                          |j                          | j                  |j                  t        j                         t        j                         g       y )Nc                       e Zd ZdZdZy)'MockTest.test_manager_mock.<locals>.Foor  r  N)r(   r)   r*   r  r  r$   r!   r   r  r  e  s    CCr!   r  r  r  )r   r   r	   r   r  r  attach_mockr  r  rP   r   r   )r   r  managerp1p2mock_onemock_twos          r   test_manager_mockzMockTest.test_manager_mockd  s    	& 	 &\\#u%\\#u%88: 88: He,He,		++dhhj$((*-EFr!   c                 `   t         t        fD ]  } |       }t        d      |_        t        d      |_        t	        |       t        |       | j                  |j                  t        j                         t        j                         g       | j                  |j                  g         y )Nr   r`   g      @)
r   r   r  	__float__r  floatrP   r   r   rV   )r   r>  r   s      r   test_magic_methods_mock_callsz&MockTest.test_magic_methods_mock_callsz  s|    9_ 	1EA!,AI#5AKF!HQ\\DLLNDNN<L+MNQ^^R0	1r!   c                     t        j                  d      } |d      }|j                         } |d      }|j                         }| j                  ||       y )Nr|  	read_dataa-namezanother-name)r   r   readrP   )r   mocked_openf1f1_dataf2f2_datas         r    test_mock_open_reuse_issue_21750z)MockTest.test_mock_open_reuse_issue_21750  sJ    nnv6"'')('')'*r!   c                     t        j                  d      } |d      }|D cg c]  }| }}| j                  |d   d       | j                  |d   d       | j                  t        |      g        y c c}w )NzRemarkable
Norwegian Bluer  r  r   zRemarkable
re   zNorwegian Blue)r   r   rP   r  )r   r  r   lineliness        r    test_mock_open_dunder_iter_issuez)MockTest.test_mock_open_dunder_iter_issue  sr     nn/KL""$%$%%q>2q#34b2& &s   	A4c                    t        j                  d      } |d      }t        |      }|j                         }|D cg c]  }| }}| j	                  |d       | j	                  |d       | j	                  |d   d       | j	                  t        |      g        | j                  t              5  t        |       d d d        y c c}w # 1 sw Y   y xY w)Nz1st line
2nd line
3rd liner  r  z	1st line
z	2nd line
r   z3rd line)r   r   r'   r+   rP   r  rl   rM  )r   r  r   line1line2r  r  s          r   test_mock_open_using_nextz"MockTest.test_mock_open_using_next  s    nn/MN"R"$%$%%--q:.b2&}- 	H	 	 &
	 	s   	C2CCc                     t        j                  d      }d|j                  j                  _        | j	                  dt         |                    y )Nfoo
barnr  abc)r   r   rS   readlinerP   r'   )r   mopens     r   3test_mock_open_next_with_readline_with_return_valuez<MockTest.test_mock_open_next_with_readline_with_return_value  s:    538##0UW.r!   c                 .   t        j                  t        j                  d            }t        j                  d|      5  |j                  }|j
                  }t        d      |_        d }| j                  t        |       d d d        y # 1 sw Y   y xY w)NJLVrp   ztempfile.NamedTemporaryFilezTest 2 Errorc                  J    t        j                         j                  d       y )Nasd)tempfileNamedTemporaryFilewriter$   r!   r   attemptz.MockTest.test_mock_open_write.<locals>.attempt  s    ++-33E:r!   )	r   r   r   r	   rS   r  OSErrorrk   rl   )r   mock_namedtempmock_filehandle
mock_writer  s        r   test_mock_open_writezMockTest.test_mock_open_write  su    E(BCZZ5~F 	0,99O(..J%,^%<J";gw/	0 	0 	0s    ABBc                    t        j                  d      }d |j                  j                  _         |       j                         } |       j                         }| j                  d|       | j                  d|       y )Nr  r  c                       y)Nr  r$   )r   s    r   r   z8MockTest.test_mock_open_alter_readline.<locals>.<lambda>  r5   r!   r  )r   r   rS   r  rk   rP   )r   r  firstseconds       r   test_mock_open_alter_readlinez&MockTest.test_mock_open_alter_readline  sd    52D##/  "!!#&'r!   c                    t        j                  d      } |d      }|j                          | j                  d|j                                | j                  d|j                                | j                  d|j	                                | j                  d|j	                                | j                  g |j                                | j                  g |j                                y )Nro   r  rr   r   )r   r   r  rP   r  	readlines)r   _openr8  s      r   test_mock_open_after_eofz!MockTest.test_mock_open_after_eof  s    /%L	QVVX&QVVX&QZZ\*QZZ\*Q[[]+Q[[]+r!   c                    t         t        fD ]  } |       }t        |      }||_        | j	                   |       |       | j                  t        |      |       |j                          | j	                   |       |       | j                  t        |      |        |       }|j                  |_        | j                  dt        |j                               | j                  dt        |j                               |j                          | j                  dt        |j                               | j                  dt        |j                                |       }t        |      } |       |_        ||j                  _        | j                  t        |      |       | j                  t        |j                               |        y )Nzname='mock.a')
r   r   rt   rS   r  rP   r   r0   r1   rs   )r   r>  r   original_reprs       r   test_mock_parentszMockTest.test_mock_parents  sC   9_ 	9EA GMANMM!#q!T!Wm4LLNMM!#q!T!Wm4A##ACMM/495MM/495LLNMM/495MM/495A GM#AC ACCT!Wm4T!##%[-83	9r!   c                    t         t        t        t        f}|D ]  }|D ]  } |       } |d      }|j	                  |d       | j                  |j                  |       | j                  dt        |             |j                  j                  d       | j                  |j                  t        j                  j                  d      g       | j                  |j                  t        j                  j                  d      g         y )Nro   rp   rr   zname='mock.bar're   )r   r   r   r   r  r  rr   rs   rt   rw   rP   r   r   rV   r   classesr>  Klass2r   m2s         r   test_attach_mockzMockTest.test_attach_mock  s    	#7H 	DE! DG'b%(aeeR(/b:		!  Q/@A  $((,,q/1BCD	Dr!   c                    t         t        t        t        f}t         t        fD ]  }|D ]  } |       } |d      }|j	                  |d       | j                   |       |       | j                  dt        |             |j                          | j                  |j                  t               j                         j                                  y )Nro   rp   rS   zname='mock()')r   r   r   r   r  r  rs   rt   ro   rP   r   r   r  r-  s         r   test_attach_mock_return_valuez&MockTest.test_attach_mock_return_value  s    	#7H9_ 	IE! 
IG'b.1ac2&otBx8  tvzz|/E/E/GH
I	Ir!   c                    t               }t        j                  t         dd      5 }| j	                  |j                  j                         d       |j                  |d       |j                  d       t        d        |d       t        j                  d      t        j                  d      t        j                  d      g}t        d      t        d      t        d      g}| j	                  |j                  |       | j	                  |j                  j                  |       | j	                  t        j                  |       | j	                  |j                  |       | j                  d	t        |j                  j                               | j	                  |j                  j                         d	       d d d        y # 1 sw Y   y xY w)
N
.somethingTr   rE   r   re   r   r   
mock.child)r   r   r	   r(   rP   _extract_mock_namer  r   rE   r   r   rs   rt   )r   r   	mock_funcparent_callschild_callss        r   test_attach_mock_patch_autospecz(MockTest.test_attach_mock_patch_autospec  sQ   ZZ8*J/$? 	P9Y^^>>@+Ny'2LLOaLaL JJqM4::a=$**Q-HL7DGT!W5KV..=V\\44kBY11;?Y11;?MM,V\\->->(?@Y^^>>@,O	P 	P 	Ps   FGGc           
         t        j                  t         dd      5 }t               }|j	                  |d       t               }|j                  dddd	       |j                  t        j                  t         j                  dddd	      g       |j                  j                  t        t         j                  dddd	      g       |j                  t        t         j                  dddd	      g       d d d        t        j                  t         d
d      5 }t               }|j	                  |d       t        d       |j                  t        j                  d      g       t        j                  t        d      g       |j                  t        d      g       d d d        t        j                  t         dd      5 }t               }|j	                  |d       t               }|j                  dddd	       |j                  t        j                         t        j                         j                  dddd	      g       |j                  j                  t        dddd	      g       |j                  t               t               j                  dddd	      g       d d d        y # 1 sw Y   xY w# 1 sw Y   #xY w# 1 sw Y   y xY w)N.Something.methTr   attach_methre   r   r   r  rf  r5  attach_func
.Something
attach_obj)r   r	   r(   r   r  r-   r4   rL  r   r>  r   rE   r?  rA  )r   mockedr  r  s       r   )test_attach_mock_patch_autospec_signaturez2MockTest.test_attach_mock_patch_autospec_signature  sR   ZZ8*O4tD 	DfG6+CHHQ1H"$$d&6&6txxAqA&N%OPHH%%tDHHaA'C&DE##T$((Aq!q%A$BC	D ZZ8*J/$? 	/6fG6aL$$d&6&6q&9%:;&&Qy1##T!WI.	/ ZZ8*J/$? 	I6fG5+CHHQ1H"$$doo&7&*oo&7&<&<Q1&<&J&L MHH%%tAq!q'9&:;##TVTV[[AqA[-F$GH	I 	I#	D 	D	/ 	/	I 	Is&   CJ:BKC%K:KKKc                 <   t               t               t               t               fD ]s  }| j	                  t        |d             |`| j                  t        |d             |`| j                  t        |d             | j                  t        t        |d       u y )Nr   rd   )r   r   r   r   rR   hasattrr   rN   rd   rl   r  r  r]   s     r   test_attribute_deletionz MockTest.test_attribute_deletion7  s    VY[*>*@$&( 		BDOOGD#./WT3/0WT3/0ngtSA		Br!   c                    t               t               t               t               fD ]  }d|_        | j                  t        |d             | j                  |j                  d       |`| j                  t        |d             d|_        | j                  t        |d             | j                  |j                  d       |`| j                  t        |d              y )Nr   ro   r  )	r   r   r   r   ro   rR   rE  rP   rN   r]   s     r   7test_mock_does_not_raise_on_repeated_attribute_deletionz@MockTest.test_mock_does_not_raise_on_repeated_attribute_deletionD  s    VY[*>*@$&( 	3DDHOOGD%01TXXq)WT512DHOOGD%01TXXq)WT512	3r!   c                     t               t               t               t               fD ]$  }|`| j                  t              5  |`d d d        & y # 1 sw Y   1xY wr#   )r   r   r   r   ro   rl   r  r]   s     r   4test_mock_raises_when_deleting_nonexistent_attributez=MockTest.test_mock_raises_when_deleting_nonexistent_attributeW  sZ    VY[*>*@$&( 	D"">2 H 	 s   AA	c                     t               }d|_        |` |j                          | j                  t	        |d             y )NTr   )r   r   r   rN   rE  r]   s     r   /test_reset_mock_does_not_raise_on_attr_deletionz8MockTest.test_reset_mock_does_not_raise_on_attr_deletion_  s8     v
Jw/0r!   c                     t               t               fD ]E  }| j                  |t               t        |_        | j                  |t               |j                   G y r#   )r   r   r%  r  r  r   ro   r]   s     r   test_class_assignablezMockTest.test_class_assignablei  sH    FIK' 	D$$T3/ DN!!$,HH	r!   c                    | j                  t        j                         | j                  t	        t        j                        t
               | j                  t	        t        j                         j                        t
               y r#   )assertIsNotNoner   rq   rP   r  r   r   s    r   test_name_attribute_of_callz$MockTest.test_name_attribute_of_callq  sO     	TYY'dii%0diik../7r!   c                    | j                  t        j                         | j                  t	        t        j                        t
               | j                  t	        t        j                         j                        t
               y r#   )rP  r   r   rP   r  r   r   s    r   test_parent_attribute_of_callz&MockTest.test_parent_attribute_of_callx  sP     	T[[)dkk*E2dkkm223U;r!   c                 f   d }t               }t        |      |_         |j                  dd       | j                  t        |j                  d       | j                  |j                  t        j                  dd      g       | j                  dt        |j                  j                               y )Nc                      y r#   r$   r   s     r   ro   zBMockTest.test_parent_propagation_with_create_autospec.<locals>.foo  r5   r!   re   r   r6  )r   r   r   rl   rj   rP   r   r   rs   rt   r   )r   ro   r   s      r   ,test_parent_propagation_with_create_autospecz5MockTest.test_parent_propagation_with_create_autospec  s{    v$S)


1a)TZZ34::a+;*<=lD$9:r!   c                    d }t               }|j                  t        |d      d       |j                  dd       | j	                  t
        |j                  d       | j                  |j                  j                  t        j                  dd      g       | j                  dt        |j                  j                               y )Nc                      y r#   r$   r   s     r   ro   zGMockTest.test_parent_propagation_with_autospec_attach_mock.<locals>.foo  r5   r!   rr   rp   r   re   r   r6  )r   r  r   r   rl   rj   rP   r   r   rs   rt   r   )r   ro   r   s      r   1test_parent_propagation_with_autospec_attach_mockz:MockTest.test_parent_propagation_with_autospec_attach_mock  s    ?3U;WEQ)V\\15004::a3C2DElD):):$;<r!   c                   	 t         j                  j                  }| j                  d |       t        j                  d      5  t
        j                  d= 	fd	| j                  t
        j                  t        j                                t        j                  	       ddl	m
}m}m}m} ||||t        g}|D ]%  } |t              }| j!                  |t               ' 	 d d d        y # 1 sw Y   y xY w)Nc                 8    t        t        j                  d|       S )Nr	   )r  r  r   )r	   s    r   r   z9MockTest.test_isinstance_under_settrace.<locals>.<lambda>  s    ghmmWe&L r!   zsys.moduleszunittest.mockc                     S r#   r$   )frameeventr   traces      r   r_  z6MockTest.test_isinstance_under_settrace.<locals>.trace  s    r!   r   )r   r   r   r   r   )r  r   r	   r  r  r  modulessettracegettraceunittest.mockr   r   r   r   r   r-   r   )
r   	old_patchr   r   r   r   rx   r   r  r_  s
            @r   test_isinstance_under_settracez'MockTest.test_isinstance_under_settrace  s     MM''	
 	L!	# ZZ& 	6O, OOCLL#,,.9LL 
 i2F	E  6	*%%c956%	6 	6 	6s   BC--C6c                     G d d      } |       }t         j                  j                  j                  |dt              5  d d d        | j	                  |j
                  j                  j                  d       y # 1 sw Y   :xY w)Nc                       e Zd Zd Zy)FMockTest.test_bool_not_called_when_passing_spec_arg.<locals>.Somethingc                 J    t         j                  j                         | _        y r#   )r  r   r   obj_with_bool_funcr   s    r   r    zOMockTest.test_bool_not_called_when_passing_spec_arg.<locals>.Something.__init__  s    *2--*A*A*C'r!   N)r(   r)   r*   r    r$   r!   r   r-   rh    s    Dr!   r-   rj  r   r   )r  r   r	   r   rP   rj  __bool__rQ   )r   r-   r  s      r   *test_bool_not_called_when_passing_spec_argz3MockTest.test_bool_not_called_when_passing_spec_arg  si    	D 	D k]]  ''-A'OUU//88CCQG 	VUs   A<<Bc                 	    G d d      }| j                  t              5  t        t         dd      5  d d d        d d d        | j                  t              5  t        j                  |dd      5  d d d        d d d        | j                  t              5  t        t         dd      5  d d d        d d d        | j                  t              5  t        j                  |dd      5  d d d        d d d        | j                  t              5  t        t         dd      5  d d d        d d d        | j                  t              5  t        j                  |dd      5  d d d        d d d        | j                  t              5  t        |d      }d d d        | j                  t              5  t        j                  t         d	t        d
      5  	 d d d        d d d        | j                  t              5  t        j                  t         d	t        d      5  	 d d d        d d d        | j                  t              5  t        j                  t         d	t        d      5  	 d d d        d d d        t        t         ddd      5  	 d d d        t        j                  |ddd      5  d d d        t        t         ddd      5  	 d d d        t        j                  |ddd      5  d d d        t        t         ddd      5  	 d d d        t        j                  |ddd      5  d d d        t        |dd      }t        j                  t         dddd      5  	 d d d        y # 1 sw Y   MxY w# 1 sw Y   RxY w# 1 sw Y   (xY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   MxY w# 1 sw Y   RxY w# 1 sw Y   xY w# 1 sw Y   !xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   y xY w)Nc                       e Zd ZdZy)/MockTest.test_misspelled_arguments.<locals>.Foor  Nr  r$   r!   r   r  ro    s    Cr!   r  r=  T)r@   r  )rA   )rB   r@  )r4   r@   )r4   rA   )r4   rB   )r  r@   )r  rA   )r  rB   )rB   r  z.Typos)r@   rB   rA   )	rl   rZ  r	   r(   r   r   r  multipler   r  s      r   test_misspelled_argumentsz"MockTest.test_misspelled_arguments  s.   	 	 |, 	K(?3tDJJ	K|, 	@c5D9??	@|, 	K(?3tDJJ	K|, 	@c5D9??	@|, 	J(?3dCII	J|, 	?c548>>	?|, 	4d3A	4
 ~. 	M*J'gG MHLM	M ~. 	M*J'gG MHLM	M ~. 	L*J'gF LGKL	L hZ/M 		\\#uTTBHHhZ/M 		\\#uTTBHHhZ/tL 		\\#uTDAGGC$t<^^j4$$P 		 	I KJ	K 	K @?	@ 	@ KJ	K 	K @?	@ 	@ JI	J 	J ?>	? 	?	4 	4M M	M 	MM M	M 	ML L	L 	L	 	HH	 	HH	 	GG	 	s  NNNN(4N5N(O/N50OO.O/OO6)O)*O6P(P)PP9$P7P*P7$Q(Q*Q$Q+3Q5Q+Q8=RR>RR,?R96SN	NNN%	 N((N25N?	:OOO	OO&)O3	.O66P P	PPP'*P4	/P77QQ		QQQ(	#Q++Q58RRRR),R69SSN)r(   r)   r*   rJ   r^   ra   rg   rm   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r  r  r!  r,  r2  r:  r<  rD  rN  rU  r[  rb  rg  rm  rs  rx  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r&  r-  r4  r<  r@  rC  rE  rQ  r[  rj  rn  ru  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r(  r+  r1  r3  r;  rC  rF  rH  rJ  rL  rN  rQ  rS  rV  rY  re  rl  rq  r$   r!   r   rG   rG   2   s   ,A8F$= -<26E$=!<&CR#&L>,$8@'A (3
.2#,= ?3004	.C&8 6
65
886
868B9$0393/@'('(40(
9-.
8
-3*'5pK;\=69?=?NL3
3" F8 /0%3*3
*X%P%P":>A6
4A&$-
G(V*(! 	)"58/.1.&00j>"22BG,	1+'/
	0(
,9:D"I P(I:
B3&18<
;
=%6NH,r!   rG   __main__)!r  r  r  r  test.supportr   r  #test.test_unittest.testmock.supportr   r   rc  r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r-   r?   rE   r  rG   r(   mainr$   r!   r   <module>rv     s     	 
  "  ;    
6 
% %  D#x   D#NF zHMMO r!   