o
    .'h~  ã                	   @   s~   d dl Z d dlmZ d dlZddlmZ ddd„Zej dej	d	d
d�ej	ddd�ej	ddd�g¡dee
 ddfdd„ƒZdS )é    N)ÚTupleé   )ÚReceiveBufferÚreturnc                  C   s€  t ƒ } | rJ ‚t| ƒdksJ ‚t| ƒdksJ ‚| d7 } | sJ ‚t| ƒdks'J ‚t| ƒdks/J ‚t| ƒdks7J ‚|  d¡dks@J ‚| sDJ ‚t| ƒdksLJ ‚t| ƒdksTJ ‚t| ƒdks\J ‚|  d	¡dkseJ ‚t| ƒdksmJ ‚|  d	¡d u svJ ‚| rzJ ‚| d
7 } |  ¡ dks†J ‚t| ƒdksŽJ ‚|  ¡ dks–J ‚t| ƒdksžJ ‚| d7 } |  ¡ d u sªJ ‚t| ƒdks²J ‚| d7 } |  ¡ d u s¾J ‚t| ƒdksÆJ ‚| d7 } |  ¡ dksÒJ ‚|  ¡ dksÚJ ‚|  ¡ d u sâJ ‚t| ƒdksêJ ‚| d7 } |  ¡ }|g d¢ksúJ ‚t| ƒdk�sJ ‚|  ¡ d u �sJ ‚| d7 } |  ¡ d u �sJ ‚|  d¡dk�s#J ‚| �r(J ‚| d7 } |  ¡ g k�s5J ‚t| ƒdk�s>J ‚d S )Nr   ó    ó   123é   r   s   12é   ó   3é
   s   123
456
789
s	   123
456
s   789
s   12s   345
s   12345
s   
6789aaa123
s	   12345

s   6789aaa123
s   123
a: b
foo:bar

trailing)r   s   a: bs   foo:bars   trailings   
éd   s   trailing
s
   
trailing)r   ÚlenÚbytesZmaybe_extract_at_mostZmaybe_extract_next_lineÚmaybe_extract_lines)ÚbÚlines© r   úRC:\Users\shubh\Videos\agent\nova\Lib\site-packages\h11/tests/test_receivebuffer.pyÚtest_receivebuffer	   s\   
r   Údata)s   HTTP/1.1 200 OK
ó   Content-type: text/plain
s   Connection: close
s   
ó	   Some bodyZwith_crlf_delimiter)Úid)ó   HTTP/1.1 200 OK
s   Content-type: text/plain
ó   Connection: close
ó   
r   Zwith_lf_only_delimiter)r   r   r   r   r   Zwith_mixed_crlf_and_lfc                 C   sD   t ƒ }| D ]}||7 }q| ¡ }|g d¢ksJ ‚t|ƒdks J ‚d S )N)s   HTTP/1.1 200 OKs   Content-type: text/plains   Connection: closer   )r   r   r   )r   r   Úliner   r   r   r   Ú(test_receivebuffer_for_invalid_delimiterW   s   $
r   )r   N)ÚreÚtypingr   ZpytestZ_receivebufferr   r   ÚmarkZparametrizeÚparamr   r   r   r   r   r   Ú<module>   s,    
Nø
ø
øëþ#