HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/1991110/cwd/usr/lib/python3/dist-packages/mock/tests/__pycache__/
Upload File :
Current File : //proc/1991110/cwd/usr/lib/python3/dist-packages/mock/tests/__pycache__/testasync.cpython-311.pyc
�

���_������ddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZmZddlmZmZddlmZ	ddlmZn#e$rd�ZYnwxYwd�ZGd	�d
��ZGd�d��Zd
�Zd�Zd�ZGd�de��Ze�d�Z e�d�Z!ed���Z"Gd�dej#��Z$Gd�dej#��Z%Gd�dej#��Z&Gd�dej#��Z'Gd�dej#��Z(Gd�d ej#��Z)Gd!�d"e��Z*Gd#�d$ej#��Z+Gd%�d&ej#��Z,Gd'�d(ej#��Z-Gd)�d*ej#��Z.dS)+�N)�contextmanager)�ANY�call�	AsyncMock�patch�	MagicMock�Mock�create_autospec�sentinel)�IsolatedAsyncioTestCase�iscoroutinefunction)�	_CallList��runc��tj��}	|�|��}|���n#|���wxYw|S�N)�asyncio�new_event_loop�run_until_complete�close)�main�loop�return_values   �6/usr/lib/python3/dist-packages/mock/tests/testasync.pyrrsO���%�'�'��	��2�2�4�8�8�L��J�J�L�L�L�L��D�J�J�L�L�L�L�����s	�?�Ac�.�tjd��dSr)r�set_event_loop_policy��r�tearDownModulers���!�$�'�'�'�'�'rc�L�eZdZd�Zd�Zd�Zed���Zed���Z	dS)�
AsyncClassc��dSrr��selfs r�__init__zAsyncClass.__init__ ����rc��
K�dSrrr#s r�async_methodzAsyncClass.async_method!�
�����rc��dSrrr#s r�
normal_methodzAsyncClass.normal_method"r&rc��
K�dSrr)�clss r�async_class_methodzAsyncClass.async_class_method$s����'+�trc��
K�dSrrrrr�async_static_methodzAsyncClass.async_static_method's����%)�TrN)
�__name__�
__module__�__qualname__r%r(r+�classmethodr.�staticmethodr0rrrr!r!sQ���������&�&�&�!�!�!��+�+��[�+��)�)��\�)�)�)rr!c��eZdZd�ZdS)�AwaitableClassc#�K�dV�dSrrr#s r�	__await__zAwaitableClass.__await__,s���������rN)r1r2r3r9rrrr7r7+s����������rr7c��
K�dSrrrrr�
async_funcr;.r)rc��
K�dSrr)�a�b�cs   r�async_func_argsr@0r)rc��dSrrrrr�normal_funcrB2r&rc��eZdZd�ZdS)�NormalClassc��dSrrr#s rr=z
NormalClass.a5r&rN)r1r2r3r=rrrrDrD4s����������rrDz.AsyncClassz.NormalClassc#�K�|�td��5dV�tj��ddd��dS#1swxYwYdS)Nzwas never awaited$)�assertWarnsRegex�RuntimeWarning�gc�collect)�tests r�assertNeverAwaitedrL<s�����	
�	�	�~�/C�	D�	D���
����	�
����	��������������������s�A�A�
Ac�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�AsyncPatchDecoratorTestc�f��tjtd���fd���}|��dS)Nr(c�L����t|����dSr)�
assertTruer
��mock_methodr$s �r�
test_asynczLAsyncPatchDecoratorTest.test_is_coroutine_function_patch.<locals>.test_asyncGs$����O�O�/��<�<�=�=�=�=�=r�r�objectr!�r$rTs` r� test_is_coroutine_function_patchz8AsyncPatchDecoratorTest.test_is_coroutine_function_patchFsB���	��j�.�	1�	1�	>�	>�	>�	>�
2�	1�	>��
�����rc���tjtd���fd���}tt�d����fd���}|��|��dS)Nr(c���|��}��tj|����t|��dSr�rQ�inspect�isawaitabler�rS�mr$s  �rrTz?AsyncPatchDecoratorTest.test_is_async_patch.<locals>.test_asyncM�:�����
�
�A��O�O�G�/��2�2�3�3�3���F�F�F�F�Frz
.async_methodc���|��}��tj|����t|��dSrr[r^s  �r�test_no_parent_attributezMAsyncPatchDecoratorTest.test_is_async_patch.<locals>.test_no_parent_attributeSr`r)rrVr!�async_foo_name)r$rTrbs`  r�test_is_async_patchz+AsyncPatchDecoratorTest.test_is_async_patchLs����	��j�.�	1�	1�	�	�	�	�
2�	1�	�

�.�/�/�/�	0�	0�	�	�	�	�
1�	0�	�
	�
���� � �"�"�"�"�"rc�f��tjtd���fd���}|��dS)Nr(c�>����|t��dSr��assertIsInstancerrRs �rrTzCAsyncPatchDecoratorTest.test_is_AsyncMock_patch.<locals>.test_async]�����!�!�+�y�9�9�9�9�9rrUrWs` r�test_is_AsyncMock_patchz/AsyncPatchDecoratorTest.test_is_AsyncMock_patch\sD���	��j�.�	1�	1�	:�	:�	:�	:�
2�	1�	:�	�
�����rc�f��tjtd���fd���}|��dS)Nr0c�>����|t��dSrrgrRs �rrTzPAsyncPatchDecoratorTest.test_is_AsyncMock_patch_staticmethod.<locals>.test_asyncdrirrUrWs` r�$test_is_AsyncMock_patch_staticmethodz<AsyncPatchDecoratorTest.test_is_AsyncMock_patch_staticmethodcsE���	��j�"7�	8�	8�	:�	:�	:�	:�
9�	8�	:�	�
�����rc�f��tjtd���fd���}|��dS)Nr.c�>����|t��dSrrgrRs �rrTzOAsyncPatchDecoratorTest.test_is_AsyncMock_patch_classmethod.<locals>.test_asynckrirrUrWs` r�#test_is_AsyncMock_patch_classmethodz;AsyncPatchDecoratorTest.test_is_AsyncMock_patch_classmethodjsE���	��j�"6�	7�	7�	:�	:�	:�	:�
8�	7�	:�	�
�����rc���tt�d�d���tt�d�d����fd�����}t|������t	jt����dS)N�.async_func��r�.async_func_args�c���K���|jd����|jd����tt����t
t����t���d{V��d����tddd����d{V��d��dS)Nr@r;rsrv��r?)�assertEqual�
_mock_namerhr;rr@)�func_args_mock�	func_mockr$s  �rrTz@AsyncPatchDecoratorTest.test_async_def_patch.<locals>.test_asyncrs������
���^�6�8I�J�J�J����Y�1�<�@�@�@��!�!�*�i�8�8�8��!�!�/�9�=�=�=����:�<�<�/�/�/�/�/�/��3�3�3����?�1�a�1�#=�#=�#=�=�=�=�=�=�=�q�A�A�A�A�Ar)rr1rrQr\r
r;rWs` r�test_async_def_patchz,AsyncPatchDecoratorTest.test_async_def_patchqs����	�(�'�'�'�a�	8�	8�	8�	�(�,�,�,�1�	=�	=�	=�	B�	B�	B�	B�
>�	=�
9�	8�	B�	�J�J�L�L��������3�J�?�?�@�@�@�@�@rN)	r1r2r3rXrdrjrmrpr~rrrrNrNEss���������#�#�#� ���������A�A�A�A�ArrNc�&�eZdZd�Zd�Zd�Zd�ZdS)�AsyncPatchCMTestc�&���fd�}|��dS)Nc���tjtd��5}��t	|����ddd��dS#1swxYwYdS�Nr()rrVr!rQr
rRs �rrTz>AsyncPatchCMTest.test_is_async_function_cm.<locals>.test_async�s������j�.�9�9�
B�[���� 3�K� @� @�A�A�A�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B�
B�
Bs�#A�A�ArrWs` r�test_is_async_function_cmz*AsyncPatchCMTest.test_is_async_function_cm�s2���	B�	B�	B�	B�	B�	�
�����rc�&���fd�}|��dS)Nc����tjtd��5}|��}��t	j|����t
|��ddd��dS#1swxYwYdSr�)rrVr!rQr\r]rr^s  �rrTz5AsyncPatchCMTest.test_is_async_cm.<locals>.test_async�s������j�.�9�9�
�[��K�M�M������ 3�A� 6� 6�7�7�7��A����
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s�AA*�*A.�1A.rrWs` r�test_is_async_cmz!AsyncPatchCMTest.test_is_async_cm�s-���	�	�	�	�	�	�
�����rc�&���fd�}|��dS)Nc���tjtd��5}��|t��ddd��dS#1swxYwYdSr�)rrVr!rhrrRs �rrTz9AsyncPatchCMTest.test_is_AsyncMock_cm.<locals>.test_async�s������j�.�9�9�
>�[��%�%�k�9�=�=�=�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>�
>�
>s�A�A	�A	rrWs` r�test_is_AsyncMock_cmz%AsyncPatchCMTest.test_is_AsyncMock_cm�s-���	>�	>�	>�	>�	>�	�
�����rc�@���fd�}t|����dS)Nc���K�tt�d�t����5��tt��ddd��n#1swxYwY��t
jt����dS)Nrr)rr1rrhr;rQr\r
r#s�rrTz6AsyncPatchCMTest.test_async_def_cm.<locals>.test_async�s�������(�/�/�/����=�=�
=�
=��%�%�j�)�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��O�O�G�7�
�C�C�D�D�D�D�Ds�!A�A�ArrWs` r�test_async_def_cmz"AsyncPatchCMTest.test_async_def_cm�s=���	E�	E�	E�	E�	E�
	�J�J�L�L�����rN)r1r2r3r�r�r�r�rrrr�r��sP�������������������rr�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�
AsyncMockTestc�f�t��}|�t|����dSr)rrQr
�r$�mocks  r� test_iscoroutinefunction_defaultz.AsyncMockTest.test_iscoroutinefunction_default�s,���{�{�����+�D�1�1�2�2�2�2�2rc��d�}t|��}|�t|����|�tj|����dS)Nc��
K�dSrrrrr�fooz<AsyncMockTest.test_iscoroutinefunction_function.<locals>.foo�r)r�rrQr
r\�r$r�r�s   r�!test_iscoroutinefunction_functionz/AsyncMockTest.test_iscoroutinefunction_function�sT�������~�~�����+�D�1�1�2�2�2�����3�D�9�9�:�:�:�:�:rc���t��}|��}|�tj|����t	|��|�dt
|����dS)N�assert_awaited)rrQr\r]r�assertIn�dir�r$r�r_s   r�test_isawaitablezAsyncMockTest.test_isawaitable�s_���{�{���D�F�F������+�A�.�.�/�/�/��A�����
�
�&��D�	�	�2�2�2�2�2rc��d�}t|��}|�t|����|�tj|����dS)Nc��dSrrrrrr�zCAsyncMockTest.test_iscoroutinefunction_normal_function.<locals>.foo�r&rr�r�s   r�(test_iscoroutinefunction_normal_functionz6AsyncMockTest.test_iscoroutinefunction_normal_function�sR�������~�~�����+�D�1�1�2�2�2�����3�D�9�9�:�:�:�:�:rc�(�tj��}tj|��tj��}|���|���t
|��}|�|tj��dSr)rr�set_event_loop�Future�stoprrrh)r$r�futr�s    r�test_future_isfuturez"AsyncMockTest.test_future_isfuture�sq���%�'�'����t�$�$�$��n�����	�	�����
�
������~�~�����d�G�N�3�3�3�3�3rN)r1r2r3r�r�r�r�r�rrrr�r��s_������3�3�3�;�;�;�3�3�3�;�;�;�4�4�4�4�4rr�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�AsyncAutospecTestc���ttd����fd���}ttd����fd���}|��|��dS)NT��autospecc�~����|jt����|t��dSr�rhr(rrrRs �rrTz=AsyncAutospecTest.test_is_AsyncMock_patch.<locals>.test_async�s8����!�!�+�":�I�F�F�F��!�!�+�y�9�9�9�9�9rc�H����|jt��dSr)rhr+rrRs �r�test_normal_methodzEAsyncAutospecTest.test_is_AsyncMock_patch.<locals>.test_normal_method�s"����!�!�+�";�Y�G�G�G�G�Gr�rrc)r$rTr�s`  rrjz)AsyncAutospecTest.test_is_AsyncMock_patch�s����	�~��	-�	-�	-�	:�	:�	:�	:�
.�	-�	:�
�~��	-�	-�	-�	H�	H�	H�	H�
.�	-�	H�	�
����������rc��|�t��5ttd���ddd��dS#1swxYwYdS)NT)�instance)�assertRaises�RuntimeErrorr
r;r#s r�test_create_autospec_instancez/AsyncAutospecTest.test_create_autospec_instance�s���
�
�
�|�
,�
,�	7�	7��J��6�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�?�A�Ac��tt�����}|�t|��t��dS�N��spec)r
r7rhr)r$�awaitable_mocks  r�$test_create_autospec_awaitable_classz6AsyncAutospecTest.test_create_autospec_awaitable_class�s<��(�n�.>�.>�?�?�?�����o�n�=�=�y�I�I�I�I�Irc���tt��}|ddd�����fd�}|�|jd��|�|j��|�|jg��|���t|����|�	t|����|�	tj�����|�|jd��|�|jtddd�����|�|jtddd���g��|���|�ddd���|�ddd���|���|�t&��5|�d���ddd��dS#1swxYwYdS)Nrsrvrxryc���K���d{V��dSrr)�	awaitables�rrz4AsyncAutospecTest.test_create_autospec.<locals>.main�s������O�O�O�O�O�O�O�O�Orr)�e)r
r@rz�await_count�assertIsNone�
await_args�await_args_list�assert_not_awaitedrrQr
r�iscoroutiner�assert_awaited_once�assert_awaited_once_with�assert_awaited_withr�r��AssertionError�assert_any_await)r$r�rr�s   @r�test_create_autospecz&AsyncAutospecTest.test_create_autospec�s/�����/�/���D��A��O�O�O�	�	�	�	�	�	�	
����)�1�-�-�-����$�/�*�*�*�����-�r�2�2�2����!�!�!��D�D�F�F�������+�D�1�1�2�2�2�����+�I�6�6�7�7�7�����)�1�-�-�-������$�q�!�q�/�/�/�:�:�:�����-��Q��Q����/@�A�A�A�� � �"�"�"��%�%�a��a�%�0�0�0�� � ��A�� �+�+�+�������
�
�
�~�
.�
.�	'�	'��!�!�A�!�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�G5�5G9�<G9c�@���fd�}t|����dS)Nc����K�tt�d�d���5}|ddd���}��|jt����t
|������tj|������tj
|������|jd����|j
g����|j��|���|�d{V��ddd��n#1swxYwY��|jd����|jt#ddd�������|j
t#ddd���g��|���|�ddd���|�ddd���|���|�����|jd����|j����|j
g��dS)	NruTr�rsrvrxryr)rr1rhr�rrQr
rr�r\r]rzr�r�r�r�r�rr�r�r�r��
reset_mock)rSr�r$s  �rrTz>AsyncAutospecTest.test_patch_with_autospec.<locals>.test_async�s�������(�4�4�4�t�D�D�D�
 ��'�K��1��2�2�2�	��%�%�k�&6�	�B�B�B���� 3�K� @� @�A�A�A����� 3�I� >� >�?�?�?����� 3�I� >� >�?�?�?�� � ��!8�!�<�<�<�� � ��!<�b�A�A�A��!�!�+�"8�9�9�9��.�.�0�0�0���������
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 � 
���[�4�a�8�8�8����[�3�T�!�Q�!�_�_�_�E�E�E����[�8�4��1��?�?�?�:K�L�L�L��+�+�-�-�-��0�0��A��0�;�;�;��+�+�A�q�A�+�6�6�6��&�&�(�(�(��"�"�$�$�$����[�4�a�8�8�8����k�4�5�5�5����[�8�"�=�=�=�=�=s�DD4�4D8�;D8rrWs` r�test_patch_with_autospecz*AsyncAutospecTest.test_patch_with_autospec�s8���	>�	>�	>�	>�	>�<	�J�J�L�L�����rN)r1r2r3rjr�r�r�r�rrrr�r��sb���������7�7�7�J�J�J�'�'�'�6 � � � � rr�c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�
AsyncSpecTestc����fd�}ttfD]=}��d|����5||��ddd��n#1swxYwY�>dS)Nc���|t��}��|jt����|jt
��dSr)r!rhr(rr+r)�	mock_typer�r$s  �r�
inner_testzCAsyncSpecTest.test_spec_normal_methods_on_class.<locals>.inner_testsJ����9�Z�(�(�D��!�!�$�"3�Y�?�?�?��!�!�$�"4�i�@�@�@�@�@rztest method types with �rr�subTest�r$r�r�s`  r�!test_spec_normal_methods_on_classz/AsyncSpecTest.test_spec_normal_methods_on_classs����	A�	A�	A�	A�	A�
$�Y�/�	&�	&�I����C�	�C�C�D�D�
&�
&��
�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&��	&�	&��A�A	�A	c��tt��}|�|jt��|�|jt��dSr)r	r!rhr(rr+r�s  r�+test_spec_normal_methods_on_class_with_mockz9AsyncSpecTest.test_spec_normal_methods_on_class_with_mock$sG���J�������d�/��;�;�;����d�0�$�7�7�7�7�7rc����fd�}tttfD]=}��d|����5||��ddd��n#1swxYwY�>dS)Nc�P��|t���}��||��t���5��t	j|������ddd��n#1swxYwY|t���}��||��dSr��r;rhrLrQr\r]rB�r��
async_mock�	sync_mockr$s   �rr�z8AsyncSpecTest.test_spec_mock_type_kw.<locals>.inner_test*s����"��
�3�3�3�J��!�!�*�i�8�8�8�#�D�)�)�
C�
C����� 3�J�J�L�L� A� A�B�B�B�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C����
C�
C�
C�
C�"�	�{�3�3�3�I��!�!�)�Y�7�7�7�7�7s�0A4�4A8�;A8ztest spec kwarg with �rrr	r�r�s`  r�test_spec_mock_type_kwz$AsyncSpecTest.test_spec_mock_type_kw)s����	8�	8�	8�	8�	8�$�Y��5�	&�	&�I����A�i�A�A�B�B�
&�
&��
�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&��	&�	&��A
�
A	�A	c����fd�}tttfD]=}��d|����5||��ddd��n#1swxYwY�>dS)Nc�L��|t��}��||��t���5��t	j|������ddd��n#1swxYwY|t��}��||��dSrr�r�s   �rr�z@AsyncSpecTest.test_spec_mock_type_positional.<locals>.inner_test8s����"��:�.�.�J��!�!�*�i�8�8�8�#�D�)�)�
C�
C����� 3�J�J�L�L� A� A�B�B�B�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C����
C�
C�
C�
C�"�	�+�.�.�I��!�!�)�Y�7�7�7�7�7s�0A3�3A7�:A7ztest spec positional with r�r�s`  r�test_spec_mock_type_positionalz,AsyncSpecTest.test_spec_mock_type_positional7s����	8�	8�	8�	8�	8�$�Y��5�	&�	&�I����F�9�F�F�G�G�
&�
&��
�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&��	&�	&r�c���tt���}|�|t��|��}|�t	j|����t
|��dSr��rrBrhrQr\r]rr�s   r� test_spec_as_normal_kw_AsyncMockz.AsyncSpecTest.test_spec_as_normal_kw_AsyncMockEs_���k�*�*�*�����d�I�.�.�.��D�F�F������+�A�.�.�/�/�/��A�����rc���tt��}|�|t��|��}|�t	j|����t
|��dSrr�r�s   r�(test_spec_as_normal_positional_AsyncMockz6AsyncSpecTest.test_spec_as_normal_positional_AsyncMockLs\����%�%�����d�I�.�.�.��D�F�F������+�A�.�.�/�/�/��A�����rc�j��tjtdd����fd���}|��dS)Nr(Tr�c�>����|t��dSrrgrRs �rrTz6AsyncSpecTest.test_spec_async_mock.<locals>.test_asyncTrirrUrWs` r�test_spec_async_mockz"AsyncSpecTest.test_spec_async_mockSsI���	��j�.�t�	<�	<�	<�	:�	:�	:�	:�
=�	<�	:�	�
�����rc�^��ttd����fd���}|��dS)NTr�c�~����|t����|jt��dSr)rhrr(rrRs �rrTzIAsyncSpecTest.test_spec_parent_not_async_attribute_is.<locals>.test_async[s8����!�!�+�y�9�9�9��!�!�+�":�I�F�F�F�F�Frr�rWs` r�'test_spec_parent_not_async_attribute_isz5AsyncSpecTest.test_spec_parent_not_async_attribute_isZsJ���	�~�D�	)�	)�	)�	G�	G�	G�	G�
*�	)�	G�	�
�����rc�~��tjtdtj����fd���}|��dS)Nr(r�c������|t����tj|������tj|����dSr)rhr�assertFalser\r�r]rRs �r�test_async_attributezFAsyncSpecTest.test_target_async_spec_not.<locals>.test_async_attributecs]����!�!�+�y�9�9�9����W�0��=�=�>�>�>����W�0��=�=�>�>�>�>�>r)rrVr!rDr=)r$r�s` r�test_target_async_spec_notz(AsyncSpecTest.test_target_async_spec_notbsR���	��j�.�{�}�	E�	E�	E�	?�	?�	?�	?�
F�	E�	?�
	������rc�t��tjtdt����fd���}|��dS)Nr=r�c�>����|t��dSrrg)�mock_async_funcr$s �r� test_attribute_not_async_spec_iszUAsyncSpecTest.test_target_not_async_spec_is.<locals>.test_attribute_not_async_spec_isls����!�!�/�9�=�=�=�=�=r)rrVrDr;)r$r�s` r�test_target_not_async_spec_isz+AsyncSpecTest.test_target_not_async_spec_isksM���	��k�3�Z�	8�	8�	8�	>�	>�	>�	>�
9�	8�	>�(�(�*�*�*�*�*rc�h��ttt����fd���}|��dS)Nr�c�~����|jt����|t��dSrr�)�MockNormalClassr$s �r� test_async_attributes_coroutineszRAsyncSpecTest.test_spec_async_attributes.<locals>.test_async_attributes_coroutinesrs8����!�!�/�">�	�J�J�J��!�!�/�9�=�=�=�=�=r)r�normal_foo_namer!)r$rs` r�test_spec_async_attributesz(AsyncSpecTest.test_spec_async_attributesqsK���	��Z�	0�	0�	0�	>�	>�	>�	>�
1�	0�	>�	)�(�*�*�*�*�*rN)r1r2r3r�r�r�r�r�r�r�r�r�r�rrrrr�r�s�������&�&�&�8�8�8�
&�&�&�&�&�&����������������+�+�+�+�+�+�+�+rr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�AsyncSpecSetTestc�j��tjtdd����fd���}|��dS)Nr(T��spec_setc�>����|t��dSrrg)r(r$s �rrTz<AsyncSpecSetTest.test_is_AsyncMock_patch.<locals>.test_async|s����!�!�,�	�:�:�:�:�:rrUrWs` rrjz(AsyncSpecSetTest.test_is_AsyncMock_patch{sH���	��j�.�4�	@�	@�	@�	;�	;�	;�	;�
A�	@�	;��
�����rc��ttj���}|�t	|����|�|t��dS�Nr	)rr!r(rQr
rhr�s  r�test_is_async_AsyncMockz(AsyncSpecSetTest.test_is_async_AsyncMock�sL���*�"9�:�:�:�����+�D�1�1�2�2�2����d�I�.�.�.�.�.rc��tt���}|�t|j����|�t|j����|�|jt��|�|jt��|�|t��dSr
)	rr!rQr
r(r�r+rhrr�s  r�test_is_child_AsyncMockz(AsyncSpecSetTest.test_is_child_AsyncMock�s����*�-�-�-�����+�D�,=�>�>�?�?�?����,�T�-?�@�@�A�A�A����d�/��;�;�;����d�0�)�<�<�<����d�I�.�.�.�.�.rc���t��}td����|_tj|d��5}|�|t��ddd��dS#1swxYwYdS)Nc��|Srr��xs r�<lambda>z=AsyncSpecSetTest.test_magicmock_lambda_spec.<locals>.<lambda>�s��a�rr��	mock_func)rrrrVrh)r$�mock_obj�cms   r�test_magicmock_lambda_specz+AsyncSpecSetTest.test_magicmock_lambda_spec�s����;�;��&�K�K�8�8�8���
�\�(�K�
0�
0�	1�B��!�!�"�i�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s�A#�#A'�*A'N)r1r2r3rjrrrrrrrrzsP���������/�/�/�
/�/�/�1�1�1�1�1rrc�\�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZdS)�AsyncArgumentsc��K�d�}t|d���}|d���d{V��}|�|d��dS)Nc��
K�dSrr)r$�vars  r�additionz6AsyncArguments.test_add_return_value.<locals>.addition�r)r�
rt��rrz)r$rr��outputs    r�test_add_return_valuez$AsyncArguments.test_add_return_value�sV����+�+�+����3�3�3���t�A�w�w�������������$�$�$�$�$rc���K�d�}t|td�����}|�t��5|d���d{V��ddd��dS#1swxYwYdS)Nc��
K�dSrr�rs rrz?AsyncArguments.test_add_side_effect_exception.<locals>.addition�r)r�err��side_effectr!)r�	Exceptionr�)r$rr�s   r�test_add_side_effect_exceptionz-AsyncArguments.test_add_side_effect_exception�s�����%�%�%���y��/?�/?�@�@�@��
�
�
�y�
)�
)�	�	��$�q�'�'�M�M�M�M�M�M�M�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A!�$A!c��~K�d�}t|���}|d���d{V��}|�|d��dS)Nc��K�|dzS�Nrsrr's rrz?AsyncArguments.test_add_side_effect_coroutine.<locals>.addition�s������7�Nrr)r!�r"�r$rr��results    r�test_add_side_effect_coroutinez-AsyncArguments.test_add_side_effect_coroutine��Z����	�	�	��X�.�.�.���t�A�w�w�������������#�#�#�#�#rc��~K�d�}t|���}|d���d{V��}|�|d��dS)Nc��|dzSr/rr's rrzEAsyncArguments.test_add_side_effect_normal_function.<locals>.addition�s����7�Nrr)r!r0r"r1s    r�$test_add_side_effect_normal_functionz3AsyncArguments.test_add_side_effect_normal_function�r4rc��
K�gd�}t|���}|D]&}|�|���d{V��|���'|�t��5}|���d{V��ddd��dS#1swxYwYdS)N�rsrvrxr))rrzr��StopAsyncIteration)r$�valsr��itemr�s     r�test_add_side_effect_iterablez,AsyncArguments.test_add_side_effect_iterable�s������y�y���T�*�*�*���	1�	1�D����4�4�6�6�\�\�\�\�\�\�4�0�0�0�0�
�
�
�1�
2�
2�	�a��$�&�&�L�L�L�L�L�L�L�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A8�8A<�?A<c��.K�Gd�dt��}d|d��g}t|���}|�|���d{V��d��|�|��5}|���d{V��ddd��dS#1swxYwYdS)Nc��eZdZdS)�OAsyncArguments.test_add_side_effect_exception_iterable.<locals>.SampleExceptionN)r1r2r3rrr�SampleExceptionr@�s�������DrrArsr�r))r+rrzr�)r$rAr;r�r�s     r�'test_add_side_effect_exception_iterablez6AsyncArguments.test_add_side_effect_exception_iterable�s
����	�	�	�	�	�i�	�	�	��?�?�5�)�)�*���T�*�*�*�����t�t�v�v�������q�)�)�)�
�
�
��
/�
/�	�1��$�&�&�L�L�L�L�L�L�L�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�,B
�
B�Bc��K�td���}t|���}|���d{V��}|�||��dS)Nr rt)r�assertIs)r$�valuer�r2s    r�test_return_value_AsyncMockz*AsyncArguments.test_return_value_AsyncMock�sW�����r�*�*�*���e�,�,�,���t�v�v���������
�
�f�e�$�$�$�$�$rc���K�tj��}|�d��t|���}|���d{V��}|�|tj��dS)Nrt)rr��
set_resultrrh�r$r�r�r2s    r�test_return_value_awaitablez*AsyncArguments.test_return_value_awaitable�sj�����n�������t�����c�*�*�*���t�v�v�����������f�g�n�5�5�5�5�5rc��bK�tj��}|�d��t|g���}|���d{V��}|�|tj��|�t��5|���d{V��ddd��dS#1swxYwYdS)Nr))rr�rHrrhr�r:rIs    r�!test_side_effect_awaitable_valuesz0AsyncArguments.test_side_effect_awaitable_values�s������n�������t�����c�U�+�+�+���t�v�v�����������f�g�n�5�5�5�
�
�
�1�
2�
2�	�	��$�&�&�L�L�L�L�L�L�L�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�B$�$B(�+B(c��K�td���}t|���}|���d{V��}|�|d��dS)Nr rtr)r")r$�effectr�r2s    r�test_side_effect_is_AsyncMockz,AsyncArguments.test_side_effect_is_AsyncMock�sY������+�+�+���V�,�,�,���t�v�v�������������$�$�$�$�$rc����K�tj���d���fd�}t|���}|���d{V��}|�|���|���|����dS)NFc���K�d��S�NTr��ranrEs��r�innerz2AsyncArguments.test_wraps_coroutine.<locals>.inner�s������C��Lr��wraps)rr�rrzr�rQ�r$rUr�r2rTrEs    @@r�test_wraps_coroutinez#AsyncArguments.test_wraps_coroutine�s��������� � ����	�	�	�	�	�	�
�u�%�%�%���t�v�v�������������'�'�'���������������rc�����K�d�d���fd�}t|���}|���d{V��}|�|���|���|����dS)NrsFc���d��SrRrrSs��rrUz8AsyncArguments.test_wraps_normal_function.<locals>.inner�s
����C��LrrV)rrzr�rQrXs    @@r�test_wraps_normal_functionz)AsyncArguments.test_wraps_normal_function�s�����������	�	�	�	�	�	�
�u�%�%�%���t�v�v�������������'�'�'���������������rc��K�t��}|d��}|d��}|�d{V��|�d{V��|�td��td��g��|�|jtd��td��g��|�|jtd��td��g��dS)Nrvrs)r�assert_has_awaitsrrzr��call_args_list)r$r��mock2�mock1s    r�test_await_args_list_orderz)AsyncArguments.test_await_args_list_orders������[�[�
��
�1�
�
���
�1�
�
�������������������$�$�d�1�g�g�t�A�w�w�%7�8�8�8�����3�d�1�g�g�t�A�w�w�5G�H�H�H�����2�T�!�W�W�d�1�g�g�4F�G�G�G�G�GrN)r1r2r3r$r,r3r7r=rBrFrJrLrOrYr\rbrrrrr�s�������%�%�%����$�$�$�$�$�$����	�	�	�%�%�%�6�6�6�	�	�	�%�%�%�
�
�
�
�
�
�H�H�H�H�Hrrc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�AsyncMagicMethodsc�"�t��}|�|jt��|�|jt��|�|jt��|�|jt��dSr)rrh�
__aenter__r�	__aexit__�	__anext__�	__aiter__�r$�m_mocks  r�+test_async_magic_methods_return_async_mocksz=AsyncMagicMethods.test_async_magic_methods_return_async_mockssw���������f�/��;�;�;����f�.�	�:�:�:����f�.�	�:�:�:�	
���f�.�	�:�:�:�:�:rc�"�t��}|�|jt��|�|jt��|�|jt��|�|jt��dSr)rrh�	__enter__r�__exit__�__next__�__len__�r$�a_mocks  r�*test_sync_magic_methods_return_magic_mocksz<AsyncMagicMethods.test_sync_magic_methods_return_magic_mockssr���������f�.�	�:�:�:����f�o�y�9�9�9����f�o�y�9�9�9����f�n�i�8�8�8�8�8rc���t��}|�t|d����|�t|d����|�t|d����dS)Nrfrgrh)rrQ�hasattrrjs  r�&test_magicmock_has_async_magic_methodsz8AsyncMagicMethods.test_magicmock_has_async_magic_methods se������������5�5�6�6�6�������4�4�5�5�5�������4�4�5�5�5�5�5rc�:�t��}|�t|d����|�t|d����|�t|d����|�t|d����dS)Nrnrorprq)rrQrvrrs  r�%test_asyncmock_has_sync_magic_methodsz7AsyncMagicMethods.test_asyncmock_has_sync_magic_methods&s�������������4�4�5�5�5������
�3�3�4�4�4������
�3�3�4�4�4������	�2�2�3�3�3�3�3rc�>�t��}|�|jt��|�|jt��|�t
|j����|�t
|j����dSr)rrhrfrrgrQr
rjs  r�&test_magic_methods_are_async_functionsz8AsyncMagicMethods.test_magic_methods_are_async_functions-s���������f�/��;�;�;����f�.�	�:�:�:����+�F�,=�>�>�?�?�?����+�F�,<�=�=�>�>�>�>�>rN)r1r2r3rlrtrwryr{rrrrdrds_������;�;�;�9�9�9�6�6�6�4�4�4�?�?�?�?�?rrdc�z�eZdZGd�d��ZGd�d��ZGd�d��Zd�Zd�Zd	�Zd
�Z	d�Z
dS)
�AsyncContextManagerTestc��eZdZd�Zd�ZdS)�/AsyncContextManagerTest.WithAsyncContextManagerc��
K�dSrr�r$�args�kwargss   rrfz:AsyncContextManagerTest.WithAsyncContextManager.__aenter__8r)rc��
K�dSrrr�s   rrgz9AsyncContextManagerTest.WithAsyncContextManager.__aexit__:r)rN)r1r2r3rfrgrrr�WithAsyncContextManagerr7s"������9�9�9�8�8�8�8�8rr�c��eZdZd�Zd�ZdS)�.AsyncContextManagerTest.WithSyncContextManagerc��dSrrr�s   rrnz8AsyncContextManagerTest.WithSyncContextManager.__enter__=r&rc��dSrrr�s   rroz7AsyncContextManagerTest.WithSyncContextManager.__exit__?r&rN)r1r2r3rnrorrr�WithSyncContextManagerr�<s"������2�2�2�1�1�1�1�1rr�c��eZdZd�Zd�ZdS)�&AsyncContextManagerTest.ProductionCodec��d|_dSr)�sessionr#s rr%z/AsyncContextManagerTest.ProductionCode.__init__Cs
���D�L�L�Lrc���K�|j�d��4�d{V��}|����d{V��}|cddd���d{V��S#1�d{V��swxYwYdS)Nzhttps://python.org)r��post�json)r$�response�vals   rrz+AsyncContextManagerTest.ProductionCode.mainFs������|�(�(�)=�>�>�
�
�
�
�
�
�
�(�$�M�M�O�O�+�+�+�+�+�+���
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s�A�
A�AN)r1r2r3r%rrrr�ProductionCoder�As2������	 �	 �	 �	�	�	�	�	rr�c����fd�}ttfD]=}��d|����5||��ddd��n#1swxYwY�>dS)Nc�l������}td���|_|d���}td���}tddi���|_||j_||jj_t|�	����}��
|ddi��dS)N�sessionmock��name�magic_cmr�r��{rt)r�rr�rr�rfrr�rrrz)r��pcrr�r2r$s     �rr�zKAsyncContextManagerTest.test_set_return_value_of_aenter.<locals>.inner_testLs�����$�$�&�&�B�"�
�6�6�6�B�J���
�+�+�+�B� �j�1�1�1�H�%�F�C�=�A�A�A�H�M�)1�B�M�&�+-�B�J�O�(�������^�^�F����V�f�c�]�3�3�3�3�3rz%test set return value of aenter with r�r�s`  r�test_set_return_value_of_aenterz7AsyncContextManagerTest.test_set_return_value_of_aenterKs����		4�		4�		4�		4�		4�$�Y�/�	&�	&�I����Q�i�Q�Q�R�R�
&�
&��
�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&��	&�	&r�c����fd�}ttfD]=}��d|����5||��ddd��n#1swxYwY�>dS)Nc�����d�����}||�����fd�}t|����}��������jj�����jj���j����j������|��dS)NFc��h�K��4�d{V��}d�ddd���d{V��n#1�d{V��swxYwY|SrRr)r2�called�cm_mocks ��r�use_context_managerzqAsyncContextManagerTest.test_mock_supports_async_context_manager.<locals>.inner_test.<locals>.use_context_managerbs������"�"�"�"�"�"�"�"�f�!�F�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"����"�"�"�"��
s�!�
+�+)r�rrQrfr�rgr��assertIsNot)r�rr��	cm_resultr�r�r$s    @@�rr�zTAsyncContextManagerTest.test_mock_supports_async_context_manager.<locals>.inner_test]s�������F��-�-�/�/�B��i��m�m�G�
�
�
�
�
�
��/�/�1�1�2�2�I��O�O�F�#�#�#��O�O�G�.�5�6�6�6��O�O�G�-�4�5�5�5���-�-�/�/�/���,�,�.�.�.����W�i�0�0�0�0�0rz!test context manager magics with r�r�s`  r�(test_mock_supports_async_context_managerz@AsyncContextManagerTest.test_mock_supports_async_context_manager[s����	1�	1�	1�	1�	1�($�Y�/�	&�	&�I����M�)�M�M�N�N�
&�
&��
�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&��	&�	&r�c����|���}t|���t��}|�j_�fd�}|�t
|����|��dS)Nc��h�K��4�d{V��}|cddd���d{V��S#1�d{V��swxYwYdSrr)r2�
mock_instances �rr�z^AsyncContextManagerTest.test_mock_customize_async_context_manager.<locals>.use_context_manager|s������$�
�
�
�
�
�
�
���
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s�!�
+�+)r�rrVrfrrDr)r$r��expected_resultr�r�s    @r�)test_mock_customize_async_context_managerzAAsyncContextManagerTest.test_mock_customize_async_context_managerus|����/�/�1�1��!�(�+�+�
� �(�(��0?�
� �-�	�	�	�	�	�	
�
�
�c�-�-�/�/�0�0�/�B�B�B�B�Brc�����d�d��fd�}�fd�}|���}t|���|�_|�_�fd�}t	|����|����|����dS)NFc���K�d�dSrRr)r��enter_calleds �r�enter_coroutineziAsyncContextManagerTest.test_mock_customize_async_context_manager_with_coroutine.<locals>.enter_coroutine�s������L�L�Lrc���K�d�dSrRr)r��exit_calleds �r�exit_coroutinezhAsyncContextManagerTest.test_mock_customize_async_context_manager_with_coroutine.<locals>.exit_coroutine�s������K�K�Krc��h�K��4�d{V��	ddd���d{V��dS#1�d{V��swxYwYdSrr)r�s�rr�zmAsyncContextManagerTest.test_mock_customize_async_context_manager_with_coroutine.<locals>.use_context_manager�s������$�
�
�
�
�
�
�
�
��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s�!�
+�+)r�rrfrgrrQ)r$r�r�r�r�r�r�r�s     @@@r�8test_mock_customize_async_context_manager_with_coroutinezPAsyncContextManagerTest.test_mock_customize_async_context_manager_with_coroutine�s����������	 �	 �	 �	 �	 �	�	�	�	�	��/�/�1�1��!�(�+�+�
�#2�
� �"0�
��	�	�	�	�	�	���!�!�"�"�"�����%�%�%�����$�$�$�$�$rc���d�}|���}t|��}|�t��5t	||����ddd��dS#1swxYwYdS)Nc��ZK�|4�d{V��t���#1�d{V��swxYwYdSr)�	TypeError)�context_managers r�raise_inzYAsyncContextManagerTest.test_context_manager_raise_exception_by_default.<locals>.raise_in�s�����&�
"�
"�
"�
"�
"�
"�
"�
"��k�k�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"�
"�
"s��
$�$)r�rr�r�r)r$r�r�r�s    r�/test_context_manager_raise_exception_by_defaultzGAsyncContextManagerTest.test_context_manager_raise_exception_by_default�s���	"�	"�	"��/�/�1�1��!�(�+�+�
�
�
�
�y�
)�
)�	)�	)�����'�'�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�A'�'A+�.A+N)r1r2r3r�r�r�r�r�r�r�r�rrrr}r}5s�������9�9�9�9�9�9�9�9�
2�2�2�2�2�2�2�2�
��������&�&�&� &�&�&�4C�C�C�%�%�%�4)�)�)�)�)rr}c�<�eZdZGd�de��Zd�Zd�Zd�ZdS)�AsyncIteratorTestc� �eZdZd�Zd�Zd�ZdS)�#AsyncIteratorTest.WithAsyncIteratorc��gd�|_dS)N)r��	NormalFoo�baz)�itemsr#s rr%z,AsyncIteratorTest.WithAsyncIterator.__init__�s��4�4�4�D�J�J�Jrc��dSrrr#s rriz-AsyncIteratorTest.WithAsyncIterator.__aiter__�r&rc��
K�dSrrr#s rrhz-AsyncIteratorTest.WithAsyncIterator.__anext__�r)rN)r1r2r3r%rirhrrr�WithAsyncIteratorr��s3������	5�	5�	5�	"�!�!�'�'�'�'�'rr�c���td����gd��j_�fd�}t|����}|�|gd���dS)N�testerr�r9c��,�K�d��2���d{V��S)Nc��"K�g|3d{V��}|��
6Srr)�.0�is  r�
<listcomp>zOAsyncIteratorTest.test_aiter_set_return_value.<locals>.main.<locals>.<listcomp>�s.����/�/�/�/�/�/�/�/��A�/�/�/�/s�r)�	mock_iters�rrz;AsyncIteratorTest.test_aiter_set_return_value.<locals>.main�s-�����/�/�Y�/�/�/�/�/�/�/�/�/�/r)rrirrrz)r$rr2r�s   @r�test_aiter_set_return_valuez-AsyncIteratorTest.test_aiter_set_return_value�sl����8�,�,�,�	�+4�9�9�	��(�	0�	0�	0�	0�	0��T�T�V�V�����������+�+�+�+�+rc����fd�}ttfD]=}��d|����5||��ddd��n#1swxYwY�>dS)Nc�~������}||��}��t|j������t|j������t|j������t|j����dSr)r�r�r
rirQrh)r�r�r�r$s   �rr�zIAsyncIteratorTest.test_mock_aiter_and_anext_asyncmock.<locals>.inner_test�s�����-�-�/�/�H�%�I�h�/�/�M�
���0��1C�D�D�E�E�E����0��1H�I�I�J�J�J��O�O�/��0B�C�C�D�D�D��O�O�/�
�0G�H�H�I�I�I�I�Irz%test aiter and anext corourtine with r�r�s`  r�#test_mock_aiter_and_anext_asyncmockz5AsyncIteratorTest.test_mock_aiter_and_anext_asyncmock�s����		J�		J�		J�		J�		J�$�Y�/�	&�	&�I����Q�i�Q�Q�R�R�
&�
&��
�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&��	&�	&r�c������d��gd����fd�}���fd�}���fd�}ttfD]�}��d|����5||��ddd��n#1swxYwY��d|����5||��ddd��n#1swxYwY��d|����5||��ddd��n#1swxYwY��dS)	Nc��NK�g}|23d{V��}|�|���6|Sr)�append)�iterator�accumulatorr<s   r�iteratez6AsyncIteratorTest.test_mock_async_for.<locals>.iterate�sW�����K�&�
)�
)�
)�
)�
)�
)�
)�d��"�"�4�(�(�(�(�'��s�$)�FOO�BAR�BAZc���|������}��t�|����g��dSr)r�rzr)r�r�r�r$s  ��r�test_defaultz;AsyncIteratorTest.test_mock_async_for.<locals>.test_default�sL���%�I�d�&<�&<�&>�&>�?�?�M����S����!7�!7�8�8�"�=�=�=�=�=rc����|������}�dd�|j_��t	�|�������dSr)r�rirrzr�r�r��expectedr�r$s  ���r�test_set_return_valuezDAsyncIteratorTest.test_mock_async_for.<locals>.test_set_return_value�s_���%�I�d�&<�&<�&>�&>�?�?�M�3;�A�A�A�;�M�#�0����S����!7�!7�8�8�(�C�C�C�C�Crc����|������}t�dd���|j_��t�|�������dSr)r��iterrirrzrr�s  ���r�test_set_return_value_iterzIAsyncIteratorTest.test_mock_async_for.<locals>.test_set_return_value_iter�sg���%�I�d�&<�&<�&>�&>�?�?�M�37������3D�3D�M�#�0����S����!7�!7�8�8�(�C�C�C�C�Crzdefault value with zset return_value with zset return_value iterator with r�)r$r�r�r�r�r�r�s`    @@r�test_mock_async_forz%AsyncIteratorTest.test_mock_async_for�s:�����	�	�	�)�(�(��	>�	>�	>�	>�	>�	>�
	D�	D�	D�	D�	D�	D�	D�
	D�	D�	D�	D�	D�	D�	D�
$�Y�/�	6�	6�I����?�I�?�?�@�@�
(�
(���Y�'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(����B�y�B�B�C�C�
1�
1�%�%�i�0�0�0�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1����K�	�K�K�L�L�
6�
6�*�*�9�5�5�5�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��	6�	6s6�A�A#	�&A#	�B�B	�!B	�=C�C	�C	N)r1r2r3rVr�r�r�r�rrrr�r��sk������(�(�(�(�(�F�(�(�(�,�,�,�&�&�&�" 6� 6� 6� 6� 6rr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�AsyncMockAssertc�,�t��|_dSr)rr�r#s r�setUpzAsyncMockAssert.setUp�s���K�K��	�	�	rc��0K�|j|i|���d{V��dSr)r�r�s   r�_runnable_testzAsyncMockAssert._runnable_test�s5�����d�i��(��(�(�(�(�(�(�(�(�(�(�(rc��K�|�d{V��Srr)r$�	coroutines  r�_await_coroutinez AsyncMockAssert._await_coroutine�s�����������rc��tt��}t|��5|���ddd��n#1swxYwY|�t|j����|j���|j���|j���|�	t��5|���ddd��n#1swxYwY|�	t��5|j���ddd��dS#1swxYwYdSr)rr!rLr(rQr
�
assert_called�assert_called_once�assert_called_once_withr�r�r�r�s  r�"test_assert_called_but_not_awaitedz2AsyncMockAssert.test_assert_called_but_not_awaited�s�����$�$��
��
%�
%�	 �	 �������	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 ����+�D�,=�>�>�?�?�?���'�'�)�)�)���,�,�.�.�.���1�1�3�3�3�
�
�
�~�
.�
.�	"�	"����!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
�
�
�~�
.�
.�	/�	/���,�,�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s5�A�A	�A	�C=�=D�D�"E	�	E
�E
c��tt��}|���}|j���|j���|j���|�t��5|j���ddd��n#1swxYwYt|�
|����|j���|j���|j���|j���dSr)
rr!r(r�r�r�r�r�r�rr�r�r�)r$r��mock_coroutines   r�test_assert_called_then_awaitedz/AsyncMockAssert.test_assert_called_then_awaitedsU����$�$���*�*�,�,����'�'�)�)�)���,�,�.�.�.���1�1�3�3�3�
�
�
�~�
.�
.�	/�	/���,�,�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	�D�!�!�.�1�1�2�2�2���,�,�.�.�.���(�(�*�*�*���-�-�/�/�/���2�2�4�4�4�4�4s�B4�4B8�;B8c���|�t��5|j���ddd��n#1swxYwY|�t��5|j���ddd��n#1swxYwYt|�����|j���|j���dSr)	r�r�r�r�r�rr�r�r�r#s r�+test_assert_called_and_awaited_at_same_timez;AsyncMockAssert.test_assert_called_and_awaited_at_same_timesH��
�
�
�~�
.�
.�	'�	'��I�$�$�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'��
�
�~�
.�
.�	&�	&��I�#�#�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	�D���!�!�"�"�"��	�$�$�&�&�&��	�%�%�'�'�'�'�'s#�A�A�A�&B�B�Bc�<�tt��}|���}t|��5|���ddd��n#1swxYwY|�t
��5|j���ddd��n#1swxYwY|j���t|�	|����|j���|j�
��dSr)rr!r(rLr�r�r�r�rr�r��r$r�r�s   r�)test_assert_called_twice_and_awaited_oncez9AsyncMockAssert.test_assert_called_twice_and_awaited_oncesv����$�$���%�%�'�'�	� ��
%�
%�	 �	 �������	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �
�
�
�~�
.�
.�	/�	/���,�,�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/���'�'�)�)�)��D�!�!�)�,�,�-�-�-���(�(�*�*�*���-�-�/�/�/�/�/s#�A�A� A�>B$�$B(�+B(c��tt��}|���}|j���t	|�|����|�t��5t	|�|����ddd��n#1swxYwY|j���dSr)	rr!r(r�rr�r�r�r�r�s   r�)test_assert_called_once_and_awaited_twicez9AsyncMockAssert.test_assert_called_once_and_awaited_twice,s�����$�$���%�%�'�'�	���,�,�.�.�.��D�!�!�)�,�,�-�-�-�
�
�
�|�
,�
,�	2�	2���%�%�i�0�0�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	
��(�(�*�*�*�*�*s�>#B-�-B1�4B1c��|�t��5|j���ddd��n#1swxYwY|�t��5|j���ddd��n#1swxYwY|�t
��5t
|�|j����ddd��n#1swxYwY|�t��5|j���ddd��n#1swxYwY|�t��5|j���ddd��dS#1swxYwYdSr)r�r�r�r�r�r�rr�r#s r�"test_assert_awaited_but_not_calledz2AsyncMockAssert.test_assert_awaited_but_not_called6s���
�
�
�~�
.�
.�	'�	'��I�$�$�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�
�
�
�~�
.�
.�	&�	&��I�#�#�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�
�
�
�y�
)�
)�	2�	2���%�%�d�i�0�0�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2��
�
�~�
.�
.�	'�	'��I�$�$�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�
�
�
�~�
.�
.�	&�	&��I�#�#�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&sY�A�A�A�&B�B�B�1(C%�%C)�,C)�
D0�0D4�7D4�E<�<F�Fc�l�td��g}t|��5|�d��ddd��n#1swxYwY|j�|��|�t
��5|j�|��ddd��dS#1swxYwYdS�Nr�)rrLr��assert_has_callsr�r�r^)r$�kallss  r� test_assert_has_calls_not_awaitsz0AsyncMockAssert.test_assert_has_calls_not_awaitsDs(���e���
��
��
%�
%�	�	��I�I�e����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��	�"�"�5�)�)�)�
�
�
�~�
.�
.�	/�	/��I�'�'��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s#�A�A�	A�B)�)B-�0B-c�N�t|��5|���ddd��n#1swxYwYddifg}|�|jj|��t|��5|�d��ddd��n#1swxYwYt|��5|�d��ddd��n#1swxYwYt	��t	d��t	d��g}|�|jj|��dS)N�rr�r�)rLr�rz�
mock_callsr)r$�kalls_empty�
mock_kallss   r�0test_assert_has_mock_calls_on_async_mock_no_specz@AsyncMockAssert.test_assert_has_mock_calls_on_async_mock_no_specLs���
��
%�
%�	�	��I�I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��B��|�n�������-�{�;�;�;�
��
%�
%�	�	��I�I�e����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
��
%�
%�	�	��I�I�e����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��v�v�t�E�{�{�D��K�K�8�
������-�z�:�:�:�:�:s0�1�5�5�1B�B�B�-C�C�Cc���tt��}t|��5|���ddd��n#1swxYwYddifg}|�|jj|��|�|jt
j��g��t|��5|�ddddd���ddd��n#1swxYwYt
��t
ddddd���g}t
j��t
jddddd���g}|�|jj|��|�|j|��dS)	Nrrrsrvrx�r!)r=r>)rr!rLr(rzrr)r$�a_class_mockr�method_kallsrs     r�2test_assert_has_mock_calls_on_async_mock_with_speczBAsyncMockAssert.test_assert_has_mock_calls_on_async_mock_with_specYs��� ��,�,��
��
%�
%�	(�	(��%�%�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��B��|�n������2�=�{�K�K�K�����0�4�3D�3F�3F�2G�H�H�H�
��
%�
%�	9�	9��%�%�a��A��a�%�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�����Q��1��Q� 7� 7� 7�8���'�)�)�4�+<�Q��1��Q�+O�+O�+O�P�
�����2�=�|�L�L�L�����0�*�=�=�=�=�=s#�A�A	�A	�2C�C� Cc�
�t|��5|j�dd���ddd��n#1swxYwYt|��5|jj�dtj���ddd��n#1swxYwY|�|jjddddifdd	d
tjifgd��|�|jjjdd	d
tjifgd��dS)Nrx)�fishr0)�cake�	something)rxrzsomething_else.something)r0rz#method calls not recorded correctly)rLr�r�something_elser�Cakerz�method_callsr#s r� test_async_method_calls_recordedz0AsyncMockAssert.test_async_method_calls_recordedhs���
��
%�
%�	.�	.��I������-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�
��
%�
%�	F�	F��I�$�.�.�q�x�}�.�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�	
�����/�
�$����/�
'����
�/F�G�2
�
2�		3�	3�	3�
	
�����1�>�&��v�x�}�.E�F�G�>�	@�	@�	@�	@�	@s�9�=�=�,B�B�Bc�F���fd�}|�j��t���5����ddd��n#1swxYwYt���5��dd��ddd��n#1swxYwYt���5��d���ddd��n#1swxYwY�j���|�j��tt��}t���5|���ddd��n#1swxYwYt���5|�dd���ddd��n#1swxYwY|���||��dS)Nc����d}|D]^}t||��}��|t����|t����|g���_dS)N)r_rr)�getattrrhr�listrz)r��namesr��attrr$s    �r�assert_attrsz:AsyncMockAssert.test_async_arg_lists.<locals>.assert_attrsxsu���D�E��
+�
+���t�T�*�*���%�%�d�I�6�6�6��%�%�d�D�1�1�1�� � ��r�*�*�*�*�	
+�
+rrsrvrx)r=)r�rLr�rr!r()r$rrss`  r�test_async_arg_listsz$AsyncMockAssert.test_async_arg_listsws����	+�	+�	+�	+�	+�	��T�Y����
��
%�
%�	�	��I�I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
��
%�
%�	�	��I�I�a��O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
��
%�
%�	�	��I�I��I�N�N�N�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�	��������T�Y�����:�&�&��
��
%�
%�	"�	"����!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
��
%�
%�	(�	(�����Q��'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	��������V�����sY�A�A�A�!B�B�B�C�C�C�D9�9D=�D=�E7�7E;�>E;c��|�t��5|j���ddd��n#1swxYwYt	|�����|j���dSr)r�r�r�r�rr�r#s r�test_assert_awaitedz#AsyncMockAssert.test_assert_awaited�s���
�
�
�~�
.�
.�	'�	'��I�$�$�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	�D���!�!�"�"�"��	� � �"�"�"�"�"s�A�A�Ac���|�t��5|j���ddd��n#1swxYwYt	|�����|j���t	|�����|�t��5|j���ddd��dS#1swxYwYdSr)r�r�r�r�rr�r#s r�test_assert_awaited_oncez(AsyncMockAssert.test_assert_awaited_once�sU��
�
�
�~�
.�
.�	,�	,��I�)�)�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	�D���!�!�"�"�"��	�%�%�'�'�'��D���!�!�"�"�"�
�
�
�~�
.�
.�	,�	,��I�)�)�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s#�A�A�A�C(�(C,�/C,c���d}|�t|��5|j�d��ddd��n#1swxYwYt	|�����d}|�t|��5|j�d��ddd��n#1swxYwYt	|�d����|j�d��t	|�d����|�t��5|j�d��ddd��dS#1swxYwYdS)NzNot awaitedr�zexpected await not found�
SomethingElse)�assertRaisesRegexr�r�r�rr�r�)r$�msgs  r�test_assert_awaited_withz(AsyncMockAssert.test_assert_awaited_with�s����
�
#�
#�N�C�
8�
8�	1�	1��I�)�)�%�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	�D���!�!�"�"�"�(��
�
#�
#�N�C�
8�
8�	1�	1��I�)�)�%�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	�D����&�&�'�'�'��	�%�%�e�,�,�,��D����0�0�1�1�1�
�
�
�~�
.�
.�	1�	1��I�)�)�%�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s5�A�A	�A	�B5�5B9�<B9�8E � E$�'E$c���|�t��5|j�d��ddd��n#1swxYwYt	|�d����|j�d��t	|�d����|�t��5|j�d��ddd��dS#1swxYwYdSr)r�r�r�r�rr�r#s r�test_assert_awaited_once_withz-AsyncMockAssert.test_assert_awaited_once_with�s_��
�
�
�~�
.�
.�	6�	6��I�.�.�u�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	�D����&�&�'�'�'��	�*�*�5�1�1�1��D����&�&�'�'�'�
�
�
�~�
.�
.�	6�	6��I�.�.�u�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6s#�A�A�	A�C-�-C1�4C1c�j�|�t��5|j�d��ddd��n#1swxYwYt	|�d����|�t��5|j�d��ddd��n#1swxYwYt	|�d����|j�d��t	|�d����|j�d��dS)Nr�r�r$)r�r�r�r�rr�r#s r�test_assert_any_waitz$AsyncMockAssert.test_assert_any_wait�s���
�
�
�~�
.�
.�	.�	.��I�&�&�u�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	�D����&�&�'�'�'�
�
�
�~�
.�
.�	.�	.��I�&�&�u�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	�D����&�&�'�'�'��	�"�"�5�)�)�)��D����0�0�1�1�1��	�"�"�5�)�)�)�)�)s#�A�A�	A�	B0�0B4�7B4c���td��td��g}|�t��5}|j�|��ddd��n#1swxYwY|�t
|jj��d��t|�
d����|�t��5|j�|��ddd��n#1swxYwYt|�
d����|�t��5|j�|��ddd��n#1swxYwYt|�
d����|j�|��t|�
d����|j�|��dS)Nr�r�rsr$)rr�r�r�r^rz�len�	exceptionr�rr�)r$�callsrs   r�test_assert_has_awaits_no_orderz/AsyncMockAssert.test_assert_has_awaits_no_order�s[���e���d�5�k�k�*��
�
�
�~�
.�
.�	/�"��I�'�'��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�����R�\�.�/�/��3�3�3��D����&�&�'�'�'�
�
�
�~�
.�
.�	/�	/��I�'�'��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	�D����&�&�'�'�'�
�
�
�~�
.�
.�	/�	/��I�'�'��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	�D����&�&�'�'�'��	�#�#�E�*�*�*��D����0�0�1�1�1��	�#�#�E�*�*�*�*�*s5�A � A$�'A$�C;�;C?�C?�E)�)E-�0E-c�R�Gd�d��}t|�|��d����|j�t	t
d��g��|j�t
d��|j�t
d��dS)Nc��eZdZd�ZdS)�9AsyncMockAssert.test_awaits_asserts_with_any.<locals>.Fooc��dSrr�r$�others  r�__eq__z@AsyncMockAssert.test_awaits_asserts_with_any.<locals>.Foo.__eq__�r&rN�r1r2r3r7rrr�Foor3��������)�)�)�)�)rr9rs)rr�r�r^rrr�r�)r$r9s  r�test_awaits_asserts_with_anyz,AsyncMockAssert.test_awaits_asserts_with_any�s���	*�	*�	*�	*�	*�	*�	*�	*�	�D�������q�)�)�*�*�*��	�#�#�T�#�q�\�\�N�3�3�3��	�%�%�c�1�-�-�-��	�"�"�3��*�*�*�*�*rc�L��Gd�d��}t|�����fd�}t||��d������ttd��g����td����td��dS)Nc��eZdZd�ZdS)�BAsyncMockAssert.test_awaits_asserts_with_spec_and_any.<locals>.Fooc��dSrrr5s  rr7zIAsyncMockAssert.test_awaits_asserts_with_spec_and_any.<locals>.Foo.__eq__�r&rNr8rrrr9r>�r:rr9r�c��"�K��|��d{V��dSrr)r��mock_with_specs �r�_custom_mock_runnable_testzYAsyncMockAssert.test_awaits_asserts_with_spec_and_any.<locals>._custom_mock_runnable_test�s,����� �.�$�'�'�'�'�'�'�'�'�'�'rrs)rrr^rrr�r�)r$r9rBrAs   @r�%test_awaits_asserts_with_spec_and_anyz5AsyncMockAssert.test_awaits_asserts_with_spec_and_any�s����	*�	*�	*�	*�	*�	*�	*�	*�#��,�,�,��	(�	(�	(�	(�	(�	�&�&�s�s�u�u�a�0�0�1�1�1��(�(�$�s�A�,�,��8�8�8��*�*�3��2�2�2��'�'��Q�/�/�/�/�/rc��td��td��g}|�t��5|j�|d���ddd��n#1swxYwYt|�d����|�t��5|j�|d���ddd��n#1swxYwYt|�d����|�t��5|j�|d���ddd��n#1swxYwYt|�d����|j�|d���t|�d����|j�|d���dS)Nr�r�T)�	any_order�bamf�qux)rr�r�r�r^rr�)r$r/s  r�test_assert_has_awaits_orderedz.AsyncMockAssert.test_assert_has_awaits_ordered�sV���e���d�5�k�k�*��
�
�
�~�
.�
.�	?�	?��I�'�'���'�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	�D����&�&�'�'�'�
�
�
�~�
.�
.�	?�	?��I�'�'���'�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	�D����'�'�(�(�(�
�
�
�~�
.�
.�	?�	?��I�'�'���'�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	�D����&�&�'�'�'��	�#�#�E�T�#�:�:�:��D����&�&�'�'�'��	�#�#�E�T�#�:�:�:�:�:s5�A"�"A&�)A&�)C�C�C�E�E�	Ec��|j���t|�����|�t
��5|j���ddd��dS#1swxYwYdSr)r�r�rr�r�r�r#s r�test_assert_not_awaitedz'AsyncMockAssert.test_assert_not_awaiteds����	�$�$�&�&�&��D���!�!�"�"�"�
�
�
�~�
.�
.�	+�	+��I�(�(�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s�A<�<B�Bc	�F�d
d�}t|���|_t|�d����|�t
d�tjd������5}|j�	t��g��ddd��n#1swxYwY|�|jj
��|�t
d�tjd���dd������5}|j�	t��tdd	��g��ddd��n#1swxYwY|�|jj
t ��dS)Nc��
K�dSrrrs r�fzIAsyncMockAssert.test_assert_has_awaits_not_matching_spec_error.<locals>.fr)rr�rsz^{}$z6Awaits not found.
Expected: [call()]
Actual: [call(1)]z�Error processing expected awaits.
Errors: [None, TypeError('too many positional arguments')]
Expected: [call(), call(1, 2)]
Actual: [call(1)]zarguments\'z
arguments\',?rvr)rr�rr�r%r��format�re�escaper^rr�r.�	__cause__�replacerhr�)r$rMrs   r�.test_assert_has_awaits_not_matching_spec_errorz>AsyncMockAssert.test_assert_has_awaits_not_matching_spec_errors���!�!�!�!��1�%�%�%��	��D����"�"�#�#�#�
�
#�
#���
�
��I�2�3�3�4�4�5�5�	2�
9;��I�'�'�����1�1�1�
	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	
���"�,�0�1�1�1�
�
#�
#���
�
��I�,�-�-�
.5�W�*�,<�.>�.>�
��
�
�	>���I�'�'�����a����(<�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	
���b�l�4�i�@�@�@�@�@s$�<(B0�0B4�7B4�.7E1�1E5�8E5N)r1r2r3r�r�r�r�r�r�r�r�r�rr	rrrr r"r'r)r+r0r;rCrHrJrSrrrr�r��s������� � � �)�)�)����/�/�/�5�5�5� 	(�	(�	(�0�0�0�+�+�+�&�&�&�/�/�/�;�;�;�
>�
>�
>�
@�
@�
@����:#�#�#�	,�	,�	,�1�1�1�"	6�	6�	6�*�*�*�+�+�+�*+�+�+�0�0�0�;�;�;�&+�+�+�A�A�A�A�Arr�)/rrIr\rO�unittest�
contextlibrr�rrrrrr	r
r�mock.backportsrr
�	mock.mockrr�ImportErrorrr!r7r;r@rBrVrDr1rcrrL�TestCaserNr�r�r�r�rrrdr}r�r�rrr�<module>rZsK������	�	�	�	�����	�	�	�	�����%�%�%�%�%�%�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�G�G�G�G�G�G�G�G�������	����������������������(�(�(�	*�	*�	*�	*�	*�	*�	*�	*������������+�+�+���������&�����)�)�)���+�+�+��������:A�:A�:A�:A�:A�h�/�:A�:A�:A�z�����x�(����B4�4�4�4�4�H�%�4�4�4�DQ�Q�Q�Q�Q��)�Q�Q�Q�h^+�^+�^+�^+�^+�H�%�^+�^+�^+�B1�1�1�1�1�x�(�1�1�1�8vH�vH�vH�vH�vH�,�vH�vH�vH�r$?�$?�$?�$?�$?��)�$?�$?�$?�Lo)�o)�o)�o)�o)�h�/�o)�o)�o)�dB6�B6�B6�B6�B6��)�B6�B6�B6�JFA�FA�FA�FA�FA�h�'�FA�FA�FA�FA�FAs�A�A�A