
    ;bh
>                    *   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    N/opt/python-3.12.12/usr/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    s    Tr!   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   classmethodr7   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   	somethingrD   /   s    $r!   c                   f   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 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rR   z(return value in constructor not honoured)r   rX   rR   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^       r!      )r   r   rR   rO   r   rc   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   rc   z8MockTest.test_change_side_effect_via_delegate.<locals>.fe   rd   r!   )r   	TypeErrorr   side_effectassertRaisesrf   s      r   $test_change_side_effect_via_delegatez-MockTest.test_change_side_effect_via_delegated   s<    q! )		y)F *))s   AAc                    	 d}t        ddt        it        t        g|d}| j	                  t              5   |       j                  d d d        d d d        | j                   |       j                  d d d       |       | j                   |       j                  j
                  j                  d        y # 1 sw Y   hxY w)Nzmocked valuespec)zreturn_value.meth.side_effectzreturn_value.meth.return_valuer0   r1   r2   r$   )	r   r-   
ValueErrorr   rl   r4   rO   rR   rk   )r   mocked_result
class_mocks      r   5test_create_autospec_should_be_configurable_by_kwargsz>MockTest.test_create_autospec_should_be_configurable_by_kwargsk   s    	2&$ >) >.8'-B.;8= >
 z*L5 +**TTT*BMR 	2277CCTJ +*s   B88Cc                 l     G d d      }t        |dd      }| j                  |j                  d       y )Nc                       e Zd Zy)?MockTest.test_create_autospec_correctly_handles_name.<locals>.XNr(   r)   r*   r$   r!   r   Xrw   z   s    r!   ry   TY)spec_setname)r   rO   
_mock_namer   ry   r   s      r   +test_create_autospec_correctly_handles_namez4MockTest.test_create_autospec_correctly_handles_namey   s)    q4c:#.r!   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r|   z'%s'r   barz%s.barz%s.foo()z%s.foo().bingz%s()z%s()()z%s()().foo.bar.baz().bing)r   assertInrepridr   r   bingbaz)r   r   mocksr|   s       r   	test_reprzMockTest.test_repr~   s/   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>.XNrx   r$   r!   r   ry   r          r!   ry   ro   z
 spec='X' r{   z spec_set='X' r   )ro   r|   z name='foo' r   ro   )objectr   r   r   rV   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   rR   )	r   rk   rl   r   assert_called_withrO   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   rc   z-MockTest.test_autospec_side_effect.<locals>.f   rd   r!   z1side effect not used correctly in create_autospecr   z'callable side effect not used correctly)r   rk   rO   )r   r   rc   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   rc   z7MockTest.test_autospec_side_effect_exception.<locals>.f   rd   r!   zBazinga!)r   rq   rk   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   sU   	 	 ZZq#&''(8(bd"$$d ''(8(RT

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

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

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

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

!!!S133!7==?Q ''(8:VW		!## XOT^^-=>  ?+ '&d dT TY YM MQ QQ Q XW>>+ '&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                    	 d G fdd      }t        ||      }t        j                  |_        | j	                   |       j                                | j	                  |j
                  j                  |j
                         y )Nreal resultc                       e Zd Z fdZy)9MockTest.test_create_autospec_wraps_class.<locals>.Resultc                     S r#   r$   r   results    r   
get_resultzDMockTest.test_create_autospec_wraps_class.<locals>.Result.get_result      r!   Nr(   r)   r*   r   r   s   r   Resultr         r!   r   ro   wraps)r   r   r   rR   rO   r   _mock_wraps)r   r   rs   r   s      @r    test_create_autospec_wraps_classz)MockTest.test_create_autospec_wraps_class   sp    		 	 %&?
 #',,
002F;..::F<M<MNr!   c                    	 d G fdd      }t        |d|      }t        j                  |j                  _        | j                  |j                                | j                  |j                  j                  |j                         y )Nr   c                   "    e Zd Ze fd       Zy)BMockTest.test_create_autospec_instance_wraps_class.<locals>.Resultc                  
    	  S r#   r$   r   s   r   r   zMMockTest.test_create_autospec_instance_wraps_class.<locals>.Result.get_result  s    $ r!   N)r(   r)   r*   r<   r   r   s   r   r   r     s     r!   r   T)ro   instancer   )r   r   r   r   rR   rO   r   )r   r   instance_mockr   s      @r   )test_create_autospec_instance_wraps_classz2MockTest.test_create_autospec_instance_wraps_class  sv    	"	 	 (Vd&Q 15  -113V<11==v?P?PQr!   c                     	 d G fdd      }t        |j                  |j                        }| j                   | |                    y )Nr   c                       e Zd Z fdZy)AMockTest.test_create_autospec_wraps_function_type.<locals>.Resultc                     S r#   r$   r   s    r   r   zLMockTest.test_create_autospec_wraps_function_type.<locals>.Result.get_result*  r   r!   Nr   r   s   r   r   r   )  r   r!   r   r   )r   r   rO   )r   r   	func_mockr   s      @r   (test_create_autospec_wraps_function_typez1MockTest.test_create_autospec_wraps_function_type$  sH    	)	 	 $):):&BSBST	68,f5r!   c                 f    	 d }t        ||      }d}||_        | j                   |       |       y )Nc                       y r#   r$   r$   r!   r   my_funczNMockTest.test_explicit_return_value_even_if_mock_wraps_object.<locals>.my_func3  s    r!   r   zexplicit return value)r   rR   rO   )r   r   r   rR   s       r   4test_explicit_return_value_even_if_mock_wraps_objectz=MockTest.test_explicit_return_value_even_if_mock_wraps_object/  s7    		#@	.!-	l3r!   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 )NrD   child)r|   parentro   rD   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-   SomethingElserD   r   rk   rR   
reset_mockrO   r}   rY   rZ   rM   rN   rP   rS   rT   rU   
mock_callsr[   )r   r   ro   r   rD   rR   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   rR   r   r\   s     r   test_reset_mock_recursionz"MockTest.test_reset_mock_recursionc  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_18622j  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 setrK   )keyzincorrect return valuer   r   zcall_args_list not set)r   rQ   r   rR   rO   r   r
   ArgrN   rP   rS   r   r   rT   ReturnValueKeyArg)r   r   r   ret_vals       r   	test_callzMockTest.test_calln  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   KwargrO   rT   rS   r   r   rM   r\   s     r   test_call_args_comparisonz"MockTest.test_call_args_comparison  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   rQ   rM   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_with  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$   r9   s       r   rc   z9MockTest.test_assert_called_with_function_spec.<locals>.f      r!   r   re   r   r   r1   r2   rp      er#   )r   r   rl   r  assertIsInstance	exception	__cause__rj   r   rc   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  rp   )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   r7   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_namer   )r   r  formatr   assert_called)r   msgs     r   $test_assert_called_exception_messagez-MockTest.test_assert_called_exception_message  sx    2##NCJJv4FGF  " H##NCJJ{4KLk"002 ML HGLLs   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 )Nr   r   r   r   c                  .      j                   ddd      S )Nbobr   r   r$  assert_called_once_withr   s   r   <lambda>z7MockTest.test_assert_called_once_with.<locals>.<lambda>  s    0D001Er!   )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0r!   )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$   r9   s       r   rc   z>MockTest.test_assert_called_once_with_function_spec.<locals>.f(  r  r!   r   re   r   r   r  rp   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   rD   rQ   r   rO   rR   rN   r   r   rD   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 )NrD   z attribute name not set correctlyz"attribute parent not set correctly)r   rD   rO   r}   rY   r7  s      r   (test_attributes_have_name_and_parent_setz1MockTest.test_attributes_have_name_and_parent_setM  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   r4  )cakerD   )r4  r<  z#method calls not recorded correctly)r   r   zsomething_else.something)r   rD   something_elser
   CakerO   rU   r\   s     r   test_method_calls_recordedz#MockTest.test_method_calls_recordedW  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   rD   r$   	different)rD   rA  rB  re   xrD  more)somerF  )r   rD   rO   rU   r\   s     r    test_method_calls_compare_easilyz)MockTest.test_method_calls_compare_easilyf  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 )NrD   r   )ro   r{   z-Mock object has no attribute 'something_else'r=  r$   )r   rD   r   AttributeErrorgetattr)r   ro   argr   s       r   test_only_allowed_methods_existz(MockTest.test_only_allowed_methods_exist~  sS     M>1D)*sDk* &&"CT#3 * 2r!   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.y  s    r!   )r(   r)   r*   rD  __something__rQ  r$   r!   r   r-   rO    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__)rD  rQ  rR  r   rI  rJ  r  s    r   test_attributesz0MockTest.test_from_spec.<locals>.test_attributes  sR    FFFF""2s
 "";|r!   r   )r   r   )r   r-   rV  s   `  r   test_from_speczMockTest.test_from_spec  s2    	 	
	  	),-)+./r!   c                 F   t               }t        |      }| j                  |j                  t               | j	                  |j                  t               | j                   |        |              |j                           |ddd       |j                  ddd       y )Nr   re   r   r   r   )r   rO   rR   r   assertNotEqualr   r   r   realr   s      r   test_wraps_callszMockTest.test_wraps_calls  s    v$
 	**G4 	D--w7(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>.RealNrx   r$   r!   r   Realr`    r   r!   ra  rY  c                  &      j                          S r#   )new_attrr   s   r   r)  zJMockTest.test_wraps_prevents_automatic_creation_of_mocks.<locals>.<lambda>  s    -$--/r!   )r   r   rl   rI  r   ra  r\  r   s      @r   /test_wraps_prevents_automatic_creation_of_mocksz8MockTest.test_wraps_prevents_automatic_creation_of_mocks  s3    	6 	 v$.*ABr!   c                     t               }t        |      }d|_        | j                   |       d       | j                  |j                         y )NrY  r   )r   rR   rO   rM   rN   r[  s      r   ,test_wraps_call_with_nondefault_return_valuez5MockTest.test_wraps_call_with_nondefault_return_value  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   ra  rj    s	    Ir!   ra  rY  c                       j                   S r#   r   r   s   r   r)  z0MockTest.test_wraps_attributes.<locals>.<lambda>  s	    $))r!   re   r   r   r   )	r   r   rO   rk  rl   rI  rZ  frogr   )r   ra  r\  r   r   s       @r   test_wraps_attributeszMockTest.test_wraps_attributes  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*   rt  r$   r!   r   ra  rq    s    /r!   ra  rY  )r   r   r
   VALUE1r   rt  rk   rO   rs  rl   StopIterationrd  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   rt  zUMockTest.test_customize_wrapped_object_with_side_effect_iterable.<locals>.Real.method      dr!   Nru  r$   r!   r   ra  r{        "r!   ra  rY  )
r   r   r
   rv  VALUE2rt  rk   rO   rl   rw  rd  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   rt  zVMockTest.test_customize_wrapped_object_with_side_effect_exception.<locals>.Real.method  r}  r!   Nru  r$   r!   r   ra  r    r~  r!   ra  rY  )r   r   RuntimeErrorrt  rk   rl   rd  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   rt  zUMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.Real.method  r}  r!   Nru  r$   r!   r   ra  r    r~  r!   ra  c                  "    t         j                  S r#   )r
   VALUEr$   r!   r   rk   zUMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.side_effect  s    >>!r!   rY  )r   r   rt  rk   rO   r
   r  )r   ra  rk   r\  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   rt  zMMockTest.test_customize_wrapped_object_with_return_value.<locals>.Real.method  r}  r!   Nru  r$   r!   r   ra  r    r~  r!   ra  rY  )r   r   r
   r  rt  rR   rO   rd  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   rt  z]MockTest.test_customize_wrapped_object_with_return_value_and_side_effect.<locals>.Real.method  r}  r!   Nru  r$   r!   r   ra  r    r~  r!   ra  rY  )r   r   r
   rv  r  rt  rk   WRONG_VALUErR   rO   rl   rw  rd  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   rt  z^MockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.Real.method.  r}  r!   Nru  r$   r!   r   ra  r  -  r~  r!   ra  rY  c                      t         S r#   r   r$   r!   r   r)  z[MockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.<lambda>2  s    'r!   )r   r   rt  rk   r
   r  rR   rO   rd  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   rt  zeMockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default.<locals>.Real.method:  r}  r!   Nru  r$   r!   r   ra  r  9  r~  r!   ra  rY  )r   r   r
   rv  r   rt  rk   r   rR   rO   rl   rw  rd  s       r   Gtest_customize_wrapped_object_with_return_value_and_side_effect_defaultzPMockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default8  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 )Nr   r   rY  rR   r   spam)r   rO   getr  rM   rR   r
   r   )r   datawrapped_dicts      r   test_magic_method_wraps_dictz%MockTest.test_magic_method_wraps_dictF  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__k  s    r!   c                      yNr   r$   r   s    r   __custom_method__zEMockTest.test_magic_method_wraps_class.<locals>.Foo.__custom_method__n  s    r!   N)r(   r)   r*   r  r  r$   r!   r   Foor  i  s    r!   r  rY  r   r   )r   rO   r  r  )r   r  klassobjs       r   test_magic_method_wraps_classz&MockTest.test_magic_method_wraps_classg  se    	 	 $g+Q/Q#..0%8r!   c                     t        t              }| j                  t        |       t        t        d            }| j                  t        |       y Nr   r   )r   rI  rl   r\   s     r   test_exceptional_side_effectz%MockTest.test_exceptional_side_effecty  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_message  s$    v~| $ 7 7	9r!   c                 ^    t        d      }| j                  t        d|j                         y )Ngeoffreyr   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>  s	    $--r!   r   )r   rl   rI  r(   rO   r\   s    @r   test__name__zMockTest.test__name__  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>.SubNrx   r$   r!   r   Subr    r   r!   r  r   r   r   )listr   appendr   rl   rI  rJ  )r   r  r   s      r   test_spec_list_subclassz MockTest.test_spec_list_subclass  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>.XNrx   r$   r!   r   ry   r    r   r!   ry   r   r   r   )r   r   r  assertIs	__class__rO   r(   r~   s      r   test_spec_classzMockTest.test_spec_class  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>.XNrx   r$   r!   r   ry   r    r   r!   ry   r   r   r   )r   r  r  r  rO   r(   r~   s      r   test_spec_class_no_object_basez'MockTest.test_spec_class_no_object_base  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*   rQ  r$   r!   r   ry   r    s    Ar!   ry   r   r   r   c                      d _         y r  rC  r   s   r   set_attrz?MockTest.test_setting_attribute_with_spec_set.<locals>.set_attr  s
    DFr!   )r   r   rD  rQ  rl   rI  )r   ry   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 )Nr   r   r  s   r   r  z4MockTest.test_subclass_with_properties.<locals>.test  s
    AEr!   )r   rO   r  rl   r  rI  )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
startswithrO   r0   r1   r   r2   r3   r%   )r   r   attrsr	  
type_attrss        r   test_dirzMockTest.test_dir
  s    vCISYHYall36G!Y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  rO   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   rO   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   rR   r   r  rV   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 )Nr   r  !   )rk   zfoo.bar.return_valuer   r$   )	r   rO   r   r   KeyErrorrl   r   r  configure_mock)r   r   r   s      r   test_configure_mockzMockTest.test_configure_mockD  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  rO   )r   r  messagefuncr   r   contextr!  s           r   assertRaisesWithMsgzMockTest.assertRaisesWithMsgY  sM    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')z2expected call not found.
Expected: %s
  Actual: %sre   2r   r   )r   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   r   r(  )r   r   actualexpectedr   	assertersr4   s          r   'test_assert_called_with_failure_messagez0MockTest.test_assert_called_with_failure_messagea  s    /H  Gx&88##QQE 	! 	

 	C& HH'')I)I
	 D0F2HLG$$8V*< <aaU % 	  D0F'HLG$$8V*< <% % 	  D0F%HLG$$8V*< <aA	  D0FHLG$$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   r2  r3  r  z().foor   r   z
().foo.barz().foo.bar().bazr   r   zfoo.__int__r0   za()z().foo.bar().baz().__int__)r   r  r   rO   r   r  r   dictrR   r   r   	call_listr  r0   r1   r2   __int__)r   r   r'  r   	last_calls        r   test_mock_callszMockTest.test_mock_calls  sQ   { 	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   wibblerO   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   r   rD   rZ  r   r   rA  rO   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 r6  r   r   r   rZ  r   r   r   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   rC  r   )r   r   r   rO   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   r9  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   r   r   rZ  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   r   r   r   r&  rO   r   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   r   r   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   rM   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>.SubclassNrx   r$   r!   r   SubclassrK  '  r   r!   rL  c                       e Zd Zd Zy)rK  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*   rO  r$   r!   r   rL  z+MockTest.test_subclassing.<locals>.Subclass.  s    &r!   )r   r  r   assertNotIsInstance)r   rL  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)rT   rU   r   )rJ  r  r   r  rO   )r   namesr|   attrr   s       r   assert_attrsz-MockTest.test_arg_lists.<locals>.assert_attrs?  sN    BEtT*%%dI6%%dD1  r*	 r!   re   r   r   rC   )	r   r   r   r   callabler   r   r   r   )r   r   rV  r   s   `   r   test_arg_listszMockTest.test_arg_lists7  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   rC   r   r2  r1   )r   re   r   )	r   rO   lenrS   r   r   r-  ziprT   )r   r   expected_listr'  rS   s        r   test_call_args_two_tuplez!MockTest.test_call_args_two_tupleZ  s    vQ!Q!T^^,a0,,d3..q	:q	*T4!9,=>#&}d6I6I#JHiS^Q/Xa[)A,7Xa[)A,7 $Kr!   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   rp   ghi)ghic                       e Zd Zy)/MockTest.test_side_effect_iterator.<locals>.FooNrx   r$   r!   r   r  rf  w  r   r!   r  r   )	r   r   rO   rl   rw  r   r   r  r   )r   r   r  s      r   test_side_effect_iteratorz"MockTest.test_side_effect_iteratorj  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   r4  r   )r   r   rq   r  rl   rO   )r   Klassiterabler	  s       r   $test_side_effect_iterator_exceptionsz-MockTest.test_side_effect_iterator_exceptions  sl    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   rp   r   )
r   r   rk   rO   rl   rw  r  r   r   r  )r   r   rk   	this_iters       r   !test_side_effect_setting_iteratorz*MockTest.test_side_effect_setting_iterator  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   rO   r\   s     r   !test_side_effect_iterator_defaultz*MockTest.test_side_effect_iterator_default  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   rC   r2  r4  rZ  r0   )r   r2  r$   )r+  re   r   r+  rs  T	any_orderr%  r   r3     )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_order  s   vQ
q	Q
q	q	 AJ#qS!H~2Qx.r2Qx0	
 D!D!!4&D9  CL$)TVQeCD 5 5$   D !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   rr  r4  rZ  r+  r[  r1   rC   r  r2  r   )r   r   r   extendr  r   r.  bamr  r   r   r   r  ranger\  rw  rl   r  r  reversed)	r   kalls1kalls2r   r   rx  rd  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__  r  r!   Nc                      y r#   r$   r/   s        r   r4   zBMockTest.test_assert_has_calls_nested_spec.<locals>.Something.meth  s    Tr!   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__      tr!   c                      y r#   r$   )r   r0   r1   s      r   meth1zGMockTest.test_assert_has_calls_nested_spec.<locals>.Something.Foo.meth1  r  r!   N)r(   r)   r*   r    r  r$   r!   r   r  r     s    ++r!   r  r#   )r(   r)   r*   r    r4   r  r$   r!   r   r-   r    s    $1, ,r!   r-   re   r   r   r3   r2  )
r   r4   rw  r   r   rl   r  r  r  non_existent)r   r-   
mock_classr	  invalid_callsry  s         r   !test_assert_has_calls_nested_specz*MockTest.test_assert_has_calls_nested_spec  s   	, 	, %Y/
jl+AFF1aaF 		!QQ 789		!Q1 567 ,
 	jl+Ana.@.@488:,OEE!HNN1a TXXa[->->q!-DEFEE""DGTV\\!Q-?#@A	 , 	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   r   r   r   r  r  threer   r.  rw  )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$   r9   s       r   rc   z<MockTest.test_assert_has_calls_with_function_spec.<locals>.f+  r  r!   r   re   r   r   r  r2  r3  r4  rv  r2   r3   
         )r2   r+  r   )r2  r3  r4  r3   )r  r  r  Trt  r,  r#   )r   rw  r  r  rl   r  )r   rc   r   r  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$   rC  s    r   rc   zAMockTest.test_assert_has_calls_not_matching_spec_error.<locals>.fJ      tr!   r   re   z^{}$z7Calls 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.  rw  r   rX   r  r  r  rj   r  s       r   -test_assert_has_calls_not_matching_spec_errorz6MockTest.test_assert_has_calls_not_matching_spec_errorI  s   |Q##II 4 567
 ;=!D!!46(+7 	",,001 ##II./01 57!D!!4641:"671 	bll44i@'7 71 1s   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   rC   r4  rZ  r2  )r   assert_any_callrl   r  r\   s     r   test_assert_any_callzMockTest.test_assert_any_calld  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$   r9   s       r   rc   z;MockTest.test_assert_any_call_with_function_spec.<locals>.f  r  r!   r   re   r   r   r  r2  r3  r4  rv  r  rp   r9   r  r  r#   )r   r  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   rc   z3MockTest.test_mock_calls_create_autospec.<locals>.f  s    Tr!   re   r   r   r2  )r   rc   r   rO   r   r   )r   rc   r  funcsr!  s        r   test_mock_calls_create_autospecz(MockTest.test_mock_calls_create_autospec  sx    f AC ""
 DAJAJ$q!*d1aj!9	 r!   c                 x    t        j                  t               d      }| j                  dt	        |             y )N
sweet_funcr   )r   r   r   r   r   r  s     r   test_create_autospec_with_namez'MockTest.test_create_autospec_with_name  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$   )r6   s    r   class_methodzZMockTest.test_create_autospec_classmethod_and_staticmethod.<locals>.TestClass.class_method  s    #'r!   c                       y r#   r$   r$   r!   r   static_methodz[MockTest.test_create_autospec_classmethod_and_staticmethod.<locals>.TestClass.static_method  s    !%r!   N)r(   r)   r*   r;   r  r<   r  r$   r!   r   	TestClassr    s    ' '% %r!   r  )r  r  )rt  	extra_arg)subTestr   r   rJ  r(  rl   rj   )r   r  rt  mock_methods       r   1test_create_autospec_classmethod_and_staticmethodz:MockTest.test_create_autospec_classmethod_and_staticmethod  so    	& 	& 8FV,"2279f3MN335!!)[+F	 -, 8,,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_once  s    4r!   c                      y r#   r$   r   s    r   	has_callsz0MockTest.test_mock_unsafe.<locals>.Foo.has_calls  s    r!   N)r(   r)   r*   r  r  r$   r!   r   r  r    s    '%r!   r  r   T)unsafe)r   r   rI  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_unsafe  s   FA##NC8 9##NC8 9##NC8 9##NC8 9##NC8 9##NC8  9##NC8MMO 9##NC8KKM 9	&& 	&
 cN			((*	&&(								K 9888888888888888s_   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      $r!   c                      y r#   r$   r   s    r   
assertSomez9MockTest.test_mock_safe_with_spec.<locals>.Foo.assertSome  r  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  sL    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  sg    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  rV   r  r  )r   r	  r  s      r   *test_assert_called_once_message_not_calledz3MockTest.test_assert_called_once_message_not_called  sL    F~.!  " /3q{{#34 /.s   AA(c                     t               }|j                  dd       d}| j                  t        |j                  j                        |       y )Nr  hero)r|   daddyz call(name='hello', daddy='hero'))r   r  rO   r   rS   )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   rO   rU   )r   r2   rd  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 )Nr  r   r   rR   rk   T)r   r   r  rR   rO   rk   r  s     r   test_reset_return_sideeffectz%MockTest.test_reset_return_sideeffect2  sJ    bqe4	$D9annd3-r!   c                     t        dddg      }|j                  d       | j                  |j                  t                | j	                  |j
                  d        y )Nr  r   r   r  Tr_   )r   r   r  rR   rZ  rk   r  s     r   test_reset_returnzMockTest.test_reset_return8  sH    bqe4	$'annd3AMM40r!   c                     t        dddg      }|j                  d       | j                  |j                  d       | j                  |j                  d        y )Nr  r   r   r  Tr   )r   r   rO   rR   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_   rc   T)r   rO   rc   r   rZ  r  s     r   test_reset_return_with_childrenz(MockTest.test_reset_return_with_childrenD  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   rZ  rc   rk   r   rO   r  s     r   +test_reset_return_with_children_side_effectz4MockTest.test_reset_return_with_children_side_effectJ  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  Q      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  S  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  r  r$   r!   r   Anythingr  U  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  r  r{   )r   r   r   r   r   r  r  r-  r  r  r  mock_add_specrl   rI  rJ  setattr)
r   r  r  klassesri  r   r   OneTwor  s
            @r   test_mock_add_speczMockTest.test_mock_add_specP  s   	6 		6 		'v 	' )_.B
 ']ENNE;<NNE?@ # E&$"55w$((DJJ."&%/A BHC"&&$*="=***39&9))*GT5 ))*GT7 &/ -- .w +**39&9))*GT5 ))*GT7 &/ -- .w1 #> !C 6 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 )Nr   r2  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/  rR   rO   r   ri  r   s     @r    test_mock_add_spec_magic_methodsz)MockTest.test_mock_add_spec_magic_methods  s     44E7DIDv&id37DK'(DLL%Ds#SY*i)<= 5r!   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 )Nr|   r   )r   r   r   r   r   r   rO   rU   r   r   r   r   r  s      r   test_adding_child_mockzMockTest.test_adding_child_mock  s   %tY8L!E7DvDHDHHJT..=T__txxzl;7D(DHDHHJT..3T__b1 7D"y{}DHDHHJT..3T__b1+!r!   c                     t         t        fD ]W  } |       }t               |_          |               | j                  |j                  t                t                      g       Y y r#   )r   r   rR   rO   r   r   r  s      r   test_adding_return_value_mockz&MockTest.test_adding_return_value_mock  sK    9_E7D )DDFHT__tvvtvx.@A %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    s    CCr!   r  r  r  )r   r   r	   r   r  r  attach_mockr  r  rO   r   r   )r   r  managerp1p2mock_onemock_twos          r   test_manager_mockzMockTest.test_manager_mock  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  floatrO   r   r   rU   )r   ri  r	  s      r   test_magic_methods_mock_callsz&MockTest.test_magic_methods_mock_calls  sw    9_EA!,AI#5AKF!HQ\\DLLNDNN<L+MNQ^^R0 %r!   c                     t        j                  d      } |d      }|j                         } |d      }|j                         }| j                  ||       y )Nr  	read_dataa-namezanother-name)r   r   readrO   )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   rO   r  )r   r-  r.  lineliness        r    test_mock_open_dunder_iter_issuez)MockTest.test_mock_open_dunder_iter_issue  ss     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+   rO   r  rl   rw  )r   r-  r.  line1line2r4  r5  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   rR   readlinerO   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JLVr   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	   rR   rG  OSErrorrk   rl   )r   mock_namedtempmock_filehandle
mock_writerH  s        r   test_mock_open_writezMockTest.test_mock_open_write  sm    E(BCZZ5~F,99O(..J%,^%<J";gw/ GFFs    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>
  s    ur!   r=  )r   r   rR   r>  rk   rO   )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 )Nr   r)  r   r+  )r   r   r,  rO   r>  	readlines)r   _openrc  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   r   rR   r  rO   r   r0   r1   r   )r   ri  r	  original_reprs       r   test_mock_parentszMockTest.test_mock_parents  s>   9_E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 %r!   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 )Nr   r   r   zname='mock.bar're   )r   r   r   r   r  r  r   r   r   r   rO   r   r   rU   r   classesri  Klass2r	  m2s         r   test_attach_mockzMockTest.test_attach_mock9  s    	#7HE!G'b%(aeeR(/b:		!  Q/@A  $((,,q/1BC " 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 )Nr   r   rR   zname='mock()')r   r   r   r   r  r  r   r   r   rO   r   r   r.  r[  s         r   test_attach_mock_return_valuez&MockTest.test_attach_mock_return_valueJ  s    	#7H9_E!G'b.1ac2&otBx8  tvzz|/E/E/GH " %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   rD   r   re   r   r   
mock.child)r   r   r	   r(   rO   _extract_mock_namer  r   rD   r   r   r   r   )r   r   	mock_funcparent_callschild_callss        r   test_attach_mock_patch_autospecz(MockTest.test_attach_mock_patch_autospecZ  sE   ZZ8*J/$?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 @??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   r2  r  rc  attach_func
.Something
attach_obj)r   r	   r(   r   r  r-   r4   rw  r   rl  r   rD   rm  ro  )r   mockedr  r  s       r   )test_attach_mock_patch_autospec_signaturez2MockTest.test_attach_mock_patch_autospec_signaturen  s8   ZZ8*O4t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 E ZZ8*J/$?6fG6aL$$d&6&6q&9%:;&&Qy1##T!WI. @ ZZ8*J/$?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 @?# ED @? @?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	  rc   )r   r   r   r   rQ   hasattrr	  rM   rc   rl   rI  rJ  r\   s     r   test_attribute_deletionz MockTest.test_attribute_deletion  s~    VY[*>*@$&(DOOGD#./WT3/0WT3/0ngtSA(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   r   r2  )	r   r   r   r   r   rQ   rs  rO   rM   r\   s     r   7test_mock_does_not_raise_on_repeated_attribute_deletionz@MockTest.test_mock_does_not_raise_on_repeated_attribute_deletion  s    VY[*>*@$&(DDHOOGD%01TXXq)WT512DHOOGD%01TXXq)WT512(r!   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   r   rl   rI  r\   s     r   4test_mock_raises_when_deleting_nonexistent_attributez=MockTest.test_mock_raises_when_deleting_nonexistent_attribute  sL    VY[*>*@$&(D"">2H 32( 32s   AA	c                     t               }d|_        |` |j                          | j                  t	        |d             y )NTr   )r   r   r   rM   rs  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   rP  r  r  r  r   r\   s     r   test_class_assignablezMockTest.test_class_assignable  sC    FIK'D$$T3/ DN!!$,HH (r!   c                    | j                  t        j                         | j                  t	        t        j                        t
               | j                  t	        t        j                         j                        t
               y r#   )assertIsNotNoner   r|   rO   r   r   r   s    r   test_name_attribute_of_callz$MockTest.test_name_attribute_of_call  sO     	TYY'dii%0diik../7r!   c                    | j                  t        j                         | j                  t	        t        j                        t
               | j                  t	        t        j                         j                        t
               y r#   )r~  r   r   rO   r   r   r   s    r   test_parent_attribute_of_callz&MockTest.test_parent_attribute_of_call  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   r   zBMockTest.test_parent_propagation_with_create_autospec.<locals>.foo  r  r!   re   r   rd  )r   r   r   rl   rj   rO   r   r   r   r   r   )r   r   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   r   zGMockTest.test_parent_propagation_with_autospec_attach_mock.<locals>.foo  r  r!   r   r   r   re   r   rd  )r   r  r   r   rl   rj   rO   r   r   r   r   r   )r   r   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&Lr!   zsys.moduleszunittest.mockc                     S r#   r$   )frameeventrK  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   r   r   r  r  s
            @r   test_isinstance_under_settracez'MockTest.test_isinstance_under_settrace  s     MM''	
 	L!	# ZZ&O, OOCLL#,,.9LL 
 i2F	E 	*%%c95 % '&&s   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-   r  	  s    Dr!   r-   r  r   r   )r  r   r	   r   rO   r  __bool__rP   )r   r-   r  s      r   *test_bool_not_called_when_passing_spec_argz3MockTest.test_bool_not_called_when_passing_spec_arg	  sf    	D 	D k]]  ''-A'OO//88CCQG POs   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  r  	  s    Cr!   r  rk  T)r?   r  )r@   )rA   rn  )r4   r?   )r4   r@   )r4   rA   )r  r?   )r  r@   )r  rA   )rA   r  z.Typos)r?   rA   r@   )	rl   r  r	   r(   r   r   rI  multipler   r  s      r   test_misspelled_argumentsz"MockTest.test_misspelled_arguments	  s   	 	 |,(?3tDD -|,c5D99 -|,(?3tDD -|,c5D99 -|,(?3dCC -|,c5488 -|,d3A -
 ~.*J'gGHLG / ~.*J'gGHLG / ~.*J'gFGKF / hZ/M N\\#uTTBBhZ/M N\\#uTTBBhZ/tL M\\#uTDAAC$t<^^j4$$PP PI ED -, :9 -, ED -, :9 -, DC -, 98 -,,,G G /.G G /.F F /. NMBBMMBBLLAAP P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*   rI   r]   r`   rg   rm   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r"  r*  r/  r5  r8  r:  r?  rG  rL  rW  r]  re  rg  rn  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)  r1  r4  r7  r:  r<  r?  rA  rC  rF  rH  rQ  rX  r_  rg  rk  rn  rp  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'  r2  r6  r:  r@  rM  rR  rV  rY  r_  ra  ri  rq  rt  rv  rx  rz  r|  r  r  r  r  r  r  r  r$   r!   r   rF   rF   2   s   ,A8F$K/
= -<26E$=!:O R*	6	4&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!   rF   __main__)!r  r-  r  rE  test.supportr   r  #test.test_unittest.testmock.supportr   r   r  r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r-   r>   rD   r  rF   r(   mainr$   r!   r   <module>r     s     	 
  "  ;    
6 
% %  X$x   X$vH zHMMO r!   