o
    ig                     @   sT   d Z ddlmZ ddlmZmZmZ ddlmZ G dd deZ	G dd deZ
d	S )
zRThe Django client transport for testing Spyne apps the way you'd test Django
apps.    )absolute_import)RemoteService
ClientBaseRemoteProcedureBase)Clientc                       s.   e Zd Zd fdd	Zdd Zdd Z  ZS )	_RemoteProcedureNc                    s*   t t| j||||d |dd| _d S )N)
out_headersecureF)superr   __init__getr	   )selfurlappnamer   argskwargs	__class__ S/var/www/html/LicenciasMIG/venv/lib/python3.10/site-packages/spyne/client/django.pyr   !   s   z_RemoteProcedure.__init__c                 O   sZ   | j |i |}|j}|jg| j_| | j | jjd ur!| jj|dkr)| jj| jjS )Ni  )get_django_responsestatus_codecontentctx	in_stringget_in_objectin_error	in_object)r   r   r   responsecoder   r   r   __call__&   s   z_RemoteProcedure.__call__c                 O   sP   | j \| _| | j|| | | j d| jj}t }|j| jd|| j	dS )z4Return Django ``HttpResponse`` object as RPC result.    ztext/xml)content_typedatar	   )
contextsr   get_out_objectget_out_stringjoin
out_stringr   postr   r	   )r   r   r   r)   clientr   r   r   r   6   s   
z$_RemoteProcedure.get_django_response)N)__name__
__module____qualname__r   r!   r   __classcell__r   r   r   r   r       s    r   c                       s"   e Zd ZdZd fdd	Z  ZS )DjangoTestClientz!The Django test client transport.Fc                    s(   t t| || tt|||d| _d S )N)r	   )r
   r0   r   r   r   service)r   r   r   r	   r   r   r   r   N   s   zDjangoTestClient.__init__)F)r,   r-   r.   __doc__r   r/   r   r   r   r   r0   K   s    r0   N)r2   
__future__r   spyner   r   r   django.test.clientr   r   r0   r   r   r   r   <module>   s   +