
    +h                        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      Z G d	 d
e      Z G d de
      Z G d de	      Z G d de      Zy)    )annotationsN   )	ReadError   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamNetworkBackendNetworkStreamc                      e Zd ZddZddZy)MockSSLObjectc                    || _         y N_http2)selfhttp2s     J/var/www/html/venv/lib/python3.12/site-packages/httpcore/_backends/mock.py__init__zMockSSLObject.__init__   s	        c                "    | j                   rdS dS )Nh2zhttp/1.1r   r   s    r   selected_alpn_protocolz$MockSSLObject.selected_alpn_protocol   s    {{t2
2r   N)r   boolreturnstr)__name__
__module____qualname__r   r    r   r   r   r      s    3r   r   c                  ^    e Zd Zd	d
dZdddZdddZddZ	 	 d	 	 	 	 	 	 	 ddZddZddZ	y)
MockStreamc                .    || _         || _        d| _        y NF_bufferr   _closedr   bufferr   s      r   r   zMockStream.__init__       r   Nc                    | j                   rt        d      | j                  sy| j                  j                  d      S NzConnection closedr   r   r)   r   r(   popr   	max_bytestimeouts      r   readzMockStream.read   s4    <</00||||""r   c                     y r   r"   r   r+   r3   s      r   writezMockStream.write%       r   c                    d| _         y NTr)   r   s    r   closezMockStream.close(   s	    r   c                    | S r   r"   r   ssl_contextserver_hostnamer3   s       r   	start_tlszMockStream.start_tls+   s	     r   c                <    |dk(  rt        | j                        S d S N
ssl_objectr   r   r   r   infos     r   get_extra_infozMockStream.get_extra_info3       37<3G}4;;/QTQr   c                     y)Nz<httpcore.MockStream>r"   r   s    r   __repr__zMockStream.__repr__6   s    &r   Fr+   zlist[bytes]r   r   r   Noner   r2   intr3   float | Noner   bytesr+   rS   r3   rR   r   rO   r   rO   NN)r?   ssl.SSLContextr@   
str | Noner3   rR   r   r   rH   r   r   z
typing.Anyr   )
r   r    r!   r   r4   r7   r<   rA   rI   rL   r"   r   r   r$   r$      sT    
# '+ $	# $ 	
 
R'r   r$   c                  `    e Zd ZdddZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 d	dZ	 	 d
	 	 	 	 	 	 	 ddZddZy)MockBackendc                     || _         || _        y r   r(   r   r*   s      r   r   zMockBackend.__init__;       r   Nc                V    t        t        | j                        | j                        S NrE   r$   listr(   r   r   hostportr3   local_addresssocket_optionss         r   connect_tcpzMockBackend.connect_tcp?   s     $t||,DKK@@r   c                V    t        t        | j                        | j                        S r`   ra   r   pathr3   rg   s       r   connect_unix_socketzMockBackend.connect_unix_socketI   s     $t||,DKK@@r   c                     y r   r"   r   secondss     r   sleepzMockBackend.sleepQ   r8   r   rM   rN   NNN)rd   r   re   rQ   r3   rR   rf   rX   rg   %typing.Iterable[SOCKET_OPTION] | Noner   r   rV   )rk   r   r3   rR   rg   rr   r   r   ro   floatr   rO   r   r    r!   r   rh   rl   rp   r"   r   r   r[   r[   :   s     !%$(@DAA A 	A
 "A >A 
A !%@D	AA A >	A
 
Ar   r[   c                  ^    e Zd Zd	d
dZdddZdddZddZ	 	 d	 	 	 	 	 	 	 ddZddZddZ	y)AsyncMockStreamc                .    || _         || _        d| _        y r&   r'   r*   s      r   r   zAsyncMockStream.__init__V   r,   r   Nc                   K   | j                   rt        d      | j                  sy| j                  j                  d      S wr.   r/   r1   s      r   r4   zAsyncMockStream.read[   s8     <</00||||""s   A Ac                   K   y wr   r"   r6   s      r   r7   zAsyncMockStream.writeb   	        c                   K   d| _         y wr:   r;   r   s    r   aclosezAsyncMockStream.aclosee   s     s   	c                   K   | S wr   r"   r>   s       r   rA   zAsyncMockStream.start_tlsh   s      s   c                <    |dk(  rt        | j                        S d S rC   rF   rG   s     r   rI   zAsyncMockStream.get_extra_infop   rJ   r   c                     y)Nz<httpcore.AsyncMockStream>r"   r   s    r   rL   zAsyncMockStream.__repr__s   s    +r   rM   rN   r   rP   rT   rU   rV   )r?   rW   r@   rX   r3   rR   r   r	   rY   r   )
r   r    r!   r   r4   r7   r~   rA   rI   rL   r"   r   r   rw   rw   U   sT    
# '+ $	# $ 	
 
R,r   rw   c                  `    e Zd ZdddZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 d	dZ	 	 d
	 	 	 	 	 	 	 ddZddZy)AsyncMockBackendc                     || _         || _        y r   r]   r*   s      r   r   zAsyncMockBackend.__init__x   r^   r   Nc                ^   K   t        t        | j                        | j                        S wr`   rw   rb   r(   r   rc   s         r   rh   zAsyncMockBackend.connect_tcp|   s"      tDLL1EE   +-c                ^   K   t        t        | j                        | j                        S wr`   r   rj   s       r   rl   z$AsyncMockBackend.connect_unix_socket   s"      tDLL1EEr   c                   K   y wr   r"   rn   s     r   rp   zAsyncMockBackend.sleep   r{   r|   rM   rN   rq   )rd   r   re   rQ   r3   rR   rf   rX   rg   rr   r   r	   rV   )rk   r   r3   rR   rg   rr   r   r	   rs   ru   r"   r   r   r   r   w   s     !%$(@DFF F 	F
 "F >F 
F !%@D	FF F >	F
 
Fr   r   )
__future__r   ssltyping_exceptionsr   baser   r   r	   r
   r   r   r$   r[   rw   r   r"   r   r   <module>r      sY    " 
  # 3 3' 'D. 6,( ,D* r   