o
    i                     @  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   Q/home/kim/smarthome/.venv/lib/python3.10/site-packages/httpcore/_backends/mock.py__init__      
zMockSSLObject.__init__returnstrc                 C  s   | j rdS dS )NZ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 NZ
ssl_objectr   r   r   r   rB   r   r   r   get_extra_info3      zMockStream.get_extra_infoc                 C     dS )Nz<httpcore.MockStream>r   r   r   r   r   __repr__6   r8   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
   rB   r   r   rC   r   )
r   r   r   r   r4   r7   r;   rA   rI   rL   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 NrF   r   listr&   r   r   rZ   r[   r,   r\   r]   r   r   r   connect_tcp?   s   zMockBackend.connect_tcppathc                 C  r_   r`   ra   r   re   r,   r]   r   r   r   connect_unix_socketI   s   zMockBackend.connect_unix_socketsecondsfloatc                 C  r5   r   r   r   rh   r   r   r   sleepQ   r8   zMockBackend.sleeprM   rN   NNN)rZ   r   r[   r+   r,   r-   r\   r?   r]   r^   r   r
   rR   )re   r   r,   r-   r]   r^   r   r
   rh   ri   r   r"   r   r   r   r   rd   rg   rk   r   r   r   r   rV   :       rV   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 r/   r1   r3   r   r   r   r4   [   s   zAsyncMockStream.readc                      d S r   r   r6   r   r   r   r7   b      zAsyncMockStream.writec                   s   d| _ d S r9   r:   r   r   r   r   aclosee   s   
zAsyncMockStream.acloser<   r=   r>   r?   r   c                   s   | S r   r   r@   r   r   r   rA   h   s   zAsyncMockStream.start_tlsrB   r   rC   c                 C  rD   rE   rG   rH   r   r   r   rI   p   rJ   zAsyncMockStream.get_extra_infoc                 C  rK   )Nz<httpcore.AsyncMockStream>r   r   r   r   r   rL   s   r8   zAsyncMockStream.__repr__rM   rN   r   rO   rP   rQ   rR   )r<   r=   r>   r?   r,   r-   r   r   rS   r   )
r   r   r   r   r4   r7   rs   rA   rI   rL   r   r   r   r   rp   U   rT   rp   c                   @  rU   )&AsyncMockBackendFr    r!   r   r   r   r"   c                 C  rW   r   rX   r(   r   r   r   r   x   rY   zAsyncMockBackend.__init__NrZ   r   r[   r+   r,   r-   r\   r?   r]   r^   r   c                      t t| j| jdS r`   rp   rb   r&   r   rc   r   r   r   rd   |   s   zAsyncMockBackend.connect_tcpre   c                   ru   r`   rv   rf   r   r   r   rg      s   z$AsyncMockBackend.connect_unix_socketrh   ri   c                   rq   r   r   rj   r   r   r   rk      rr   zAsyncMockBackend.sleeprM   rN   rl   )rZ   r   r[   r+   r,   r-   r\   r?   r]   r^   r   r   rR   )re   r   r,   r-   r]   r^   r   r   rm   rn   r   r   r   r   rt   w   ro   rt   )
__future__r   ssltyping_exceptionsr   baser   r   r   r	   r
   r   r   rV   rp   rt   r   r   r   r   <module>   s    	""