
    4hh                        S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  \R                  " SS9  S SK J
r
Jr  S SKJ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	 r " S
 S5      r " S S5      rS rS rS r " S S\5      r\  S3r!\  S3r"\S 5       r# " S S\RH                  5      r% " S S\RH                  5      r& " S S\RH                  5      r' " S S\RH                  5      r( " S S\RH                  5      r) " S  S!\RH                  5      r* " S" S#\5      r+ " S$ S%\RH                  5      r, " S& S'\RH                  5      r- " S( S)\RH                  5      r. " S* S+\RH                  5      r/\ S,:X  a  \R`                  " 5         gg)-    N)contextmanager)supportT)module)runiscoroutinefunction)IsolatedAsyncioTestCase)
ANYcall	AsyncMockpatch	MagicMockMockcreate_autospecsentinel	_CallListsealc                  0    [         R                  " S 5        g N)asyncioset_event_loop_policy     N/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/testmock/testasync.pytearDownModuler      s    !!$'r   c                   F    \ rS rSrS rS rS r\S 5       r\	S 5       r
Srg)	
AsyncClass   c                     g r   r   selfs    r   __init__AsyncClass.__init__   s    r   c                    #    g 7fr   r   r   s    r   async_methodAsyncClass.async_method   s     $   c                     g r   r   r   s    r   normal_methodAsyncClass.normal_method       Tr   c                    #    g 7fr   r   )clss    r   async_class_methodAsyncClass.async_class_method   s     '+r&   c                     #    g 7fr   r   r   r   r   async_static_methodAsyncClass.async_static_method   s     %)r&   r   N)__name__
__module____qualname____firstlineno__r!   r$   r(   classmethodr-   staticmethodr0   __static_attributes__r   r   r   r   r      s'    &!+ +) )r   r   c                       \ rS rSrS rSrg)AwaitableClass!   c              #      #    S v   g 7fr   r   r   s    r   	__await__AwaitableClass.__await__"   s        r   N)r2   r3   r4   r5   r=   r8   r   r   r   r:   r:   !   s    r   r:   c                     #    g 7fr   r   r   r   r   
async_funcrA   $   s     r&   c                   #    g 7fr   r   )abcs      r   async_func_argsrF   &        tr&   c                      g r   r   r   r   r   normal_funcrI   (       4r   c                       \ rS rSrS rSrg)NormalClass*   c                     g r   r   r   s    r   rC   NormalClass.a+   s    r   r   N)r2   r3   r4   r5   rC   r8   r   r   r   rL   rL   *   s    r   rL   z.AsyncClassz.NormalClassc              #      #    U R                  [        S5         S v   [        R                  " 5         S S S 5        g ! , (       d  f       g = f7f)Nzwas never awaited$)assertWarnsRegexRuntimeWarninggccollect)tests    r   assertNeverAwaitedrV   2   s0     			~/C	D 	

	 
E	D	Ds   A<	A
A
Ac                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
AsyncPatchDecoratorTest;   c                 \   ^  [         R                  " [        S5      U 4S j5       nU" 5         g )Nr$   c                 :   > TR                  [        U 5      5        g r   )
assertTruer   mock_methodr    s    r   
test_asyncLAsyncPatchDecoratorTest.test_is_coroutine_function_patch.<locals>.test_async=   s    OO/<=r   r   objectr   r    r_   s   ` r    test_is_coroutine_function_patch8AsyncPatchDecoratorTest.test_is_coroutine_function_patch<   s%    	j.	1	> 
2	>r   c                    ^  [         R                  " [        S5      U 4S j5       n[        [         S35      U 4S j5       nU" 5         U" 5         g )Nr$   c                 t   > U " 5       nTR                  [        R                  " U5      5        [        U5        g r   r\   inspectisawaitabler   r^   mr    s     r   r_   ?AsyncPatchDecoratorTest.test_is_async_patch.<locals>.test_asyncC   (    AOOG//23Fr   z.async_methodc                 t   > U " 5       nTR                  [        R                  " U5      5        [        U5        g r   rh   rk   s     r   test_no_parent_attributeMAsyncPatchDecoratorTest.test_is_async_patch.<locals>.test_no_parent_attributeI   rn   r   )r   rb   r   async_foo_name)r    r_   rp   s   `  r   test_is_async_patch+AsyncPatchDecoratorTest.test_is_async_patchB   sN    	j.	1	 
2	
 
.!/	0	 
1	
 	 "r   c                 \   ^  [         R                  " [        S5      U 4S j5       nU" 5         g )Nr$   c                 2   > TR                  U [        5        g r   assertIsInstancer   r]   s    r   r_   CAsyncPatchDecoratorTest.test_is_AsyncMock_patch.<locals>.test_asyncS       !!+y9r   ra   rc   s   ` r   test_is_AsyncMock_patch/AsyncPatchDecoratorTest.test_is_AsyncMock_patchR   s'    	j.	1	: 
2	: 	r   c                 \   ^  [         R                  " [        S5      U 4S j5       nU" 5         g )Nr0   c                 2   > TR                  U [        5        g r   rw   r]   s    r   r_   PAsyncPatchDecoratorTest.test_is_AsyncMock_patch_staticmethod.<locals>.test_asyncZ   rz   r   ra   rc   s   ` r   $test_is_AsyncMock_patch_staticmethod<AsyncPatchDecoratorTest.test_is_AsyncMock_patch_staticmethodY   s(    	j"7	8	: 
9	: 	r   c                 \   ^  [         R                  " [        S5      U 4S j5       nU" 5         g )Nr-   c                 2   > TR                  U [        5        g r   rw   r]   s    r   r_   OAsyncPatchDecoratorTest.test_is_AsyncMock_patch_classmethod.<locals>.test_asynca   rz   r   ra   rc   s   ` r   #test_is_AsyncMock_patch_classmethod;AsyncPatchDecoratorTest.test_is_AsyncMock_patch_classmethod`   s(    	j"6	7	: 
8	: 	r   c                    ^  [        [         S3SS9[        [         S3SS9U 4S j5       5       n[        U" 5       5        T R                  [        R
                  " [        5      5        g )N.async_func   return_value.async_func_args   c                 x  >#    TR                  U R                  S5        TR                  UR                  S5        TR                  [        [        5        TR                  [
        [        5        TR                  [        5       I S h  vN S5        TR                  [        SSSS9I S h  vN S5        g  N- N7f)NrF   rA   r   r      rE   )assertEqual
_mock_namerx   rA   r   rF   )func_args_mock	func_mockr    s     r   r_   @AsyncPatchDecoratorTest.test_async_def_patch.<locals>.test_asynch   s      ^668IJY11<@!!*i8!!/9=:</3?1a1#==qA 0=s$   BB:B6	"B:+B8,B:8B:)r   r2   r   r\   ri   r   rA   rc   s   ` r   test_async_def_patch,AsyncPatchDecoratorTest.test_async_def_patchg   s_    	(;'a	8	(+,1	=	B 
> 
9	B 	JL33J?@r   r   N)r2   r3   r4   r5   rd   rs   r{   r   r   r   r8   r   r   r   rX   rX   ;   s!    # Ar   rX   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
AsyncPatchCMTestx   c                     ^  U 4S jnU" 5         g )Nc                     > [         R                  " [        S5       n TR                  [	        U 5      5        S S S 5        g ! , (       d  f       g = fNr$   )r   rb   r   r\   r   r]   s    r   r_   >AsyncPatchCMTest.test_is_async_function_cm.<locals>.test_asyncz   s1    j.9[ 3K @A :99s   A
Ar   rc   s   ` r   test_is_async_function_cm*AsyncPatchCMTest.test_is_async_function_cmy   s    	B 	r   c                     ^  U 4S jnU" 5         g )Nc                     > [         R                  " [        S5       n U " 5       nTR                  [        R
                  " U5      5        [        U5        S S S 5        g ! , (       d  f       g = fr   )r   rb   r   r\   ri   rj   r   rk   s     r   r_   5AsyncPatchCMTest.test_is_async_cm.<locals>.test_async   sD    j.9[M 3 3A 67A :99s   8A
A,r   rc   s   ` r   test_is_async_cm!AsyncPatchCMTest.test_is_async_cm   s    	 	r   c                     ^  U 4S jnU" 5         g )Nc                     > [         R                  " [        S5       n TR                  U [        5        S S S 5        g ! , (       d  f       g = fr   )r   rb   r   rx   r   r]   s    r   r_   9AsyncPatchCMTest.test_is_AsyncMock_cm.<locals>.test_async   s/    j.9[%%k9= :99s	   =
Ar   rc   s   ` r   test_is_AsyncMock_cm%AsyncPatchCMTest.test_is_AsyncMock_cm   s    	> 	r   c                 2   ^  U 4S jn[        U" 5       5        g )Nc                     >#    [        [         S3[        5       5         T R                  [        [        5        S S S 5        T R                  [        R                  " [        5      5        g ! , (       d  f       N8= f7f)Nr   )r   r2   r   rx   rA   r\   ri   r   r   s   r   r_   6AsyncPatchCMTest.test_async_def_cm.<locals>.test_async   sM     (;/=%%j)< >OOG77
CD >=s   A=A,2A=,
A:6A=r   rc   s   ` r   test_async_def_cm"AsyncPatchCMTest.test_async_def_cm   s    	E
 	JLr   c                    ^ ^ SS0m[         R                  " TSS05      UU 4S j5       nT R                  [        U5      5        [	        U" 5       5        g )NrC   rD   c                  8   >#    TR                  T S   S5        g 7fNrC   rD   )r   foor    s   r   r_   >AsyncPatchCMTest.test_patch_dict_async_def.<locals>.test_async   s     SXs+s   )r   dictr\   r   r   r    r_   r   s   ` @r   test_patch_dict_async_def*AsyncPatchCMTest.test_patch_dict_async_def   sK    Cj	C#s	$	, 
%	, 	+J78JLr   c                 >   ^ ^ SS0mUU 4S jn[        U" 5       5        g )NrC   c                     >#    [         R                  " T SS05         TR                  T S   S5        S S S 5        g ! , (       d  f       g = f7fr   )r   r   r   r   s   r   r_   FAsyncPatchCMTest.test_patch_dict_async_def_context.<locals>.test_async   s7     C#s,  S3/ -,,s   A<	A
A
Ar   r   s   ` @r   !test_patch_dict_async_def_context2AsyncPatchCMTest.test_patch_dict_async_def_context   s    Cj	0 	JLr   r   N)r2   r3   r4   r5   r   r   r   r   r   r   r8   r   r   r   r   r   x   s     r   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	AsyncMockTest   c                 L    [        5       nU R                  [        U5      5        g r   )r   r\   r   r    mocks     r    test_iscoroutinefunction_default.AsyncMockTest.test_iscoroutinefunction_default   s    {+D12r   c                     S n[        U5      nU R                  [        U5      5        U R                  [        R                  " U5      5        g )Nc                     #    g 7fr   r   r   r   r   r   <AsyncMockTest.test_iscoroutinefunction_function.<locals>.foo   s     r&   r   r\   r   ri   r    r   r   s      r   !test_iscoroutinefunction_function/AsyncMockTest.test_iscoroutinefunction_function   s7    ~+D1233D9:r   c                     [        5       nU" 5       nU R                  [        R                  " U5      5        [	        U5        U R                  S[        U5      5        g )Nassert_awaited)r   r\   ri   rj   r   assertIndirr    r   rl   s      r   test_isawaitableAsyncMockTest.test_isawaitable   sA    {F++A./A&D	2r   c                     S n[        U5      nU R                  [        U5      5        U R                  [        R                  " U5      5        g )Nc                      g r   r   r   r   r   r   CAsyncMockTest.test_iscoroutinefunction_normal_function.<locals>.foo   rJ   r   r   r   s      r   (test_iscoroutinefunction_normal_function6AsyncMockTest.test_iscoroutinefunction_normal_function   s7    ~+D1233D9:r   c                     [         R                  " 5       nUR                  5       nUR                  5         UR	                  5         [        U5      nU R                  U[         R                  5        g r   )r   new_event_loopcreate_futurestopcloser   rx   Future)r    loopfutr   s       r   test_future_isfuture"AsyncMockTest.test_future_isfuture   sM    %%'  "		

~dGNN3r   r   N)
r2   r3   r4   r5   r   r   r   r   r   r8   r   r   r   r   r      s    3;3;4r   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	AsyncAutospecTest   c                 ~   ^  [        [        SS9U 4S j5       n[        [        SS9U 4S j5       nU" 5         U" 5         g )NTautospecc                 r   > TR                  U R                  [        5        TR                  U [        5        g r   rx   r$   r   r   r]   s    r   r_   =AsyncAutospecTest.test_is_AsyncMock_patch.<locals>.test_async   s)    !!+":":IF!!+y9r   c                 F   > TR                  U R                  [        5        g r   )rx   r(   r   r]   s    r   test_normal_methodEAsyncAutospecTest.test_is_AsyncMock_patch.<locals>.test_normal_method   s    !!+";";YGr   r   rr   )r    r_   r   s   `  r   r{   )AsyncAutospecTest.test_is_AsyncMock_patch   sF    	~	-	: 
.	: 
~	-	H 
.	H 	r   c                 ~    U R                  [        5         [        [        SS9  S S S 5        g ! , (       d  f       g = f)NT)instance)assertRaisesRuntimeErrorr   rA   r   s    r   test_create_autospec_instance/AsyncAutospecTest.test_create_autospec_instance   s&    |,J6 -,,s   .
<c           	        ^ [        [        5      nU" SSSS9mU4S jnU R                  UR                  S5        U R	                  UR
                  5        U R                  UR                  / 5        UR                  5         [        U" 5       5        U R                  [        U5      5        U R                  [        R                  " U5      5        U R                  [        R                  " T5      5        U R                  [        R                  " T5      5        U R                  UR                  S5        U R                  UR
                  [        SSSS95        U R                  UR                  [        SSSS9/5        UR                  5         UR!                  SSSS9  UR#                  SSSS9  UR%                  5         U R'                  [(        5         UR+                  SS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   c                  &   >#    T I S h  vN   g  N7fr   r   	awaitables   r   main4AsyncAutospecTest.test_create_autospec.<locals>.main        OO   r   )e)r   rF   r   await_countassertIsNone
await_argsawait_args_listassert_not_awaitedr   r\   r   ri   r   iscoroutiner
   assert_awaited_onceassert_awaited_once_withassert_awaited_withr   r   AssertionErrorassert_any_awaitr    specr   r   s      @r   test_create_autospec&AsyncAutospecTest.test_create_autospec   s   /AO		 	))1-$//*--r2!DF+D1233D9:++I67++I67))1-$q!q/:--QQ/@A  "%%aa%0  A +~.!!A!& /..s   G22
H c                   ^ [        [        5      nU" 5       mU R                  UR                  / 5        U4S jnU R	                  [
        5         [        U" 5       5        S S S 5        U R                  UR                  / 5        U R                  UR                  S5        U R                  UR                  5        U R                  UR                  / 5        UR                  5         g ! , (       d  f       N= f)Nc                  &   >#    T I S h  vN   g  N7fr   r   r   s   r   r   >AsyncAutospecTest.test_autospec_checks_signature.<locals>.main   r   r   r   )r   rF   assertListEqual
mock_callsr   	TypeErrorr   r   r  r  r  r  r  r  s      @r   test_autospec_checks_signature0AsyncAutospecTest.test_autospec_checks_signature   s    /F	T__b1	 y)K * 	T__b1))1-$//*--r2! *)s   C((
C6c                 2   ^  U 4S jn[        U" 5       5        g )Nc            	      
  >#    [        [         S3SS9 n U " SSSS9nTR                  U R                  [        5        TR                  [        U 5      5        TR                  [        R                  " U 5      5        TR                  [        R                  " U5      5        TR                  [        R                  " U5      5        TR                  [        R                  " U5      5        TR                  U R                  S5        TR                  U R                  / 5        TR                  U R                  5        U R!                  5         UI S h  vN   S S S 5        TR                  W R                  S5        TR                  U R                  [#        SSSS95        TR                  U R                  [#        SSSS9/5        U R%                  5         U R'                  SSSS9  U R)                  SSSS9  U R+                  5         U R-                  5         TR                  U R                  S5        TR                  U R                  5        TR                  U R                  / 5        g  GN! , (       d  f       GN= f7f)	Nr   Tr   r   r   r   r   r   )r   r2   rx   r   r   r\   r   ri   r   r  rj   r   r  r  r  r  r  r
   r  r	  r
  r   
reset_mock)r^   r   r    s     r   r_   >AsyncAutospecTest.test_patch_with_autospec.<locals>.test_async  s    (#34tD'12	%%k&6&6	B 3K @A ; ;K HI 3 3I >? 3 3I >? 3 3I >?   !8!8!<  !<!<bA!!+"8"89..0! E$ [44a8[33T!Q!_E[8841?:KL++-00A0;++AqA+6&&(""$[44a8k445[88"=  ! EDs0   JD?I1I.I1DJ.I11
J ;Jr   rc   s   ` r   test_patch_with_autospec*AsyncAutospecTest.test_patch_with_autospec  s    	>@ 	JLr   r   N)
r2   r3   r4   r5   r{   r   r  r  r  r8   r   r   r   r   r      s    7'8"("r   r   c                   b    \ 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)AsyncSpecTesti2  c                    ^  U 4S jn[         [        4 H(  nT R                  SU 35         U" U5        S S S 5        M*     g ! , (       d  f       M<  = f)Nc                    > U " [         5      nTR                  UR                  [        5        TR                  UR                  [
        5        g r   )r   rx   r$   r   r(   r   )	mock_typer   r    s     r   
inner_testCAsyncSpecTest.test_spec_normal_methods_on_class.<locals>.inner_test4  s9    Z(D!!$"3"3Y?!!$"4"4i@r   ztest method types with r   r   subTestr    r$  r#  s   `  r   !test_spec_normal_methods_on_class/AsyncSpecTest.test_spec_normal_methods_on_class3  sF    	A
 $Y/I 7	{CD9% ED 0DD   	A
A	c                     [        [        5      nU R                  UR                  [        5        U R                  UR
                  [         5        g r   )r   r   rx   r$   r   r(   r   s     r   +test_spec_normal_methods_on_class_with_mock9AsyncSpecTest.test_spec_normal_methods_on_class_with_mock=  s8    Jd//;d00$7r   c                 $   [        [        5      n[        U5        U R                  [        5         UR
                    S S S 5        U R                  [        5         UR                    S S S 5        g ! , (       d  f       N9= f! , (       d  f       g = fr   )r   r   r   r   AttributeErrorr(   r$   r   s     r   0test_spec_normal_methods_on_class_with_mock_seal>AsyncSpecTest.test_spec_normal_methods_on_class_with_mock_sealB  s^    JT
~. /~. /. /...s   A0B0
A>
Bc                     [        5       n[        Ul        [        Ul        [        US9n[        Ul        U R                  UR                  [        5        U R                  UR                  [        5        g Nspec_set)	r   rA   async_func_attrrI   later_async_func_attrr   rx   r   assertNotIsInstance)r    async_instancemock_async_instances      r   #test_spec_async_attributes_instance1AsyncSpecTest.test_spec_async_attributes_instanceJ  sZ    #)3&/:,"N;/9,1AA9M  !4!J!JIVr   c                    ^  U 4S jn[         [        [        4 H(  nT R                  SU 35         U" U5        S S S 5        M*     g ! , (       d  f       M<  = f)Nc                   > U " [         S9nTR                  X5        [        T5         TR                  [        R
                  " U" 5       5      5        S S S 5        U " [        S9nTR                  X 5        g ! , (       d  f       N*= fNr  rA   rx   rV   r\   ri   rj   rI   r#  
async_mock	sync_mockr    s      r   r$  8AsyncSpecTest.test_spec_mock_type_kw.<locals>.inner_testX  sd    "
3J!!*8#D) 3 3JL AB * "{3I!!)7	 *)s   +A77
Bztest spec kwarg with r   r   r   r'  r(  s   `  r   test_spec_mock_type_kw$AsyncSpecTest.test_spec_mock_type_kwW  sG    	8 $Y5I 5i[AB9% CB 6BB   	A
A	c                    ^  U 4S jn[         [        [        4 H(  nT R                  SU 35         U" U5        S S S 5        M*     g ! , (       d  f       M<  = f)Nc                   > U " [         5      nTR                  X5        [        T5         TR                  [        R
                  " U" 5       5      5        S S S 5        U " [        5      nTR                  X 5        g ! , (       d  f       N,= fr   rB  rC  s      r   r$  @AsyncSpecTest.test_spec_mock_type_positional.<locals>.inner_testf  sd    ":.J!!*8#D) 3 3JL AB * "+.I!!)7	 *)s   +A;;
B	ztest spec positional with rG  r(  s   `  r   test_spec_mock_type_positional,AsyncSpecTest.test_spec_mock_type_positionale  sG    	8 $Y5I :9+FG9% HG 6GGrJ  c                     [        [        S9nU R                  U[         5        U" 5       nU R                  [        R
                  " U5      5        [        U5        g r@  r   rI   rx   r\   ri   rj   r   r   s      r    test_spec_as_normal_kw_AsyncMock.AsyncSpecTest.test_spec_as_normal_kw_AsyncMocks  sA    k*dI.F++A./Ar   c                     [        [        5      nU R                  U[         5        U" 5       nU R                  [        R
                  " U5      5        [        U5        g r   rQ  r   s      r   (test_spec_as_normal_positional_AsyncMock6AsyncSpecTest.test_spec_as_normal_positional_AsyncMockz  sA    %dI.F++A./Ar   c                 Z   ^  [         R                  " [        SSS9U 4S j5       nU" 5         g )Nr$   TrA  c                 2   > TR                  U [        5        g r   rw   r]   s    r   r_   6AsyncSpecTest.test_spec_async_mock.<locals>.test_async  rz   r   ra   rc   s   ` r   test_spec_async_mock"AsyncSpecTest.test_spec_async_mock  s)    	j.t	<	: 
=	: 	r   c                 B   ^  [        [        SS9U 4S j5       nU" 5         g )NTrA  c                 r   > TR                  U [        5        TR                  U R                  [        5        g r   )rx   r   r$   r   r]   s    r   r_   IAsyncSpecTest.test_spec_parent_not_async_attribute_is.<locals>.test_async  s)    !!+y9!!+":":IFr   r   rc   s   ` r   'test_spec_parent_not_async_attribute_is5AsyncSpecTest.test_spec_parent_not_async_attribute_is  s%    	~D	)	G 
*	G 	r   c                 v   ^  [         R                  " [        S[        R                  S9U 4S j5       nU" 5         g )Nr$   rA  c                    > TR                  U [        5        TR                  [        R                  " U 5      5        TR                  [        R
                  " U 5      5        g r   )rx   r   assertFalseri   r  rj   r]   s    r   test_async_attributeFAsyncSpecTest.test_target_async_spec_not.<locals>.test_async_attribute  sE    !!+y9W00=>W00=>r   )r   rb   r   rL   rC   )r    rd  s   ` r   test_target_async_spec_not(AsyncSpecTest.test_target_async_spec_not  s/    	j.{}}	E	? 
F	?
 	r   c                 b   ^  [         R                  " [        S[        S9U 4S j5       nU" 5         g )NrC   rA  c                 2   > TR                  U [        5        g r   rw   )mock_async_funcr    s    r    test_attribute_not_async_spec_isUAsyncSpecTest.test_target_not_async_spec_is.<locals>.test_attribute_not_async_spec_is  s    !!/9=r   )r   rb   rL   rA   )r    rk  s   ` r   test_target_not_async_spec_is+AsyncSpecTest.test_target_not_async_spec_is  s(    	k3Z	8	> 
9	>(*r   c                 J   ^  [        [        [        S9U 4S j5       nU" 5         g )NrA  c                 r   > TR                  U R                  [        5        TR                  U [        5        g r   r   )MockNormalClassr    s    r    test_async_attributes_coroutinesRAsyncSpecTest.test_spec_async_attributes.<locals>.test_async_attributes_coroutines  s)    !!/">">	J!!/9=r   )r   normal_foo_namer   )r    rr  s   ` r   test_spec_async_attributes(AsyncSpecTest.test_spec_async_attributes  s$    	Z	0	> 
1	> 	)*r   r   N)r2   r3   r4   r5   r)  r-  r1  r<  rH  rN  rR  rU  rZ  r_  rf  rm  ru  r8   r   r   r   r   r   2  sD    &8
W&&++r   r   c                   ,    \ rS rSrS rS rS rS rSrg)AsyncSpecSetTesti  c                 Z   ^  [         R                  " [        SSS9U 4S j5       nU" 5         g )Nr$   Tr5  c                 2   > TR                  U [        5        g r   rw   )r$   r    s    r   r_   <AsyncSpecSetTest.test_is_AsyncMock_patch.<locals>.test_async  s    !!,	:r   ra   rc   s   ` r   r{   (AsyncSpecSetTest.test_is_AsyncMock_patch  s(    	j.4	@	; 
A	;r   c                     [        [        R                  S9nU R                  [	        U5      5        U R                  U[         5        g r4  )r   r   r$   r\   r   rx   r   s     r   test_is_async_AsyncMock(AsyncSpecSetTest.test_is_async_AsyncMock  s4    *"9"9:+D12dI.r   c                 Z   [        [        S9nU R                  [        UR                  5      5        U R                  [        UR                  5      5        U R                  UR                  [        5        U R                  UR                  [         5        U R                  U[         5        g r4  )	r   r   r\   r   r$   rc  r(   rx   r   r   s     r   test_is_child_AsyncMock(AsyncSpecSetTest.test_is_child_AsyncMock  sz    *-+D,=,=>?,T-?-?@Ad//;d00)<dI.r   c                     [        5       n[        S S9Ul        [        R                  " US5       nU R	                  U[         5        S S S 5        g ! , (       d  f       g = f)Nc                     U $ r   r   xs    r   <lambda>=AsyncSpecSetTest.test_magicmock_lambda_spec.<locals>.<lambda>  s    ar   rA  	mock_func)r   r  r   rb   rx   )r    mock_objcms      r   test_magicmock_lambda_spec+AsyncSpecSetTest.test_magicmock_lambda_spec  sB    ;&K8\\(K0B!!"i0 100s   A
Ar   N)	r2   r3   r4   r5   r{   r~  r  r  r8   r   r   r   rx  rx    s    /
/1r   rx  c                   b    \ 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)AsyncArgumentsi  c                 n   #    S n[        USS9nU" S5      I S h  vN nU R                  US5        g  N7f)Nc                    #    g 7fr   r   )r    vars     r   addition6AsyncArguments.test_add_return_value.<locals>.addition  rG   r&   
   r      r   r   )r    r  r   outputs       r   test_add_return_value$AsyncArguments.test_add_return_value  s4     +3Aw$ s   535c                    #     " S S[         5      nS n[        X!" S5      S9nU R                  US5         U" S5      I S h  vN   S S S 5        g  N! , (       d  f       g = f7f)Nc                       \ rS rSrSrg)BAsyncArguments.test_add_side_effect_exception.<locals>.CustomErrori  r   Nr2   r3   r4   r5   r8   r   r   r   CustomErrorr    s    dr   r  c                    #    g 7fr   r   r  s    r   r  ?AsyncArguments.test_add_side_effect_exception.<locals>.addition  s     r&   zside-effectside_effectr  )	Exceptionr   assertRaisesRegex)r    r  r  r   s       r   test_add_side_effect_exception-AsyncArguments.test_add_side_effect_exception  sQ     *)*%{=/IJ##K?q'MM @? @?s.   4A#AAA	A#A
A A#c                 l   #    S n[        US9nU" S5      I S h  vN nU R                  US5        g  N7f)Nc                    #    U S-   $ 7fNr   r   r  s    r   r  ?AsyncArguments.test_add_side_effect_coroutine.<locals>.addition  s     7Nr?   r  r     r  r    r  r   results       r   test_add_side_effect_coroutine-AsyncArguments.test_add_side_effect_coroutine  4     	X.Aw#    424c                 l   #    S n[        US9nU" S5      I S h  vN nU R                  US5        g  N7f)Nc                     U S-   $ r  r   r  s    r   r  EAsyncArguments.test_add_side_effect_normal_function.<locals>.addition  s    7Nr   r  r  r  r  r  s       r   $test_add_side_effect_normal_function3AsyncArguments.test_add_side_effect_normal_function  r  r  c                    #    / SQn[        US9nU H"  nU R                  U" 5       I S h  vN U5        M$     U R                  [        5       nU" 5       I S h  vN   S S S 5        g  N; N! , (       d  f       g = f7f)Nr   r   r   r  )r   r   r   StopAsyncIteration)r    valsr   itemr  s        r   test_add_side_effect_iterable,AsyncArguments.test_add_side_effect_iterable  sh     T*D46\40  12a&LL 32 *  32s9   (A;A&
"A;A*A(A*
A;(A**
A84A;c                 
  #     " S S[         5      nSU" S5      /n[        US9nU R                  U" 5       I S h  vN S5        U R                  U5       nU" 5       I S h  vN   S S S 5        g  N3 N! , (       d  f       g = f7f)Nc                       \ rS rSrSrg)OAsyncArguments.test_add_side_effect_exception_iterable.<locals>.SampleExceptioni  r   Nr  r   r   r   SampleExceptionr    s    r   r  r   r   r  )r  r   r   r   )r    r  r  r   r  s        r   'test_add_side_effect_exception_iterable6AsyncArguments.test_add_side_effect_exception_iterable  ss     	i 	 ?5)*T*tvq)/1&LL 0/ &  0/s9   8BA.BA2 A0!A2%
B0A22
B <Bc                 t   #    [        SS9n[        US9nU" 5       I S h  vN nU R                  X15        g  N7f)Nr  r   )r   assertIs)r    valuer   r  s       r   test_return_value_AsyncMock*AsyncArguments.test_return_value_AsyncMock  s3     r*e,vf$ s   868c                    #    [         R                  " 5       nUR                  S 5        [        US9nU" 5       I S h  vN nU R	                  U[         R                  5        g  N%7f)Nr   )r   r   
set_resultr   rx   r    r   r   r  s       r   test_return_value_awaitable*AsyncArguments.test_return_value_awaitable  sI     nntc*vfgnn5 s   :A$A"&A$c                 N  #    [         R                  " 5       nUR                  S 5        [        U/S9nU" 5       I S h  vN nU R	                  U[         R                  5        U R                  [        5         U" 5       I S h  vN   S S S 5        g  NR N! , (       d  f       g = f7f)Nr  )r   r   r  r   rx   r   r  r  s       r   !test_side_effect_awaitable_values0AsyncArguments.test_side_effect_awaitable_values  sx     nntcU+vfgnn512&LL 32   32s9   ;B%B9B%7BBB
B%B
B"B%c                 v   #    [        SS9n[        US9nU" 5       I S h  vN nU R                  US5        g  N7f)Nr  r   r  r  )r    effectr   r  s       r   test_side_effect_is_AsyncMock,AsyncArguments.test_side_effect_is_AsyncMock  s7     +V,v$ s   979c                    ^^#    [         R                  " 5       mSmUU4S jn[        US9nU" 5       I S h  vN nU R                  UT5        UR	                  5         U R                  T5        g  N87f)NFc                     >#    Sm T$ 7fNTr   ranr  s   r   inner2AsyncArguments.test_wraps_coroutine.<locals>.inner  s     CLs   wraps)r   r   r   r   r   r\   r    r  r   r  r  r  s       @@r   test_wraps_coroutine#AsyncArguments.test_wraps_coroutine  s^      	
 u%v' s   2A1A/9A1c                    ^^#    SmSmUU4S jn[        US9nU" 5       I S h  vN nU R                  UT5        UR                  5         U R                  T5        g  N87f)Nr   Fc                     > Sm T$ r  r   r  s   r   r  8AsyncArguments.test_wraps_normal_function.<locals>.inner(  s    CLr   r  )r   r   r   r\   r  s       @@r   test_wraps_normal_function)AsyncArguments.test_wraps_normal_function$  sW     	
 u%v' s   AA9Ac                 z  #    [        5       nU" S5      nU" S5      nUI S h  vN   UI S h  vN   UR                  [        S5      [        S5      /5        U R                  UR                  [        S5      [        S5      /5        U R                  UR
                  [        S5      [        S5      /5        g  N N7f)Nr   r   )r   assert_has_awaitsr
   r   r  call_args_list)r    rD  mock2mock1s       r   test_await_args_list_order)AsyncArguments.test_await_args_list_order3  s     [
11$$d1gtAw%7833d1gtAw5GH22T!Wd1g4FG	 	s     B;B7	B;B9BB;9B;r   N)r2   r3   r4   r5   r  r  r  r  r  r  r  r  r  r  r  r  r  r8   r   r   r   r  r    sD    %$$	%6	%Hr   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	AsyncMagicMethodsi>  c                    [        5       nU R                  UR                  [        5        U R                  UR                  [        5        U R                  UR
                  [        5        U R                  UR                  [         5        g r   )r   rx   
__aenter__r   	__aexit__	__anext__	__aiter__r    m_mocks     r   +test_async_magic_methods_return_async_mocks=AsyncMagicMethods.test_async_magic_methods_return_async_mocks?  sc    f//;f..	:f..	: 	f..	:r   c                    [        5       nU R                  UR                  [        5        U R                  UR                  [        5        U R                  UR
                  [        5        U R                  UR                  [        5        g r   )r   rx   	__enter__r   __exit____next____len__r    a_mocks     r   *test_sync_magic_methods_return_magic_mocks<AsyncMagicMethods.test_sync_magic_methods_return_magic_mocksH  s[    f..	:fooy9fooy9fnni8r   c                     [        5       nU R                  [        US5      5        U R                  [        US5      5        U R                  [        US5      5        g )Nr  r  r  )r   r\   hasattrr  s     r   &test_magicmock_has_async_magic_methods8AsyncMagicMethods.test_magicmock_has_async_magic_methodsO  sB    564545r   c                     [        5       nU R                  [        US5      5        U R                  [        US5      5        U R                  [        US5      5        U R                  [        US5      5        g )Nr  r  r  r  )r   r\   r  r  s     r   %test_asyncmock_has_sync_magic_methods7AsyncMagicMethods.test_asyncmock_has_sync_magic_methodsU  sU    45
34
34	23r   c                 (   [        5       nU R                  UR                  [        5        U R                  UR                  [        5        U R                  [        UR                  5      5        U R                  [        UR                  5      5        g r   )r   rx   r  r   r  r\   r   r  s     r   &test_magic_methods_are_async_functions8AsyncMagicMethods.test_magic_methods_are_async_functions\  se    f//;f..	:+F,=,=>?+F,<,<=>r   r   N)
r2   r3   r4   r5   r  r  r  r  r  r8   r   r   r   r  r  >  s    ;964?r   r  c                   n    \ rS rSr " S S5      r " S S5      r " S S5      rS rS	 rS
 r	S r
S rSrg)AsyncContextManagerTestid  c                        \ rS rSrS rS rSrg)/AsyncContextManagerTest.WithAsyncContextManagerif  c                    #    g 7fr   r   r    argskwargss      r   r  :AsyncContextManagerTest.WithAsyncContextManager.__aenter__g  s     Tr&   c                    #    g 7fr   r   r  s      r   r  9AsyncContextManagerTest.WithAsyncContextManager.__aexit__i  s     Dr&   r   N)r2   r3   r4   r5   r  r  r8   r   r   r   WithAsyncContextManagerr  f  s    98r   r  c                        \ rS rSrS rS rSrg).AsyncContextManagerTest.WithSyncContextManagerik  c                     g r   r   r  s      r   r  8AsyncContextManagerTest.WithSyncContextManager.__enter__l  s    dr   c                     g r   r   r  s      r   r  7AsyncContextManagerTest.WithSyncContextManager.__exit__n  s    Tr   r   N)r2   r3   r4   r5   r  r  r8   r   r   r   WithSyncContextManagerr  k  s    21r   r  c                        \ rS rSrS rS rSrg)&AsyncContextManagerTest.ProductionCodeip  c                     S U l         g r   sessionr   s    r   r!   /AsyncContextManagerTest.ProductionCode.__init__r  s	    DLr   c                    #    U R                   R                  S5       IS h  vN nUR                  5       I S h  vN nUsS S S 5      IS h  vN   $  N/ N N	! , IS h  vN  (       d  f       g = f7f)Nzhttps://python.org)r$  postjson)r    responsevals      r   r   +AsyncContextManagerTest.ProductionCode.mainu  sJ     ||(()=>>($MMO+ ?>>+ ?>>>sT    A2AA2AAA A2AA2AA2A/A!A/+A2r#  N)r2   r3   r4   r5   r!   r   r8   r   r   r   ProductionCoder!  p  s    	 	r   r,  c                    ^  U 4S jn[         [        4 H(  nT R                  SU 35         U" U5        S S S 5        M*     g ! , (       d  f       M<  = f)Nc                 .  > TR                  5       n[        SS9Ul        U " SS9n[        SS9n[        SS0S9Ul        X2R
                  l        X!R                  R                  l        [        UR                  5       5      nTR                  USS05        g )Nsessionmocknamemagic_cmr)  r(  {   r   )r,  r   r$  r   r(  r  r   r'  r   r   r   )r#  pcr  r)  r  r    s        r   r$  KAsyncContextManagerTest.test_set_return_value_of_aenter.<locals>.inner_test{  s|    $$&B"6BJ
+B j1H%FC=AHM)1MM&+-JJOO(^FVfc]3r   z%test set return value of aenter with r&  r(  s   `  r   test_set_return_value_of_aenter7AsyncContextManagerTest.test_set_return_value_of_aenterz  sE    		4 $Y/I Ei[QR9% SR 0RRr+  c                    ^  U 4S jn[         [        4 H(  nT R                  SU 35         U" U5        S S S 5        M*     g ! , (       d  f       M<  = f)Nc                   >^^ SmTR                  5       nU " U5      mUU4S jn[        U" 5       5      nTR                  T5        TR                  TR                  R                  5        TR                  TR
                  R                  5        TR                  R                  5         TR
                  R                  5         TR                  TU5        g )NFc                     >#    T IS h  vN n SmS S S 5      IS h  vN   U $  N N! , IS h  vN  (       d  f       W $ = f7fr  r   )r  calledcm_mocks    r   use_context_managerqAsyncContextManagerTest.test_mock_supports_async_context_manager.<locals>.inner_test.<locals>.use_context_manager  s.     "7f!F #7 #777s6   A#A'A%AA?0?A)r  r   r\   r  r;  r  r   assertIsNot)r#  r  r=  	cm_resultr;  r<  r    s       @@r   r$  TAsyncContextManagerTest.test_mock_supports_async_context_manager.<locals>.inner_test  s    F--/BmG /12IOOF#OOG..556OOG--445--/,,.Wi0r   z!test context manager magics with r&  r(  s   `  r   (test_mock_supports_async_context_manager@AsyncContextManagerTest.test_mock_supports_async_context_manager  sE    	1( $Y/I A)MN9% ON 0NNr+  c                    ^ U R                  5       n[        U5      m[        5       nUTR                  l        U4S jnU R                  [        U" 5       5      U5        g )Nc                     >#    T IS h  vN n U sS S S 5      IS h  vN   $  N N! , IS h  vN  (       d  f       g = f7fr   r   )r  mock_instances    r   r=  ^AsyncContextManagerTest.test_mock_customize_async_context_manager.<locals>.use_context_manager  s     $} %}}}}}s6   A "A &A $A A =/=A )r  r   rb   r  r   r  r   )r    r   expected_resultr=  rF  s       @r   )test_mock_customize_async_context_managerAAsyncContextManagerTest.test_mock_customize_async_context_manager  sN    //1!(+ (0?  -	 	c-/0/Br   c                    ^^^ SmSmU4S jnU4S jnU R                  5       n[        U5      mUTl        UTl        U4S jn[	        U" 5       5        U R                  T5        U R                  T5        g )NFc                     >#    Smg 7fr  r   )r  enter_calleds    r   enter_coroutineiAsyncContextManagerTest.test_mock_customize_async_context_manager_with_coroutine.<locals>.enter_coroutine  s     L   c                     >#    Smg 7fr  r   )r  exit_calleds    r   exit_coroutinehAsyncContextManagerTest.test_mock_customize_async_context_manager_with_coroutine.<locals>.exit_coroutine  s     KrP  c                     >#    T  IS h  vN    S S S 5      IS h  vN   g  N N! , IS h  vN  (       d  f       g = f7fr   r   )rF  s   r   r=  mAsyncContextManagerTest.test_mock_customize_async_context_manager_with_coroutine.<locals>.use_context_manager  s     $} %}}}}}s0   ?!?%?#??<.<?)r  r   r  r  r   r\   )r    rN  rS  r   r=  rM  rR  rF  s        @@@r   8test_mock_customize_async_context_manager_with_coroutinePAsyncContextManagerTest.test_mock_customize_async_context_manager_with_coroutine  sl    	 	 //1!(+#2 "0	 	!"%$r   c                     S nU R                  5       n[        U5      nU R                  [        5         [	        U" U5      5        S S S 5        g ! , (       d  f       g = f)Nc                 l   #    U  IS h  vN   [        5       e N! , IS h  vN  (       d  f       g = f7fr   )r  )context_managers    r   raise_inYAsyncContextManagerTest.test_context_manager_raise_exception_by_default.<locals>.raise_in  s     &k! 's$   4441#14)r  r   r   r  r   )r    r\  r   rF  s       r   /test_context_manager_raise_exception_by_defaultGAsyncContextManagerTest.test_context_manager_raise_exception_by_default  sH    	" //1!(+y)'( *))s   A
Ar   N)r2   r3   r4   r5   r  r  r,  r6  rB  rI  rW  r^  r8   r   r   r   r  r  d  s:    9 9
2 2
 & &4C%4)r   r  c                   <    \ rS rSr " S S\5      rS rS rS rSr	g)	AsyncIteratorTesti  c                   &    \ rS rSrS rS rS rSrg)#AsyncIteratorTest.WithAsyncIteratori  c                     / SQU l         g )N)r   	NormalFoobazitemsr   s    r   r!   ,AsyncIteratorTest.WithAsyncIterator.__init__  s	    4DJr   c                     g r   r   r   s    r   r  -AsyncIteratorTest.WithAsyncIterator.__aiter__  r*   r   c                    #    g 7fr   r   r   s    r   r  -AsyncIteratorTest.WithAsyncIterator.__anext__  s     4r&   rg  N)r2   r3   r4   r5   r!   r  r  r8   r   r   r   WithAsyncIteratorrc    s    	5 	"'r   rn  c                    ^ [        SS9m/ SQTR                  l        U4S jn[        U" 5       5      nU R	                  U/ SQ5        g )Ntesterr0  r  c                  F   >#    T V s/ s S h  vN o PM   N
 sn $ s  sn f 7fr   r   )i	mock_iters    r   r   ;AsyncIteratorTest.test_aiter_set_return_value.<locals>.main  s     %.//A///s$   !
!)r   r  r   r   r   )r    r   r  rs  s      @r   test_aiter_set_return_value-AsyncIteratorTest.test_aiter_set_return_value  s;    8,	+4	(	0TV+r   c                    ^  U 4S jn[         [        4 H(  nT R                  SU 35         U" U5        S S S 5        M*     g ! , (       d  f       M<  = f)Nc                 V  > TR                  5       nU " U5      nTR                  [        UR                  5      5        TR                  [        UR                  5      5        TR	                  [        UR
                  5      5        TR	                  [        UR
                  5      5        g r   )rn  rc  r   r  r\   r  )r#  r   rF  r    s      r   r$  IAsyncIteratorTest.test_mock_aiter_and_anext_asyncmock.<locals>.inner_test  s    --/H%h/M 01C1CDE01H1HIJOO/0B0BCDOO/0G0GHIr   z%test aiter and anext corourtine with r&  r(  s   `  r   #test_mock_aiter_and_anext_asyncmock5AsyncIteratorTest.test_mock_aiter_and_anext_asyncmock  sF    		J $Y/I Ei[QR9% SR 0RRr+  c                   ^ ^^ S m/ SQmUU 4S jnUUU 4S jnUUU 4S jn[         [        4 Hr  nT R                  SU 35         U" U5        S S S 5        T R                  SU 35         U" U5        S S S 5        T R                  SU 35         U" U5        S S S 5        Mt     g ! , (       d  f       N]= f! , (       d  f       NI= f! , (       d  f       M  = f)	Nc                 T   #    / nU   S h  vN nUR                  U5        M   N
 U$ 7fr   )append)iteratoraccumulatorr  s      r   iterate6AsyncIteratorTest.test_mock_async_for.<locals>.iterate  s1     K& )d""4()h s   (%#%(%()FOOBARBAZc                 t   > U " TR                  5       5      nTR                  [        T" U5      5      / 5        g r   )rn  r   r   )r#  rF  r  r    s     r   test_default;AsyncIteratorTest.test_mock_async_for.<locals>.test_default  s0    %d&<&<&>?MS!78"=r   c                    > U " TR                  5       5      nTS S  UR                  l        TR                  [	        T" U5      5      T5        g r   )rn  r  r   r   r   r#  rF  expectedr  r    s     r   test_set_return_valueDAsyncIteratorTest.test_mock_async_for.<locals>.test_set_return_value  sB    %d&<&<&>?M3;A;M##0S!78(Cr   c                    > U " TR                  5       5      n[        TS S  5      UR                  l        TR	                  [        T" U5      5      T5        g r   )rn  iterr  r   r   r   r  s     r   test_set_return_value_iterIAsyncIteratorTest.test_mock_async_for.<locals>.test_set_return_value_iter  sG    %d&<&<&>?M373DM##0S!78(Cr   zdefault value with zset return_value with zset return_value iterator with r&  )r    r  r  r  r#  r  r  s   `    @@r   test_mock_async_for%AsyncIteratorTest.test_mock_async_for  s    	 )	>
	D
	D
 $Y/I 3I;?@Y' A  6ykBC%i0 D  ?	{KL*95 ML 0@@ DC MLs$   	B%*	B6	C%
B3	6
C	
C	r   N)
r2   r3   r4   r5   rb   rn  ru  rz  r  r8   r   r   r   ra  ra    s    (F (,&" 6r   ra  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g)AsyncMockAsserti  c                 "    [        5       U l        g r   )r   r   r   s    r   setUpAsyncMockAssert.setUp  s    K	r   c                 D   #    U R                   " U0 UD6I S h  vN   g  N7fr   r   r  s      r   _runnable_testAsyncMockAssert._runnable_test  s     ii((((s     c                 "   #    UI S h  vN $  N7fr   r   )r    	coroutines     r   _await_coroutine AsyncMockAssert._await_coroutine"  s     s   c                    [        [        5      n[        U 5         UR                  5         S S S 5        U R	                  [        UR                  5      5        UR                  R                  5         UR                  R                  5         UR                  R                  5         U R                  [        5         UR                  5         S S S 5        U R                  [        5         UR                  R                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       NX= f! , (       d  f       g = fr   )r   r   rV   r$   r\   r   assert_calledassert_called_onceassert_called_once_withr   r  r   r   s     r   "test_assert_called_but_not_awaited2AsyncMockAssert.test_assert_called_but_not_awaited%  s    $% &+D,=,=>?''),,.113~.! /~.,,. /. &% /...s#   D;D)D/
D
D,/
D=c                 t   [        [        5      nUR                  5       nUR                  R                  5         UR                  R	                  5         UR                  R                  5         U R                  [        5         UR                  R                  5         S S S 5        [        U R                  U5      5        UR                  R	                  5         UR                  R                  5         UR                  R                  5         UR                  R                  5         g ! , (       d  f       N= fr   )r   r   r$   r  r  r  r   r  r   r   r  r  r	  )r    r   mock_coroutines      r   test_assert_called_then_awaited/AsyncMockAssert.test_assert_called_then_awaited2  s    $**,''),,.113~.,,. / 	D!!.12,,.((*--/224 /.s   D))
D7c                    U R                  [        5         U R                  R                  5         S S S 5        U R                  [        5         U R                  R	                  5         S S S 5        [        U R                  5       5        U R                  R                  5         U R                  R                  5         g ! , (       d  f       N= f! , (       d  f       Nm= fr   )	r   r  r   r   r  r   r  r  r  r   s    r   +test_assert_called_and_awaited_at_same_time;AsyncMockAssert.test_assert_called_and_awaited_at_same_timeB  s    ~.II$$& / ~.II##% / 	D!"		$$&		%%' /. /.s   B?C?
C
Cc                    [        [        5      nUR                  5       n[        U 5         UR                  5         S S S 5        U R	                  [
        5         UR                  R                  5         S S S 5        UR                  R                  5         [        U R                  U5      5        UR                  R                  5         UR                  R                  5         g ! , (       d  f       N= f! , (       d  f       N= fr   )r   r   r$   rV   r   r  r   r  r   r  r  r    r   r  s      r   )test_assert_called_twice_and_awaited_once9AsyncMockAssert.test_assert_called_twice_and_awaited_onceM  s    $%%'	  % &~.,,. /'')D!!),-((*--/ &%..s   C%C6%
C36
Dc                 p   [        [        5      nUR                  5       nUR                  R                  5         [	        U R                  U5      5        U R                  [        5         [	        U R                  U5      5        S S S 5        UR                  R                  5         g ! , (       d  f       N)= fr   )	r   r   r$   r  r   r  r   r   r   r  s      r   )test_assert_called_once_and_awaited_twice9AsyncMockAssert.test_assert_called_once_and_awaited_twice[  s    $%%'	,,.D!!),-|,%%i01 - 	((* -,s   )B''
B5c                    U R                  [        5         U R                  R                  5         S S S 5        U R                  [        5         U R                  R	                  5         S S S 5        U R                  [
        5         [        U R                  U R                  5      5        S S S 5        U R                  [        5         U R                  R                  5         S S S 5        U R                  [        5         U R                  R	                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       g = fr   )r   r  r   r   r  r  r   r  r   s    r   "test_assert_awaited_but_not_called2AsyncMockAssert.test_assert_awaited_but_not_callede  s    ~.II$$& /~.II##% /y)%%dii01 * ~.II$$& /~.II##% /. /...)) /...s;   D$D5%EE E($
D25
E
E
E%(
E6c                 R   [        S5      /n[        U 5         U R                  S5        S S S 5        U R                  R                  U5        U R	                  [
        5         U R                  R                  U5        S S S 5        g ! , (       d  f       Nc= f! , (       d  f       g = fNr   )r
   rV   r   assert_has_callsr   r  r  )r    kallss     r    test_assert_has_calls_not_awaits0AsyncMockAssert.test_assert_has_calls_not_awaitss  sr    e%IIe &		""5)~.II''. /. &% /.s   B"B
B
B&c                 (   [        U 5         U R                  5         S S S 5        SS0 4/nU R                  U R                  R                  U5        [        U 5         U R                  S5        S S S 5        [        U 5         U R                  S5        S S S 5        [	        5       [	        S5      [	        S5      /nU R                  U R                  R                  U5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nv= f)N r   r   rf  )rV   r   r   r  r
   )r    kalls_empty
mock_kallss      r   0test_assert_has_mock_calls_on_async_mock_no_spec@AsyncMockAssert.test_assert_has_mock_calls_on_async_mock_no_spec{  s    %IIK &B|n--{;%IIe &%IIe &vtE{DK8
--z: &%
 &%%%s#   C!C2D!
C/2
D 
Dc           	         [        [        5      n[        U 5         UR                  5         S S S 5        SS0 4/nU R	                  UR                  R
                  U5        U R	                  UR
                  [        R                  " 5       /5        [        U 5         UR                  SSSSSS9  S S S 5        [        5       [        SSSSSS9/n[        R                  " 5       [        R                  " SSSSSS9/nU R	                  UR                  R
                  U5        U R	                  UR
                  U5        g ! , (       d  f       GN= f! , (       d  f       N= f)	Nr  r   r   r   r      r  )rC   rD   )r   r   rV   r$   r   r  r
   )r    a_class_mockr  method_kallsr  s        r   2test_assert_has_mock_calls_on_async_mock_with_specBAsyncMockAssert.test_assert_has_mock_calls_on_async_mock_with_spec  s    ,%%%' &B|n22=={K0043D3D3F2GH%%%aAa%8 &Q1Q 78'')4+<+<Q1Q+OP
22==|L00*= &% &%s   D>E>
E
Ec                 <   [        U 5         U R                  R                  SS S9  S S S 5        [        U 5         U R                  R                  R                  S[        R
                  S9  S S S 5        U R                  U R                  R                  SSSS 04SS	S
[        R
                  04/S5        U R                  U R                  R                  R                  SS	S
[        R
                  04/S5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   )fishr  )cake	something)r   r  zsomething_else.something)r  r  z#method calls not recorded correctly)rV   r   r  something_elser   Caker   method_callsr   s    r    test_async_method_calls_recorded0AsyncMockAssert.test_async_method_calls_recorded  s    %II- &%II$$..qx}}.E & 	//$/'/FG2
 2		3
 	11>>&vx}}.EFG>	@ &%%%s   C<3D<
D

Dc                   ^  U 4S jnU" T R                   5        [        T 5         T R                  5         S S S 5        [        T 5         T R                  SS5        S S S 5        [        T 5         T R                  SS9  S S S 5        T R                   R                  5         U" T R                   5        [        [        5      n[        T 5         UR                  5         S S S 5        [        T 5         UR                  SSS9  S S S 5        UR                  5         U" U5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N~= f! , (       d  f       Nk= f)Nc                    > SnU HL  n[        X5      nTR                  U[        5        TR                  U[        5        TR	                  U/ 5        MN     g )N)r  r  r  )getattrrx   r   listr   )r   namesr1  attrr    s       r   assert_attrs:AsyncMockAssert.test_async_arg_lists.<locals>.assert_attrs  sL    DEt*%%dI6%%dD1  r*	 r   r   r   r   )rC   )r   rV   r  r   r   r$   )r    r  r   s   `  r   test_async_arg_lists$AsyncMockAssert.test_async_arg_lists  s    	+ 	TYY%IIK &%IIaO &%IIIN & 			TYY:&%! &%Q' & 	V# &%%%%% &%%%s;   D#	D4/EE1E'#
D14
E
E
E$'
E5c                     U R                  [        5         U R                  R                  5         S S S 5        [	        U R                  5       5        U R                  R                  5         g ! , (       d  f       NB= fr   )r   r  r   r   r   r  r   s    r   test_assert_awaited#AsyncMockAssert.test_assert_awaited  sQ    ~.II$$& / 	D!"		  "	 /.s   A--
A;c                    U R                  [        5         U R                  R                  5         S S S 5        [	        U R                  5       5        U R                  R                  5         [	        U R                  5       5        U R                  [        5         U R                  R                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fr   )r   r  r   r  r   r  r   s    r   test_assert_awaited_once(AsyncMockAssert.test_assert_awaited_once  s    ~.II))+ / 	D!"		%%'D!"~.II))+ /. /. /.s   B>C>
C
Cc                    SnU R                  [        U5         U R                  R                  S5        S S S 5        [	        U R                  5       5        SnU R                  [        U5         U R                  R                  S5        S S S 5        [	        U R                  S5      5        U R                  R                  S5        [	        U R                  S5      5        U R                  [        5         U R                  R                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NzNot awaitedr   zexpected await not foundSomethingElse)r  r  r   r
  r   r  r   )r    msgs     r   test_assert_awaited_with(AsyncMockAssert.test_assert_awaited_with  s    ##NC8II))%0 9 	D!"(##NC8II))%0 9 	D&'		%%e,D01~.II))%0 /. 98
 98 /.s#   D.D,6D=
D),
D:=
Ec                    U R                  [        5         U R                  R                  S5        S S S 5        [	        U R                  S5      5        U R                  R                  S5        [	        U R                  S5      5        U R                  [        5         U R                  R                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fr  )r   r  r   r	  r   r  r   s    r   test_assert_awaited_once_with-AsyncMockAssert.test_assert_awaited_once_with  s    ~.II..u5 / 	D&'		**51D&'~.II..u5 /. /. /.s   CC
C
C"c                 4   U R                  [        5         U R                  R                  S5        S S S 5        [	        U R                  S5      5        U R                  [        5         U R                  R                  S5        S S S 5        [	        U R                  S5      5        U R                  R                  S5        [	        U R                  S5      5        U R                  R                  S5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   rf  r  )r   r  r   r  r   r  r   s    r   test_assert_any_wait$AsyncMockAssert.test_assert_any_wait  s    ~.II&&u- / 	D&'~.II&&u- / 	D&'		""5)D01		""5) /. /.s   C8)D	8
D	
Dc                    [        S5      [        S5      /nU R                  [        5       nU R                  R	                  U5        S S S 5        U R                  [        WR                  R                  5      S5        [        U R                  S5      5        U R                  [        5         U R                  R	                  U5        S S S 5        [        U R                  S5      5        U R                  [        5         U R                  R	                  U5        S S S 5        [        U R                  S5      5        U R                  R	                  U5        [        U R                  S5      5        U R                  R	                  U5        g ! , (       d  f       GNO= f! , (       d  f       N= f! , (       d  f       N= f)Nr   rf  r   r  )r
   r   r  r   r  r   len	exceptionr  r   r  )r    callsr  s      r   test_assert_has_awaits_no_order/AsyncMockAssert.test_assert_has_awaits_no_order  s3   ed5k*~."II''. /R\\../3D&'~.II''. / 	D&'~.II''. / 	D&'		##E*D01		##E*! /.
 /. /.s#   F.F"F3
F"
F03
Gc                 ,    " S S5      n[        U R                  U" 5       S5      5        U R                  R                  [	        [
        S5      /5        U R                  R                  [
        S5        U R                  R                  [
        S5        g )Nc                       \ rS rSrS rSrg)9AsyncMockAssert.test_awaits_asserts_with_any.<locals>.Fooi  c                     g r   r   r    others     r   __eq__@AsyncMockAssert.test_awaits_asserts_with_any.<locals>.Foo.__eq__      Tr   r   Nr2   r3   r4   r5   r  r8   r   r   r   Foor        )r   r  r   )r   r  r   r  r
   r	   r
  r  )r    r  s     r   test_awaits_asserts_with_any,AsyncMockAssert.test_awaits_asserts_with_any  sg    	* 	* 	Dq)*		##T#q\N3		%%c1-		""3*r   c                    ^  " S S5      n[        US9mU4S jn[        U" U" 5       S5      5        TR                  [        [        S5      /5        TR                  [        S5        TR                  [        S5        g )Nc                       \ rS rSrS rSrg)BAsyncMockAssert.test_awaits_asserts_with_spec_and_any.<locals>.Fooi  c                     g r   r   r  s     r   r  IAsyncMockAssert.test_awaits_asserts_with_spec_and_any.<locals>.Foo.__eq__   r  r   r   Nr  r   r   r   r  r    r  r   r  rA  c                  ,   >#    T" U 6 I S h  vN   g  N7fr   r   )r  mock_with_specs    r   _custom_mock_runnable_testYAsyncMockAssert.test_awaits_asserts_with_spec_and_any.<locals>._custom_mock_runnable_test$  s      $'''s   	r   )r   r   r  r
   r	   r
  r  )r    r  r	  r  s      @r   %test_awaits_asserts_with_spec_and_any5AsyncMockAssert.test_awaits_asserts_with_spec_and_any  sh    	* 	* #,	( 	&sua01(($sA,8**32''Q/r   c                     [        S5      [        S5      /nU R                  [        5         U R                  R	                  USS9  S S S 5        [        U R                  S5      5        U R                  [        5         U R                  R	                  USS9  S S S 5        [        U R                  S5      5        U R                  [        5         U R                  R	                  USS9  S S S 5        [        U R                  S5      5        U R                  R	                  USS9  [        U R                  S5      5        U R                  R	                  USS9  g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nr   rf  T)	any_orderbamfqux)r
   r   r  r   r  r   r  )r    r  s     r   test_assert_has_awaits_ordered.AsyncMockAssert.test_assert_has_awaits_ordered,  s-   ed5k*~.II'''> / 	D&'~.II'''> / 	D'(~.II'''> / 	D&'		##ET#:D&'		##ET#: /. /. /.s#   E>E.E?
E+.
E<?
Fc                     U R                   R                  5         [        U R                  5       5        U R	                  [
        5         U R                   R                  5         S S S 5        g ! , (       d  f       g = fr   )r   r  r   r  r   r  r   s    r   test_assert_not_awaited'AsyncMockAssert.test_assert_not_awaited?  sM    		$$&D!"~.II((* /..s   	A--
A;c                    SS jn[        US9U l        [        U R                  S5      5        U R	                  [
        SR                  [        R                  " S5      5      5       nU R                  R                  [        5       /5        S S S 5        U R                  WR                  R                  5        U R	                  [
        SR                  [        R                  " S5      5      5       nU R                  R                  [        5       [        SS5      /5        S S S 5        U R                  UR                  R                  [        5        g ! , (       d  f       N= f! , (       d  f       NJ= f)	Nc                    #    g 7fr   r   r  s    r   fIAsyncMockAssert.test_assert_has_awaits_not_matching_spec_error.<locals>.fG  s     Tr&   rA  r   z^{}$z6Awaits not found.
Expected: [call()]
Actual: [call(1)]zError processing expected awaits.
Errors: [None, TypeError('too many positional arguments')]
Expected: [call(), call(1, 2)]
Actual: [call(1)]r   r   )r   r   r   r  r  r  formatreescaper  r
   r  r  	__cause__rx   r  )r    r  r  s      r   .test_assert_has_awaits_not_matching_spec_error>AsyncMockAssert.test_assert_has_awaits_not_matching_spec_errorF  s   !1%	D"###II 2 345
 9;II''15 	",,001##II,-./ 35II''a(<=/ 	bll44i@'5 5/ /s   '%E20E&
E#&
E4r  N)r2   r3   r4   r5   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  r8   r   r   r   r  r    s     )/5 	(0+&/;>@:#	,1"	6*+*+0;&+Ar   r  __main__)1r   rS   ri   r  unittest
contextlibr   rU   r   requires_working_socketr   r   r   unittest.mockr	   r
   r   r   r   r   r   r   r   r   r   r   r:   rA   rF   rI   rb   rL   r2   rr   rt  rV   TestCaserX   r   r   r   r   rx  r  r  r  ra  r  r   r   r   r   <module>r&     s    	  	  %    t , , ,G G G(	* 	*   + &  :[)Jl+  :Ah// :Az/x(( /d4H%% 4Bd)) dNs+H%% s+l1x(( 18wH, wHt$?)) $?Lo)h// o)dB6)) B6JDAh'' DAN
 zMMO r   