o
    h                     @   s<   d dl Z d dlZd dlmZ G dd dZG dd dZdS )    NMockc                   @   s>   e Zd ZdddZdd Zdd Zedd	 Zed
d ZdS )MockedResponseNc                 C   sD   |d u ri }|| _ t|trt|}d|d< |d| _|| _d S )Nzapplication/jsonzcontent-typeutf8)status_code
isinstancedictjsondumpsencodecontentheaders)selfr   r   r    r   Q/var/www/html/env_mimamsha/lib/python3.10/site-packages/allauth/tests/__init__.py__init__   s   


zMockedResponse.__init__c                 C   s   t | jS N)r	   loadstextr   r   r   r   r	      s   zMockedResponse.jsonc                 C   s   d S r   r   r   r   r   r   raise_for_status   s   zMockedResponse.raise_for_statusc                 C   s   | j d dkS )Nd      )r   r   r   r   r   ok   s   zMockedResponse.okc                 C   s   | j dS )Nr   )r   decoder   r   r   r   r      s   zMockedResponse.textr   )	__name__
__module____qualname__r   r	   r   propertyr   r   r   r   r   r   r      s    

r   c                   @   s*   e Zd ZddddZdd Zdd ZdS )	mocked_responseN)callbackc                G   s   || _ t|| _d S r   )r    list	responses)r   r    r"   r   r   r   r   "   s   zmocked_response.__init__c                    s^   t jj _t jj _t jj _ fdd}|t jjt j_|t jjt j_|t jjt j_d S )Nc                    s    fdd}t |dS )Nc                     sZ   j rj | i |}|d ur|S jr&jd}t|tr$td|}|S  | i |S )Nr      )r    r"   popr   r   r   )argskwargsresponseresp)fr   r   r   new_f,   s   

zBmocked_response.__enter__.<locals>.mockable_request.<locals>.new_f)side_effectr   )r)   r*   r   )r)   r   mockable_request+   s   
z3mocked_response.__enter__.<locals>.mockable_request)requestsSessiongetorig_getpost	orig_postrequestorig_request)r   r,   r   r   r   	__enter__&   s   


zmocked_response.__enter__c                 C   s"   | j tj_| jtj_| jtj_d S r   )r0   r-   r.   r/   r2   r1   r4   r3   )r   typevalue	tracebackr   r   r   __exit__>   s   

zmocked_response.__exit__)r   r   r   r   r5   r9   r   r   r   r   r   !   s    r   )r	   r-   unittest.mockr   r   r   r   r   r   r   <module>   s
    