o
    hS                     @   s   d dl Z d dlZd dlm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 )    N)Optional   )	ReadError   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamNetworkBackendNetworkStreamc                   @   s(   e Zd ZdefddZdefddZdS )MockSSLObjecthttp2c                 C   s
   || _ d S N_http2)selfr    r   W/var/www/html/flask_server/venv/lib/python3.10/site-packages/httpcore/_backends/mock.py__init__      
zMockSSLObject.__init__returnc                 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)__name__
__module____qualname__boolr   strr   r   r   r   r   r      s    r   c                	   @      e Zd Zddeje deddfddZdded	e	e
 defd
dZdded	e	e
 ddfddZdddZ		ddejde	e d	e	e
 defddZdedejfddZdefddZdS )
MockStreamFbufferr   r   Nc                 C      || _ || _d| _d S NF_bufferr   _closedr   r    r   r   r   r   r         
zMockStream.__init__	max_bytestimeoutc                 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server_hostnamec                 C   s   | S r   r   r   r7   r8   r)   r   r   r   	start_tls*   s   zMockStream.start_tlsinfoc                 C      |dkr
t | jdS d S N
ssl_objectr   r   r   r   r;   r   r   r   get_extra_info2      zMockStream.get_extra_infoc                 C      dS )Nz<httpcore.MockStream>r   r   r   r   r   __repr__5   r3   zMockStream.__repr__Fr   r   NNN)r   r   r   typingListbytesr   r   intr   floatr/   r2   r6   ssl
SSLContextr   r
   r:   AnyrB   rE   r   r   r   r   r      $    

r   c                   @      e Zd Zddeje deddfddZ			dded	e	d
e
e de
e dej
eje  defddZ		dded
e
e dej
eje  defddZdeddfddZdS )MockBackendFr    r   r   Nc                 C      || _ || _d S r   r$   r   r&   r   r   r   r   :      
zMockBackend.__init__hostportr)   local_addresssocket_optionsc                 C      t t| j| jdS Nr?   r   listr$   r   r   rW   rX   r)   rY   rZ   r   r   r   connect_tcp>   s   zMockBackend.connect_tcppathc                 C   r[   r\   r]   r   ra   r)   rZ   r   r   r   connect_unix_socketH   s   zMockBackend.connect_unix_socketsecondsc                 C   r0   r   r   r   rd   r   r   r   sleepP   r3   zMockBackend.sleeprF   NNNrH   )r   r   r   rI   rJ   rK   r   r   r   rL   r   rM   Iterabler   r
   r`   rc   rf   r   r   r   r   rS   9   <    

rS   c                	   @   r   )AsyncMockStreamFr    r   r   Nc                 C   r!   r"   r#   r&   r   r   r   r   U   r'   zAsyncMockStream.__init__r(   r)   c                    s&   | j rtd| jsdS | jdS r*   r,   r.   r   r   r   r/   Z   s   zAsyncMockStream.readc                       d S r   r   r1   r   r   r   r2   a      zAsyncMockStream.writec                    s   d| _ d S r4   r5   r   r   r   r   aclosed   s   
zAsyncMockStream.acloser7   r8   c                    s   | S r   r   r9   r   r   r   r:   g   s   zAsyncMockStream.start_tlsr;   c                 C   r<   r=   r@   rA   r   r   r   rB   o   rC   zAsyncMockStream.get_extra_infoc                 C   rD   )Nz<httpcore.AsyncMockStream>r   r   r   r   r   rE   r   r3   zAsyncMockStream.__repr__rF   r   rG   rH   )r   r   r   rI   rJ   rK   r   r   rL   r   rM   r/   r2   rm   rN   rO   r   r   r:   rP   rB   rE   r   r   r   r   rj   T   rQ   rj   c                   @   rR   )AsyncMockBackendFr    r   r   Nc                 C   rT   r   rU   r&   r   r   r   r   w   rV   zAsyncMockBackend.__init__rW   rX   r)   rY   rZ   c                       t t| j| jdS r\   rj   r^   r$   r   r_   r   r   r   r`   {   s   zAsyncMockBackend.connect_tcpra   c                    ro   r\   rp   rb   r   r   r   rc      s   z$AsyncMockBackend.connect_unix_socketrd   c                    rk   r   r   re   r   r   r   rf      rl   zAsyncMockBackend.sleeprF   rg   rH   )r   r   r   rI   rJ   rK   r   r   r   rL   r   rM   rh   r   r   r`   rc   rf   r   r   r   r   rn   v   ri   rn   )rN   rI   r   _exceptionsr   baser   r   r   r	   r
   r   r   rS   rj   rn   r   r   r   r   <module>   s    	""