o
    €ÝhÜ	  ã                   @   sB   d dl T d dlT d dlT dd„ Zdd„ Zdd„ ZG dd	„ d	ƒZd
S )é   )Ú*c                 C   s>   g }	 |   ¡ }|ttfv r	 |S | |¡ t|ƒtu r	 |S q©N)Z
next_eventZ	NEED_DATAZPAUSEDÚappendÚtypeZConnectionClosed)ÚconnÚ
got_eventsÚevent© r	   úY/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/h11/tests/helpers.pyÚget_all_events   s   
ýùr   c                 C   s   |   |¡ t| ƒS r   )Úreceive_datar   )r   Údatar	   r	   r
   Úreceive_and_get   s   
r   c                 C   s~   g }| D ]8}t |ƒtu rt|jƒ|_d|_d|_|r7t |d ƒt |ƒ  u r*tu r7n n|d  j|j7  _q| |¡ q|S )NFéÿÿÿÿ)r   ZDataÚbytesr   Zchunk_startZ	chunk_endr   )Z	in_eventsZ
out_eventsr   r	   r	   r
   Únormalize_data_events   s   (r   c                   @   s*   e Zd Zdd„ Zedd„ ƒZd	dd„ZdS )
ÚConnectionPairc                 C   s(   t tt ƒtttƒi| _t ttt i| _d S r   )ZCLIENTÚ
ConnectionZSERVERr   Úother©Úselfr	   r	   r
   Ú__init__(   s   zConnectionPair.__init__c                 C   s
   | j  ¡ S r   )r   Úvaluesr   r	   r	   r
   Úconns,   s   
zConnectionPair.connsÚmatchc           	      C   s¼   t |tƒs|g}d}d}|D ]}| j|  |¡}|d u rd}q||7 }q|r1| j| j|   |¡ |r>| j| j|   d¡ t| j| j|  ƒ}|dkrN|}t |tƒsV|g}||ks\J ‚|S )Nó    FTr   )Ú
isinstanceÚlistr   Úsendr   r   r   )	r   ZroleZsend_eventsÚexpectr   ÚclosedZ
send_eventZnew_datar   r	   r	   r
   r   1   s(   


zConnectionPair.sendN)r   )Ú__name__Ú
__module__Ú__qualname__r   Úpropertyr   r   r	   r	   r	   r
   r   '   s
    
r   N)Z_eventsÚ_stateÚ_connectionr   r   r   r   r	   r	   r	   r
   Ú<module>   s    