Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/requests_mock/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/requests_mock/__pycache__/mocker.cpython-35.pyc



��DX��@s�ddlZddlZddlmZddlmZdZdZdZdZdZ	d	Z
d
Zejj
ZGdd�de�ZGd
d�de�ZeZdS)�N)�adapter)�
exceptions�DELETE�GET�HEAD�OPTIONS�PATCH�POST�PUTc@s�eZdZdZeddddddg�ZdZd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#S)$�
MockerCorez�A wrapper around common mocking functions.

    Automate the process of mocking the requests library. This will keep the
    same general options available and prevent repeating code.
    Zlast_requestZadd_matcherZrequest_history�calledZcalled_onceZ
call_countFcKsk|jd|j�}tjd|�|_|jdd�|_d|_|rgtddj|���dS)N�case_sensitive�	real_httpFzUnexpected Arguments: %sz, )	�popr
rZAdapter�_adapter�
_real_http�
_last_send�	TypeError�join)�self�kwargsr
�r�E/opt/alt/python35/lib/python3.5/site-packages/requests_mock/mocker.py�__init__?s	zMockerCore.__init__cs[�jrtd��tjj�_�fdd����fdd�}|tj_dS)znStart mocking requests.

        Install the adapter and the wrappers required to intercept requests.
        zMocker has already been startedcs�jS)N)r)�session�url)rrr�_fake_get_adapterSsz+MockerCore.start.<locals>._fake_get_adaptercs�tjj}�tj_zPyt|||�SWn5tjk
rR�jsN�Yntjk
rfYnXWd|tj_Xt|||�S)N)	�requests�SessionZget_adapter�_original_sendrZ
NoMockAddressrrZ_RunRealHTTP)r�requestrZreal_get_adapter)rrrr�
_fake_sendVs		
z$MockerCore.start.<locals>._fake_sendN)r�RuntimeErrorrr�send)rr!r)rrr�startIs	zMockerCore.startcCs%|jr!|jtj_d|_dS)zdStop mocking requests.

        This should have no impact if mocking has not been started.
        N)rrrr#)rrrr�stopts	zMockerCore.stopcCsH||jkr8yt|j|�SWntk
r7YnXt|��dS)N)�_PROXY_FUNCS�getattrr�AttributeError)r�namerrr�__getattr__}s
zMockerCore.__getattr__cOs)|jdd�|d<|jj||�S)NrFr)rr�register_uri)r�argsrrrrr+�szMockerCore.register_uricOs|j||�S)N)r+)rr,rrrrr �szMockerCore.requestcOs|jt||�S)N)r r)rr,rrrr�get�szMockerCore.getcOs|jt||�S)N)r r)rr,rrrr�options�szMockerCore.optionscOs|jt||�S)N)r r)rr,rrrr�head�szMockerCore.headcOs|jt||�S)N)r r	)rr,rrrr�post�szMockerCore.postcOs|jt||�S)N)r r
)rr,rrrr�put�szMockerCore.putcOs|jt||�S)N)r r)rr,rrrr�patch�szMockerCore.patchcOs|jt||�S)N)r r)rr,rrrr�delete�szMockerCore.deleteN)�__name__�
__module__�__qualname__�__doc__�setr&r
rr$r%r*r+r r-r.r/r0r1r2r3rrrrrs*
+		rcsveZdZdZdZ�fdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Z�S)�Mockerz7The standard entry point for mock Adapter loading.
    �testcs/|jdd�|_tt|�j|�dS)a]Create a new mocker adapter.

        :param str kw: Pass the mock object through to the decorated function
            as this named keyword argument, rather than a positional argument.
        :param bool real_http: True to send the request to the real requested
            uri if there is not a mock installed for it. Defaults to False.
        �kwN)r�_kw�superr9r)rr)�	__class__rrr�szMocker.__init__cCs|j�|S)N)r$)rrrr�	__enter__�s
zMocker.__enter__cCs|j�dS)N)r%)r�type�value�	tracebackrrr�__exit__�szMocker.__exit__cCs)t|t�r|j|�S|j|�S)N)�
isinstancer@�decorate_class�decorate_callable)r�objrrr�__call__�s
zMocker.__call__cCstd|jd|j�}|S)z.Returns an exact copy of current mock
        r;r)r9r<r)r�mrrr�copy�s	zMocker.copycs(tj����fdd��}|S)zQDecorates a callable

        :param callable func: callable to decorate
        c
sS��F}�jr"||�j<nt|�}|j|��||�SWdQRXdS)N)r<�list�append)r,rrI)�funcrrr�inner�s		
z'Mocker.decorate_callable.<locals>.inner)�	functools�wraps)rrMrNr)rMrrrF�s$zMocker.decorate_callablecCssxlt|�D]^}|j|j�s(q
t||�}t|d�sIq
|j�}t||||��q
W|S)z�Decorates methods in a class with request_mock

        Method will be decorated only if it name begins with `TEST_PREFIX`

        :param object klass: class which methods will be decorated
        rH)�dir�
startswith�TEST_PREFIXr'�hasattrrJ�setattr)r�klass�	attr_name�attrrIrrrrE�szMocker.decorate_class)r4r5r6r7rSrr?rCrHrJrFrErr)r>rr9�s	r9)rOrZ
requests_mockrrrrrrrr	r
rr#r�objectrr9Zmockrrrr�<module>
s�O