o
    MK&h                     @  s   d dl mZ d dlZd dlZddlmZ ddlmZmZm	Z	m
Z
mZ G dd dZG d	d
 d
eZG dd de
ZG dd de	ZG dd deZdS )    )annotationsN   )	ReadError   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamNetworkBackendNetworkStreamc                   @  s    e Zd Zd
ddZdddZd	S )MockSSLObjecthttp2boolc                 C  s
   || _ d S N_http2)selfr    r   J/var/www/html/venv/lib/python3.10/site-packages/httpcore/_backends/mock.py__init__      
zMockSSLObject.__init__returnstrc                 C  s   | j rdS dS )Nh2zhttp/1.1r   r   r   r   r   selected_alpn_protocol   s   z$MockSSLObject.selected_alpn_protocolN)r   r   r   r   )__name__
__module____qualname__r   r   r   r   r   r   r      s    
r   c                   @  ^   e Zd Zd$d%dd	Zd&d'ddZd&d(ddZd)ddZ	
	
d*d+ddZd,d d!Zd-d"d#Z	d
S ).
MockStreamFbufferlist[bytes]r   r   r   Nonec                 C     || _ || _d| _d S NF_bufferr   _closedr   r!   r   r   r   r   r         
zMockStream.__init__N	max_bytesinttimeoutfloat | Nonebytesc                 C  s$   | j rtd| jsdS | jdS NzConnection closed    r   r(   r   r'   popr   r+   r-   r   r   r   read   s
   zMockStream.readc                 C     d S r   r   r   r!   r-   r   r   r   write%      zMockStream.writec                 C  s
   d| _ d S NTr(   r   r   r   r   close(   r   zMockStream.closessl_contextssl.SSLContextserver_hostname
str | Noner
   c                 C  s   | S r   r   r   r=   r?   r-   r   r   r   	start_tls+   s   zMockStream.start_tlsinfor   
typing.Anyc                 C     |dkr
t | jdS d S N
ssl_objectr   r   r   r   rC   r   r   r   get_extra_info3      zMockStream.get_extra_infoc                 C     dS )Nz<httpcore.MockStream>r   r   r   r   r   __repr__6   r9   zMockStream.__repr__Fr!   r"   r   r   r   r#   r   r+   r,   r-   r.   r   r/   r!   r/   r-   r.   r   r#   r   r#   NN)r=   r>   r?   r@   r-   r.   r   r
   rC   r   r   rD   r   )
r   r   r   r   r5   r8   r<   rB   rK   rN   r   r   r   r   r           

r    c                   @  D   e Zd Zdd dd	Z	
	
	
d!d"ddZ	
	
d#d$ddZd%ddZd
S )&MockBackendFr!   r"   r   r   r   r#   c                 C     || _ || _d S r   r'   r   r)   r   r   r   r   ;      
zMockBackend.__init__Nhostr   portr,   r-   r.   local_addressr@   socket_options%typing.Iterable[SOCKET_OPTION] | Noner
   c                 C     t t| j| jdS NrH   r    listr'   r   r   r\   r]   r-   r^   r_   r   r   r   connect_tcp?   s   zMockBackend.connect_tcppathc                 C  ra   rb   rc   r   rg   r-   r_   r   r   r   connect_unix_socketI   s   zMockBackend.connect_unix_socketsecondsfloatc                 C  r6   r   r   r   rj   r   r   r   sleepQ   r9   zMockBackend.sleeprO   rP   NNN)r\   r   r]   r,   r-   r.   r^   r@   r_   r`   r   r
   rT   )rg   r   r-   r.   r_   r`   r   r
   rj   rk   r   r#   r   r   r   r   rf   ri   rm   r   r   r   r   rX   :       rX   c                   @  r   ).AsyncMockStreamFr!   r"   r   r   r   r#   c                 C  r$   r%   r&   r)   r   r   r   r   V   r*   zAsyncMockStream.__init__Nr+   r,   r-   r.   r/   c                   s&   | j rtd| jsdS | jdS r0   r2   r4   r   r   r   r5   [   s   zAsyncMockStream.readc                      d S r   r   r7   r   r   r   r8   b      zAsyncMockStream.writec                   s   d| _ d S r:   r;   r   r   r   r   aclosee   s   
zAsyncMockStream.acloser=   r>   r?   r@   r   c                   s   | S r   r   rA   r   r   r   rB   h   s   zAsyncMockStream.start_tlsrC   r   rD   c                 C  rE   rF   rI   rJ   r   r   r   rK   p   rL   zAsyncMockStream.get_extra_infoc                 C  rM   )Nz<httpcore.AsyncMockStream>r   r   r   r   r   rN   s   r9   zAsyncMockStream.__repr__rO   rP   r   rQ   rR   rS   rT   )r=   r>   r?   r@   r-   r.   r   r   rU   r   )
r   r   r   r   r5   r8   ru   rB   rK   rN   r   r   r   r   rr   U   rV   rr   c                   @  rW   )&AsyncMockBackendFr!   r"   r   r   r   r#   c                 C  rY   r   rZ   r)   r   r   r   r   x   r[   zAsyncMockBackend.__init__Nr\   r   r]   r,   r-   r.   r^   r@   r_   r`   r   c                      t t| j| jdS rb   rr   rd   r'   r   re   r   r   r   rf   |   s   zAsyncMockBackend.connect_tcprg   c                   rw   rb   rx   rh   r   r   r   ri      s   z$AsyncMockBackend.connect_unix_socketrj   rk   c                   rs   r   r   rl   r   r   r   rm      rt   zAsyncMockBackend.sleeprO   rP   rn   )r\   r   r]   r,   r-   r.   r^   r@   r_   r`   r   r   rT   )rg   r   r-   r.   r_   r`   r   r   ro   rp   r   r   r   r   rv   w   rq   rv   )
__future__r   ssltyping_exceptionsr   baser   r   r   r	   r
   r   r    rX   rr   rv   r   r   r   r   <module>   s    	""