
    4hh                        S SK r S SKrS SKrS SKrS SKJrJrJrJrJ	r	J
r
JrJrJrJr  S SKJr  S SKJr   " S S\5      r " S S\R(                  5      r " S	 S
\R(                  5      r " S S\R(                  5      r " S S\R(                  5      r " S S\R(                  5      r\S:X  a  \R6                  " 5         gg)    N)
call_Callcreate_autospec	MagicMockMockANY	_CallListpatchPropertyMock	_callable)datetimepartialc                   *    \ rS rSrS rS rSS jrSrg)	SomeClass   c                     g N selfabs      P/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/testmock/testhelpers.pyoneSomeClass.one           c                     g r   r   r   s    r   twoSomeClass.two   s    4r   Nc                     g r   r   r   r   s     r   threeSomeClass.three   s    Tr   r   r   )__name__
__module____qualname____firstlineno__r   r!   r%   __static_attributes__r   r   r   r   r      s    !r   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
AnyTest   c                     U R                  [        [        5       5        [        5       nU" [        5        UR	                  [        5        [        5       nU" [        S9  UR	                  [        S9  g Nfoo)assertEqualr   objectr   assert_called_withr   mocks     r   test_anyAnyTest.test_any   sO    fh'vS	$vC(r   c                     U R                  [        [        5      S5        U R                  [        [        5      S5        g )Nz<ANY>)r3   reprr   strr    s    r   	test_reprAnyTest.test_repr"   s*    cG,S7+r   c                     [        5       nU" [        R                  " 5       [        R                  " 5       S9  UR                  [        [        S9  g r0   )r   r   nowr5   r   r6   s     r   test_any_and_datetimeAnyTest.test_any_and_datetime'   s2    vX\\^0-r   c           	      "   [        5       n " S S[        5      n[        R                  " 5       U" 5       4 H  nUR	                  5         U" X3US9  UR                  X3US9  U" 5       R                  X3S9  [        [        [        [        S9[        R
                  " [        [        [        S9[        5       [        5       R                  [        [        S9/nU R                  XAR                  5        U R                  UR                  U5        M     g )Nc                        \ rS rSrS rS rSrg)9AnyTest.test_any_mock_calls_comparison_order.<locals>.Foo0   c                     g r   r   r   others     r   __eq__@AnyTest.test_any_mock_calls_comparison_order.<locals>.Foo.__eq__1       Tr   c                     g r   r   rH   s     r   __ne__@AnyTest.test_any_mock_calls_comparison_order.<locals>.Foo.__ne__2   rL   r   r   N)r'   r(   r)   r*   rJ   rN   r+   r   r   r   FoorE   0   s    ))r   rP   r2   bar)zingaalpha)a1z99)
r   r4   r   r@   
reset_mockmethodr   r   r3   
mock_calls)r   r7   rP   dexpecteds        r   $test_any_mock_calls_comparison_order,AnyTest.test_any_mock_calls_comparison_order.   s    v	*& 	* &AOOq!KK!K,FMMQM& Scs+Cs#6#6H
 X7T__h7 'r   c                      " S S5      n[        5       nU" U" 5       S5        UR                  [        [        S5      /5        UR	                  [        S5        UR                  [        S5        g )Nc                       \ rS rSrS rSrg)%AnyTest.test_any_no_spec.<locals>.FooE   c                     g r   r   rH   s     r   rJ   ,AnyTest.test_any_no_spec.<locals>.Foo.__eq__F   rL   r   r   Nr'   r(   r)   r*   rJ   r+   r   r   r   rP   r`   E       )r   rP      r   assert_has_callsr   r   r5   assert_any_callr   rP   r7   s      r   test_any_no_specAnyTest.test_any_no_specC   sV    	* 	* vSUAtC|n-Q'S!$r   c                      " S S5      n[        US9nU" U" 5       S5        UR                  [        [        S5      /5        UR	                  [        S5        UR                  [        S5        g )Nc                       \ rS rSrS rSrg)*AnyTest.test_any_and_spec_set.<locals>.FooP   c                     g r   r   rH   s     r   rJ   1AnyTest.test_any_and_spec_set.<locals>.Foo.__eq__Q   rL   r   r   Nrd   r   r   r   rP   ro   P   re   r   rP   )specrf   rg   rj   s      r   test_any_and_spec_setAnyTest.test_any_and_spec_setN   sX    	* 	* ~SUAtC|n-Q'S!$r   r   N)r'   r(   r)   r*   r8   r=   rA   r\   rk   rt   r+   r   r   r   r-   r-      s     	),
.8*	%
%r   r-   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rSrg)CallTestZ   c           	         [        5       nU R                  U[        5       5        U R                  U[        S5      5        U R                  U[        S5      5        U R                  U[        0 45      5        U R                  U[        S5      5        U R                  U[        S0 45      5        U R                  U[        SS0 45      5        U R                  U[        S5      5        U R                  U[        S5      5        U R                  U[        S0 45      5        U R                  U[        S	S0 45      5        [        S
5      nU R                  U[        S
5      5        U R                  U[        S5      5        U R                  U[        S0 45      5        U R                  U[        SS0 45      5        [        S5      nU R                  U[        S5      5        U R                  U[        SS0 45      5        [        S5      nU R                  U[        S5      5        U R                  U[        SS0 45      5        U R                  U[        S5      5        U R                  U[        SS0 45      5        [        SS045      nU R                  U[        SSSS045      5        U R                  U[        SSS045      5        U R                  U[        SSS045      5        U R                  U[        SS045      5        g )N) r   )rz   r   rz   r   r1   rR   r   bazspamrf         )rz   r   r   )rf   r      )r2   r   )rz   r   r   )rR   r   rR   r   r   r   r3   assertNotEqual)r   kalls     r   test_call_with_callCallTest.test_call_with_call\   s   wuw'uU|,uU|,ubU|,uX/ub"X/ub"b\23uX/u[12ueR[12ufb"%567\"u\23u_56ui_56ub)R%89:\"D%"89D%Y(;"<=()D%"89D%Y(;"<=D%(:";<D%	2(>"?@sAh[!ub"sAh%789ub3(^45ub3(^45usAh[12r   c                     [        5       nU R                  US5        U R                  US5        U R                  US5        U R                  US5        U R                  USS0 45        U R                  US0 45        U R                  U0 45        g )Nr   r1   r{   r2   r   r2   )r   r3   r   argss     r   test_empty__CallCallTest.test_empty__Call   s    wr"x(u%{+b"~.r{+u%r   c                    [        SS0 45      nU R                  US5        U R                  US5        U R                  USS0 45        U R                  US0 45        U R                  US5        U R                  US5        U R                  U0 45        U R                  US5        U R                  US5        U R                  US0 45        g )	Nr2   r   r1   r   r{   )rR   r|   rR   r   r   s     r   test_named_empty_callCallTest.test_named_empty_call   s    eR_%x({+b"~.r{+D%(D"%D2%(D(+D+.D5"+.r   c                 (   [        S0 45      nU R                  US5        U R                  US5        U R                  USS0 45        U R                  US0 45        U R                  UR                  S5        U R                  UR                  0 5        g )Nr   r   r2   r   r2   )r   r3   r   kwargsr   s     r   test_call_with_argsCallTest.test_call_with_args   s    i_%|,12y"56	2/I.b)r   c                 *   [        SS0 45      nU R                  US5        U R                  USS0 45        U R                  UR                  S5        U R                  UR                  0 5        U R	                  US5        U R	                  US0 45        g )Nr2   r   r   r   )r   r3   r   r   r   r   s     r   test_named_call_with_args"CallTest.test_named_call_with_args   s    eY+,12y"56I.b)D,/D9b/2r   c           
         [        S[        SSS945      nU R                  U[        SSS945        U R                  US[        SSS945        U R                  USS[        SSS945        U R                  US[        SSS945        U R                  UR                  S5        U R                  UR                  [        SSS95        g )Nr   r   r   r   r   r2   )r   dictr3   r   r   r   s     r   test_call_with_kwargsCallTest.test_call_with_kwargs   s    b$a.)*qA01ta1~67r4!q>:;D1N34B'dQ!n5r   c           
         [        SS[        SSS945      nU R                  US[        SSS945        U R                  USS[        SSS945        U R                  UR                  S5        U R                  UR                  [        SSS95        U R                  U[        SSS945        U R                  US[        SSS945        g )Nr2   r   r   r   r   )r   r   r3   r   r   r   r   s     r   test_named_call_with_kwargs$CallTest.test_named_call_with_kwargs   s    eRQ01ta1~67r4!q>:;B'dQ!n5D4!q>"34D2ta1~"67r   c                     [        S0 45      nU R                  U[        SSS5      5        U R                  [        SSS5      U5        U R                  [        SSS5      U/5        g )Nr   rf   r   r   )r   r3   r   assertInr   s     r   #test_call_with_args_call_empty_name,CallTest.test_call_with_args_call_empty_name   sX    i_%tAq!}-aA-d1amdV,r   c                     U R                  [        S5      [        SS5      5        U R                  [        S5      [        SSS5      :g  5        U R	                  [        S0 45      [        SSS5      :g  5        g )Nr   rf   r   r   rf   r   )r   r   r   assertFalse
assertTruer    s    r   test_call_neCallTest.test_call_ne   s_    E,/a<|,Q1=>vrl+tAq!}<=r   c                     [        S5      nSS U [        4 H'  nU R                  X5        U R                  X:H  5        M)     g )Nr   rf   )r   intr   r   )r   r   values      r   test_call_non_tuplesCallTest.test_call_non_tuples   s=    \"dC'E,T]+ (r   c           
         U R                  [        [        5       5      S5        U R                  [        [        S5      5      S5        U R                  [        [        SSS045      5      S5        U R                  [        [        SSSS045      5      S	5        U R                  [        [        5      S
5        U R                  [	        [        5      S
5        U R                  [        [        5       5      S5        U R                  [        [        S5      5      S5        U R                  [        [        SS95      S5        U R                  [        [        5       R
                  5      S5        U R                  [        [        S5      R
                  R                  SS9R                  5      S5        U R                  [        [        5       R                  SSSS95      S5        U R                  [        [        5       " 5       5      S5        U R                  [        [        S5      " S5      5      S5        U R                  [        [        5       " 5       R                  5       R                  R                  S5      5      S5        g )Nzcall()r1   z
call.foo()r   r   r   zcall(1, 2, 3, a='b')rR   zcall.bar(1, 2, 3, a='b')r   rf   zcall(1)thing)zzzcall(zz='thing')z
call().foor   r   zcall().foo.bar().bingr   zcall().foo(1, 2, a=3)zcall()()z	call()(2)zcall()().bar().baz.beep(1))
r3   r;   r   r   r<   r2   rR   bingr}   beepr    s    r   r=   CallTest.test_repr   s   eg1eHo.=eYc
$;<=/	1eUISz$BCD3	5 	dV,TF+dfx0d1g	2dg./1CDdfjj)<8d1gkkooo27780	2AqA&'#	
 	dfh4d1gaj);7##((+,(	
r   c           	         U R                  [        5       SS0 45        U R                  [        SSSSS9SSSSS.45        [        5       nU" S	S
S5        U" SSS9  U R                  UR                  [        S	S
S5      [        SSS9/5        g )Nrz   r   r2   rR   r   r   )r   r!   rQ   rf   r      r   )r3   r   r   call_args_listr6   s     r   	test_callCallTest.test_call   s    "b".eUq9na.BC	E vQ1qA,,q!Q-Q8	:r   c           	         U R                  [        R                  " S5      SS0 45        U R                  [        R                  R	                  SS9SSSS045        [        5       nUR                  SS	S
5        UR                  R	                  S
SS9  U R                  UR                  [        R                  " SS	S
5      [        R                  R	                  S
SS9/5        g )Nrf   r2   )rf   eggs)fishzbar.bazr   r   r   r   r   r   )r3   r   r2   rR   r}   r   method_callsr6   s     r   test_attribute_callCallTest.test_attribute_call
  s    !udB&7862#R&&)9:	< vAqqA**((1a+TXX\\A\-CD	Fr   c           
         [        S5      R                  S5      R                  SSS9nU R                  USS[	        SS945        [        5       nU" SSSSS9  U R                  UR                  [        SSSSS95        U R                  UR                  [        SSS5      5        U R                  UR                  [        SSSSS9/5        U R                  UR                  [        SSSSS9/5        [        5       nUR                  S5      R                  5       " 5       R                  R                  S	S9  [         R                  " S5      R                  5       " 5       R                  R                  S	S9nU R                  UR                  S
   U5        U R                  UR                  UR                  5       5        g )Nrf   r   r   r   r   z().foo().barr   r   r   )r   r2   rR   r3   r   r   	call_argsr   r   rY   r}   r   	call_list)r   resultr7   	last_calls       r   test_extended_callCallTest.test_extended_call  se   aQ##A#+.$q	!BC{QQ!aa1)=>DNNDAqM:,,tAqA/C.DE41Q+?*@A{$$q$)HHQKOO%'++00105	,i8)*=*=*?@r   c                     [        SS9R                  n[        SS9R                  nU R                  X5        U R                  X"5        U R                  X5        g Nrf   xr   )r   r2   r3   r   r   s      r   test_extended_not_equal CallTest.test_extended_not_equal*  sF    1IMM1IMMA!r   c                     [        SS9R                  5       R                  n[        SS9R                  5       R                  nU R                  X5        U R                  X"5        U R	                  X5        g r   )r   r2   rR   r3   r   r   s      r   test_nested_calls_not_equal$CallTest.test_nested_calls_not_equal2  sV    1IMMO1IMMOA!r   c                    [        5       nU" S5        U R                  [        S5      R                  5       UR                  5        [        5       nU" S5      R                  S5        U R                  [        S5      R                  S5      R                  5       UR                  5        [        5       nU" S5      R                  S5      " S5        U R                  [        S5      R                  S5      " S5      R                  5       UR                  5        [        5       n[        U" S5      R                  S5      " S5      R                  R                  R                  S5      " S5      5        [        S5      R                  S5      " S5      R                  R                  R                  S5      " S5      R                  5       nU R                  UR                  5       UR                  5        g )Nrf   r   r   r      )r   r3   r   r   rY   rX   r   r2   rR   r}   __int__)r   r7   r   s      r   test_call_listCallTest.test_call_list:  s[   {Qa**,doo>{Qqa*446	* {Qq!a*1-779	* {DGNN1a $$((,,Q/23Aw~~a #''++//215==?)4??;r   c                     U R                  [        [        5        [        5       n[	        U5        U R                  UR
                  [        /5        U R                  [        /UR
                  5        g r   )r3   r   r   r   r   rY   r   ms     r   test_call_anyCallTest.test_call_anyO  sL    s#KAu-#-r   c                     [        SSS04SS9nU R                  [        U5      S5        U R                  US   S5        U R                  US   SS05        [        SSS045      nU R                  X5        g )	Nr   r   r   T)r!   r   r   rf   )r   r3   len)r   r   
other_argss      r   test_two_args_callCallTest.test_two_args_callX  sx    fsAh'T2TA&a&)a3(+FS!H-.
*r   c                     U R                  [        SS5      S   S5        U R                  [        S5      S   S5        U R                  [        SSS045      S   S5        g )	Nr   r2   r   )rR   barzrz   r   helloworld)r3   r   r    s    r   test_call_with_nameCallTest.test_call_with_namea  s]    r5)!,e413A6;'71CDFqI2Nr   c           	         [        5       nU" 5       R                  5       S   " 5         U R                  UR                  [	        5       [	        5       R                  5       [	        5       R                  5       R                  S5      [	        5       R                  5       R                  5       " 5       /5        [        5       nSU" 5       R                  5       S'   U R                  UR                  [	        5       [	        5       R                  5       [	        5       R                  5       R                  SS5      /5        [        5       n[        U" 5       R                  5       5        U R                  UR                  [	        5       [	        5       R                  5       [	        5       R                  5       R                  5       /5        g )NrR   rf   )	r   r2   r3   rY   r   __getitem____setitem__iter__iter__r   s     r   test_dunder_callCallTest.test_dunder_callf  s   K		%LLVTVZZ\46::<#;#;E#BDFJJLD\D\D^D`a	
 K	%LLVTVZZ\46::<#;#;E1#EF	
 KQSWWYLLVTVZZ\46::<#8#8#:;	
r   r   N)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   rw   rw   Z   so    "3J	&/ *	36	8->,
>	:	FA(""<*.+O

r   rw   c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S*r,g+),SpecSignatureTesti{  c                    U R                  [        [        US5        UR                  SS5        UR                  R	                  SS5        U R                  [
        UR                  R                  SS5        U R                  [        UR                  S5        UR                  5         UR                  R	                  5         U R                  [
        UR                  R                  S5        U R                  [        UR                  S5        UR                  5         UR                  R	                  5         U R                  [
        UR                  R                  S5        U R                  [        UR                  SS5        UR                  S5        UR                  R	                  S5        UR                  SS9  UR                  R	                  SS9  g )Nr2   rf   r   r   r   r   )	assertRaisesAttributeErrorgetattrr   r5   AssertionError	TypeErrorr!   r%   r6   s     r   _check_someclass_mock'SpecSignatureTest._check_someclass_mock}  sK   .'4?A##Aq).((55q!	=)TXXq1
##%.((55q	:)TXXq1



%%'.**77	<)TZZA6

1

%%a(

Q


%%%*r   c                     [        [        5      nU R                  U5        [        [        5       5      nU R                  U5        g r   )r   r   r   r6   s     r   
test_basicSpecSignatureTest.test_basic  s4    y)""4(y{+""4(r   c                     S n[        USS9nU R                  U" 5       S5         " S S[        5      n[        USS9nU R                  U" 5       S5        g )Nc                      g r   r   r   r   r   f>SpecSignatureTest.test_create_autospec_return_value.<locals>.f  s    r   r2   return_valuec                       \ rS rSrSrg)@SpecSignatureTest.test_create_autospec_return_value.<locals>.Fooi  r   Nr'   r(   r)   r*   r+   r   r   r   rP   r        r   rP   )r   r3   r4   )r   r  r7   rP   s       r   !test_create_autospec_return_value3SpecSignatureTest.test_create_autospec_return_value  sO    qu5'	& 	 s7'r   c                     [        [        5      n[        U5        UR                  5         U R                  UR                  R
                  S5        g )Nr   )r   r   rW   r3   r   
call_countr   s     r   test_autospec_reset_mock*SpecSignatureTest.test_autospec_reset_mock  s6    C A	--q1r   c                      " S S[         5      n[        R                   " US5      nUR                  5       nU" 5       R                  S5        UR	                  S5        g )Nc                       \ rS rSrS rSrg);SpecSignatureTest.test_mocking_unbound_methods.<locals>.Fooi  c                     g r   r   )r   r2   s     r   r2   ?SpecSignatureTest.test_mocking_unbound_methods.<locals>.Foo.foo      r   r   Nr'   r(   r)   r*   r2   r+   r   r   r   rP   r        $r   rP   r2   rf   )r4   r
   startr2   r5   )r   rP   pmock_foos       r   test_mocking_unbound_methods.SpecSignatureTest.test_mocking_unbound_methods  sD    	%& 	%LLe$779		!##A&r   c                 n     " S S[         5      n[        USS9nU R                  UR                  S5        g )Nc                       \ rS rSrSrSrg)ESpecSignatureTest.test_create_autospec_keyword_arguments.<locals>.Fooi  r   r   Nr'   r(   r)   r*   r   r+   r   r   r   rP   r        Ar   rP   3r   )r4   r   r3   r   )r   rP   r   s      r   &test_create_autospec_keyword_arguments8SpecSignatureTest.test_create_autospec_keyword_arguments  s.    	& 	C3'c"r   c                     S S.S jn[        U5      nU" S5        UR                  S5        U R                  [        USS5        U" SSS9  UR                  SSS9  g )Nr   c                    g r   r   r   s     r   r2   JSpecSignatureTest.test_create_autospec_keyword_only_arguments.<locals>.foo  s    tr   rf   r   r   )r   r5   r   r   )r   r2   r   s      r   +test_create_autospec_keyword_only_arguments=SpecSignatureTest.test_create_autospec_keyword_only_arguments  sW    #C 	!	Q)Q1-	!q		Q!$r   c                     [        5       nS nX!l        [        U5      nUR                  S5        UR                  R                  S5        g )Nc                     g r   r   r   s    r   r  @SpecSignatureTest.test_function_as_instance_attribute.<locals>.f      $r   r   )r   r  r   r5   )r   objr  r7   s       r   #test_function_as_instance_attribute5SpecSignatureTest.test_function_as_instance_attribute  s8    ks#v!!&)r   c                    [        / 5      nUR                  S5        UR                  R                  S5        U R                  [        [
        US5         " S S[        5      n[        U5      nUR                  R                  S5        UR                  R                  R                  S5        U R                  [        [
        UR                  S5        g )Nr2   c                       \ rS rSr/ rSrg)0SpecSignatureTest.test_spec_as_list.<locals>.Fooi  r   Nr  r   r   r   rP   r4    s    Cr   rP   r   )r   appendr5   r   r   r   r4   r2   )r   r7   rP   s      r   test_spec_as_list#SpecSignatureTest.test_spec_as_list  s     r"E&&u-.'4?	& 	 s#**1-.'488UCr   c                      " S S[         5      n[        U5      nX"R                  4 H  nU R                  U5        M     g )Nc                   "    \ rS rSr\" 5       rSrg).SpecSignatureTest.test_attributes.<locals>.Subi  r   Nr'   r(   r)   r*   r   attrr+   r   r   r   Subr:    	    ;Dr   r=  )r   r   r<  r   )r   r=  sub_mockr7   s       r   test_attributes!SpecSignatureTest.test_attributes  s9    	) 	 #3'}}-D&&t, .r   c                   ^  " S S[         5      m " U4S jS[         5      n[        U5      nUR                  S5        U R                  [        5         UR                  5         S S S 5        U R                  [        5         UR                  SS5        S S S 5        g ! , (       d  f       N?= f! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)VSpecSignatureTest.test_spec_has_descriptor_returning_function.<locals>.CrazyDescriptori  c                     Uc  S $ g )Nc                     g r   r   r   s    r   <lambda>pSpecSignatureTest.test_spec_has_descriptor_returning_function.<locals>.CrazyDescriptor.__get__.<locals>.<lambda>  rL   r   r   )r   r/  type_s      r   __get__^SpecSignatureTest.test_spec_has_descriptor_returning_function.<locals>.CrazyDescriptor.__get__  s    ;)) r   r   Nr'   r(   r)   r*   rJ  r+   r   r   r   CrazyDescriptorrD    s    *r   rM  c                   &   > \ rS rSr Y " 5       rSrg)NSpecSignatureTest.test_spec_has_descriptor_returning_function.<locals>.MyClassi  r   N)r'   r(   r)   r*   	some_attrr+   )rM  s   r   MyClassrO    s    ')Ir   rQ  rf   r   )r4   r   rP  r   r   )r   rQ  r7   rM  s      @r   +test_spec_has_descriptor_returning_function=SpecSignatureTest.test_spec_has_descriptor_returning_function  s    	*f 	*	*f 	* w'qy)NN *y)NN1a  *) *)))s   BB/
B,/
B=c                 (  ^  " U4S jS[         5      mT" 5       nU R                  [        5         UR                    S S S 5        U R	                  UR                  S5      S5        [        U5      nUR                  S5        U R                  [        5         UR                  5         S S S 5        U R                  [        5         UR                  SS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NP= f! , (       d  f       g = f)Nc                   2   >^  \ rS rSrUU 4S jrS rSrU =r$ )ISpecSignatureTest.test_spec_has_function_not_in_bases.<locals>.CrazyClassi  c                 (   > [         TU ]  5       S/-   $ )Ncrazy)super__dir__)r   
CrazyClass	__class__s    r   rZ  QSpecSignatureTest.test_spec_has_function_not_in_bases.<locals>.CrazyClass.__dir__  s    Z68'BBr   c                 *    US:X  a  S $ [        U5      e)NrX  c                     U $ r   r   r   s    r   rG  gSpecSignatureTest.test_spec_has_function_not_in_bases.<locals>.CrazyClass.__getattr__.<locals>.<lambda>  s    Qr   r   )r   items     r   __getattr__USpecSignatureTest.test_spec_has_function_not_in_bases.<locals>.CrazyClass.__getattr__  s    7?&&$T**r   r   )r'   r(   r)   r*   rZ  rc  r+   __classcell__)r\  r[  s   @r   r[  rV    s    C+ +r   r[  *   rf   r   )r4   r   r   rI   r3   rX  r   r   )r   instr7   r[  s      @r   #test_spec_has_function_not_in_bases5SpecSignatureTest.test_spec_has_function_not_in_bases	  s    	+ 	+ |~.JJ /B,t$

2y)JJL *y)JJq! *) /. *)))s#   C!C2D!
C/2
D 
Dc                 <    " S S[         5      n[        U5      nUR                  S5        UR                  R                  S5        U R	                  [
        [        UR                  S5        UR                  S5        UR                  R                  S5        U R	                  [        UR                  SS5        U R	                  [
        [        UR                  S5        UR                  SS/5        UR                  R                  SS/5        U R	                  [
        [        UR                  S5        UR                  R                  S5        UR                  R                  R                  S5        U R	                  [
        [        UR                  S5        g )Nc                   "    \ rS rSrS r\r0 rSrg)GSpecSignatureTest.test_builtin_functions_types.<locals>.BuiltinSubclassi&  c                     g r   r   )r   args     r   rR   KSpecSignatureTest.test_builtin_functions_types.<locals>.BuiltinSubclass.bar'  r  r   r   N)r'   r(   r)   r*   rR   sortedr<  r+   r   r   r   BuiltinSubclassrl  &  s    $FDr   rq  r   r2   rR   rf   r   )listr   r5  r5   r   r   r   rR   r   rp  r<  popr   rq  r7   s      r   test_builtin_functions_types.SpecSignatureTest.test_builtin_functions_types"  s   	d 	
 /A&&q).'4;;F##E*)TXXue<.'488UCQF&&1v..'4;;F		a		((+.'499eDr   c                     " S S[         5      n[        U5      nUR                  SS5        UR                  5         UR	                  S5        [
        R                  " SS5      [
        R                  " 5       [
        R                  " S5      /nU R                  UR                  U5        UR                  R                  SS5        UR                  R                  5         UR                  R	                  S5        UR                  [
        R                  R                  SS5      [
        R                  R                  5       [
        R                  R	                  S5      /5        U R                  UR                  U5        g )Nc                   "    \ rS rSr\" 5       rSrg)0SpecSignatureTest.test_method_calls.<locals>.Subi?  r   Nr;  r   r   r   r=  ry  ?  r>  r   r=  rf   r   r   )
r   r   r   r!   r%   r   r3   r   r<  extend)r   r=  r7   r[   s       r   test_method_calls#SpecSignatureTest.test_method_calls>  s    	) 	 s#A


1HHQNDHHJ

1>**H5		a				YY]]1a $))--/499??13EF	
 	**H5r   c                     " S S[         5      n[        U5      nU R                  [        U5      / 5        U R                  [        [
        U5        U R                  [        [
        UR                  5        U R                  [        U5      / 5        U R                  US   [        5        U R                  UR                  S   [        5        g )Nc                       \ rS rSr0 rSrg)=SpecSignatureTest.test_magic_methods.<locals>.BuiltinSubclassiU  r   N)r'   r(   r)   r*   r<  r+   r   r   r   rq  r  U  s    Dr   rq  r2   )	rr  r   r3   r   r   r   r<  assertIsInstancer   rt  s      r   test_magic_methods$SpecSignatureTest.test_magic_methodsT  s    	d 	 /dR()S$/)S$))4dR(d5k95dii.	:r   c                      " S S[         5      nX" 5       4 Hb  n[        USS9nU R                  U5        U R                  [        [
        USS5        U R                  [        [
        UR                  SS5        Md     g )Nc                   "    \ rS rSr\" 5       rSrg),SpecSignatureTest.test_spec_set.<locals>.Subic  r   Nr;  r   r   r   r=  r  c  r>  r   r=  T)spec_setr2   rR   )r   r   r   r   r   setattrr<  )r   r=  rs   r7   s       r   test_spec_setSpecSignatureTest.test_spec_setb  sj    	) 	 #%LD"4$7D&&t,ngtUEJngtyy%O !r   c                 \    " S S[         5      n " S SU5      n " S S[        U5      nX" 5       X"" 5       X3" 5       4 Hj  n[        U5      nUR                  SS5        UR                  R	                  SS5        UR                  S	S
5        UR
                  R	                  S	S
5        Ml     g )Nc                   4    \ rS rSr\S 5       r\S 5       rSrg)/SpecSignatureTest.test_descriptors.<locals>.Fooio  c                     g r   r   )clsr   r   s      r   r  1SpecSignatureTest.test_descriptors.<locals>.Foo.fp      "r   c                     g r   r   r   s     r   g1SpecSignatureTest.test_descriptors.<locals>.Foo.gr  s    r   r   N)	r'   r(   r)   r*   classmethodr  staticmethodr  r+   r   r   r   rP   r  o  s    " " r   rP   c                       \ rS rSrSrg)/SpecSignatureTest.test_descriptors.<locals>.Bariu  r   Nr  r   r   r   Barr  u  s    r   r  c                       \ rS rSrSrg)/SpecSignatureTest.test_descriptors.<locals>.Baziw  r   Nr  r   r   r   Bazr  w  s    4r   r  rf   r   r   r   )r4   r   r   r  assert_called_once_withr  )r   rP   r  r  rs   r7   s         r   test_descriptors"SpecSignatureTest.test_descriptorsn  s    	& 	 	#')S'#%ceS#%8D"4(DFF1aLFF**1a0FF1aLFF**1a0 9r   c                     " S S[         5      nXl        [        U5      nU" 5         U R                  UR                  R                  5        UR                  5         UR                  R                  5         U R                  UR                  [        R
                  " 5       [        R                  R                  5       /5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        UR                  R                  5         U R                  [        UR                  R                  R                   5        g )Nc                   "    \ rS rSrS rSr\rSrg)+SpecSignatureTest.test_recursive.<locals>.Ai  c                     g r   r   r    s    r   r   -SpecSignatureTest.test_recursive.<locals>.A.a  r   r   zfoo bar bazr   N)r'   r(   r)   r*   r   r2   rR   r+   r   r   r   Ar    s    CCr   r  )r4   Br   r   calledr   r3   r   r   assertIsr2   rR   assertIsNotlowerr   r   r5   )r   r  r7   s      r   test_recursive SpecSignatureTest.test_recursive  s    	 	
 q!'
**TVVXtvvxxz,BCaeeQUU#488,.$((..*K*KLr   c                     " S S[         5      n[        U5      nU R                  X"" 5       5        X"" 5       4 H  nUR                  SS9  UR                  R	                  SS9  UR                  R	                  S5        U R                  [        UR                  SS5        U R                  [        [        US5        M     [        U" 5       5      nUR                  S5        UR                  R	                  S5        UR                  R	                  SS9  U R                  [        UR                  SS5        U R                  [        [        US5        U R                  [        U5        UR                  R                  S5        UR                  R                  R	                  S5        UR                  R                  R	                  SS	9  U R                  [        [        UR                  S
5        UR                  5       R                  S5        UR                  5       R                  R	                  S5        UR                  5       R                  R	                  SS	9  U R                  [        [        UR                  5       S
5        g )Nc                   0    \ rS rSrS r " S S\5      rSrg)@SpecSignatureTest.test_spec_inheritance_for_classes.<locals>.Fooi  c                     g r   r   )r   r   s     r   r   BSpecSignatureTest.test_spec_inheritance_for_classes.<locals>.Foo.a      Dr   c                       \ rS rSrS rSrg)DSpecSignatureTest.test_spec_inheritance_for_classes.<locals>.Foo.Bari  c                     g r   r   )r   ys     r   r  FSpecSignatureTest.test_spec_inheritance_for_classes.<locals>.Foo.Bar.f  r  r   r   Nr'   r(   r)   r*   r  r+   r   r   r   r  r    s    $r   r  r   N)r'   r(   r)   r*   r   r4   r  r+   r   r   r   rP   r    s     %f %r   rP   r   r   r2   rR   r   r   )r  r  )r4   r   r  r   r5   r   r   r   r   r  r  )r   rP   
class_mock	this_mockinstance_mocks        r   !test_spec_inheritance_for_classes3SpecSignatureTest.test_spec_inheritance_for_classes  s   	%& 	%
 %S)
Z\2#Z\1IKK!KKK**Q*/KK**1-ieUCngy#F 2 (.**1-**Q*/)]__eUC.'=#F 	)]3A..q1...3.'=3D3DcJa 00300105.'=3D3D3FLr   c                     " S S[         5      nXl        [        U5      nU" 5       nU R                  [        [
        US5        UR                  5       nU R                  [        [
        US5        [        U" 5       5      nU R                  [        [
        US5        U R                  [        U5        UR                  5       nU R                  [        [
        US5        g )Nc                       \ rS rSrSrSrg)+SpecSignatureTest.test_inherit.<locals>.Fooi  r   r   Nr   r   r   r   rP   r    r!  r   rP   r   )r4   rP   r   r   r   r   r   )r   rP   r7   instanceattr_instancecall_results         r   test_inheritSpecSignatureTest.test_inherit  s    	& 	  s#6.'8SA
.'=#F su%.'4=)T* hhj.';Dr   c                    [        S5        [        [        5        [        S5        [        [        5        [        0 5        [        [        5        [        / 5        [        [        5        [        [        5       5        [        [
        5        [        S5        [        [        5        [        S5        [        [        5        [        S5        [        S5        g )Nrf   r2   g      ?y              ?FT)r   r   r<   r   rr  setfloatcomplexr    s    r   test_builtinsSpecSignatureTest.test_builtins  s     r   c                    S n[        U5      nU R                  [        U5        U" SS5        UR                  SS5        UR                  SSS9  UR                  SSS9  Xl        [        U5      nU R                  [        UR                  5        UR	                  SS5        UR                  R                  SS5        UR                  R                  SSS9  g )Nc                     g r   r   r   s     r   r  *SpecSignatureTest.test_function.<locals>.f  s    Tr   rf   r   r&  r   r   r   )r   r   r   r5   r  r   r  r7   s      r   test_functionSpecSignatureTest.test_function  s    q!)T*Q
1%Q'!q)q!)TVV,q!!!!Q'!!A!+r   c                   ^^  " S S[         5      m " U4S jS[         5      nU R                  UR                  SS5      S5        [        U5      mU R	                  [
        U4S j5        U R                  TR                  SS5      TR                  R                  5        U R	                  [        U4S	 j5        TR                  nUR                  UR                  4  g )
Nc                       \ rS rSrSS jrSrg);SpecSignatureTest.test_skip_attributeerrors.<locals>.Raiseri  Nc                      Uc  [        S5      eg )Nz$Can only be accessed via an instancera  )r   r/  types      r   rJ  CSpecSignatureTest.test_skip_attributeerrors.<locals>.Raiser.__get__  s    ;()OPP r   r   r   rL  r   r   r   Raiserr    s    Qr   r  c                   6   > \ rS rSr Y " 5       r\S 5       rSrg)@SpecSignatureTest.test_skip_attributeerrors.<locals>.RaiserClassi  c                 
    X-   $ r   r   r   s     r   existingISpecSignatureTest.test_skip_attributeerrors.<locals>.RaiserClass.existing  s	    ur   r   N)r'   r(   r)   r*   raiserr  r  r+   )r  s   r   RaiserClassr    s    XF r   r  rf   r   r   c                 *   > TR                  SSS5      $ )Nrf   r   r   )r  )r   ss    r   rG  =SpecSignatureTest.test_skip_attributeerrors.<locals>.<lambda>  s    qzz!Q/Br   c                     > T R                   $ r   )nonexisting)r  s   r   rG  r    s	    !--r   )r4   r3   r  r   r   r   r  r   r  r2   rR   )r   r  r/  r  r  s      @@r   test_skip_attributeerrors+SpecSignatureTest.test_skip_attributeerrors  s    	QV 	Q
	& 	 	--a3Q7K()%BCAq)1::+B+BC.*?@ hhr   c                     " S S[         5      n[        U5      nU R                  [        U5        U" S5        UR	                  S5        UR	                  SS9  U R                  [
        UR                  S5        U" SS5        UR                  SS5        UR                  SSS9  U R                  [
        UR                  SSS9  g )	Nc                       \ rS rSrSS jrSrg)3SpecSignatureTest.test_signature_class.<locals>.Fooi  c                     g r   r   r   s      r   __init__<SpecSignatureTest.test_signature_class.<locals>.Foo.__init__  s    r   r   Nr   r'   r(   r)   r*   r  r+   r   r   r   rP   r    s    ,r   rP   rf   r   r   r   r   r   )r4   r   r   r   r  r   r5   rj   s      r   test_signature_class&SpecSignatureTest.test_signature_class  s    	-& 	- s#)T*Q$$Q'$$q$).$*F*FJQ
1%!q).$*A*AQ!Lr   c                 8     " S S[         5      n[        U5        g )Nc                       \ rS rSrSrg)6SpecSignatureTest.test_class_with_no_init.<locals>.Fooi*  r   Nr  r   r   r   rP   r  *  r	  r   rP   )r4   r   )r   rP   s     r   test_class_with_no_init)SpecSignatureTest.test_class_with_no_init'  s    	& 	r   c                 B    " S S[         5      n[        U5      nU" SS5        UR                  SS5        UR                  SSS9  U R                  [        US5        U" SS5      nU R                  [        U5        U" SS9  UR                  S5        UR                  SS9  U" S5        UR                  S5        UR                  SS9  [        U" SS5      5      nU" SS9  UR                  SS9  U R                  [        U5        U" S5        UR                  S5        g )Nc                        \ rS rSrS rS rSrg);SpecSignatureTest.test_signature_callable.<locals>.Callablei0  c                     g r   r   )r   r   r  s      r   r  DSpecSignatureTest.test_signature_callable.<locals>.Callable.__init__1  s    dr   c                     g r   r   r$   s     r   __call__DSpecSignatureTest.test_signature_callable.<locals>.Callable.__call__2  s    4r   r   N)r'   r(   r)   r*   r  r  r+   r   r   r   Callabler  0  s    *'r   r  rf   r   r   r  r   r   )r4   r   r  r   r   r5   )r   r  r7   r  s       r   test_signature_callable)SpecSignatureTest.test_signature_callable/  s   	(v 	( x(Q
$$Q*$$qA$.)T3/1:)X.3((-((3(/##C(##c#*x1~.s$$s$+)T*S	$r   c                 h    " S S[         5      n[        U5      nU" 5       nUR                  5         U R                  [        US5        U R                  [        U5        U R                  [        US5        [        U" 5       5      nU R                  [        U5        U R                  [        US5        g )Nc                       \ rS rSrS rSrg)ASpecSignatureTest.test_signature_noncallable.<locals>.NonCallableiL  c                     g r   r   r    s    r   r  JSpecSignatureTest.test_signature_noncallable.<locals>.NonCallable.__init__M  s    r   r   Nr  r   r   r   NonCallabler  L  s    r   r  r   )r4   r   r  r   r   )r   r  r7   r  s       r   test_signature_noncallable,SpecSignatureTest.test_signature_noncallableK  s    	& 	 {+6$$&)T3/)X.)Xs3{}-)T*)T3/r   c                      " S S[         5      n[        U5      nUR                  nU R                  U[	        S 5      5        UR                  5         UR
                  R                  5         g )Nc                       \ rS rSrSrSrg)8SpecSignatureTest.test_create_autospec_none.<locals>.Fooi]  Nr   )r'   r(   r)   r*   rR   r+   r   r   r   rP   r
  ]  s    Cr   rP   )r4   r   rR   assertNotIsInstancer  r2   r  )r   rP   r7   nones       r   test_create_autospec_none+SpecSignatureTest.test_create_autospec_none\  sP    	& 	 s#xx  tDz2
((*r   c                 H    " S S[         5      n[        U5      nUR                  S5        UR                  R                  S5        UR                  R                  SS9  UR                  SS9  UR                  R                  S5        UR                  R                  SS9  g )Nc                       \ rS rSrS rSrg)MSpecSignatureTest.test_autospec_functions_with_self_in_odd_place.<locals>.Fooii  c                     g r   r   )r   r   s     r   r  OSpecSignatureTest.test_autospec_functions_with_self_in_odd_place.<locals>.Foo.fj  r  r   r   Nr  r   r   r   rP   r  i  s     r   rP   
   r    )r4   r   r  r5   )r   rP   r   s      r   .test_autospec_functions_with_self_in_odd_place@SpecSignatureTest.test_autospec_functions_with_self_in_odd_placeh  s    	!& 	! C 	B	r"	B'		r"	B'r   c                   ^ ^^  " S S[         5      m " S S[        5      m " UU4S jS[         5      n[        U5      nU 4S jnU" UR                  5        U" UR                  5        U" UR
                  5        U" UR                  5        g )Nc                   *    \ rS rSrS rSS jrS rSrg)CSpecSignatureTest.test_autospec_data_descriptor.<locals>.Descriptoriv  c                     Xl         g r   r   )r   r   s     r   r  LSpecSignatureTest.test_autospec_data_descriptor.<locals>.Descriptor.__init__w  s    "
r   Nc                     U $ r   r   )r   r/  r  s      r   rJ  KSpecSignatureTest.test_autospec_data_descriptor.<locals>.Descriptor.__get__z  s    r   c                     g r   r   )r   r/  r   s      r   __set__KSpecSignatureTest.test_autospec_data_descriptor.<locals>.Descriptor.__set__}  s    4r   r  r   )r'   r(   r)   r*   r  rJ  r   r+   r   r   r   
Descriptorr  v  s    # 0r   r"  c                       \ rS rSrSrg)CSpecSignatureTest.test_autospec_data_descriptor.<locals>.MyPropertyi  r   Nr  r   r   r   
MyPropertyr$    r	  r   r%  c                   P   > \ rS rSrS/r\S 5       r YS 5       r Y " S5      rSr	g)<SpecSignatureTest.test_autospec_data_descriptor.<locals>.Fooi  slotc                     g r   r   r    s    r   propASpecSignatureTest.test_autospec_data_descriptor.<locals>.Foo.prop  s     r   c                     g r   r   r    s    r   subpropDSpecSignatureTest.test_autospec_data_descriptor.<locals>.Foo.subprop  s    #r   rf  r   N)
r'   r(   r)   r*   	__slots__propertyr*  r-  descr+   )r"  r%  s   r   rP   r'    s/    I   # #b>Dr   rP   c                    > TR                  U [        5        U " SSS5        U R                  SSS5        U R                  SSS5        U R                  R                  SSS5        g )Nrf   r   r   r   r   r   )r  r   abcr  )	mock_attrr   s    r   check_data_descriptorNSpecSignatureTest.test_autospec_data_descriptor.<locals>.check_data_descriptor  sW    !!)Y7aAMM!Q"--aA6MM11!Q:r   )r4   r0  r   r*  r-  r(  r1  )r   rP   r2   r5  r"  r%  s   `   @@r   test_autospec_data_descriptor/SpecSignatureTest.test_autospec_data_descriptoru  so    	0 	0	 			" 		"& 		" c"	; 	chh'ckk*chh'chh'r   c                 H   [         R                  " [        R                  [        R                  " 5       5      nU R	                  U" 5       [
        5        [        U5      nU" 5         UR                  5         UR                  5         U" SSS5        UR                  SSS5        g )Nr   r   r   )	types
MethodTypetimectimer  r<   r   r  rW   )r   methmockeds      r   'test_autospec_on_bound_builtin_function9SpecSignatureTest.test_autospec_on_bound_builtin_function  sv    

DIIK8dfc* & 	&&(q!Q&&q!Q/r   c                 r     " S S5      nU" 5       n[        U5      nU R                  [        US5      5        g )Nc                       \ rS rSrS rSrg)ESpecSignatureTest.test_autospec_getattr_partial_function.<locals>.Fooi  c                     [        S U5      $ )Nc                     U $ r   r   )names    r   rG  cSpecSignatureTest.test_autospec_getattr_partial_function.<locals>.Foo.__getattr__.<locals>.<lambda>  s    Dr   r   )r   	attributes     r   rc  QSpecSignatureTest.test_autospec_getattr_partial_function.<locals>.Foo.__getattr__  s    0)<<r   r   N)r'   r(   r)   r*   rc  r+   r   r   r   rP   rD    s    =r   rP   r'   )r   r   hasattr)r   rP   proxyautospecs       r   &test_autospec_getattr_partial_function8SpecSignatureTest.test_autospec_getattr_partial_function  s4    	= 	=
 "5):67r   c                      " S S5      n[        UR                  S   5      nU R                  [        R                  " UR
                  5      [        R                  " U5      5        g )Nc                   (    \ rS rSr\SS j5       rSrg)CSpecSignatureTest.test_autospec_signature_staticmethod.<locals>.Fooi  c                    g r   r   r   r   cs      r   static_methodQSpecSignatureTest.test_autospec_signature_staticmethod.<locals>.Foo.static_method  s    .2r   r   Nr  )r'   r(   r)   r*   r  rV  r+   r   r   r   rP   rR    s    2 2r   rP   rV  )r   __dict__r3   inspect	signaturerV  rj   s      r   $test_autospec_signature_staticmethod6SpecSignatureTest.test_autospec_signature_staticmethod  sN    	3 	3 s||O<=**3+<+<=w?P?PQU?VWr   c                      " S S5      n[        UR                  S   5      nU R                  [        R                  " UR
                  5      [        R                  " U5      5        g )Nc                   (    \ rS rSr\SS j5       rSrg)BSpecSignatureTest.test_autospec_signature_classmethod.<locals>.Fooi  c                    g r   r   )r  r   r   rU  s       r   class_methodOSpecSignatureTest.test_autospec_signature_classmethod.<locals>.Foo.class_method  s    26r   r   NrX  )r'   r(   r)   r*   r  rb  r+   r   r   r   rP   r`    s    6 6r   rP   rb  )r   rY  r3   rZ  r[  rb  rj   s      r   #test_autospec_signature_classmethod5SpecSignatureTest.test_autospec_signature_classmethod  sN    	7 	7 s||N;<**3+;+;<g>O>OPT>UVr   c           	      B   S n[        U5      nU" SS5        U" SSS9  U R                  [        R                  " U5      [        R                  " U5      5        U R                  UR                  [        SS5      [        SSS9/5        U R                  [        US5        g )Nc                     g r   r   r  s     r   myfunc=SpecSignatureTest.test_spec_inspect_signature.<locals>.myfunc  s    $r   rf   r   r  )r   r3   rZ  r[  rY   r   r   r   )r   rh  r7   s      r   test_spec_inspect_signature-SpecSignatureTest.test_spec_inspect_signature  s~    v&Q
qA**40'2C2CF2KL41:ta1~*FG)T1-r   c           	         SS[         S[         S[         S[         4S jjnU R                  U" SSSS	9S
5        [        U5      nU" SSSS	9  U" SSS	9  U R                  [        R                  " U5      [        R                  " U5      5        U R                  UR
                  [        SSSS	9[        SSS	9/5        U R                  [        US5        U R                  [        USSSSS	9  g )Nr   r   rU  returnc                    X-   U-   $ r   r   rT  s      r   r2   FSpecSignatureTest.test_spec_inspect_signature_annotations.<locals>.foo  s    519r   rf   r   r   )rU  r   r   rX  )	r   r3   r   rZ  r[  rY   r   r   r   )r   r2   r7   s      r   'test_spec_inspect_signature_annotations9SpecSignatureTest.test_spec_inspect_signature_annotations  s    	3 	3 	 	 	 	Qa!,s#QQQ!**40'2C2CC2HI41?DaL*IJ)T1-)T1aa8r   c                 X    S n[        U5      nU R                  UR                  S5        g )Nc                      g)Nnoper   r   r   r   rG  >SpecSignatureTest.test_spec_function_no_name.<locals>.<lambda>  s    vr   funcopy)r   r3   r'   )r   funcr7   s      r   test_spec_function_no_name,SpecSignatureTest.test_spec_function_no_name  s%    t$	2r   c                     S n[        U5      nU" S5        UR                  [        S5      /5        U R                  [        5         UR                  [        S5      /5        S S S 5        g ! , (       d  f       g = f)Nc                     g r   r   r   s    r   r  @SpecSignatureTest.test_spec_function_assert_has_calls.<locals>.f  r.  r   rf   r   )r   rh   r   r   r   r  s      r   #test_spec_function_assert_has_calls5SpecSignatureTest.test_spec_function_assert_has_calls  sX    q!QtAwi(~.!!47), /..s   A,,
A:c                     S n[        U5      nU" S5        UR                  S5        U R                  [        5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nc                     g r   r   r   s    r   r  ?SpecSignatureTest.test_spec_function_assert_any_call.<locals>.f  r.  r   rf   r   )r   ri   r   r   r  s      r   "test_spec_function_assert_any_call4SpecSignatureTest.test_spec_function_assert_any_call  sL    q!QQ~.  # /..s   A
A&c                 t   S n[        5       n[        XS9nU" S5      " S5        U R                  UR                  [	        S5      /5        U R                  UR                  [	        S5      /5        UR                  5         U R                  UR                  / 5        U R                  UR                  / 5        g )Nc                     g r   r   r   s    r   r  :SpecSignatureTest.test_spec_function_reset_mock.<locals>.f  r.  r   r  rf   r   )r   r   r3   rY   r   rW   )r   r  rvr7   s       r   test_spec_function_reset_mock/SpecSignatureTest.test_spec_function_reset_mock  s    Vq2Q
47)4a	2"-+r   r   N)-r'   r(   r)   r*   r   r   r
  r  r  r#  r)  r0  r6  r@  rR  rh  ru  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r7  r@  rN  r\  rd  rj  rp  rx  r}  r  r  r+   r   r   r   r   r   {  s    +6)	(2'#	%*D$-!(2E86,;	P1(M,#MLE0*,$0M$%80"	+
()(X
0
8XW
.9 3-$	,r   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestCallListi  c                 .   [        5       nU R                  UR                  [        5        U" SS5        U" SS9  U" SS5        U" SS9  [	        SS5      [	        SS9[	        SS5      [	        SS94 H  nU R                  X!R                  5        M      [	        SS9[	        SS5      /nU R                  X1R                  5        [	        SS5      [	        SS9/nU R                  X1R                  5        [	        SS5      [	        SS9/nU R                  X1R                  5        [	        SS5      /nU R                  X1R                  5        U R                  [	        S5      UR                  5        U R                  [	        S5      /UR                  5        g )	Nrf   r   r   r   r   r   r&  r   )r   r  r   r	   r   r   assertNotIn)r   r7   r   callss       r   !test_args_list_contains_call_list.TestCallList.test_args_list_contains_call_list  sB   vd119=Q
q	Q
q	AJq	41:tay@DMM$ 3 34 A DAJ'e001aTAY'e001aTAY'e001ae001ft':':;$v,)<)<=r   c                     [        5       nU" SS5        UR                  SS9  UR                  R                  5       R                  SSS9  SnU R	                  [        UR                  5      U5        g )	Nrf   r   r   r   r   dog)catzU[call(1, 2),
 call.foo(a=3),
 call.foo.bar(),
 call.foo.bar().baz('fish', cat='dog')])r   r2   rR   r}   r3   r<   rY   )r   r7   r[   s      r   test_call_list_strTestCallList.test_call_list_str)  sa    vQ
16u-6 	 	T__-x8r   c                     [        S[        -  [        S9nUR                  5       n [        R
                    UR                  5         [	        5       nUR
                    UR                  5         U R                  UR                  [        5       [        5       /5        SUl        U R                  UR                  [        5       [        5       [        S5      /5        UR                  5         g ! UR                  5         f = f)Nz%s.SomeClass.one)new_callabler   )r
   r'   r   r  r   r   r  r5   r3   rY   r   stop)r   r  r7   r  s       r   test_propertymockTestCallList.test_propertymock8  s    $x/lKwwy	MM((*AEE##%T__tvtv.>?AET__tvtvtAw.GHFFHAFFHs   B3C+ +C=c                     [        5       n[        5       nU[        U5      l        UR                  nUR	                  5         U R                  U[         5        U R                  U[        5        g r   )r   r   r  r2   r  r  r  r   r   r  returneds       r   test_propertymock_bare#TestCallList.test_propertymock_bareJ  sP    KNQ55	!!#h	2  <8r   c                     [        5       n[        SS9nU[        U5      l        UR                  nUR	                  5         U R                  US5        U R                  U[        5        g )Nrf  r  )r   r   r  r2   r  r3   r  r  s       r   test_propertymock_returnvalue*TestCallList.test_propertymock_returnvalueU  sS    Kb)Q55	!!#2&  <8r   c                     [        5       n[        [        S9nU[        U5      l        U R                  [        5         UR                    S S S 5        UR                  5         g ! , (       d  f       N= f)N)side_effect)r   r   
ValueErrorr  r2   r   r  r   r   r  s      r   test_propertymock_side_effect*TestCallList.test_propertymock_side_effect`  sM    KZ0Qz*EE +	!!# +*s   A##
A1c                     [        5       n[        5       nU[        U5      l        UR	                  US5        U R                  UR                  / 5        g )Nr2   )r   r   r  r2   attach_mockr3   rY   r  s      r   test_propertymock_attach%TestCallList.test_propertymock_attachj  s=    FNQ	ar*r   r   N)r'   r(   r)   r*   r  r  r  r  r  r  r  r+   r   r   r   r  r    s%    >29$99$+r   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestCallablePredicateir  c                     [         [        [        [        [        [
        4 H  nU R                  [        U5      5        M     g r   )r<   bytesr   rr  tupler   r   r   )r   r/  s     r   	test_typeTestCallablePredicate.test_typet  s)    T5)<COOIcN+ =r   c                 Z     " S S5      nU" 5       nU R                  [        U5      5        g )Nc                       \ rS rSrS rSrg)>TestCallablePredicate.test_call_magic_method.<locals>.Callableiy  c                     g r   r   r    s    r   r  GTestCallablePredicate.test_call_magic_method.<locals>.Callable.__call__z  r  r   r   N)r'   r(   r)   r*   r  r+   r   r   r   r  r  y  r  r   r  )r   r   )r   r  r  s      r   test_call_magic_method,TestCallablePredicate.test_call_magic_methodx  s$    	% 	%:	(+,r   c                 `     " S S5      nU R                  [        UR                  5      5        g )Nc                   $    \ rS rSr\S 5       rSrg)ATestCallablePredicate.test_staticmethod.<locals>.WithStaticMethodi  c                      g r   r   r   r   r   
staticfuncLTestCallablePredicate.test_staticmethod.<locals>.WithStaticMethod.staticfunc  r  r   r   N)r'   r(   r)   r*   r  r  r+   r   r   r   WithStaticMethodr    s    " "r   r  )r   r   r  )r   r  s     r   test_staticmethod'TestCallablePredicate.test_staticmethod~  s&    	# 	# 		"2"="=>?r   c                 `     " S S5      nU R                  [        UR                  5      5        g )Nc                   $    \ rS rSr\" S5      rSrg)MTestCallablePredicate.test_non_callable_staticmethod.<locals>.BadStaticMethodi  Nr   )r'   r(   r)   r*   r  not_callabler+   r   r   r   BadStaticMethodr    s    '-Lr   r  r   r   r  )r   r  s     r   test_non_callable_staticmethod4TestCallablePredicate.test_non_callable_staticmethod  s%    	. 	.?#?#?@Ar   c                 `     " S S5      nU R                  [        UR                  5      5        g )Nc                   $    \ rS rSr\S 5       rSrg)?TestCallablePredicate.test_classmethod.<locals>.WithClassMethodi  c                     g r   r   )r  s    r   	classfuncITestCallablePredicate.test_classmethod.<locals>.WithClassMethod.classfunc  s     $r   r   N)r'   r(   r)   r*   r  r  r+   r   r   r   WithClassMethodr    s    $ $r   r  )r   r   r  )r   r  s     r   test_classmethod&TestCallablePredicate.test_classmethod  s%    	% 	% 		/";";<=r   c                 `     " S S5      nU R                  [        UR                  5      5        g )Nc                   $    \ rS rSr\" S5      rSrg)KTestCallablePredicate.test_non_callable_classmethod.<locals>.BadClassMethodi  Nr   )r'   r(   r)   r*   r  r  r+   r   r   r   BadClassMethodr    s    &t,Lr   r  r  )r   r  s     r   test_non_callable_classmethod3TestCallablePredicate.test_non_callable_classmethod  s%    	- 	->#>#>?@r   r   N)r'   r(   r)   r*   r  r  r  r  r  r  r+   r   r   r   r  r  r  s#    ,-@B
>Ar   r  __main__)rZ  r<  r:  unittestunittest.mockr   r   r   r   r   r   r	   r
   r   r   r   	functoolsr   r4   r   TestCaser-   rw   r   r  r  r'   mainr   r   r   <module>r     s         
  " "C%h C%J^
x   ^
B	P
,)) P
,fa+8$$ a+H AH--  AF zMMO r   