
    dafO=                    *   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    ?/root/Python-3.12.4/Lib/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                   `   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 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   sE    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)zqIf kwargs are given to configure mock, the function must configure
        the parent mock during initialization.zmocked valuespec)zreturn_value.meth.side_effectzreturn_value.meth.return_valueN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     '$ >) >.8'-B.;8= >
 z* 	6L5	6**TTT*BMR 	2277CCTJ	6 	6s   B77C c           	      B   t        d      }| j                  dt        |             | j                  dt        |      z  t        |             t               dft        d      dfg}|D ]1  \  }}| j                  d|z  t        |j                               | j                  d|z  t         |j
                                      | j                  d|z  t         |j
                         j                               | j                  d	|z  t         |                    | j                  d
|z  t          |                           | j                  d|z  t          |              j
                  j                  j                         j                               4 y )Nfoonamez'%s'r   barz%s.barz%s.foo()z%s.foo().bingz%s()z%s()()z%s()().foo.bar.baz().bing)r   assertInrepridry   rv   bingbaz)r   r   mocksrx   s       r   	test_reprzMockTest.test_repry   s4   eT$Z(fr$x'd4&&!De$4e#<= 	=JD$MM(T/4>:MM*t+T($((*-=>MM/D0$xtxxz2GHMM&4-df6MM(T/4>:MM5<vtvx||//335::;=	=r!   c                     G d dt               }t        |      }| j                  dt        |             t         |             }| j                  dt        |             t        |      }| j                  dt        |             t         |             }| j                  dt        |             t        |d      }| j                  dt        |             | j                  d	t        |             t        d
      }| j	                  dt        |             t               }| j	                  dt        |             t        dg      }| j	                  dt        |             y )Nc                       e Zd Zy)'MockTest.test_repr_with_spec.<locals>.XNr(   r)   r*   r$   r!   r   Xr          r!   r   ro   z
 spec='X' spec_setz spec_set='X' rv   )ro   rx   z name='foo' rw   ro   )objectr   rz   r{   rV   r   r   r   s      r   test_repr_with_speczMockTest.test_repr_with_spec   s   	 	 |lDJ/~lDJ/Q&T
3QS!&T
3'lDJ/nd4j1d,vd,%!d,r!   c                 
   t               }d }||_        | j                  t        |ddd        |j                  ddd       g dfd}||_        | j                   |        |        |       gg dd	       t        t        j                  
      }| j                  |j                  t        j                  d       d }t        |t        j                        }| j                   |       t        j                         y )Nc                      t        d      )Nkablooie)SystemError)argskwargss     r   effectz)MockTest.test_side_effect.<locals>.effect   s    j))r!   re         fishre   r   r   c                  $     j                         S r#   popresultss   r   r   z)MockTest.test_side_effect.<locals>.effect       ;;= r!   r   r   re   zside effect not used correctlyrk   z#side effect in constructor not usedc                      t         S r#   r   r$   r!   r   rk   z.MockTest.test_side_effect.<locals>.side_effect   s    Nr!   )rk   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   s   	 	 ZZq#& 	!''(8(bd %"$$% ''(8(RT A

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

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

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

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

!!!S133!7==?@ ''(8:VW 		!##OT^^-=> ! !+	! 	!% %A AC C< <@ @@ @ ! !+	! 	!s   L	J$L	;1J1,L	
;J>L	#;KL	<;K7L	;K%L	. K10L	>K=L	$J.	)L	1J;	6L	>K	L	K	L	K"	L	%K.	*L	1K:	6L	=L	L		Lc                    d G fdd      }t        ||      }t        j                  |_        | j	                   |       j                                | j	                  |j
                  j                  |j
                         y)zWAutospec a class with wraps & test if the call is passed to the
        wrapped object.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   wrapsN)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   sm     	 	 %&?
 #',,
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)z`Autospec a class instance with wraps & test if the call is passed
        to the wrapped object.r   c                   "    e Zd Ze fd       Zy)BMockTest.test_create_autospec_instance_wraps_class.<locals>.Resultc                       S )zThis is a static method because when the mocked instance of
                'Result' will call this method, it won't be able to consume
                'self' argument.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   N)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
  ss     	 	 (Vd&Q 15  -113V<11==v?P?PQr!   c                     d G fdd      }t        |j                  |j                        }| j                   | |                    y)zfAutospec a function or a method with wraps & test if the call is
        passed to the wrapped object.r   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   N)r   r   rO   )r   r   	func_mockr   s      @r   (test_create_autospec_wraps_function_typez1MockTest.test_create_autospec_wraps_function_type  sE     	 	 $):):&BSBST	68,f5r!   c                 d    d }t        ||      }d}||_        | j                   |       |       y)zIf the mock has an explicit return_value set then calls are not
        passed to the wrapped object and the return_value is returned instead.
        c                       y r#   r$   r$   r!   r   my_funczNMockTest.test_explicit_return_value_even_if_mock_wraps_object.<locals>.my_func.  s    r!   r   zexplicit return valueN)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*  s2    	#@	.!-	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)rx   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   
_mock_namerY   rZ   rM   rN   rP   rS   rT   rU   
mock_callsr[   )r   r   ro   r   rD   rR   s         r   test_reset_mockzMockTest.test_reset_mock5  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_recursion^  s    v  	r!   c                 L    t        j                         }|j                          y r#   )r   r   r   r   r0   s     r   (test_reset_mock_on_mock_open_issue_18622z1MockTest.test_reset_mock_on_mock_open_issue_18622e  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_calli  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_namerw   )r   r   formatr   assert_called)r   msgs     r   $test_assert_called_exception_messagez-MockTest.test_assert_called_exception_message  s    2##NCJJv4FG 	#F  "	###NCJJ{4KL 	3k"002	3 	3	# 	#	3 	3s   B.BBB'c                    t                         j                                   | j                  t        j                          j                          | j                  t        j                          ddd        j                  ddd        j                           ddd       | j                  t        fd       y )Nrv   ry   r   r~   c                  .      j                   ddd      S )Nbobry   r   r  assert_called_once_withr   s   r   <lambda>z7MockTest.test_assert_called_once_with.<locals>.<lambda>  s    0D001E r!   )r   r#  rl   r   r   r\   s    @r   test_assert_called_once_withz%MockTest.test_assert_called_once_with  s    v 	%$$&.$*F*FG.$*F*FGUEq!$$$UEq9UEq!E	
r!   c                     t                d        d       | j                  t        t        j                  d      fd       y )Nre   r   zCalls: [call(1), call(2)]c                  &     j                  d      S )Nr   r"  )r  s   r   r$  zAMockTest.test_assert_called_once_with_call_list.<locals>.<lambda>  s    A--a0 r!   )r   r   r   reescaper  s    @r   &test_assert_called_once_with_call_listz/MockTest.test_assert_called_once_with_call_list  s8    F	!	!~II120	2r!   c                 B   dd}t        |      } |ddd        |j                  ddd        |j                  ddd       | j                  t        |j                  ddd       | j                  t              5 } |j                  d	       d d d        | j	                  j
                  j                  t                |d
dd       | j                  t        |j                  ddd       | j                  t        |j                  d
dd       y # 1 sw Y   xY w)Nc                      y r#   r$   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_mocks8  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   r2  s      r   (test_attributes_have_name_and_parent_setz1MockTest.test_attributes_have_name_and_parent_setH  sH    vNN	--{;	=//=	?r!   c                 z   t               } |j                  dd        |j                  j                  dt        j                         | j                  |j                  j                  dddt        j                  ifgd       | j                  |j                  dd	d
d ifdddt        j                  ifgd       y )Nr   r   r/  )cakerD   )r/  r7  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_recordedR  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   r<  r=  re   xr?  more)somerA  )r   rD   rO   rU   r\   s     r    test_method_calls_compare_easilyz)MockTest.test_method_calls_compare_easilya  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'r8  r$   )r   rD   r   AttributeErrorgetattr)r   ro   argr   s       r   test_only_allowed_methods_existz(MockTest.test_only_allowed_methods_existy  s]     M>1 
	D) 	*sDk* &&"CT#3	
	r!   c                       G d dt               } fd} |t        |              |t         |                    y )Nc                       e Zd ZdZdZd Zy)*MockTest.test_from_spec.<locals>.Somethingr   Nc                      y r#   r$   r   s    r   yz,MockTest.test_from_spec.<locals>.Something.y  s    r!   )r(   r)   r*   r?  __something__rL  r$   r!   r   r-   rJ    s    A Mr!   r-   c                     | j                    | j                   | j                   j                  t        dt
        | d       j                  t        dt
        | d       y )Nz Mock object has no attribute 'z'zz)Mock object has no attribute '__foobar__'
__foobar__)r?  rL  rM  r   rD  rE  r  s    r   test_attributesz0MockTest.test_from_spec.<locals>.test_attributes  sR    FFFF""2s
 "";|r!   r   )r   r   )r   r-   rQ  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>.RealNr   r$   r!   r   Realr[    r   r!   r\  rT  c                  &      j                          S r#   )new_attrr   s   r   r$  zJMockTest.test_wraps_prevents_automatic_creation_of_mocks.<locals>.<lambda>  s    -$--/ r!   )r   r   rl   rD  r   r\  rW  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 )NrT  r   )r   rR   rO   rM   rN   rV  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   r\  re    s	    Ir!   r\  rT  c                       j                   S r#   r   r   s   r   r$  z0MockTest.test_wraps_attributes.<locals>.<lambda>  s    $)) r!   re   r   r   r   )	r   r   rO   rf  rl   rD  rU  frogr   )r   r\  rW  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*   ro  r$   r!   r   r\  rl    s    /r!   r\  rT  )r   r   r
   VALUE1r   ro  rk   rO   rn  rl   StopIterationr_  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   ro  zUMockTest.test_customize_wrapped_object_with_side_effect_iterable.<locals>.Real.method      dr!   Nrp  r$   r!   r   r\  rv        "r!   r\  rT  )
r   r   r
   rq  VALUE2ro  rk   rO   rl   rr  r_  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   ro  zVMockTest.test_customize_wrapped_object_with_side_effect_exception.<locals>.Real.method  rx  r!   Nrp  r$   r!   r   r\  r~    ry  r!   r\  rT  )r   r   RuntimeErrorro  rk   rl   r_  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   ro  zUMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.Real.method  rx  r!   Nrp  r$   r!   r   r\  r     ry  r!   r\  c                  "    t         j                  S r#   )r
   VALUEr$   r!   r   rk   zUMockTest.test_customize_wrapped_object_with_side_effect_function.<locals>.side_effect  s    >>!r!   rT  )r   r   ro  rk   rO   r
   r  )r   r\  rk   rW  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   ro  zMMockTest.test_customize_wrapped_object_with_return_value.<locals>.Real.method  rx  r!   Nrp  r$   r!   r   r\  r    ry  r!   r\  rT  )r   r   r
   r  ro  rR   rO   r_  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   ro  z]MockTest.test_customize_wrapped_object_with_return_value_and_side_effect.<locals>.Real.method  rx  r!   Nrp  r$   r!   r   r\  r    ry  r!   r\  rT  )r   r   r
   rq  rz  ro  rk   WRONG_VALUErR   rO   rl   rr  r_  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   ro  z^MockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.Real.method)  rx  r!   Nrp  r$   r!   r   r\  r  (  ry  r!   r\  rT  c                      t         S r#   r   r$   r!   r   r$  z[MockTest.test_customize_wrapped_object_with_return_value_and_side_effect2.<locals>.<lambda>-  s    ' r!   )r   r   ro  rk   r
   r  rR   rO   r_  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   ro  zeMockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default.<locals>.Real.method5  rx  r!   Nrp  r$   r!   r   r\  r  4  ry  r!   r\  rT  )r   r   r
   rq  r   ro  rk   r   rR   rO   rl   rr  r_  s       r   Gtest_customize_wrapped_object_with_return_value_and_side_effect_defaultzPMockTest.test_customize_wrapped_object_with_return_value_and_side_effect_default3  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 )Nrv   ry   rT  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_dictA  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__f  s    r!   c                      yNrv   r$   r   s    r   __custom_method__zEMockTest.test_magic_method_wraps_class.<locals>.Foo.__custom_method__i  s    r!   N)r(   r)   r*   r  r  r$   r!   r   Foor  d  s    r!   r  rT  r   rv   )r   rO   r  r  )r   r  klassobjs       r   test_magic_method_wraps_classz&MockTest.test_magic_method_wraps_classb  se    	 	 $g+Q/Q#..0%8r!   c                     t        t              }| j                  t        |       t        t        d            }| j                  t        |       y Nr   rv   )r   rD  rl   r\   s     r   test_exceptional_side_effectz%MockTest.test_exceptional_side_effectt  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geoffreyrw   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!   rv   )r   rl   rD  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>.SubNr   r$   r!   r   Subr    r   r!   r  rv   r   r   )listr   appendr   rl   rD  rE  )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>.XNr   r$   r!   r   r   r    r   r!   r   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>.XNr   r$   r!   r   r   r    r   r!   r   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*   rL  r$   r!   r   r   r    s    Ar!   r   r   rv   r   c                      d _         y r  r>  r   s   r   set_attrz?MockTest.test_setting_attribute_with_spec_set.<locals>.set_attr  s
    DFr!   )r   r   r?  rL  rl   rD  )r   r   r  r   s      @r   $test_setting_attribute_with_spec_setz-MockTest.test_setting_attribute_with_spec_set  sI    	 	 |Q	 .(3r!   c                     t        j                         }| j                  t         j                  |       t        j                  t	        d             t        j
                  t                      y )Ng    eA)sysgetrecursionlimit
addCleanupsetrecursionlimitintcopyr   )r   currents     r   	test_copyzMockTest.test_copy  sF    '')--w7 	c$i(		$&r!   c                      G d dt               } ||      | j                  j                  d       fd}| j                  t        |       fd}| j                  t
        |       y )Nc                   *    e Zd Zd Zd Z eee      Zy)8MockTest.test_subclass_with_properties.<locals>.SubClassc                      yNr   r$   r   s    r   _getz=MockTest.test_subclass_with_properties.<locals>.SubClass._get  s    r!   c                     t        d      )Nzstrange error)	NameError)r   values     r   _setz=MockTest.test_subclass_with_properties.<locals>.SubClass._set  s    00r!   N)r(   r)   r*   r  r  propertysome_attributer$   r!   r   SubClassr    s    1%dD1Nr!   r  r   r   c                      d _         y r  )r  ss   r   testz4MockTest.test_subclass_with_properties.<locals>.test  s     Ar!   c                      d _         y )Nry   rv   r  s   r   r  z4MockTest.test_subclass_with_properties.<locals>.test  s
    AEr!   )r   rO   r  rl   r  rD  )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   rz   r2   r3   r%   )r   r   attrsr  
type_attrss        r   test_dirzMockTest.test_dir  s    vCISYHall36G!HI
 	
U 23 	c3t9%c3t9% c3t9%c3t9% +j#d),# Is   D*D*c                 @   t        t        j                        }t        t	        t        j                              }t        t	        |            }| j                  t               ||z
         d|_        | j                  t	        |      j                  d      d       y )Nr   r   versionre   )r   unittestTestCaser   r  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   rz   r  rV   r\   s     r   ,test_dir_does_not_include_deleted_attributesz5MockTest.test_dir_does_not_include_deleted_attributes6  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 )Nry   r  !   )rk   zfoo.bar.return_valuerv   r$   )	r   rO   rv   r   KeyErrorrl   ry   r  configure_mock)r   r   r   s      r   test_configure_mockzMockTest.test_configure_mock?  s    5)U#5)!)2"&~f~(D),dhh	2v%f%(D),dhh	2r!   c                     | j                  |      5 } ||i | d d d        t        j                        }| j                  ||       y # 1 sw Y   1xY wr#   )rl   strr  rO   )r   r  messagefuncr   r   contextr  s           r   assertRaisesWithMsgzMockTest.assertRaisesWithMsgT  sT    y) 	"W$!&!	"'##$g&	" 	"s   	AAc           
      Z   t               }d}d}d}| j                  t        |||fz  |j                  dddd        |j                  dddd	       |j                  j                  |j                  j
                  g}|D ])  }d
}d}d}| j                  t        |||fz  |dddd       + |D ]&  }d
}d}d}| j                  t        |||fz  |d       ( |D ]'  }d
}d}d}| j                  t        |||fz  |ddd       ) |D ]$  }d
}d}d}| j                  t        |||fz  |       & y )Nznot called.zmock(1, '2', 3, bar='foo')z2expected call not found.
Expected: %s
  Actual: %sre   2r   rv   )ry   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   rv   r#  )r   r   actualexpectedr  	assertersr4   s          r   'test_assert_called_with_failure_messagez0MockTest.test_assert_called_with_failure_message\  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   r-  r.  r   z().foor   rv   z
().foo.barz().foo.bar().bazry   rw   zfoo.__int__r0   za()z().foo.bar().baz().__int__)r   r  r   rO   rv   r  r   dictrR   ry   r~   	call_listr  r0   r1   r2   __int__)r   r   r"  r   	last_calls        r   test_mock_callszMockTest.test_mock_calls  sV   { 	doo+T2{RL>(3

#(3,,B|n={

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

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

 $$&'5r2>IT__R0)<TV..!XX\\^//199;EEGITVZZ^^-88!XXZ//1;;=?TVZZ^^-11<<!V^^-779;G$	;r!   c                    t               } |       }|j                          | j                  |j                  t	               t	               j                         g       | j                  |j                  t	        j                         g       y r#   )r   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   rv   rD   rU  r   r   r<  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 r1  r   rv   ry   rU  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   r>  r   )r   rv   ry   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   r4  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 r9  )r   rv   ry   rU  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   rv   ry   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   rv   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>.SubclassNr   r$   r!   r   SubclassrF  "  r   r!   rG  c                       e Zd Zd Zy)rF  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*   rJ  r$   r!   r   rG  z+MockTest.test_subclassing.<locals>.Subclass)  s    &r!   )r   r  rv   assertNotIsInstance)r   rG  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   )rE  r  r   r  rO   )r   namesrx   attrr   s       r   assert_attrsz-MockTest.test_arg_lists.<locals>.assert_attrs:  sS    BE +tT*%%dI6%%dD1  r*	+r!   re   r   r   rC   )	r   r   r   r   callabler   rv   ry   r~   )r   r   rQ  r   s   `   r   test_arg_listszMockTest.test_arg_lists2  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   r-  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_tupleU  s    vQ!Q!T^^,a0,,d3..q	:q	*T4!9,=>#&}d6I6I#J 	8HiS^Q/Xa[)A,7Xa[)A,7	8r!   c                    t        t        g d            }| j                   |        |        |       gg d       | j                  t        |       t        g d      }| j                   |        |        |       gg d       | j                  t        |       t        d      }| j                   |        |        |       gg d       | j                  t        |        G d dt              }t        |      }| j                   |       |       t        t                     }| j                   |        |        |        |       gg d       | j                  t        |       y )	Nr   r   rp   ghi)ghic                       e Zd Zy)/MockTest.test_side_effect_iterator.<locals>.FooNr   r$   r!   r   r  ra  r  r   r!   r  r   )	r   r   rO   rl   rr  r   r   r  r   )r   r   r  s      r   test_side_effect_iteratorz"MockTest.test_side_effect_iteratore  s   Y0$&$&$&19=-._5$&$&$&1?C-.&$&$&$&1?C-.	& 	S)dfc*'$&$&$&$&95	7-.r!   c                    t         t        fD ]s  }t        dt        df} ||      }| j	                  t        |       | j                   |       d       | j	                  t        |       | j                   |       d       u y )Nr   r/  r   )r   r   rq   r  rl   rO   )r   Klassiterabler  s       r   $test_side_effect_iterator_exceptionsz-MockTest.test_side_effect_iterator_exceptions}  sq    9_ 	%E"Ax3H(+Aj!,QS!$h*QS!$	%r!   c                    t               }t        g d      |_        | j                   |        |        |       gg d       | j	                  t
        |       |j                  }| j                  |t        t        g                    g d|_        | j                   |        |        |       gg d       | j	                  t
        |       |j                  }| j                  |t        t        g                    t               }||_        | j                   |        |        |        |       gg d       | j	                  t
        |       | j                  |j                  |       y )Nr   rp   r   )
r   r   rk   rO   rl   rr  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   r-  r/  rU  r0   )r   r-  r$   )r&  re   r   r&  rn  T	any_orderr   rv   r.     )r   r   assert_has_callsrl   r   )r   r   kallskall
kall_lists	kall_lists         r   test_assert_has_calls_any_orderz(MockTest.test_assert_has_calls_any_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C 	D 5 5$  	 !QZ#!QZa$AYq	"

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

 $ 	I 5 5T  	r!   c                    t        dd      ddifdt        d      dd	d
difg}t        j                         t        j                  d      g}|j                  t        j                         j                  d      j                                |j                  t        j                  t               i       j                  dg      j                                g }t               t               fD ]C  } |dd        |d        |dd        |d        |dd       |j                  ||f       E t               } |j                           |j                  d        |j                         j                  d        |j                  t               i       j                  dg       |j                  ||f       |D ]  \  }}t        t        |            D ]e  }dD ]^  }||||z    } |j                  |       t        |      dkD  s,| j!                  t"        |j                  t%        t'        |                   ` g  y )Nre   r   r0   r   rm  r/  rU  r&  rV  r1   rC   r  r-  r   )r   rv   ry   extendr  r~   r)  bamr   r   r   r   r  rangerW  rr  rl   r   r  reversed)	r   kalls1kalls2r   r   rs  r_  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   r-  )
r   r4   rr  r   r   rl   r   r  r  non_existent)r   r-   
mock_classr  invalid_callsrt  s         r   !test_assert_has_calls_nested_specz*MockTest.test_assert_has_calls_nested_spec  s   	, 	, %Y/
jl+ 	8AFF1aaF 		!QQ 789		!Q1 567	8
 	jl+ 	BAna.@.@488:,OEE!HNN1a TXXa[->->q!-DEFEE""DGTV\\!Q-?#@A		B 	1**1-003Aq!46
 " 	Dn(99#f	r!   c                 p   t               } |       j                         j                         j                          |j	                         j                         j                          t        j                         j                         j                         j                         }|j                  |       y r#   )
r   rv   ry   r~   r  r  threer   r)  rr  )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	  r-  r.  r/  rq  r2   r3   
         )r2   r&  r   )r-  r.  r/  r3   )r  r  r  Tro  r'  r#   )r   rr  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$   r>  s    r   rc   zAMockTest.test_assert_has_calls_not_matching_spec_error.<locals>.fE      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)  rr  r   rX   r  r  r  rj   r  s       r   -test_assert_has_calls_not_matching_spec_errorz6MockTest.test_assert_has_calls_not_matching_spec_errorD  s   |Q##II 4 567 	,
 ;=!D!!46(+	, 	",,001 ##II./01 	8 57!D!!4641:"67	8 	bll44i@'	, 	,	8 	8s   D,'D8,D58Ec                    t               } |dd        |d        |dd        |j                  dd        |j                  d        |j                  dd       | j                  t        |j                         | j                  t        |j                  dd       | j                  t        |j                  d       y )Nre   r   r   rC   r/  rU  r-  )r   assert_any_callrl   r   r\   s     r   test_assert_any_callzMockTest.test_assert_any_call_  s    vQ
q	Q!Q"q!Q!$  	
 	  q	

 	   	 	
r!   c                    dd}t        |      } |ddd        |ddd	d
        |j                  ddd        |j                  ddd        |j                  ddd	d
        |j                  ddd	d
       | j                  t        |j                  ddd       | j                  t              5 } |j                  d       d d d        | j	                  j
                  j                  t               y # 1 sw Y   4xY w)Nc                      y r#   r$   r9   s       r   rc   z;MockTest.test_assert_any_call_with_function_spec.<locals>.fz  r  r!   r   re   r   r   r	  r-  r.  r/  rq  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_specy  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   r-  )r   rc   r   rO   r   r   )r   rc   r  funcsr  s        r   test_mock_calls_create_autospecz(MockTest.test_mock_calls_create_autospec  s}    f AC ""
  	DAJAJ$q!*d1aj!9		r!   c                 x    t        j                  t               d      }| j                  dt	        |             y )N
sweet_funcrw   )r   r   r   rz   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  )ro  	extra_arg)subTestr   r   rE  r#  rl   rj   )r   r  ro  mock_methods       r   1test_create_autospec_classmethod_and_staticmethodz:MockTest.test_create_autospec_classmethod_and_staticmethod  s    	& 	& 8 	GFV, G"2279f3MN335!!)[+F	G G	GG Gs   AA;;B	c                    t               }d}| j                  t        |      5  |j                          d d d        | j                  t        |      5  |j	                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d        | j                  t        |      5  |j                          d d d         G d dt              }t        |      }|j                          |j                          |j                  j                          |j                  j                          t        d      }|j                          |j	                          |j                          |j                          |j                          |j                          |j                          |j                          y # 1 sw Y   OxY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w)Nz1is not a valid assertion. Use a spec for the mockc                       e Zd Zd Zd Zy)&MockTest.test_mock_unsafe.<locals>.Fooc                      y r#   r$   r   s    r   called_oncez2MockTest.test_mock_unsafe.<locals>.Foo.called_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   rD  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 	 	 ##NC8 	 	 ##NC8 		##NC8 	 	 ##NC8 		##NC8 	! 	!##NC8 	MMO	##NC8 	KKM		&& 	&
 cN			((*	&&(								K	  	 	  	 	 		  	 	 		! 	!	 		 	s_   JJJ0J(J5K=K,KJJJ%(J25J?KKK&c                      G d dt               }t        |      }|j                          |j                          |j                  j	                          |j                  j	                          y )Nc                       e Zd Zd Zd Zy).MockTest.test_mock_safe_with_spec.<locals>.Fooc                      y r#   r$   r   s    r   
assert_barz9MockTest.test_mock_safe_with_spec.<locals>.Foo.assert_bar      $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  sU    F	!!#		~. 	(GG%%'	( 	( 	(s   
A..A7c                     t               } |dd       | j                  t        t        j                  d      |j
                         y )Nre   r   zCalls: [call(1, 2)])r   r   r   r(  r)  r  r  s     r   test_assert_not_called_messagez'MockTest.test_assert_not_called_message  s8    F	!Q~II+,	!r!   c                 H   t               }| j                  t              5  |j                  j	                          d d d        |j                          |j                  j	                          |j                          |j                  j	                          y # 1 sw Y   ^xY wr#   )r   rl   r   r  r  r  s     r   test_assert_calledzMockTest.test_assert_called  sn    F~. 	$GG!!#	$							$ 	$s   BB!c                    t               }| j                  t              5  |j                  j	                          d d d        |j                          |j                  j	                          |j                          | j                  t              5  |j                  j	                          d d d        y # 1 sw Y   |xY w# 1 sw Y   y xY wr#   )r   rl   r   r  r  r  s     r   test_assert_called_oncez MockTest.test_assert_called_once  s    F~. 	)GG&&(	)			""$		~. 	)GG&&(	) 	)	) 	)	) 	)s   B6C6B?Cc                     t               } |dd        |d       | j                  t        t        j                  d      |j
                         y )Nre   r   r   zCalls: [call(1, 2), call(3)])r   r   r   r(  r)  r  r  s     r   test_assert_called_once_messagez(MockTest.test_assert_called_once_message  s?    F	!Q	!~II45  	"r!   c                     t               }| j                  t              5 }|j                          d d d        | j	                  dt        j                               y # 1 sw Y   /xY w)NzCalls:)r   rl   r   r  rV   r  r  )r   r  r  s      r   *test_assert_called_once_message_not_calledz3MockTest.test_assert_called_once_message_not_called  sS    F~. 	#!  "	#3q{{#34	# 	#s   AA(c                     t               }|j                  dd       d}| j                  t        |j                  j                        |       y )Nr  hero)rx   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   r_  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_sideeffect-  sJ    bqe4	$D9annd3-r!   c                     t        dddg      }|j                  d       | j                  |j                  t                | j	                  |j
                  d        y )Nr  r   r   r  Tr_   )r   r   r  rR   rU  rk   r  s     r   test_reset_returnzMockTest.test_reset_return3  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_sideeffect9  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   rU  r  s     r   test_reset_return_with_childrenz(MockTest.test_reset_return_with_children?  sK    	q12"	$'ACCE1%r!   c                     t        t        ddg            }| j                  |j                  j                  d        |j	                  d       | j                  |j                  j                  d        y )Nr   r   r   r  T)r   rU  rc   rk   r   rO   r  s     r   +test_reset_return_with_children_side_effectz4MockTest.test_reset_return_with_children_side_effectE  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  L      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  N  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   P  s     &&C&#r!   r  c                      |       S )Nr   r$   Kr  s    r   r$  z-MockTest.test_mock_add_spec.<locals>.<lambda>W  s    1(+; r!   c                      |       S )Nr   r$   r  s    r   r$  z-MockTest.test_mock_add_spec.<locals>.<lambda>X  s    1h+? r!   Tr   r  r  r  r   )r   r   r   r   r   r  r  r(  r  r  r  mock_add_specrl   rD  rE  setattr)
r   r  r  klassesrd  r   r   OneTwor  s
            @r   test_mock_add_speczMockTest.test_mock_add_specK  s   	6 		6 		'v 	' )_.B
 '] 	AENNE;<NNE?@	A  !	E&$"55  w$((DJJ."&%/A B HC"&&$*="= ***39&9))*GT5 ))*GT7 &/ -- .w +**39&9))*GT5 ))*GT7 &/ -- .w1 !	r!   c                 |   t         t        fD ]  } |       t                j                  t               | j                  t        t                |       d    dj                  _         j                  t               | j                  t              d       | j                  t        fd        y )Nrv   r-  c                       d   S r  r$   r   s   r   r$  z;MockTest.test_mock_add_spec_magic_methods.<locals>.<lambda>  s    e r!   )
r   r   r  r  r   rl   rj   r*  rR   rO   r   rd  r   s     @r    test_mock_add_spec_magic_methodsz)MockTest.test_mock_add_spec_magic_methods  s     44 	>E7DIDv&id37DK'(DLL%Ds#SY*i)<=	>r!   c                    t         t        t        t        t        fD ]M  } |       }t               |_         |j
                          | j                  |j                  t        j
                         g       | j                  |j                  t        j
                         g        |       }t        d      |_
         |j                          | j                  |j                  g        | j                  |j                  g         |       } t                      |_         |j                          | j                  |j                  g        | j                  |j                  g        P y )Nrx   rw   )r   r   r   r   r   rv   rO   rU   r   r   ry   r~   r  s      r   test_adding_child_mockzMockTest.test_adding_child_mock  s   %tY8L! 	2E7DvDHDHHJT..=T__txxzl;7D(DHDHHJT..3T__b1 7D"y{}DHDHHJT..3T__b1+	2r!   c                     t         t        fD ]W  } |       }t               |_          |               | j                  |j                  t                t                      g       Y y r#   )r   r   rR   rO   r   r   r  s      r   test_adding_return_value_mockz&MockTest.test_adding_return_value_mock  sR    9_ 	BE7D )DDFHT__tvvtvx.@A	Br!   c                 F    G d dt               }t               }t        j                   |d      }t        j                   |d      }|j                         }| j	                  |j
                         |j                         }| j	                  |j
                         |j                  |d       |j                  |d       |j                          |j                          | j                  |j                  t        j                         t        j                         g       y )Nc                       e Zd ZdZdZy)'MockTest.test_manager_mock.<locals>.Foor  r  N)r(   r)   r*   r  r  r$   r!   r   r  r    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   rd  r  s      r   test_magic_methods_mock_callsz&MockTest.test_magic_methods_mock_calls  s|    9_ 	1EA!,AI#5AKF!HQ\\DLLNDNN<L+MNQ^^R0	1r!   c                     t        j                  d      } |d      }|j                         } |d      }|j                         }| j                  ||       y )Nr  	read_dataa-namezanother-name)r   r   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  sr     nn/KL""$%$%%q>2q#34b2& &s   	A4c                    t        j                  d      } |d      }t        |      }|j                         }|D cg c]  }| }}| j	                  |d       | j	                  |d       | j	                  |d   d       | j	                  t        |      g        | j                  t              5  t        |       d d d        y c c}w # 1 sw Y   y xY w)Nz1st line
2nd line
3rd liner$  r&  z	1st line
z	2nd line
r   z3rd line)r   r   r'   r+   rO   r  rl   rr  )r   r(  r)  line1line2r/  r0  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JLVrw   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   rB  OSErrorrk   rl   )r   mock_namedtempmock_filehandle
mock_writerC  s        r   test_mock_open_writezMockTest.test_mock_open_write  su    E(BCZZ5~F 	0,99O(..J%,^%<J";gw/	0 	0 	0s    ABBc                    t        j                  d      }d |j                  j                  _         |       j                         } |       j                         }| j                  d|       | j                  d|       y )Nr7  r$  c                       y)Nr8  r$   )r   s    r   r$  z8MockTest.test_mock_open_alter_readline.<locals>.<lambda>  s    r!   r8  )r   r   rR   r9  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 )Nrv   r$  ry   r&  )r   r   r'  rO   r9  	readlines)r   _openr^  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   rz   )r   rd  r  original_reprs       r   test_mock_parentszMockTest.test_mock_parents  sC   9_ 	9EA GMANMM!#q!T!Wm4LLNMM!#q!T!Wm4A##ACMM/495MM/495LLNMM/495MM/495A GM#AC ACCT!Wm4T!##%[-83	9r!   c                    t         t        t        t        f}|D ]  }|D ]  } |       } |d      }|j	                  |d       | j                  |j                  |       | j                  dt        |             |j                  j                  d       | j                  |j                  t        j                  j                  d      g       | j                  |j                  t        j                  j                  d      g         y )Nrv   rw   ry   zname='mock.bar're   )r   r   r   r   r  r  ry   rz   r{   r~   rO   r   r   rU   r   classesrd  Klass2r  m2s         r   test_attach_mockzMockTest.test_attach_mock4  s    	#7H 	DE! DG'b%(aeeR(/b:		!  Q/@A  $((,,q/1BCD	Dr!   c                    t         t        t        t        f}t         t        fD ]  }|D ]  } |       } |d      }|j	                  |d       | j                   |       |       | j                  dt        |             |j                          | j                  |j                  t               j                         j                                  y )Nrv   rw   rR   zname='mock()')r   r   r   r   r  r  rz   r{   rv   rO   r   r   r)  rV  s         r   test_attach_mock_return_valuez&MockTest.test_attach_mock_return_valueE  s    	#7H9_ 	IE! 
IG'b.1ac2&otBx8  tvzz|/E/E/GH
I	Ir!   c                    t               }t        j                  t         dd      5 }| j	                  |j                  j                         d       |j                  |d       |j                  d       t        d        |d       t        j                  d      t        j                  d      t        j                  d      g}t        d      t        d      t        d      g}| j	                  |j                  |       | j	                  |j                  j                  |       | j	                  t        j                  |       | j	                  |j                  |       | j                  d	t        |j                  j                               | j	                  |j                  j                         d	       d d d        y # 1 sw Y   y xY w)
N
.somethingTr   rD   r   re   r   r   
mock.child)r   r   r	   r(   rO   _extract_mock_namer  r   rD   r   r   rz   r{   )r   r   	mock_funcparent_callschild_callss        r   test_attach_mock_patch_autospecz(MockTest.test_attach_mock_patch_autospecU  sQ   ZZ8*J/$? 	P9Y^^>>@+Ny'2LLOaLaL JJqM4::a=$**Q-HL7DGT!W5KV..=V\\44kBY11;?Y11;?MM,V\\->->(?@Y^^>>@,O	P 	P 	Ps   FGGc           
         t        j                  t         dd      5 }t               }|j	                  |d       t               }|j                  dddd	       |j                  t        j                  t         j                  dddd	      g       |j                  j                  t        t         j                  dddd	      g       |j                  t        t         j                  dddd	      g       d d d        t        j                  t         d
d      5 }t               }|j	                  |d       t        d       |j                  t        j                  d      g       t        j                  t        d      g       |j                  t        d      g       d d d        t        j                  t         dd      5 }t               }|j	                  |d       t               }|j                  dddd	       |j                  t        j                         t        j                         j                  dddd	      g       |j                  j                  t        dddd	      g       |j                  t               t               j                  dddd	      g       d d d        y # 1 sw Y   xY w# 1 sw Y   #xY w# 1 sw Y   y xY w)N.Something.methTr   attach_methre   r   r   r-  r  r^  attach_func
.Something
attach_obj)r   r	   r(   r   r  r-   r4   rr  r   rg  r   rD   rh  rj  )r   mockedr  r  s       r   )test_attach_mock_patch_autospec_signaturez2MockTest.test_attach_mock_patch_autospec_signaturei  sR   ZZ8*O4tD 	DfG6+CHHQ1H"$$d&6&6txxAqA&N%OPHH%%tDHHaA'C&DE##T$((Aq!q%A$BC	D ZZ8*J/$? 	/6fG6aL$$d&6&6q&9%:;&&Qy1##T!WI.	/ ZZ8*J/$? 	I6fG5+CHHQ1H"$$doo&7&*oo&7&<&<Q1&<&J&L MHH%%tAq!q'9&:;##TVTV[[AqA[-F$GH	I 	I#	D 	D	/ 	/	I 	Is&   CJ:BKC%K:KKKc                 <   t               t               t               t               fD ]s  }| j	                  t        |d             |`| j                  t        |d             |`| j                  t        |d             | j                  t        t        |d       u y )Nr  rc   )r   r   r   r   rQ   hasattrr  rM   rc   rl   rD  rE  r\   s     r   test_attribute_deletionz MockTest.test_attribute_deletion  s    VY[*>*@$&( 		BDOOGD#./WT3/0WT3/0ngtSA		Br!   c                    t               t               t               t               fD ]  }d|_        | j                  t        |d             | j                  |j                  d       |`| j                  t        |d             d|_        | j                  t        |d             | j                  |j                  d       |`| j                  t        |d              y )Nr   rv   r-  )	r   r   r   r   rv   rQ   rn  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[*>*@$&( 	3DDHOOGD%01TXXq)WT512DHOOGD%01TXXq)WT512	3r!   c                     t               t               t               t               fD ]$  }|`| j                  t              5  |`d d d        & y # 1 sw Y   1xY wr#   )r   r   r   r   rv   rl   rD  r\   s     r   4test_mock_raises_when_deleting_nonexistent_attributez=MockTest.test_mock_raises_when_deleting_nonexistent_attribute  sZ    VY[*>*@$&( 	D"">2 H 	 s   AA	c                     t               }d|_        |` |j                          | j                  t	        |d             y )NTr   )r   r   r   rM   rn  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   rK  r  r  r  rv   r\   s     r   test_class_assignablezMockTest.test_class_assignable  sH    FIK' 	D$$T3/ DN!!$,HH	r!   c                    | j                  t        j                         | j                  t	        t        j                        t
               | j                  t	        t        j                         j                        t
               y r#   )assertIsNotNoner   rx   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#   )ry  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   rv   zBMockTest.test_parent_propagation_with_create_autospec.<locals>.foo  r  r!   re   r   r_  )r   r   r   rl   rj   rO   r   r   rz   r{   r   )r   rv   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   rv   zGMockTest.test_parent_propagation_with_autospec_attach_mock.<locals>.foo  r  r!   ry   rw   r   re   r   r_  )r   r  r   r   rl   rj   rO   r   r   rz   r{   r   )r   rv   r   s      r   1test_parent_propagation_with_autospec_attach_mockz:MockTest.test_parent_propagation_with_autospec_attach_mock  s    ?3U;WEQ)V\\15004::a3C2DElD):):$;<r!   c                   	 t         j                  j                  }| j                  d |       t        j                  d      5  t
        j                  d= 	fd	| j                  t
        j                  t        j                                t        j                  	       ddl	m
}m}m}m} ||||t        g}|D ]%  } |t              }| j!                  |t               ' 	 d d d        y # 1 sw Y   y xY w)Nc                 8    t        t        j                  d|       S )Nr	   )r  r  r   )r	   s    r   r$  z9MockTest.test_isinstance_under_settrace.<locals>.<lambda>  s    ghmmWe&L r!   zsys.moduleszunittest.mockc                     S r#   r$   )frameeventrF  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& 	6O, OOCLL#,,.9LL 
 i2F	E  6	*%%c956%	6 	6 	6s   BC--C6c                     G d d      } |       }t         j                  j                  j                  |dt              5  d d d        | j	                  |j
                  j                  j                  d       y # 1 sw Y   :xY w)Nc                       e Zd Zd Zy)FMockTest.test_bool_not_called_when_passing_spec_arg.<locals>.Somethingc                 J    t         j                  j                         | _        y r#   )r  r   r   obj_with_bool_funcr   s    r   r    zOMockTest.test_bool_not_called_when_passing_spec_arg.<locals>.Something.__init__	  s    *2--*A*A*C'r!   N)r(   r)   r*   r    r$   r!   r   r-   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	  si    	D 	D k]]  ''-A'OUU//88CCQG 	VUs   A<<Bc                 	    G d d      }| j                  t              5  t        t         dd      5  d d d        d d d        | j                  t              5  t        j                  |dd      5  d d d        d d d        | j                  t              5  t        t         dd      5  d d d        d d d        | j                  t              5  t        j                  |dd      5  d d d        d d d        | j                  t              5  t        t         dd      5  d d d        d d d        | j                  t              5  t        j                  |dd      5  d d d        d d d        | j                  t              5  t        |d      }d d d        | j                  t              5  t        j                  t         d	t        d
      5  	 d d d        d d d        | j                  t              5  t        j                  t         d	t        d      5  	 d d d        d d d        | j                  t              5  t        j                  t         d	t        d      5  	 d d d        d d d        t        t         ddd      5  	 d d d        t        j                  |ddd      5  d d d        t        t         ddd      5  	 d d d        t        j                  |ddd      5  d d d        t        t         ddd      5  	 d d d        t        j                  |ddd      5  d d d        t        |dd      }t        j                  t         dddd      5  	 d d d        y # 1 sw Y   MxY w# 1 sw Y   RxY w# 1 sw Y   (xY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   MxY w# 1 sw Y   RxY w# 1 sw Y   xY w# 1 sw Y   !xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   y xY w)Nc                       e Zd ZdZy)/MockTest.test_misspelled_arguments.<locals>.Foor  Nr  r$   r!   r   r  r  	  s    Cr!   r  rf  T)r?   r  )r@   )rA   ri  )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   rD  multipler   r  s      r   test_misspelled_argumentsz"MockTest.test_misspelled_arguments	  s.   	 	 |, 	K(?3tDJJ	K|, 	@c5D9??	@|, 	K(?3tDJJ	K|, 	@c5D9??	@|, 	J(?3dCII	J|, 	?c548>>	?|, 	4d3A	4
 ~. 	M*J'gG MHLM	M ~. 	M*J'gG MHLM	M ~. 	L*J'gF LGKL	L hZ/M 		\\#uTTBHHhZ/M 		\\#uTTBHHhZ/tL 		\\#uTDAGGC$t<^^j4$$P 		 	I KJ	K 	K @?	@ 	@ KJ	K 	K @?	@ 	@ JI	J 	J ?>	? 	?	4 	4M M	M 	MM M	M 	ML L	L 	L	 	HH	 	HH	 	GG	 	s  NNNN(4N5N(O/N50OO.O/OO6)O)*O6P(P)PP9$P7P*P7$Q(Q*Q$Q+3Q5Q+Q8=RR>RR,?R96SN	NNN%	 N((N25N?	:OOO	OO&)O3	.O66P P	PPP'*P4	/P77QQ		QQQ(	#Q++Q58RRRR),R69SSN)r(   r)   r*   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*  r0  r3  r5  r:  rB  rG  rR  rX  r`  rb  ri  rs  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  r5  r7  r:  r<  r>  rA  rC  rL  rS  rZ  rb  rf  ri  rk  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r-  r1  r5  r;  rH  rM  rQ  rT  rZ  r\  rd  rl  ro  rq  rs  ru  rw  rz  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  r@  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 
% %  S$x   S$lH zHMMO r!   