a
    m¬zf§  ã                   @   s2   d Z ddlmZ G dd„ dƒZdd„ Zdd„ Zd	S )
z%Tests for :py:mod:`cheroot.makefile`.é    )Úmakefilec                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )Ú
MockSocketzA mock socket.c                 C   s
   g | _ dS )z"Initialize :py:class:`MockSocket`.N)Úmessages)Úself© r   úH/var/www/media/lib/python3.9/site-packages/cheroot/test/test_makefile.pyÚ__init__	   s    zMockSocket.__init__c                 C   s8   | j s
dS | j  d¡}t|ƒD ]\}}|||< qt|ƒS )z$Simulate ``recv_into`` for Python 3.r   )r   ÚpopÚ	enumerateÚlen)r   ÚbufÚmsgÚindexÚbyter   r   r   Ú	recv_into   s    
zMockSocket.recv_intoc                 C   s(   z| j  d¡W S  ty"   Y dS 0 dS )zSimulate ``recv`` for Python 2.r   Ú N)r   r	   Ú
IndexError)r   Úsizer   r   r   Úrecv   s    zMockSocket.recvc                 C   s   t |ƒS )zSimulate a send.)r   )r   Úvalr   r   r   Úsend   s    zMockSocket.sendN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r      s
   	r   c                  C   s8   t ƒ } | j d¡ t | d¡}| ¡  |jdks4J ‚dS )z!Reader should capture bytes read.ó   fooÚré   N)r   r   Úappendr   ÚMakeFileÚreadÚ
bytes_read)ÚsockÚrfiler   r   r   Útest_bytes_read"   s
    r$   c                  C   s:   t ƒ } | j d¡ t | d¡}| d¡ |jdks6J ‚dS )z$Writer should capture bytes written.r   Úws   barr   N)r   r   r   r   r   ÚwriteZbytes_written)r"   Úwfiler   r   r   Útest_bytes_written+   s
    
r(   N)r   Zcherootr   r   r$   r(   r   r   r   r   Ú<module>   s   	