HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/unittest/__pycache__/mock.cpython-311.opt-2.pyc
�

��Vc6���T�dZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZm
Z
ddlmZddlmZmZGd�de��Zd	�ee��D��Zd
ZeZd�Zd�Zd
�Zd�Zd�Zd�Zdxd�Z d�Z!d�Z"d�Z#d�Z$dxd�Z%d�Z&d�Z'd�Z(Gd�de)��Z*Gd�de)��Z+e+��Z,e,j-Z-e,j.Z/e,j0Z1hd�Z2d �Z3Gd!�d"e4��Z5d#�Z6Gd$�d%e)��Z7Gd&�d'e)��Z8Gd(�d)e8��Z9ej:e9j;��Z<Gd*�d+e4��Z=d,�Z>Gd-�d.e8��Z?Gd/�d0e?e9��Z@d1�ZAGd2�d3e)��ZBd4�ZCe-dddddfdd5�d6�ZD		dyd7�ZEe-dddddfdd5�d8�ZFGd9�d:e)��ZGd;�ZHd<�ZIeDeF_)eGeF_JeEeF_KeIeF_Ld=eF_Md>ZNd?ZOd@�PdA�eO�Q��D����ZRd@�PdB�eO�Q��D����ZShdC�ZTdD�ZUdE�d@�PeNeOeReSg���Q��D��ZVhdF�ZWdGhZXeWeXzZYeVeTzZZeZeYzZ[hdH�Z\dI�dJ�dK�dL�dM�Z]e^e^e^e^dNddddOdPd
dNddQ�
Z_dR�Z`dS�ZadT�ZbdU�Zce`eaebecdV�ZddW�ZeGdX�dYe8��ZfGdZ�d[efe9��ZgGd\�d]ef��ZhGd^�d_efe@��ZiGd`�dae8��ZjGdb�dce8��ZkGdd�deekehe@��ZlGdf�dge)��Zmem��Zndh�ZoGdi�djep��Zqeqd�k��Zr		dzdd5�dl�Zsdm�ZtGdn�doe)��Zueves��evenjw��fZxdaydazdp�Z{d{dr�Z|Gds�dte@��Z}du�Z~Gdv�dw��ZdS)|)�Mock�	MagicMock�patch�sentinel�DEFAULT�ANY�call�create_autospec�	AsyncMock�
FILTER_DIR�NonCallableMock�NonCallableMagicMock�	mock_open�PropertyMock�seal�N)�iscoroutinefunction)�CodeType�
ModuleType�
MethodType)�	safe_repr)�wraps�partialc��eZdZdS)�InvalidSpecErrorN��__name__�
__module__�__qualname__���!D:\Python311\Lib\unittest\mock.pyrr(s������B�Br rc�<�h|]}|�d���|��S��_��
startswith)�.0�names  r!�	<setcomp>r),s)��H�H�H�d�4�?�?�3�3G�3G�H�T�H�H�Hr Tc���t|��rt|t��sdSt|d��rt	|d��}t|��pt
j|��S)NF�__func__)�_is_instance_mock�
isinstancer
�hasattr�getattrr�inspect�isawaitable��objs r!�
_is_async_objr44sg�������j��i�&@�&@���u��s�J���'��c�:�&�&���s�#�#�?�w�':�3�'?�'?�?r c�F�t|dd��rt|��SdS)N�__code__F)r/r)�funcs r!�_is_async_funcr8<s)���t�Z��&�&��"�4�(�(�(��ur c�F�tt|��t��S�N)�
issubclass�typerr2s r!r,r,Cs���d�3�i�i��1�1�1r c��t|t��p)t|t��ot|t��Sr:)r-�
BaseExceptionr<r;r2s r!�
_is_exceptionr?Is6���3�
�&�&�	A��3����@�*�S�-�"@�"@�r c�^�t|t��rt|d��r|jS|S�N�mock)r-�
FunctionTypesr.rBr2s r!�
_extract_mockrDPs3���#�}�%�%��'�#�v�*>�*>���x���
r c��	t|t��r|s
|j}d}n/t|t��s	|j}n#t
$rYdSwxYw|rt
|d��}n|}	|tj|��fS#t$rYdSwxYw�NT)
r-r<�__init__rC�__call__�AttributeErrorrr0�	signature�
ValueError)r7�as_instance�eat_self�sig_funcs    r!�_get_signature_objectrOYs����
�$�����k���}�����
��m�
,�
,��	��=�D�D���	�	�	��4�4�	�������4��&�&�������W�&�x�0�0�0�0�������t�t����s#�A�
A�A�(A>�>
B�BFc���t|||�����dS�\}��fd�}t||��|t|��_�t|��_dS)Nc�"���j|i|��dSr:��bind)�self�args�kwargs�sigs   �r!�checksigz"_check_signature.<locals>.checksig{� ������$�!�&�!�!�!�!�!r )rO�_copy_func_detailsr<�_mock_check_sig�
__signature__)r7rB�	skipfirst�instancerXrWs     @r!�_check_signaturer_vsu���
��h�	�
:�
:�C�
�����I�D�#�"�"�"�"�"��t�X�&�&�&�!)�D��J�J��"�D��J�J���r c	�p�dD]2}	t||t||�����##t$rY�/wxYwdS)N)r�__doc__�__text_signature__r�__defaults__�__kwdefaults__)�setattrr/rI)r7�funcopy�	attributes   r!rZrZ�sa�����	�	��G�Y���i�(@�(@�A�A�A�A���	�	�	��D�	����
�s�&�
3�3c���t|t��rdSt|tttf��rt|j��St|dd���dSdS)NTrHF)r-r<�staticmethod�classmethodr�	_callabler+r/r2s r!rkrk�s`���#�t�����t��#��k�:�>�?�?�'����&�&�&��s�J��%�%���t��5r c�<�t|��ttfvSr:)r<�list�tupler2s r!�_is_listro�s����9�9��u�
�%�%r c��	t|t��st|dd��duS|f|jzD]}|j�d���dS� dS)NrHTF)r-r<r/�__mro__�__dict__�get)r3�bases  r!�_instance_callableru�st��@��c�4� � �:��s�J��-�-�T�9�9�����$�����=���Z�(�(�	��4�4�	��5r c�0��t|t��}t|||��}|�|S|\}��fd�}t||��|j}|���sd}||d�}d|z}	t
|	|��||}
t|
|���|
S)Nc�"���j|i|��dSr:rR)rUrVrWs  �r!rXz _set_signature.<locals>.checksig�rYr rf)�
_checksig_rBzYdef %s(*args, **kwargs):
    _checksig_(*args, **kwargs)
    return mock(*args, **kwargs))r-r<rOrZr�isidentifier�exec�_setup_func)rB�originalr^r]�resultr7rXr(�context�srcrfrWs           @r!�_set_signaturer��s����
�8�T�*�*�I�
"�8�X�y�
A�
A�F�
�����I�D�#�"�"�"�"�"��t�X�&�&�&���D���������%�t�4�4�G�$�&*�+�C�	�#�w�����d�m�G����s�#�#�#��Nr c�������_�fd�}�fd�}�fd�}�fd�}�fd�}�fd�}�fd�}	��fd�}
d	�_d
�_d�_t	���_t	���_t	���_�j�_�j	�_	�j
�_
|�_|�_|�_
|	�_|
�_|�_|�_|�_|�_��_dS)Nc����j|i|��Sr:)�assert_called_with�rUrVrBs  �r!r�z'_setup_func.<locals>.assert_called_with�����&�t�&��7��7�7�7r c����j|i|��Sr:)�
assert_calledr�s  �r!r�z"_setup_func.<locals>.assert_called�s���!�t�!�4�2�6�2�2�2r c����j|i|��Sr:)�assert_not_calledr�s  �r!r�z&_setup_func.<locals>.assert_not_called�s���%�t�%�t�6�v�6�6�6r c����j|i|��Sr:)�assert_called_oncer�s  �r!r�z'_setup_func.<locals>.assert_called_once�r�r c����j|i|��Sr:)�assert_called_once_withr�s  �r!r�z,_setup_func.<locals>.assert_called_once_with�s���+�t�+�T�<�V�<�<�<r c����j|i|��Sr:)�assert_has_callsr�s  �r!r�z%_setup_func.<locals>.assert_has_calls�s���$�t�$�d�5�f�5�5�5r c����j|i|��Sr:)�assert_any_callr�s  �r!r�z$_setup_func.<locals>.assert_any_call�s���#�t�#�T�4�V�4�4�4r c����t���_t���_�����j}t|��r|�ur|���dSdSdSr:)�	_CallList�method_calls�
mock_calls�
reset_mock�return_valuer,)�retrfrBs ��r!r�z_setup_func.<locals>.reset_mock�sx���(�{�{���&�[�[����������"���S�!�!�	�#��+�	��N�N������	�	�	�	r Fr)rB�called�
call_count�	call_argsr��call_args_listr�r�r��side_effect�_mock_childrenr�r�r�r�r�r�r�r�r\�_mock_delegate)rfrBrWr�r�r�r�r�r�r�r�s``         r!r{r{�s������G�L�8�8�8�8�8�3�3�3�3�3�7�7�7�7�7�8�8�8�8�8�=�=�=�=�=�6�6�6�6�6�5�5�5�5�5��������G�N��G���G��&�[�[�G��$�;�;�G��"���G���,�G���*�G��!�0�G��!3�G��&=�G�#�/�G��-�G��#�G��)�G�� 1�G��!3�G���G��!�D���r c	����tjj�_d�_d�_t���_�fd�}dD]!}t�|t||�����"dS)Nrc�:��t�j|��|i|��Sr:)r/rB)�attrrUrVrBs   �r!�wrapperz"_setup_async_mock.<locals>.wrappers$���'�w�t�y�$�'�'��8��8�8�8r )�assert_awaited�assert_awaited_once�assert_awaited_with�assert_awaited_once_with�assert_any_await�assert_has_awaits�assert_not_awaited)	�asyncio�
coroutines�
_is_coroutine�await_count�
await_argsr��await_args_listrer)rBr�rgs`  r!�_setup_async_mockr��s���� �+�9�D���D���D�O�$�;�;�D��
9�9�9�9�9�,�>�>�	�	��i���)�!<�!<�=�=�=�=�>�>r c�$�d|dd�z|kS)N�__%s__����r�r(s r!�	_is_magicr�s���d�1�R�4�j� �D�(�(r c�"�eZdZ	d�Zd�Zd�ZdS)�_SentinelObjectc��||_dSr:r��rTr(s  r!rGz_SentinelObject.__init__s
����	�	�	r c��d|jzS�Nzsentinel.%sr��rTs r!�__repr__z_SentinelObject.__repr__����t�y�(�(r c��d|jzSr�r�r�s r!�
__reduce__z_SentinelObject.__reduce__!r�r N)rrrrGr�r�rr r!r�r�sD������'����)�)�)�)�)�)�)�)r r�c�"�eZdZ	d�Zd�Zd�ZdS)�	_Sentinelc��i|_dSr:)�
_sentinelsr�s r!rGz_Sentinel.__init__'s
������r c�l�|dkrt�|j�|t|����S)N�	__bases__)rIr��
setdefaultr�r�s  r!�__getattr__z_Sentinel.__getattr__*s5���;��	!� � ���)�)�$���0E�0E�F�F�Fr c��dS)Nrrr�s r!r�z_Sentinel.__reduce__0s���zr N)rrrrGr�r�rr r!r�r�%sG������K����G�G�G�����r r�>�
_mock_namer��_mock_parentr��_mock_new_name�_mock_new_parent�_mock_side_effect�_mock_return_valuec�x�t�|��d|z}||fd�}||fd�}t||��S)N�_mock_c�T�|j}|�t||��St||��Sr:)r�r/)rTr(�	_the_namerWs    r!�_getz"_delegating_property.<locals>._getEs2���!���	,��4��+�+�+��s�D�!�!�!r c�R�|j}|�||j|<dSt|||��dSr:)r�rrre)rT�valuer(r�rWs     r!�_setz"_delegating_property.<locals>._setJs<���!���	&�',�D�M�)�$�$�$��C��u�%�%�%�%�%r )�_allowed_names�add�property)r(r�r�r�s    r!�_delegating_propertyr�Bse�����t�����4��I��	�"�"�"�"�
 $�y�&�&�&�&��D�$���r c��eZdZd�Zd�ZdS)r�c��t|t��st�||��St|��}t|��}||krdSt	d||z
dz��D]}||||z�}||krdS�dS)NFr�T)r-rm�__contains__�len�range)rTr��	len_value�len_self�i�sub_lists      r!r�z_CallList.__contains__Ws����%��&�&�	2��$�$�T�5�1�1�1���J�J�	��t�9�9���x��	��5��q�(�Y�.��2�3�3�	�	�A��A�a�	�k�M�*�H��5� �
��t�t�
��ur c�D�tjt|����Sr:)�pprint�pformatrmr�s r!r�z_CallList.__repr__es���~�d�4�j�j�)�)�)r N)rrrr�r�rr r!r�r�Us2���������*�*�*�*�*r r�c���t|��}t|��sdS|js|js|j�|j�dS|}|�||urdS|j}|�|r||_||_|r||_||_dS)NFT)rDr,r�r�r�r�)�parentr�r(�new_name�_parents     r!�_check_and_set_parentr�is����%� � �E��U�#�#���u�	�	��U�1��	�	��	�	���u��G�
�+��e��	��5��*���+��(�!'���'���� �#�������4r c��eZdZd�Zd�ZdS)�	_MockIterc�.�t|��|_dSr:)�iterr3)rTr3s  r!rGz_MockIter.__init__�s����9�9����r c�*�t|j��Sr:)�nextr3r�s r!�__next__z_MockIter.__next__�s���D�H�~�~�r N)rrrrGr�rr r!r�r��s2�������������r r�c��eZdZeZdZd�ZdS)�BaseNc��dSr:r�rTrUrVs   r!rGz
Base.__init__�s���r )rrrrr�r�rGrr r!r�r��s/������ ����
�
�
�
�
r r�c��eZdZ	d�Z			d,d�Zd�Zd-d�Z		d.d�Zd	�Zd
�Z	dZ
eee	e
��Zed���Z
ed
��Zed��Zed��Zed��Zed��Zd�Zd�Zeee��Zd/ddd�d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd0d�Z d �Z!d!�Z"d"�Z#d#�Z$d$�Z%d%�Z&d&�Z'd-d'�Z(d(�Z)d)�Z*d1d+�Z+dS)2rc�z�|f}t|t��s]tj|g|�Ri|��j}|�d|�d����}|�t
|��r	t|f}t|j|d|j	i��}tt|���|��}|S)N�spec_set�specra)
r;�AsyncMockMixin�	_MOCK_SIG�bind_partial�	argumentsrsr4r<rra�_safe_superr�__new__)�clsrU�kw�bases�
bound_args�spec_arg�newr^s        r!rzNonCallableMock.__new__�s�������#�~�.�.�	.�"�/��A�d�A�A�A�b�A�A�K�J�!�~�~�j�*�.�.��2H�2H�I�I�H��
.�
�h�(?�(?�
.�'��-���3�<���C�K�(@�A�A�����4�4�<�<�S�A�A���r N�Fc��|�|}|j}
||
d<||
d<||
d<||
d<d|
d<|�|}d}|
�|du}
|�|||	|
��i|
d<||
d	<d|
d
<d|
d<d|
d<d
|
d<t��|
d<t��|
d<t��|
d<||
d<|r
|jdi|��t	t
|���||||||��dS)Nr�r�r�r�F�_mock_sealedTr��_mock_wrapsr��_mock_called�_mock_call_argsr�_mock_call_count�_mock_call_args_list�_mock_mock_callsr��_mock_unsafer)rr�_mock_add_specr��configure_mockrrrG)rTr�rr(r�r��_spec_state�	_new_name�_new_parent�_spec_as_instance�	_eat_self�unsaferVrrs              r!rGzNonCallableMock.__init__�s\��
�	!� �K��=��#)��� �!%����%.��!�"�'2��#�$�#(��� ��	��D��H��	+��d�*�I����D�(�,=�y�I�I�I�%'��!�"�"'����%)��!�"�#(��� �&*��"�#�'(��#�$�+4�;�;��'�(�'0�{�{��#�$�#,�;�;��� �#)��� ��	*��D��)�)�&�)�)�)��O�T�*�*�3�3��%��x���	
�	
�	
�	
�	
r c��	t|��}d|_d|_d|_d|_t|||��dS�Nr)rDr�r�r�r�re)rTrBrg�
inner_mocks    r!�attach_mockzNonCallableMock.attach_mock�sO��	C�#�4�(�(�
�"&�
��&*�
�#� "�
��$(�
�!���i��&�&�&�&�&r c�4�	|�||��dSr:)r�rTr�r�s   r!�
mock_add_speczNonCallableMock.mock_add_spec�s&��	N�
	
���D�(�+�+�+�+�+r c���t|��rtd|�d����d}d}g}t|��D]5}tt	||d����r|�|���6|�`t
|��sQt|t��r|}nt|��}t|||��}	|	o|	d}t|��}|j
}
||
d<||
d<||
d<||
d<||
d<dS)	Nz#Cannot spec a Mock object. [object=�]r��_spec_class�	_spec_set�_spec_signature�
_mock_methods�_spec_asyncs)r,r�dirrr/�appendror-r<rOrr)rTr�r�rrr&r(r*r��resrrs           r!rzNonCallableMock._mock_add_spec�s+���T�"�"�	T�"�#R��#R�#R�#R�S�S�S���������I�I�	*�	*�D�"�7�4��t�#<�#<�=�=�
*��#�#�D�)�)�)���		�H�T�N�N�		��$��%�%�
)�"���"�4�j�j��'��(9�9�F�F�C�!�n�c�!�f�O��t�9�9�D��=��"-���� (����&5��"�#�$(���!�#/��� � � r c��|j}|j�|jj}|tur|�|d���}||_|S)N�()�rr)r�r�r�r�_get_child_mock)rTr�s  r!�__get_return_valuez"NonCallableMock.__get_return_value	sZ���%����	3��%�2�C��'�>�	$��&�&� �D�'���C�!$�D���
r c�b�|j�||j_dS||_t||dd��dS)Nr/)r�r�r�r�)rTr�s  r!�__set_return_valuez"NonCallableMock.__set_return_values@����	;�/4�D��,�,�,�&+�D�#�!�$��t�T�:�:�:�:�:r z1The value to be returned when the mock is called.c�<�|j�t|��S|jSr:)r&r<r�s r!�	__class__zNonCallableMock.__class__"s"����	���:�:����r r�r�r�r�r�c���|j}|�|jS|j}|�It|��s:t	|t
��s%t
|��st|��}||_|Sr:)r�r�r��callabler-r�r?)rT�	delegated�sfs   r!�__get_side_effectz!NonCallableMock.__get_side_effect/sr���'�	��	*��)�)�
�
"���	'�8�B�<�<�	'�"�2�y�1�1�	'�:G��:K�:K�	'��2���B�$&�I�!��	r c�V�t|��}|j}|�	||_dS||_dSr:)�	_try_iterr�r�r�)rTr�r9s   r!�__set_side_effectz!NonCallableMock.__set_side_effect:s;���%� � ���'�	��	*�%*�D�"�"�"�$)�I�!�!�!r �r�r�c�P�	|�g}t|��|vrdS|�t|����d|_d|_d|_t��|_t��|_t��|_|rt|_
|rd|_|j�
��D]9}t|t��s	|t ur�!|�|||����:|j
}t%|��r||ur|�|��dSdSdS)NFrr?)�idr,r�r�r�r�r�r�r�rr�r�r��valuesr-�
_SpecState�_deletedr�r,)rT�visitedr�r��childr�s      r!r�zNonCallableMock.reset_mockEsH��7��	��G�
�d�8�8�w��	��F����r�$�x�x� � � ����������#�+�+���'�k�k���%�K�K����	.�&-�D�#��	*�%)�D�"��(�/�/�1�1�	Z�	Z�E��%��,�,�
���0A�
�����W�<�[��Y�Y�Y�Y��%���S�!�!�	$�c��o�	$��N�N�7�#�#�#�#�#�	$�	$�	$�	$r c��	t|���d����D]V\}}|�d��}|���}|}|D]}t	||��}�t|||���WdS)Nc�8�|d�d��S)Nr�.)�count)�entrys r!�<lambda>z0NonCallableMock.configure_mock.<locals>.<lambda>ps���q�����1D�1D�r )�keyrI)�sorted�items�split�popr/re)rTrV�arg�valrU�finalr3rKs        r!rzNonCallableMock.configure_mockcs���	,��v�|�|�~�~�$E�#D�	F�F�F�
	%�
	%�H�C��
�9�9�S�>�>�D��H�H�J�J�E��C��
*�
*���c�5�)�)����C���$�$�$�$�
	%�
	%r c�&�|dvrt|���|j�%||jvs	|tvrtd|z���nt|��rt|���|js*|�d��rt|�d|�d����|j�|��}|turt|���|�Cd}|j	�t|j	|��}|�|||||���}||j|<n�t|t��rv	t|j|j|j|j|j��}n>#t($r1|jdp|}t)d|�d	|�d
|�d|j�d�	���wxYw||j|<|S)
N>rr)zMock object has no attribute %r)�assert�assret�asert�aseert�assrtz6 is not a valid assertion. Use a spec for the mock if z is meant to be an attribute.)r�r(rrrr��Cannot autospec attr �
 from target �, as it has already been mocked out. [target=�, attr=r%)rIr)�_all_magicsr�rr&r�rsrDrr/r1r-rCr	r�r�r^r�r(rrr)rTr(r}r�target_names     r!r�zNonCallableMock.__getattr__ysH���4�4�	'� ��&�&�&�
�
�	'��4�-�-�
O���1D�
O�$�%F��%M�N�N�N�
O�
�t�_�_�	'� ��&�&�&�� �	N����O�P�P�
N�$��M�M�'+�M�M�M�N�N�N��$�(�(��.�.���X��	0� ��&�&�&�
�	0��E���
8� �� 0�$�7�7���)�)��$�e�t� �*���F�*0�D���%�%�
��
�
+�
+�	0�

@�(��K���&�/��M�6�;������$�
@�
@�
@�"�m�L�9�A�T��&�?�D�?�?�"�?�?�#�?�?�.4�k�?�?�?�@�@�@�
@����*0�D���%��
s�,E	�	;Fc�n�|jg}|j}|}d}|dgkrd}|�7|}|�|j|z��d}|jdkrd}|j}|�7tt	|����}|jpd}t
|��dkr|ddvr|dz
}||d<d�|��S)NrIr/rrBr�)r/z().r)r�r�r,rm�reversedr�r��join)rT�
_name_listr��last�dot�_firsts      r!�_extract_mock_namez"NonCallableMock._extract_mock_name�s����)�*�
��'�������$���	��C��	/��D����g�4�s�:�;�;�;��C��%��-�
����.�G��	/��(�:�.�.�/�/�
���*�F���z�?�?�Q��	��!�}�M�1�
��#�
���
�1�
��w�w�z�"�"�"r c���|���}d}|dvrd|z}d}|j�d}|jrd}||jjz}dt	|��j�|�|�dt|���d�S)	Nr)rBzmock.z name=%rz spec=%rz spec_set=%r�<z id='z'>)rhr&r'rr<rA)rTr(�name_string�spec_strings    r!r�zNonCallableMock.__repr__�s����&�&�(�(�����(�(�	,�$�t�+�K�����	B�$�K��~�
-�,��%��(8�(A�A�K����J�J����K��K�K��t�H�H�H�H�	
�	
r c�x�	tst�|��S|jpg}t	t|����}t
|j��}d�|j�	��D��}d�|D��}d�|D��}tt||z|z|z����S)Nc�*�g|]\}}|tu�|��Sr)rD)r'�m_name�m_values   r!�
<listcomp>z+NonCallableMock.__dir__.<locals>.<listcomp>�s7��(�(�(�&�v�w��h�&�(��(�(�(r c�<�g|]}|�d���|��Sr#r%�r'�es  r!rqz+NonCallableMock.__dir__.<locals>.<listcomp>�s)��C�C�C�1����c�1B�1B�C�Q�C�C�Cr c�Z�g|](}|�d��rt|���&|��)Sr#)r&r�rss  r!rqz+NonCallableMock.__dir__.<locals>.<listcomp>�sE��#�#�#�1����c�1B�1B�#��q�\�\�#�Q�#�#�#r )r�object�__dir__r)r+r<rmrrr�rOrN�set)rT�extras�	from_type�	from_dict�from_child_mockss     r!rwzNonCallableMock.__dir__�s���F��	(��>�>�$�'�'�'��#�)�r����T�
�
�O�O�	����'�'�	�(�(�*.�*=�*C�*C�*E�*E�(�(�(��D�C�	�C�C�C�	�#�#�	�#�#�#�	��c�&�9�,�y�8�;K�K�L�L�M�M�Mr c�T���|tvrt��||��S�jr+�j�$|�jvr|�jvrt
d|z���|tvrd|z}t
|���|tvr��j�|�jvrt
d|z���t|��s5tt���|t||����|���fd�}nft�|d|��tt���||��|�j|<n+|dkr	|�_dSt�|||��r
|�j|<�jr;t#�|��s+�����d|��}t
d|�����t��||��S)Nz!Mock object has no attribute '%s'z.Attempting to set unsupported magic method %r.c�����g|�Ri|��Sr:r)rUrr|rTs  ��r!rLz-NonCallableMock.__setattr__.<locals>.<lambda>�s!���H�H�T�,G�D�,G�,G�,G�B�,G�,G�r r6rIzCannot set )r�rv�__setattr__r'r)rrrI�_unsupported_magicsr_r,rer<�_get_methodr�r�r&r
r.rh)rTr(r��msg�	mock_namer|s`    @r!rzNonCallableMock.__setattr__�s�����>�!�	2��%�%�d�D�%�8�8�8��n�	2��!3�	2���*�*�	2���
�%�	2�!�!D�t�!K�L�L�L�
�(�
(�	2�B�T�I�C� ��%�%�%�
�[�
 �	2��!�
Q�$�d�>P�2P�
Q�$�%H�4�%O�P�P�P�$�U�+�+�	
2���T�
�
�D�+�d�E�*B�*B�C�C�C� ��G�G�G�G�G���&�d�E�4��>�>�>���T�
�
�D�%�0�0�0�,1��#�D�)�)�
�[�
 �	2�$�D���F�$�T�5�$��=�=�
2�,1��#�D�)���	<�W�T�4�%8�%8�	<��2�2�4�4�=�=�t�=�=�I� �!:�y�!:�!:�;�;�;��!�!�$��e�4�4�4r c��|tvr>|t|��jvr(tt|��|��||jvrdS|j�|t��}||jvr)tt|���	|��n|turt|���|tur|j|=t|j|<dSr:)r_r<rr�delattrr�rs�_missingrr�__delattr__rDrI)rTr(r3s   r!r�zNonCallableMock.__delattr__s����;��	�4�4��:�:�+>�#>�	��D��J�J��%�%�%��4�=�(�
����!�%�%�d�H�5�5���4�=� �	'����.�.�:�:�4�@�@�@�@�
�H�_�	'� ��&�&�&��h��	*��#�D�)�$,���D�!�!�!r c�6�|jpd}t|||��SrA)r��_format_call_signature�rTrUrVr(s    r!�_format_mock_call_signaturez+NonCallableMock._format_mock_call_signature#s ����(�&��%�d�D�&�9�9�9r rc�d�d}|�||��}|j}|j|�}||||fzS)Nz.expected %s not found.
Expected: %s
Actual: %s)r�r�)rTrUrV�action�message�expected_stringr��
actual_strings        r!�_format_mock_failure_messagez,NonCallableMock._format_mock_failure_message(sD��D���:�:�4��H�H���N�	�8��8�)�D�
��&�/�=�A�A�Ar c��	|s|jSd}|�dd���d��}|j}|D]M}|�|��}|�t|t��rnt|��}|j}|j}�N|S)Nr/rrI)r(�replacerPr�rsr-rCrD)rTr(rW�names�childrenrFs      r!�_get_call_signature_from_namez-NonCallableMock._get_call_signature_from_name0s���		��	(��'�'������T�2�&�&�,�,�S�1�1���&���
	,�
	,�D��L�L��&�&�E��
,�
�5�*� =� =�
,���
&�e�,�,�� �/���+����
r c��	t|t��r/t|��dkr|�|d��}n|j}|�vt|��dkrd}|\}}n|\}}}	|j|i|��}t
||j|j��S#t$r}|�
d��cYd}~Sd}~wwxYw|S)Nr�rr)r-rnr�r�r(rSrrUrV�	TypeError�with_traceback)rT�_callrWr(rUrV�
bound_callrts        r!�
_call_matcherzNonCallableMock._call_matcherQs���	��e�U�#�#�	'��E�
�
�Q��	'��4�4�U�1�X�>�>�C�C��&�C��	��5�z�z�Q��
+���$���f�f�%*�"��d�F�
.�%�S�X�t�6�v�6�6�
��D�*�/�:�3D�E�E�E���
.�
.�
.��'�'��-�-�-�-�-�-�-�-�����
.�����Ls�1'B�
C�#B=�7C�=Cc��	|jdkr8d|jpd�d|j�d|�����}t|���dS)Nr�
Expected 'rBz"' to not have been called. Called � times.�r�r��_calls_repr�AssertionError�rTr�s  r!r�z!NonCallableMock.assert_not_calledlsg��	��?�a��	&�	&��o�/��/�/��o�o�o��&�&�(�(�(�*�C�!��%�%�%�	&�	&r c�T�	|jdkrd|jpdz}t|���dS)Nrz"Expected '%s' to have been called.rB)r�r�r�r�s  r!r�zNonCallableMock.assert_calledvsB��	��?�a��	&�7��O�-�v�/�C� ��%�%�%�	&�	&r c��	|jdks8d|jpd�d|j�d|�����}t|���dS)Nr�r�rBz#' to have been called once. Called r�r�r�s  r!r�z"NonCallableMock.assert_called_once~sg��	���!�#�	&�	&��o�/��/�/��o�o�o��&�&�(�(�(�*�C�!��%�%�%�	&�	&r c�v����	�j�/������}d}d|�d|��}t|������fd�}��t	��fd�����}���j��}||kr1t|t��r|nd}t|����|�dS)Nznot called.z#expected call not found.
Expected: �	
Actual: c�4��������}|Sr:�r��r�rUrVrTs ���r!�_error_messagez:NonCallableMock.assert_called_with.<locals>._error_message�s����3�3�D�&�A�A�C��Jr T��two)r�r�r�r��_Callr-�	Exception)rTrUrV�expected�actual�
error_messager��causes```     r!r�z"NonCallableMock.assert_called_with�s������	3��>�	0��7�7��f�E�E�H�"�F�F��x�x���)�M� ��/�/�/�	�	�	�	�	�	�	��%�%�e�T�6�N��&E�&E�&E�F�F���#�#�D�N�3�3���X��	>� *�8�Y� ?� ?�I�H�H�T�E� ���!1�!1�2�2��=�	>�	>r c��	|jdks8d|jpd�d|j�d|�����}t|���|j|i|��S)Nr�r�rBz' to be called once. Called r�)r�r�r�r�r��rTrUrVr�s    r!r�z'NonCallableMock.assert_called_once_with�su��	)���!�#�	&�	&��o�/��/�/��o�o�o��&�&�(�(�(�*�C�!��%�%�%�&�t�&��7��7�7�7r c���	�fd�|D��}td�|D��d��}t�fd��jD����}|su||vro|�d}nd�d�|D����}t	|�dt|�����d�	���d
������|�dSt|��}g}|D]=}	|�|���#t$r|�
|��Y�:wxYw|r-t	�jpd�dt|���d
|�d���|�dS)Nc�:��g|]}��|����Sr�r��r'�crTs  �r!rqz4NonCallableMock.assert_has_calls.<locals>.<listcomp>��'���9�9�9�a�D�&�&�q�)�)�9�9�9r c3�DK�|]}t|t���|V��dSr:�r-r�rss  r!�	<genexpr>z3NonCallableMock.assert_has_calls.<locals>.<genexpr>��1����F�F�A�Z��9�-E�-E�F�a�F�F�F�F�F�Fr c3�B�K�|]}��|��V��dSr:r�r�s  �r!r�z3NonCallableMock.assert_has_calls.<locals>.<genexpr>�s1�����M�M��d�0�0��3�3�M�M�M�M�M�Mr zCalls not found.z+Error processing expected calls.
Errors: {}c�@�g|]}t|t��r|nd��Sr:r�rss  r!rqz4NonCallableMock.assert_has_calls.<locals>.<listcomp>��;��$7�$7�$7�()�*4�A�y�)A�)A�$K�A�A�t�$7�$7�$7r �
Expected: �Actual)�prefixrIrBz does not contain all of z in its call list, found z instead)
r�r�r��formatr�r��rstriprm�removerKr,r�rn)	rT�calls�	any_orderr�r��	all_calls�problem�	not_found�kalls	`        r!r�z NonCallableMock.assert_has_calls�s����	1�:�9�9�9�5�9�9�9���F�F��F�F�F��M�M���M�M�M�M�T�_�M�M�M�M�M�	��	��y�(�
��8�0�G�G� ,�-3�V�$7�$7�-5�$7�$7�$7�.8�.8��%��G�G�!*�5�!1�!1�G��'�'�x�'�8�8�?�?��D�D�G�G����	�

�F���O�O�	��	��	'�	'�D�
'�� � ��&�&�&�&���
'�
'�
'�� � ��&�&�&�&�&�
'�����	� �&*�o�&?��&?�&?�&+�I�&6�&6�&6�&6�	�	�	�C����	
�	�	s�C.�.D�Dc�&��	��t||fd�����}t|t��r|nd}�fd��jD��}|s|t|��vr)��||��}td|z��|�dS)NTr�c�:��g|]}��|����Srr�r�s  �r!rqz3NonCallableMock.assert_any_call.<locals>.<listcomp>�s'���E�E�E�A�$�$�$�Q�'�'�E�E�Er z%s call not found)r�r�r-r�r��_AnyComparerr�r��rTrUrVr�r�r�r�s`      r!r�zNonCallableMock.assert_any_call�s����	,�
�%�%�e�T�6�N��&E�&E�&E�F�F��&�x��;�;�E�����E�E�E�E��1D�E�E�E���	�H�L��$8�$8�8�	�"�>�>�t�V�L�L�O� �#�o�5����
�	�	r c��	|�d��}||jdvrtdi|��S|jr7d|vrd|d��nd}|���|z}t|���t
|��}t|t��r|tvrt}n�t|t��r)|tvs|jr||jvrt}ndt}n\t|t��s:t|t��rt}n*t|t��rt }n
|jd}|di|��S)Nrr*r(rIr/r�r)rsrrr
r
rhrIr<r;r�_async_method_magicsr��_all_sync_magicsr)�
CallableMixinr
rrrq)rTrrrgr��_type�klasss       r!r1zNonCallableMock._get_child_mock�sk��	!��F�F�;�'�'�	���
�n�5�5�	#��?�?�r�?�?�"���	,�,2�b�L�B�(�B�v�J�(�(�(�d�I��/�/�1�1�I�=�I� ��+�+�+��T�
�
���e�Y�'�'�	%�I�9M�,M�	%��E�E�
��~�
.�
.�
	%��-�-�
"��&�
"�+4��8J�+J�
"�"���!����E�=�1�1�	%��%�!5�6�6�
�!����E�?�3�3�
�����M�!�$�E��u�{�{�r�{�{�r �Callsc�L�	|jsdSd|�dt|j���d�S)Nr�
z: rI)r�r)rTr�s  r!r�zNonCallableMock._calls_repr
s;��	���	��2�;�F�;�;�i���8�8�;�;�;�;r )NNNNNNrNFNF�F)FFr:)r)r�),rrrrrGr r#r�"_NonCallableMock__get_return_value�"_NonCallableMock__set_return_value�"_NonCallableMock__return_value_docr�r�r6r�r�r�r�r�r��!_NonCallableMock__get_side_effect�!_NonCallableMock__set_side_effectr�r�rr�rhr�rwrr�r�r�r�r�r�r�r�r�r�r�r�r1r�rr r!rr�s�������*�
�
�
�">B�EI�<A�*
�*
�*
�*
�Z'�'�'�,�,�,�,�@E�!&�0�0�0�0�>
�
�
�;�;�;�M���8�.�0B�.�0�0�L�� � ��X� �
"�
!�(�
+�
+�F�%�%�l�3�3�J�$�$�[�1�1�I�)�)�*:�;�;�N�%�%�l�3�3�J�	�	�	�*�*�*��(�,�.?�@�@�K�$�u�%�$�$�$�$�$�<%�%�%�,,�,�,�^#�#�#�6
�
�
�*N�N�N�$$5�$5�$5�N-�-�-�$:�:�:�
B�B�B�B����B���6&�&�&�&�&�&�&�&�&�>�>�>�,	8�	8�	8�*�*�*�*�Z
�
�
� #�#�#�L
<�
<�
<�
<�
<�
<r rc��eZdZ	d�ZdS)r�c�d�|D],}td�t||��D����rdS�-dS)Nc� �g|]\}}||k��Srr)r'r�r�s   r!rqz-_AnyComparer.__contains__.<locals>.<listcomp>%s1�����$�H�f��F�"���r TF)�all�zip)rT�itemr�s   r!r�z_AnyComparer.__contains__"s^���	�	�E����(+�D�%�(8�(8������
��t�t�	
�
�ur N)rrrr�rr r!r�r�s(�����������r r�c��|�|St|��r|St|��r|S	t|��S#t$r|cYSwxYwr:)r?rkr�r�r2s r!r=r=-sn��
���
��S�����
���~�~���
���C�y�y��������
�
�
����s�7�A�Ac
�H�eZdZddedddddddf
d�Zd�Zd�Zd�Zd�Zd�Z	dS)	r�Nrc
�x�||jd<tt|��j|||||||	|
fi|��||_dS)Nr�)rrrr�rGr�)rTr�r�r�rr(r�r�rrrrVs            r!rGzCallableMixin.__init__>sa��/;��
�*�+�1��M�4�(�(�1��%��x����K�	
�	
�39�	
�	
�	
�
'����r c��dSr:rr�s   r!r[zCallableMixin._mock_check_sigJs���r c�P�|j|i|��|j|i|��|j|i|��Sr:)r[�_increment_mock_call�
_mock_callr�s   r!rHzCallableMixin.__call__OsK��	���d�-�f�-�-�-�!��!�4�2�6�2�2�2��t���/��/�/�/r c��|j|i|��Sr:)�_execute_mock_callr�s   r!r�zCallableMixin._mock_callWs��&�t�&��7��7�7�7r c�~�d|_|xjdz
c_t||fd���}||_|j�|��|jdu}|j}|j}|dk}|j	�td||f����|j
}|��|rB|j�t|||f����|jdu}|r
|jdz|z}t|||f��}	|j	�|	��|jr|rd}
nd}
|jdk}|j|
z|z}|j
}|��dSdS)NTr�r�r/rrI)r�r�r�r�r�r,r�r�r�r�r�r�)rTrUrVr��do_method_calls�method_call_name�mock_call_name�	is_a_callr�this_mock_callrfs           r!r�z"CallableMixin._increment_mock_callZs���������1����
�t�V�n�$�/�/�/�������"�"�5�)�)�)��+�4�7���?���,��"�d�*�	�����u�b�$��%7�8�8�9�9�9��+���	7��
W��(�/�/��7G��v�6V�0W�0W�X�X�X�"-�":�$�"F��"�W�'2�'=��'C�FV�'V�$�#�N�D�&�#A�B�B�N��"�)�)�.�9�9�9��)�
S����C�C��C�'�6�$�>�	�!,�!;�c�!A�N�!R��&�6�K�-�	7�	7�	7�	7�	7r c��|j}|�Tt|��r|�t|��s!t|��}t|��r|�n||i|��}|tur|S|jtur|jS|j�
|j|i|��S|jSr:)r�r?rkr�rr�r�r)rTrUrV�effectr}s     r!r�z CallableMixin._execute_mock_call�s����!���	��V�$�$�
1����v�&�&�
1��f���� ��(�(�!� �L�!� ���0��0�0���W�$�
��
��"�'�1�	%��$�$���	5�#�4�#�T�4�V�4�4�4�� � r )
rrrrrGr[rHr�r�r�rr r!r�r�<s������� �d���$��d�!�R�T�	'�	'�	'�	'�
�
�
�
0�0�0�8�8�8�,7�,7�,7�\!�!�!�!�!r r�c��eZdZdS)rNrrr r!rr�s������5�5r rc�@�d}|D]}||vrt|�d�����dS)N)�	autospect�	auto_spec�set_specz5 might be a typo; use unsafe=True if this is intended)�RuntimeError)�kwargs_to_check�typos�typos   r!�_check_spec_arg_typosr�sP��2�E������?�"�	���P�P�P���
�	��r c�~�eZdZdZgZdd�d�Zd�Zd�Zd�Ze	j
d���Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�ZdS)�_patchNF�rc
��|�)|turtd���|�td���|
st|	��t|��rt	d|�d|�d����t|��rt	d|�d|�d����||_||_||_||_||_	||_
d|_||_||_
|	|_g|_dS)Nz,Cannot use 'new' and 'new_callable' togetherz1Cannot use 'autospec' and 'new_callable' togetherzCannot spec attr z0 as the spec has already been mocked out. [spec=r%z? as the spec_set target has already been mocked out. [spec_set=F)rrKrr,r�getterrgr
�new_callabler��create�	has_localr��autospecrV�additional_patchers)rTrrgr
r�r	r�rrrVrs           r!rGz_patch.__init__�s\���	��'�!�
� �B�����
� �G�����	*�!�&�)�)�)��T�"�"�	A�"�@�I�@�@�6:�@�@�@�A�A�
A��X�&�&�	P�"�O�I�O�O�AI�O�O�O�P�P�
P����"������(�����	������� ��
� ��
����#%�� � � r c���t|j|j|j|j|j|j|j|j|j	�	�	}|j
|_
d�|jD��|_|S)Nc�6�g|]}|�����Sr)�copy)r'�ps  r!rqz_patch.copy.<locals>.<listcomp>s-��'
�'
�'
��A�F�F�H�H�'
�'
�'
r )rrrgr
r�r	r�rrrV�attribute_namer)rT�patchers  r!rz_patch.copysq����K�����4�9��K����M�4�,�d�k�
�
��
"&�!4���'
�'
�"�6�'
�'
�'
��#��r c���t|t��r|�|��Stj|��r|�|��S|�|��Sr:)r-r<�decorate_classr0r�decorate_async_callable�decorate_callable)rTr7s  r!rHz_patch.__call__sc���d�D�!�!�	-��&�&�t�,�,�,��&�t�,�,�	6��/�/��5�5�5��%�%�d�+�+�+r c��t|��D]q}|�tj��s�"t	||��}t|d��s�C|���}t||||�����r|S�NrH)r+r&r�TEST_PREFIXr/r.rre)rTr�r��
attr_valuers     r!rz_patch.decorate_class's�����J�J�		6�		6�D��?�?�5�#4�5�5�
�� ���-�-�J��:�z�2�2�
���i�i�k�k�G��E�4����!4�!4�5�5�5�5��r c#�TK�g}tj��5}|jD]W}|�|��}|j�|�|���4|jtur|�|���X|t|��z
}||fV�ddd��dS#1swxYwYdSr:)
�
contextlib�	ExitStack�	patchings�
enter_contextr�updater
rr,rn)rT�patchedrU�keywargs�
extra_args�
exit_stack�patchingrRs        r!�decoration_helperz_patch.decoration_helper5s�����
�
�
!�
#�
#�		#�z�#�-�
+�
+�� �.�.�x�8�8���*�+��O�O�C�(�(�(�(��\�W�,�+��%�%�c�*�*�*���E�*�%�%�%�D���"�"�"�"�		#�		#�		#�		#�		#�		#�		#�		#�		#�		#�		#�		#����		#�		#�		#�		#�		#�		#s�A8B�B!�$B!c�����t�d��r�j�����St������fd�����g�_�S)Nrc�|�����||��5\}}�|i|��cddd��S#1swxYwYdSr:�r&�rUr"�newargs�newkeywargsr7r!rTs    ���r!r!z)_patch.decorate_callable.<locals>.patchedJs�����'�'��(,�(0�2�2�
5�5K�g�{��t�W�4��4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5�
5�
5s�1�5�5�r.rr,r�rTr7r!s``@r!rz_patch.decorate_callableDsv������4��%�%�	��N�!�!�$�'�'�'��K�	�t���	5�	5�	5�	5�	5�	5�
��	5�"�F����r c�����t�d��r�j�����St������fd�����g�_�S)Nrc���K����||��5\}}�|i|���d{V��cddd��S#1swxYwYdSr:r)r*s    ���r!r!z/_patch.decorate_async_callable.<locals>.patched[s�������'�'��(,�(0�2�2�
;�5K�g�{�!�T�7�:�k�:�:�:�:�:�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�
;�
;s
�9�=�=r-r.s``@r!rz_patch.decorate_async_callableUsv������4��%�%�	��N�!�!�$�'�'�'��K�	�t���	;�	;�	;�	;�	;�	;�
��	;�"�F����r c�`�|���}|j}t}d}	|j|}d}n-#tt
f$rt
||t��}YnwxYw|tvrt|t��rd|_
|j
s|turt	|�d|�����||fS)NFTz does not have the attribute )rrgrrrrI�KeyErrorr/�	_builtinsr-rr	)rT�targetr(r|�locals     r!�get_originalz_patch.get_originalfs����������~������	���t�,�H��E�E����)�	6�	6�	6��v�t�W�5�5�H�H�H�	6����
�9��	��F�J�!?�!?�	��D�K��{�	�x�7�2�	� �7=�v�v�t�t�D���
����s�
6�'A �A c��	|j|j|j}}}|j|j}}|j}|���|_|durd}|durd}|durd}|�|�td���|�|�|dvrtd���|�	��\}}|tu�r�|���d}	|dur|}|dur|}d}n|�	|dur|}d}n|dur|}|�|�/|turtd���t|t��rd}	|�t|��rt}
nt}
i}|�|}
nN|�|�J|}|�|}t!|��rd|v}
nt#|��}
t|��rt}
n	|
rt$}
|�||d<|�||d	<t|
t��r&t'|
t(��r|jr
|j|d
<|�|��|
di|��}|	r_t/|��rP|}|�|}t!|��st1|��st$}
|�d
��|
d|dd�|��|_n�|��|turtd
���|turtd���t7|��}|dur|}t/|j��r#t9d|j�d|j�d|�d����t/|��rAt;|jd|j��}t9d|j�d|�d|j�d|�d�	���t=|f||jd�|��}n|rtd���|}||_||_ tCj"��|_#	tI|j|j|��|j%�ci}|jtur
|||j%<|j&D]?}|j#�'|��}|jtur|�|���@|S|S#|j(tSj*���s�YdSxYw)NFzCan't specify spec and autospec)TNz6Can't provide explicit spec_set *and* spec or autospecTz!Can't use 'spec' with create=TruerHr�r�r(r/r0zBautospec creates the mock for you. Can't specify autospec and new.z%Can't use 'autospec' with create=Truer[z: as the patch target has already been mocked out. [target=r^r%rr\r])r��_namez.Can't pass kwargs to a mock we aren't creatingr)+r
r�r�rrVrrr4r�r6rr-r<r4r
rror8r
r;rrgr r,rurQr��boolrr/r	�
temp_original�is_localrr�_exit_stackrerrr�__exit__�sys�exc_info)rTr
r�r�rrVrr|r5�inherit�Klass�_kwargs�	this_spec�not_callabler`�new_attrr#r%rRs                   r!�	__enter__z_patch.__enter__~s��� �"�h��	�4�=�8�T���=�$�+�&���(���k�k�m�m����5�=�	��D��u��	��H��u��	��H��	?��	?��=�>�>�>�
�	V��	V��L�(�	V��T�U�U�U��+�+�-�-���%��'�>�c	N�h�c	N��G��t�|�
$����t�#� �'�H��D���
$��t�#� �#�H��D���T�!�
$�#���
#�8�
#��w�&�I�#�$G�H�H�H��h��-�-�#�"�G��
"�
�h� 7� 7�
"�!���!���G��

1�$����
1�X�
1� �	��)� (�I��I�&�&�;�#-�Y�#>�L�L�'/�	�':�':�#:�L� ��+�+�1�%�E�E�!�1�0�E��
'�"&�����
/�&.��
�#��5�$�'�'�
1��5�/�2�2�
1�7;�~�
1�"&�.�����N�N�6�"�"�"��%�"�"�'�"�"�C��
4�,�S�1�1�
4�!�	��)� (�I� ��+�+�1�&�y�1�1�1�0�E����F�#�#�#�#(�5�$4�S�D�$4�$4�+2�$4�$4�� ��
� 	N��'�!�
��(�����7�"�
I�� G�H�H�H��H�~�~�H��4��
$�#�� ���-�-�
D�&�C�D�N�C�C�#�{�C�C�5=�C�C�C�D�D�D�!��*�*�
D�%�d�k�:�t�{�K�K��&�C�D�N�C�C�"�C�C�#�{�C�C�5=�C�C�C�D�D�D�
"�(�B�X�(,��B�B�:@�B�B�C�C�
�	N��L�M�M�M���%�����
�%�/�1�1���	��D�K����:�:�:��"�
"��
��8�w�&�;�7:�J�t�2�3� $� 8�/�/�H��*�8�8��B�B�C��|�w�.�/�"�)�)�#�.�.�.��!�!��J��	� �4�=�#�,�.�.�1�
��
�
�
���s�BO�O�O=c�j�	|jr/|jtur!t|j|j|j��ndt
|j|j��|jsCt|j|j��r	|jdvr t|j|j|j��|`|`|`|j	}|`	|j
|�S)N)rarrc�__annotations__rd)r;r:rrer4rgr�r	r.r<r=)rTr?r$s   r!r=z_patch.__exit__s�����=�		I�T�/�w�>�		I��D�K����1C�D�D�D�D��D�K���0�0�0��;�
I����T�^�(L�(L�
I���+=�=�
I�
���T�^�T�5G�H�H�H����M��K��%�
���"�z�"�H�-�-r c�d�	|���}|j�|��|Sr:)rF�_active_patchesr,�rTr}s  r!�startz_patch.start%s0��;����!�!����#�#�D�)�)�)��
r c��		|j�|��n#t$rYdSwxYw|�ddd��Sr:)rJr�rKr=r�s r!�stopz_patch.stop,s^��#�	�� �'�'��-�-�-�-���	�	�	��4�4�	�����}�}�T�4��.�.�.s��
,�,)rrrrrJrGrrHrr�contextmanagerr&rrr6rFr=rLrNrr r!rr�s��������N��O�AF�"&�"&�"&�"&�"&�J
�
�
�,�,�,������#�#���#����"���"���0P�P�P�d.�.�.�*���/�/�/�/�/r rc���	|�dd��\}}n-#tttf$rtd|�����wxYwt	t
j|��|fS)NrIr�z,Need a valid target to patch. You supplied: )�rsplitr�rKrIr�pkgutil�resolve_name)r4rgs  r!�_get_targetrT8s���G�"�M�M�#�q�1�1���	�	���z�>�2�G�G�G��E�6�E�E�G�G�	G�G�����7�'��0�0�)�;�;s	��*Arc���	t���turt��d�����fd�}
t|
||||||||	|��
�
S)Nz3 must be the actual object to be patched, not a strc����Sr:r�r4s�r!rLz_patch_object.<locals>.<lambda>Ws���V�r r)r<�strr�r)r4rgr
r�r	r�rrrrVrs`          r!�
_patch_objectrYAsu���
��F�|�|�s��
���L�L�L�
�
�	
��^�^�^�F���	�3��f��(�L�&�����r c���	t���turttj���}n�fd�}|std���t
|�����}|d\}	}
t||	|
|||||i�	�	}|	|_	|dd�D]=\}	}
t||	|
|||||i�	�	}|	|_	|j
�|���>|S)Nc����Sr:rrWs�r!rLz!_patch_multiple.<locals>.<lambda>ws����r z=Must supply at least one keyword argument with patch.multiplerr�)r<rXrrRrSrKrmrOrrrr,)
r4r�r	r�rrrVrrOrgr
r�this_patchers
`            r!�_patch_multipler]^s����(�F�|�|�s�� ���-�v�6�6���������
��K�
�
�	
�
������ � �E��1�X�N�I�s���	�3��f�h��,����G�'�G������)�9�9��	�3���I�s�D�&�(��l�B�
�
��'0��#��#�*�*�<�8�8�8�8��Nr c�Z�	t|��\}	}
t|	|
||||||||��
�
S)Nr)rTr)r4r
r�r	r�rrrrVrrgs           r!rr�sJ��F�N$�F�+�+��F�I���	�3��f��(�L�&�����r c�H�eZdZ	d
d�Zd�Zd�Zd�Zd�Zd�Zd	�Z	d
�Z
d�ZdS)�_patch_dictrFc��||_t|��|_|j�|��||_d|_dSr:)�in_dict�dictrBr �clear�	_original)rTrbrBrdrVs     r!rGz_patch_dict.__init__�s>������6�l�l�������6�"�"�"���
�����r c����t�t��r�����St�����fd���}|S)Nc�������	�|i|������S#����wxYwr:)r`�
_unpatch_dict)rUr�frTs  ��r!�_innerz$_patch_dict.__call__.<locals>._inner
sV���������
%��q�$�~�"�~�~��"�"�$�$�$�$���"�"�$�$�$�$���s	�3�A	)r-r<rr)rTrirjs`` r!rHz_patch_dict.__call__s_�����a����	*��&�&�q�)�)�)�	�q���	%�	%�	%�	%�	%�
��	%��
r c� �t|��D]}}t||��}|�tj��rLt|d��r<t
|j|j|j	��}||��}t|||���~|Sr)r+r/r&rrr.r`rbrBrdre)rTr�r�r�	decorator�	decorateds      r!rz_patch_dict.decorate_classs�����J�J�	0�	0�D� ���-�-�J����� 1�2�2�
0���Z�0�0�
0�'���d�k�4�:�N�N�	�%�I�j�1�1�	���t�Y�/�/�/���r c�:�	|���|jSr:)r`rbr�s r!rFz_patch_dict.__enter__ s����������|�r c��|j}t|jt��rt	j|j��|_|j}|j}	|���}n"#t$ri}|D]
}||||<�YnwxYw||_	|rt|��	|�|��dS#t$r|D]
}||||<�YdSwxYwr:)rBr-rbrXrRrSrdrrIre�_clear_dictr )rTrBrbrdr|rMs      r!r`z_patch_dict._patch_dict&s!������d�l�C�(�(�	>�"�/���=�=�D�L��,���
��	-��|�|�~�~�H�H���	-�	-�	-��H��
-�
-�� '�����
�
�
-�
-�		-����"����	!��� � � �	+��N�N�6�"�"�"�"�"���	+�	+�	+��
+�
+��%�c�{�����
+�
+�
+�	+���s$�A$�$B�B�B6�6C�Cc��|j}|j}t|��	|�|��dS#t$r|D]
}||||<�YdSwxYwr:)rbrerpr rI)rTrbr|rMs    r!rhz_patch_dict._unpatch_dictBs����,���>���G����	-��N�N�8�$�$�$�$�$���	-�	-�	-��
-�
-��'��}�����
-�
-�
-�	-���s�6�A�Ac�>�	|j�|���dS�NF)rerh)rTrUs  r!r=z_patch_dict.__exit__Os&����>�	!���� � � ��ur c�n�	|���}tj�|��|Sr:)rFrrJr,rKs  r!rLz_patch_dict.startVs0��;����!�!����%�%�d�+�+�+��
r c��		tj�|��n#t$rYdSwxYw|�ddd��Sr:)rrJr�rKr=r�s r!rNz_patch_dict.stop]s^��#�	��"�)�)�$�/�/�/�/���	�	�	��4�4�	�����}�}�T�4��.�.�.s�#�
1�1N)rF)rrrrGrHrrFr`rhr=rLrNrr r!r`r`�s��������8�������������+�+�+�8
-�
-�
-�������/�/�/�/�/r r`c��	|���dS#t$rt|��}|D]}||=�YdSwxYwr:)rdrIrm)rb�keysrMs   r!rprphse����
�
������������G�}�}���	�	�C�����	�	�	����s��!=�=c�h�	ttj��D]}|����dSr:)rbrrJrN)rs r!�_patch_stopallryqs8��A��&�0�1�1����
�
�
������r �testz�lt le gt ge eq ne getitem setitem delitem len contains iter hash str sizeof enter exit divmod rdivmod neg pos abs invert complex int float index round trunc floor ceil bool next fspath aiter zDadd sub mul matmul truediv floordiv mod lshift rshift and xor or pow� c#� K�|]	}d|zV��
dS)zi%sNr�r'�ns  r!r�r��s&����7�7��5�1�9�7�7�7�7�7�7r c#� K�|]	}d|zV��
dS)zr%sNrr}s  r!r�r��s&����5�5�q����5�5�5�5�5�5r >rw�__get__�__set__r��
__delete__�
__format__r��__missing__�__getstate__�__reversed__�__setstate__�
__getformat__�
__reduce_ex__�__getnewargs__�__subclasses__�__getinitargs__�__getnewargs_ex__c�"��	�fd�}||_|S)Nc����|g|�Ri|��Sr:r)rTrUrr7s   �r!�methodz_get_method.<locals>.method�s#����t�D�&�4�&�&�&�2�&�&�&r )r)r(r7r�s ` r!r�r��s+���@�'�'�'�'�'��F�O��Mr c��h|]}d|z��S)r�r)r'r�s  r!r)r)�s*����� �H�v����r >�	__aexit__�	__anext__�
__aenter__�	__aiter__>�__del__rrGr��__prepare__r�__instancecheck__�__subclasscheck__c�6�t�|��Sr:)rv�__hash__r�s r!rLrL�s��V�_�_�T�2�2�r c�6�t�|��Sr:)rv�__str__r�s r!rLrL�s��F�N�N�4�0�0�r c�6�t�|��Sr:)rv�
__sizeof__r�s r!rLrL�s��v�0�0��6�6�r c�x�t|��j�d|����dt|����S)N�/)r<rrhrAr�s r!rLrL�s;��$�t�*�*�"5�^�^��8O�8O�8Q�8Q�^�^�TV�W[�T\�T\�^�^�r )r�r�r��
__fspath__r�y�?g�?)
�__lt__�__gt__�__le__�__ge__�__int__r��__len__r=�__complex__�	__float__�__bool__�	__index__r�c����fd�}|S)Nc�L���jj}|tur|S�|urdStSrF)�__eq__r�r�NotImplemented)�other�ret_valrTs  �r!r�z_get_eq.<locals>.__eq__�s6����+�0���'�!�	��N��5�=�	��4��r r)rTr�s` r!�_get_eqr��s#���������Mr c����fd�}|S)Nc�R���jjturtS�|urdStSrs)�__ne__r�rr�)r�rTs �r!r�z_get_ne.<locals>.__ne__�s1����;�)��8�	��N��5�=�	��5��r r)rTr�s` r!�_get_ner��s#���������Mr c����fd�}|S)Nc�j���jj}|turtg��St|��Sr:)�__iter__r�rr��r�rTs �r!r�z_get_iter.<locals>.__iter__�s3����-�2���g��	���8�8�O��G�}�}�r r)rTr�s` r!�	_get_iterr��s#���������Or c����fd�}|S)Nc����jj}|turtt	g����Stt	|����Sr:)r�r�r�_AsyncIteratorr�r�s �r!r�z"_get_async_iter.<locals>.__aiter__�sB����.�3���g��	,�!�$�r�(�(�+�+�+��d�7�m�m�,�,�,r r)rTr�s` r!�_get_async_iterr��s$���-�-�-�-�-�
�r )r�r�r�r�c�&�t�|t��}|tur	||_dSt�|��}|�||��}||_dSt
�|��}|�||��|_dSdSr:)�_return_valuesrsrr��_calculate_return_value�_side_effect_methodsr�)rBr�r(�fixed�return_calculatorr��
side_effectors       r!�_set_return_valuer�s������t�W�-�-�E��G���#�����/�3�3�D�9�9����(�(��.�.��*�����(�,�,�T�2�2�M��1�*�]�4�0�0�����1�1r c��eZdZd�Zd�ZdS)�
MagicMixinc��|���tt|��j|i|��|���dSr:)�_mock_set_magicsrr�rG�rTrUrs   r!rGzMagicMixin.__init__sN��������.��J��%�%�.��;��;�;�;��������r c	��ttz}|}t|dd���X|�|j��}t��}||z
}|D](}|t
|��jvrt||���)|tt
|��j��z
}t
|��}|D]!}t||t||�����"dS)Nr))�_magicsr�r/�intersectionr)rxr<rrr�re�
MagicProxy)rT�orig_magics�these_magics�
remove_magicsrKr�s      r!r�zMagicMixin._mock_set_magicss���� 4�4��"���4��$�/�/�		)�&�3�3�D�4F�G�G�L��E�E�M�'�,�6�M�&�
)�
)���D��J�J�/�/�)��D�%�(�(�(��$�c�$�t�*�*�*=�&>�&>�>���T�
�
��!�	;�	;�E��E�5�*�U�D�"9�"9�:�:�:�:�	;�	;r N)rrrrGr�rr r!r�r�s2������ � � �;�;�;�;�;r r�c��eZdZ	dd�ZdS)r
Fc�\�	|�||��|���dSr:�rr�r"s   r!r#z"NonCallableMagicMock.mock_add_spec6�8��	N�
	
���D�(�+�+�+��������r Nr��rrrr#rr r!r
r
4s+������7� � � � � � r r
c��eZdZd�ZdS)�AsyncMagicMixinc��|���tt|��j|i|��|���dSr:)r�rr�rGr�s   r!rGzAsyncMagicMixin.__init__AsN��������3��O�T�*�*�3�T�@�R�@�@�@��������r N�rrrrGrr r!r�r�@s#������ � � � � r r�c��eZdZ	dd�ZdS)rFc�\�	|�||��|���dSr:r�r"s   r!r#zMagicMock.mock_add_specQr�r Nr�r�rr r!rrFs-������	� � � � � � r rc�"�eZdZd�Zd�Zdd�ZdS)r�c�"�||_||_dSr:�r(r�)rTr(r�s   r!rGzMagicProxy.__init__]s����	�����r c��|j}|j}|�|||���}t|||��t	|||��|S)N)r(rr)r(r�r1rer�)rTrKr��ms    r!�create_mockzMagicProxy.create_mockasZ���	������"�"���/5�
#�
7�
7�����q�!�!�!��&�!�U�+�+�+��r Nc�*�|���Sr:)r�)rTr3r�s   r!r�zMagicProxy.__get__js�����!�!�!r r:)rrrrGr�r�rr r!r�r�\sF������������"�"�"�"�"�"r r�c���eZdZed��Zed��Zed��Z�fd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
dd�Zd
�Z�fd�Z�xZS)r�r�r�r�c���t��j|i|��tjj|jd<d|jd<d|jd<t
��|jd<tt���}tj
|_||jd<d|jd	<t��|jd
<i|jd<d|jd<dS)
Nr�r�_mock_await_count�_mock_await_args�_mock_await_args_list�r�r6r
rrcrdrH)
�superrGr�r�r�rrr�rrr0�CO_COROUTINE�co_flagsrn)rTrUrV�	code_mockr6s    �r!rGzAsyncMockMixin.__init__ss���������$�)�&�)�)�)�*1�);�)I��
�o�&�-.��
�)�*�,0��
�(�)�1:����
�-�.�#�X�6�6�6�	�$�1�	��$-��
�j�!�$/��
�j�!�(-����
�n�%�*,��
�&�'�+/��
�'�(�(�(r c��`K�t||fd���}|xjdz
c_||_|j�|��|j}|��t
|��r|�t|��s8	t|��}n#t$rt�wxYwt
|��r|�n&t|��r||i|���d{V��}n||i|��}|tur|S|j
tur|jS|j�4t|j��r|j|i|���d{V��S|j|i|��S|jS)NTr�r�)r�r�r�r�r,r�r?rkr��
StopIteration�StopAsyncIterationrrr�r�r)rTrUrVr�r�r}s      r!r�z!AsyncMockMixin._execute_mock_call�s������t�V�n�$�/�/�/�����A���������#�#�E�*�*�*��!���	��V�$�$�
1����v�&�&�
1�-�!�&�\�\�F�F��$�-�-�-�-�,�-����!��(�(�!� �L�!�$�V�,�,�
1�%�v�t�6�v�6�6�6�6�6�6�6�6������0��0�0���W�$�
��
��"�'�1�	%��$�$���	5�"�4�#3�4�4�
?�-�T�-�t�>�v�>�>�>�>�>�>�>�>�>�#�4�#�T�4�V�4�4�4�� � s�1B�Bc�V�	|jdkrd|jpd�d�}t|���dS)Nr�	Expected rBz to have been awaited.�r�r�r�r�s  r!r�zAsyncMockMixin.assert_awaited�sH��	���q� �	&�O�d�o�7��O�O�O�C� ��%�%�%�	&�	&r c�f�	|jdks$d|jpd�d|j�d�}t|���dS�Nr�r�rBz$ to have been awaited once. Awaited r�r�r�s  r!r�z"AsyncMockMixin.assert_awaited_once�s`��	���1�$�	&�9�t��8�&�9�9�#�/�9�9�9�C� ��%�%�%�	&�	&r c�j����	�j�)������}td|�d�������fd�}��t	��fd�����}���j��}||kr1t|t��r|nd}t|����|�dS)NzExpected await: z
Not awaitedc�8������d���}|S)N�await)r�r�r�s ���r!r�z:AsyncMockMixin.assert_awaited_with.<locals>._error_message�s"����3�3�D�&��3�Q�Q�C��Jr Tr�)r�r�r�r�r�r-r�)rTrUrVr�r�r�r�s```    r!r�z"AsyncMockMixin.assert_awaited_with�s������	��?�	M��7�7��f�E�E�H� �!K�H�!K�!K�!K�L�L�L�	�	�	�	�	�	�	��%�%�e�T�6�N��&E�&E�&E�F�F���#�#�D�O�4�4���X��	>� *�8�Y� ?� ?�I�H�H�T�E� ���!1�!1�2�2��=�	>�	>r c�|�	|jdks$d|jpd�d|j�d�}t|���|j|i|��Sr�)r�r�r�r�r�s    r!r�z'AsyncMockMixin.assert_awaited_once_with�sn��	���1�$�	&�9�t��8�&�9�9�#�/�9�9�9�C� ��%�%�%�'�t�'��8��8�8�8r c�&��	��t||fd�����}t|t��r|nd}�fd��jD��}|s|t|��vr)��||��}td|z��|�dS)NTr�c�:��g|]}��|����Srr�r�s  �r!rqz3AsyncMockMixin.assert_any_await.<locals>.<listcomp>�s'���F�F�F�A�$�$�$�Q�'�'�F�F�Fr z%s await not found)r�r�r-r�r�r�r�r�r�s`      r!r�zAsyncMockMixin.assert_any_await�s����	��%�%�e�T�6�N��&E�&E�&E�F�F��&�x��;�;�E�����F�F�F�F��1E�F�F�F���	�H�L��$8�$8�8�	�"�>�>�t�V�L�L�O� �$��6����
�	�	r Fc�,��	�fd�|D��}td�|D��d��}t�fd��jD����}|sT||vrN|�d}nd�d�|D����}t	|�dt|���d�j����|�dSt|��}g}|D]=}	|�|���#t$r|�|��Y�:wxYw|r t	t|���d	���|�dS)
Nc�:��g|]}��|����Srr�r�s  �r!rqz4AsyncMockMixin.assert_has_awaits.<locals>.<listcomp>�r�r c3�DK�|]}t|t���|V��dSr:r�rss  r!r�z3AsyncMockMixin.assert_has_awaits.<locals>.<genexpr>�r�r c3�B�K�|]}��|��V��dSr:r�r�s  �r!r�z3AsyncMockMixin.assert_has_awaits.<locals>.<genexpr>�s1�����S�S��t�1�1�!�4�4�S�S�S�S�S�Sr zAwaits not found.z,Error processing expected awaits.
Errors: {}c�@�g|]}t|t��r|nd��Sr:r�rss  r!rqz4AsyncMockMixin.assert_has_awaits.<locals>.<listcomp>	r�r r�r�z not all found in await list)
r�r�r�r�r�rmr�rKr,rn)	rTr�r�r�r��
all_awaitsr�r�r�s	`        r!r�z AsyncMockMixin.assert_has_awaits�s����
	�:�9�9�9�5�9�9�9���F�F��F�F�F��M�M���S�S�S�S�d�>R�S�S�S�S�S�
��	��z�)�
��8�1�G�G� ,�-3�V�$7�$7�-5�$7�$7�$7�.8�.8��%��6�6�!*�5�!1�!1�6�6�#�3�6�6����	�

�F��*�%�%�
��	��	'�	'�D�
'��!�!�$�'�'�'�'���
'�
'�
'�� � ��&�&�&�&�&�
'�����	� �49�)�4D�4D�4D�4D�F����
�	�	s�7C
�
C/�.C/c�f�	|jdkr$d|jpd�d|j�d�}t|���dS)Nrr�rBz# to not have been awaited. Awaited r�r�r�s  r!r�z!AsyncMockMixin.assert_not_awaited	s`��	���q� �	&�9�t��8�&�9�9�#�/�9�9�9�C� ��%�%�%�	&�	&r c�~��	t��j|i|��d|_d|_t	��|_dS�Nr)r�r�r�r�r�r�)rTrUrVr6s   �r!r�zAsyncMockMixin.reset_mock	sG���	�	�����D�+�F�+�+�+�������(�{�{����r r�)rrrr�r�r�r�rGr�r�r�r�r�r�r�r�r��
__classcell__)r6s@r!r�r�ns�������&�&�}�5�5�K�%�%�l�3�3�J�*�*�+<�=�=�O�0�0�0�0�0�(&!�&!�&!�P&�&�&�&�&�&�>�>�>�$	9�	9�	9����*�*�*�*�X&�&�&�+�+�+�+�+�+�+�+�+r r�c��eZdZdS)r
Nrrr r!r
r
)	s������'�'r r
c�"�eZdZ	d�Zd�Zd�ZdS)�_ANYc��dSrFr�rTr�s  r!r�z_ANY.__eq__W	s���tr c��dSrsrr
s  r!r�z_ANY.__ne__Z	s���ur c��dS)Nz<ANY>rr�s r!r�z
_ANY.__repr__]	s���wr N)rrrr�r�r�rr r!rrT	sD������8�����������r rc���d|z}d}d�d�|D����}d�d�|���D����}|r|}|r|r|dz
}||z
}||zS)Nz%s(%%s)rz, c�,�g|]}t|����Sr)�repr)r'rRs  r!rqz*_format_call_signature.<locals>.<listcomp>g	s��7�7�7�3�T�#�Y�Y�7�7�7r c�"�g|]\}}|�d|����
S)�=r)r'rMr�s   r!rqz*_format_call_signature.<locals>.<listcomp>h	s4�����#-�3��3�3�3������r )rcrO)r(rUrVr��formatted_args�args_string�
kwargs_strings       r!r�r�d	s����$��G��N��)�)�7�7�$�7�7�7�8�8�K��I�I���17����������M��%�$���(��	#��d�"�N��-�'���^�#�#r c��eZdZ			dd�Z		dd�Zd�ZejZd	�Zd
�Z	d�Z
d�Zed
���Z
ed���Zd�Zd�ZdS)r�rrNFTc��d}i}t|��}|dkr|\}}}n~|dkr<|\}	}
t|	t��r|	}t|
t��r|
}nD|
}nA|	|
}}n<|dkr6|\}t|t��r|}nt|t��r|}n|}|rt�|||f��St�||||f��S)Nr�r�r�)r�r-rXrnr)rr�r(r�r��	from_kallrUrV�_len�first�seconds           r!rz
_Call.__new__�	s
�������5�z�z���1�9�	�!&��D�$���
�Q�Y�	�!�M�E�6��%��%�%�
-����f�e�,�,�$�!�D�D�#�F�F�$�f�f���
�Q�Y�	��F�E��%��%�%�
�����E�5�)�)�
�������	6��=�=��t�V�n�5�5�5��}�}�S�4��v�"6�7�7�7r c�0�||_||_||_dSr:)r�r��_mock_from_kall)rTr�r(r�r�rs      r!rGz_Call.__init__�	s�����"���(����r c�r�	t|��}n#t$r
tcYSwxYwd}t|��dkr|\}}n|\}}}t|dd��r#t|dd��r|j|jkrdSd}|dkrdi}}n�|dkr|\}}}n�|dkr?|\}	t|	t��r|	}i}nit|	t��r|	}di}}nMd}|	}nH|dkr@|\}
}t|
t��r!|
}t|t��r|i}}nd|}}n|
|}}ndS|r||krdS||f||fkS)	Nrr�r�Frrrr�)r�r�r�r/r�r-rnrX)rTr��	len_other�	self_name�	self_args�self_kwargs�
other_name�
other_args�other_kwargsr�rrs            r!r�z_Call.__eq__�	s���	"��E�
�
�I�I���	"�	"�	"�!�!�!�!�	"�����	��t�9�9��>�	5�%)�"�I�{�{�04�-�I�y�+��D�.�$�/�/�	�G�E�>�SW�4X�4X�	��%��);�;�	��5��
���>�	�')�2��J�J�
�!�^�	�38�0�J�
�L�L�
�!�^�	��F�E��%��'�'�
%�"�
�!����E�3�'�'�
%�"�
�+-�r�L�
�
��
�$���
�!�^�	�!�M�E�6��%��%�%�
9�"�
��f�e�,�,�:�/5�r��J�J�/1�6��J�J�+0�&�L�
�
��5��	��y�0�	��5��L�)�i��-E�E�Es��&�&c��|j�td||fd���S|jdz}t|j||f||���S)Nrr/r�r��r�r�r�s    r!rHz_Call.__call__�	sP���?�	8��"�d�F�+�$�7�7�7�7����%���d�o�t�V�4�4��M�M�M�Mr c�n�|j�t|d���S|j�d|��}t||d���S)NF)r(rrI)r(r�rr*)rTr�r(s   r!r�z_Call.__getattr__�	sF���?�	5��d�e�4�4�4�4��/�/�/�4�4�0���$�t�u�=�=�=�=r c�b�|tjvrt�t�||��Sr:)rnrrrI�__getattribute__)rTr�s  r!r-z_Call.__getattribute__�	s-���5�>�!�	!� � ��%�%�d�D�1�1�1r c�H�t|��dkr|\}}n|\}}}||fS)Nr�)r�r�s    r!�_get_call_argumentsz_Call._get_call_arguments�	s5���t�9�9��>�	&��L�D�&�&�!%��D�$���V�|�r c�6�|���dSr�r/r�s r!rUz
_Call.args
����'�'�)�)�!�,�,r c�6�|���dS)Nr�r1r�s r!rVz_Call.kwargs	
r2r c��|js%|jpd}|�d��rd|z}|St|��dkrd}|\}}n+|\}}}|sd}n |�d��sd|z}nd|z}t	|||��S)Nrr/zcall%sr�zcall.%s)r r�r&r�r�)rTr(rUrVs    r!r�z_Call.__repr__
s����#�	��?�,�f�D����t�$�$�
'��$����K��t�9�9��>�
	'��D��L�D�&�&�!%��D�$���
'�����_�_�T�*�*�
'� �4�'����$���%�d�D�&�9�9�9r c��	g}|}|�%|jr|�|��|j}|�%tt	|����Sr:)r r,r�r�rb)rT�vals�things   r!�	call_listz_Call.call_list"
s`��	������	'��$�
#����E�"�"�"��&�E��	'���$���(�(�(r )rrNFT)rNNFT)rrrrrGr�rvr�rHr�r-r/r�rUrVr�r8rr r!r�r�v	s�������$:?��8�8�8�8�@>C��)�)�)�)�2F�2F�2F�j�]�F�N�N�N�>�>�>�2�2�2�����-�-��X�-��-�-��X�-�:�:�:�*
)�
)�
)�
)�
)r r�)rc	��	t|��rt|��}t|t��}t|��rt	d|�d����t|��}d|i}	|rd|i}	n|�i}	|	r|rd|	d<|st
|��|	�|��t}
tj
|��ri}	nL|r|rtd���t}
n1t|��st}
n|r|rt|��st}
|	�d|��}|}|�d	}|
d||||d
�|	��}t|t"��r"t%||��}|rt'|��nt)||||��|�|s
||j|<|r|sd|vrt-||dd|�
��|_t1|��D�]}
t3|
��r�	t5||
��}n#t6$rY�1wxYwd|i}|rd|i}t|t"��st9||||
|��}||j|
<n{|}t|t"��r|j}t=||
|��}||d<t?|��rt}nt}|d||
|
|d�|��}||j|
<t)|||���t|t"��rtA||
|����|S)Nz'Cannot autospec a Mock object. [object=r%r�r�TrzJInstance can not be True when create_autospec is mocking an async functionr(r)r�rrr(r�r/)r^r8r�r)r�r(rr)r]r)!ror<r-r,rr8rr rr0�isdatadescriptorr�r
rkr
rurQrCr�r�r_r�r	r�r+r�r/rIrCrB�
_must_skiprre)r�r�r^r�r8rrV�is_type�
is_async_funcrBrArrBrKr|r
r�r]�child_klasss                   r!r	r	2
s���,�*��~�~���D�z�z����t�$�$�G�����5�� 4�*.� 4� 4� 4�5�5�	5�"�4�(�(�M��t�n�G����t�$���	
�����,�8�,�'+��#�$��&��f�%�%�%��N�N�6�����E����%�%�%����	�%��	?�� >�?�?�
?����
�t�_�_�%�$���	�%�X�%�&8��&>�&>�%�$���K�K���&�&�E��I����	��5�(��W�	��(�(�&�(�(�D��$�
�&�&�8��d�D�)�)���	$��d�#�#�#����t�W�h�7�7�7��-�8�-�(,���u�%��F�x�F�N�&�$@�F�+�D�(�T�26��F�F�F����T���0&�0&���U���	��	��t�U�+�+�H�H���	�	�	��H�	�����(�#���	,� �(�+�F��(�M�2�2�	A��X�x��u�h�G�G�C�),�D���&�&��F��$�
�.�.�
#����"�4���8�8�I�"+�F�;��"�8�,�,�
(�'���'���+�(�V�%�5�*0�(�(� &�(�(�C�*-�D���&��X�s�i�@�@�@�@��c�=�)�)�	&��D�%��%�%�%���Ks�G#�#
G0�/G0c�F�	t|t��s|t|di��vrdS|j}|jD]f}|j�|t��}|tur�,t|ttf��rdSt|t��r|cSdS|S)NrrF)r-r<r/r6rqrrrsrrirjrC)r�rKr<r�r}s     r!r;r;�
s�����d�D�!�!���G�D�*�b�1�1�1�	��5��~���������#�#�E�7�3�3���W��	���f�|�[�9�:�:�	��5�5�
��
�
.�
.�	��N�N�N��5�5��Nr c��eZdZ		dd�ZdS)rCFNc�Z�||_||_||_||_||_||_dSr:)r��idsr�r�r^r()rTr�r�r�r(rBr^s       r!rGz_SpecState.__init__�
s0����	���� ��
���� ��
���	�	�	r )FNNNFr�rr r!rCrC�
s.������48�/4������r rCc�|�t|t��rtj|��Stj|��Sr:)r-�bytes�io�BytesIO�StringIO)�	read_datas r!�
_to_streamrI�
s4���)�U�#�#�&��z�)�$�$�$��{�9�%�%�%r rc	�X���	�
��	t���}|dg�
�
�fd�}�
�fd�}��
fd��	�
�fd���
�fd�}t�dddl}tt	t|j�����t	t|j��������at�2ddl}tt	t|j
������a	|�tdt���}tt�	�����j_
d�j_
d�j_
d�j_
d�j_
|�j_�	���
d
<�
d
�j_|�j_��j_|�j_�	�
��fd�}||_�|_
|S)Nc�Z���jj��jjS�dj|i|��Sr)�	readlinesr��rUrV�_state�handles  ��r!�_readlines_side_effectz)mock_open.<locals>._readlines_side_effects9�����(�	1��#�0�0�"�v�a�y�"�D�3�F�3�3�3r c�Z���jj��jjS�dj|i|��Sr)�readr�rMs  ��r!�_read_side_effectz$mock_open.<locals>._read_side_effect
s6����;�#�	,��;�+�+��v�a�y�~�t�.�v�.�.�.r c?�V�K����Ed{V��	�dj|i|��V���NTr)�readline)rUrV�_iter_side_effectrNs  ��r!�_readline_side_effectz(mock_open.<locals>._readline_side_effectsT�����$�$�&�&�&�&�&�&�&�&�&�	6�$�&��)�$�d�5�f�5�5�5�5�5�	6r c3�b�K��jj�	�jjV���dD]}|V��dSrU)rVr�)�linerNrOs ��r!rWz$mock_open.<locals>._iter_side_effectsW������?�'�	3�
3��o�2�2�2�2�
3��1�I�	�	�D��J�J�J�J�	�	r c�^���jj��jjSt�d��Sr)rVr�r�)rNrOs��r!�_next_side_effectz$mock_open.<locals>._next_side_effects+����?�'�	0��?�/�/��F�1�I���r r�open)r(r�)r�r�c���t����d<�jj�dkr����d<�d�j_tS)Nrr�)rIrVr�r)rUrVrXrNrOrHs  ����r!�
reset_datazmock_open.<locals>.reset_data>sO����y�)�)��q�	��?�&�&��)�3�	4�-�-�/�/�F�1�I�*0��)�F�O�'��r )rI�	file_spec�_iormrxr+�
TextIOWrapper�unionrF�	open_specr]rrFr��writerRrVrLr�r�r�)rBrH�
_read_datarPrSr\rar_rWrXrNrOs `      @@@@r!rr�
s%�������
��I�&�&�J��$�
�F�4�4�4�4�4�4�
/�/�/�/�/�/�
6�6�6�6�6�6�
�������������S��
�
�
���S��!2�3�3�4�4�:�:�3�s�3�;�?O�?O�;P�;P�Q�Q�R�R�	��-��
�
�
���S���]�]�+�+�,�,�	��6��f�9�5�5�5��
�I�
&�
&�
&�F�$*�F��!� $�F�L��#�F�K��#'�F�O� �$(�F��!�/�F�K��%�%�'�'�F�1�I�"(��)�F�O��#9�F�� �"3�F�O��"3�F�O����������"�D���D���Kr c�$�eZdZ	d�Zdd�Zd�ZdS)rc��tdi|��S)Nr)r)rTrVs  r!r1zPropertyMock._get_child_mockTs���"�"�6�"�"�"r Nc��|��Sr:r)rTr3�obj_types   r!r�zPropertyMock.__get__Ws
���t�v�v�
r c��||��dSr:r)rTr3rSs   r!r�zPropertyMock.__set__Ys����S�	�	�	�	�	r r:)rrrr1r�r�rr r!rrKsK�������#�#�#���������r rc�6�	d|_t|��D]�}	t||��}n#t$rY� wxYwt	|t
��s�:t	|j�|��t��r�h|j	|urt|����dSrF)r
r+r/rIr-rr�rsrCr�r)rBr�r�s   r!rr]s�����D���D�	�	�
�
��	���d�#�#�A�A���	�	�	��H�	�����!�_�-�-�	���a�&�*�*�4�0�0�*�=�=�	�����%�	���G�G�G��
�
s�,�
9�9c��eZdZ	d�Zd�ZdS)r�c�t�||_tt���}tj|_||jd<dS)Nr�r6)�iteratorrrr0�CO_ITERABLE_COROUTINEr�rr)rTror�s   r!rGz_AsyncIterator.__init__ys6�� ��
�#�X�6�6�6�	�$�:�	��$-��
�j�!�!�!r c��^K�	t|j��S#t$rYnwxYwt�r:)r�ror�r�r�s r!r�z_AsyncIterator.__anext__sA����	���
�&�&�&���	�	�	��D�	���� � s��
%�%N)rrrrGr�rr r!r�r�us7�������.�.�.�!�!�!�!�!r r�r�)NFNNN)FFNNr)��__all__r�rrEr0r�r>�builtinsrRr�typesrrr�
unittest.utilr�	functoolsrrr�rr+r3rr�rr4r8r,r?rDrOr_rZrkrorur�r{r�r�rvr�r�rr�MISSINGr��DELETEDrDr�r�rmr�r�r�r�rrJrGrr�r=r�rrrrTrYr]rr`rpryrc�multiple�stopallr�
magic_methods�numericsrcrP�inplace�right�
_non_defaultsr�r�r��_sync_async_magics�
_async_magicsr�r_r�r�r�r�r�r�r�r�r�r�r�r
r�rr�r�r
rrr�rnr�rr	r;rCr<r�rCr`rdrIrrrr�rr r!�<module>r�s"
����&��������	�	�	�	�����
�
�
�
�
�
�
�
���������'�'�'�'�'�'�2�2�2�2�2�2�2�2�2�2�#�#�#�#�#�#�$�$�$�$�$�$�$�$�C�C�C�C�C�y�C�C�C�
I�H�c�c�(�m�m�H�H�H�	�
�
���@�@�@����2�2�2����������:	#�	#�	#�	#�
�
�
����&�&�&��������6."�."�."�b>�>�>�6)�)�)�	)�	)�	)�	)�	)�f�	)�	)�	)�����������9�;�;��
�
������������ � � �&*�*�*�*�*��*�*�*�(���6���������
�
�
�
�
�6�
�
�
�E
<�E
<�E
<�E
<�E
<�d�E
<�E
<�E
<�P
�G��o�6�7�7�	�
�
�
�
�
�4�
�
�
� ���d!�d!�d!�d!�d!�D�d!�d!�d!�P6�6�6�6�6�=�/�6�6�6�v���L/�L/�L/�L/�L/�V�L/�L/�L/�`
<�<�<� '�T��t�d���&+������:?C�04�.�.�.�.�d�$�u���4�O�CH�O�O�O�O�O�dD/�D/�D/�D/�D/�&�D/�D/�D/�N���������
��
� �����
����
��"K�	��(�(�7�7�h�n�n�&6�&6�7�7�7�
7�
7�����5�5�H�N�N�$4�$4�5�5�5�5�5�����
�������H�H�m�X�w��
6�7�7�=�=�?�?�����@�?�?��!�]��$�'9�9�
��]�*����.������3�2�0�0�6�6�^�^�	�������������������"��������������� �	���1�1�1�$;�;�;�;�;��;�;�;�>	 �	 �	 �	 �	 �:��	 �	 �	 � � � � � �j� � � � � � � � �
�D� � � �,"�"�"�"�"��"�"�"�$x+�x+�x+�x+�x+�T�x+�x+�x+�v(�(�(�(�(����(�(�(�V
�
�
�
�
�6�
�
�
��d�f�f��$�$�$�$v)�v)�v)�v)�v)�E�v)�v)�v)�r
�u�u�����CG��I�*/�I�I�I�I�I�X���8	�	�	�	�	��	�	�	�	�D�����D�����	�
�
�	��	�&�&�&�O�O�O�O�d�����4����$���0!�!�!�!�!�!�!�!�!�!r