�
���_�/ � � � d dl Z d dlmZ d dlmZ d dlmZmZmZm Z m
Z
mZ e j Z
e j Z G d� de� � Z G d� de j � � Z G d � d
e j � � Zedk r e j � � dS dS )� N)�catch_warnings)�is_instance)� MagicMock�Mock�patch�sentinel� mock_open�callc � � e Zd ZdS )�SampleExceptionN)�__name__�
__module__�__qualname__� � �5/usr/lib/python3/dist-packages/mock/tests/testwith.pyr r
s � � � � � � � r r c �V � e Zd Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z
d � Zd
� Zd� Z
d� Zd
S )�WithTestc � � t dt z t j � � 5 | � t
t j d� � d d d � � n# 1 swxY w Y | � t
t j � � d S �N�%s.something� unpatched)r r
r �
Something2�assertEqual� something� Something��selfs r �test_with_statementzWithTest.test_with_statement s� � �
�>�H�,�h�.A�
B�
B� J� J����Y��(;�[�I�I�I� J� J� J� J� J� J� J� J� J� J� J���� J� J� J� J�����H�$6�7�7�7�7�7s �'A�A�Ac �z � | � t � � 5 t dt z t j � � 5 | � t t j d� � t � � �# 1 swxY w Y d d d � � n# 1 swxY w Y | � t t j � � d S r ) �assertRaisesr r r
r r r r r r s r �test_with_statement_exceptionz&WithTest.test_with_statement_exception s � �
�
�
��
/�
/� (� (��~��0�(�2E�F�F�
(�
(�� � ��H�,?��M�M�M�%�'�'�'�
(�
(�
(�
(����
(�
(�
(�
(�
(� (� (� (� (� (� (� (� (� (� (� (���� (� (� (� (�
����H�$6�7�7�7�7�7s. �#B�5A3�3A7 �7B�:A7 �;B�B�Bc �8 � t dt z � � 5 }| � t |d� � | � t |t � � d� � d d d � � n# 1 swxY w Y | � t t j � � d S )Nr r zpatching wrong type) r r
r r �
assertTruer r r r �r �mock_somethings r �test_with_statement_aszWithTest.test_with_statement_as s� � �
�>�H�,�
-�
-� 3�����Y���D�D�D��O�O�K�� �B�B�1�
3�
3�
3� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3���� 3� 3� 3� 3�
����H�$6�7�7�7�7�7s �AA*�*A.�1A.c � � G d� dt � � }|j }t j |d� � 5 | � |j |d� � d d d � � n# 1 swxY w Y | � |j |� � d S )Nc � � e Zd ZdZdS )�6WithTest.test_patch_object_with_statement.<locals>.Foo�fooN)r
r r r r r r �Foor* ) s � � � � � ��I�I�Ir r, r r )�objectr r �assertNotEqualr )r r, �originals r � test_patch_object_with_statementz)WithTest.test_patch_object_with_statement( s� � � � � � � �&� � � ��=��
�\�#�{�
+�
+� F� F�����
�x��E�E�E� F� F� F� F� F� F� F� F� F� F� F���� F� F� F� F�������1�1�1�1�1s �A�A� Ac � � t d�� � 5 t dt z � � 5 }t dt z � � 5 }| � t |d� � | � t
|d� � d d d � � n# 1 swxY w Y d d d � � n# 1 swxY w Y d d d � � n# 1 swxY w Y | � t t j � � | � t
t j � � d S )NT)�recordr �%s.something_elser ) r r r
r r �something_elser r �
SomethingElse�r r& |