U
    Ê¼µbÜ	  ã                   @   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   s8   g }|   ¡ }|ttfkrq4| |¡ t|ƒtkrq4q|S ©N)Z
next_eventZ	NEED_DATAZPAUSEDÚappendÚtypeZConnectionClosed)ÚconnÚ
got_eventsÚevent© r	   ú5/tmp/pip-unpacked-wheel-rko__zic/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 ]p}t |ƒtkr0t|jƒ|_d|_d|_|rnt |d ƒt |ƒ  krTtkrnn n|d  j|j7  _q| |¡ q|S )NFéÿÿÿÿ)r   Ú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 kr>d}q||7 }q|rb| j| j|   |¡ |r|| j| j|   d¡ t| j| j|  ƒ}|dkrœ|}t |tƒs¬|g}||ks¸t‚|S )Nó    FTr   )Ú
isinstanceÚlistr   Úsendr   r   r   ÚAssertionError)	r   Ú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   