HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/h11/tests/__pycache__/test_io.cpython-310.pyc
o

���g@�@s�ddlmZmZmZmZddlZddlmZmZm	Z	m
Z
mZmZm
Z
ddlmZmZddlmZmZmZmZmZddlmZddlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#dd	l$m%Z%dd
l&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/eefed
dddgd�dfe"e!fe
ddgdd�dfe"e!fe
dgdd�dfe"e!feddgdd�dfe"e!fedgdd�dfgZ0dedded e1fd!d"�Z2deded#ed dfd$d%�Z3d&e1d efd'd(�Z4d)ed&e1d#ed dfd*d+�Z5dYd,d-�Z6dYd.d/�Z7dYd0d1�Z8dYd2d3�Z9dYd4d5�Z:d)ed6e1d7e;d eeddffd8d9�Z<d:ed ee
fd;d<�Z=dZd>ed&e1d#ed7e;d df
d?d@�Z>dYdAdB�Z?dYdCdD�Z@dYdEdF�ZAdYdGdH�ZBdYdIdJ�ZCdYdKdL�ZDdYdMdN�ZEdYdOdP�ZFdYdQdR�ZGdYdSdT�ZHdYdUdV�ZIdYdWdX�ZJdS)[�)�Any�Callable�	Generator�ListN�)�ConnectionClosed�Data�EndOfMessage�Event�InformationalResponse�Request�Response)�Headers�normalize_and_validate)�_obsolete_line_fold�
ChunkedReader�ContentLengthReader�Http10Reader�READERS��
ReceiveBuffer)
�CLIENT�CLOSED�DONE�IDLE�MIGHT_SWITCH_PROTOCOL�
MUST_CLOSE�	SEND_BODY�
SEND_RESPONSE�SERVER�SWITCHED_PROTOCOL)�LocalProtocolError)�
ChunkedWriter�ContentLengthWriter�Http10Writer�write_any_response�
write_headers�
write_request�WRITERS�)�normalize_data_events�GETz/a��Host�foo��
Connection�close��method�target�headerss1GET /a HTTP/1.1
Host: foo
Connection: close

���OK)�status_coder5�reasons&HTTP/1.1 200 OK
Connection: close

sHTTP/1.1 200 OK

�e)�Upgrade�	websocketsUpgrades,HTTP/1.1 101 Upgrade
Upgrade: websocket

sHTTP/1.1 101 Upgrade

�writer).N�obj�returncCsg}|||j�d�|�S)N�)�append�join)r=r>�got_list�rD�</usr/local/lib/python3.10/dist-packages/h11/tests/test_io.py�dowriteRs
rF�expectedcCst||�}||ksJ�dS�N)rF)r=r>rG�gotrDrDrE�twXs
rJ�datacCst�}||7}|SrHr)rK�bufrDrDrE�makebuf]srM�readercs�dtddf�fdd�}t|�}|||��|rJ�t�}tt|��D]}||�dus,J�||||d�7}q"|||��t|�}|d7}|||��t|�dksSJ�dS)NrIr?csF|�ksJ�t|dg�D]\}}t|�tusJ�t|�tus J�qdS)Nr5)�getattr�type�bytes)rI�name�value�rGrDrE�checkds
�ztr.<locals>.checkr)�trailing)rrMr�range�lenrQ)rNrKrGrUrL�irDrTrE�trcs	rZcCs,tD]\\}}}}tt||f||�qdSrH)�SIMPLE_CASESrJr(��role�state�event�binaryrDrDrE�test_writers_simple��racCs,tD]\\}}}}tt||f||�qdSrH)r[rZrr\rDrDrE�test_readers_simple�rbrcc	Cs�tttddg�d�tttg�d�t�t��tttddddgd	d
�d�Wd�n1s0wYt�t��tt	t
ddgd	d�d�Wd�dS1sRwYdS)
N�r.�bar)�baz�quuxsfoo: bar
baz: quux

s
r+�/r,r/�1.0�r3r4r5�http_versionr6)r8r5rk)rJr&rr�pytest�raisesr!r'rr%r
rDrDrDrE�test_writers_unusual�s6
������"�rnc	Cs�ttttfdtdddgdd��ttttfdtddgdd��ttttfdtd	dgdd
d��ttttfdtd	d
gdd
d��ttttfdtd	dgdd
d��ttttfdtd	dgdd
d��ttttfdtd	dgddd��ttttfdtd	dgddd��ttttfdtd	ddgddd��ttttfdtd	ddgddd��ttttfdtddgd�d��t�	t
��ttttfdd�Wd�n1s�wYt�	t
��ttttfd d�Wd�n1s�wYt�	t
��ttttfd!d�Wd�n	1�swYt�	t
��ttttfd!d�Wd�n	1�s5wYt�	t
��ttttfd"d�Wd�dS1�sVwYdS)#Ns$HEAD /foo HTTP/1.0
Some: header

�HEAD�/foo��Some�headerrirjsHEAD /foo HTTP/1.0

s!HTTP/1.0 200 OK
Some: header

r6r7)r8r5rkr9s$HTTP/1.0 200 OK
Foo: a a a a a 

)�Fooz	a a a a asHTTP/1.0 200 OK
Foo:

)rt�sHTTP/1.0 200 OK
Foo: 	 	 

sHTTP/1.0 200
Foo: bar

)rtrer@s#HTTP/1.1 200 OK
SomeHeader: val

)�
SomeHeader�valz1.1�OKs5HTTP/1.1 200 OK
SomeHeader1: val1
SomeHeader2: val2

)�SomeHeader1�val1)�SomeHeader2�val2s7HTTP/1.1 200 OK
SomeHeader1: val1
SomeHeader2: val2

s�HEAD /foo HTTP/1.1
Host: example.com
Some: multi-line
 header
	nonsense
    	   		I guess
Connection: close
More-nonsense: in the
    last header  

)�r-zexample.com)rrz"multi-line header nonsense I guessr/)z
More-nonsensezin the last headerr2s&HEAD /foo HTTP/1.1
  folded: line

s#HEAD /foo HTTP/1.1
foo  : line

s"HEAD /foo HTTP/1.1
foo	: line

sHEAD /foo HTTP/1.1
: line

)rZrrrrrrr
rlrmr!rDrDrDrE�test_readers_unusual�s�
��
�
��
��

��

��	

��

��
��
��
	��
��
��
��
��$�r~cCs&ttgd���dtd�dgksJ�dS)N)�aaasbbbs  ccc�dddrsbbb cccr�)�listr�	bytearrayrDrDrDrE�test__obsolete_line_fold_bytesHs
�r�rL�do_eofccsJ�	||�}|durn|Vt|�turnq|r#|rJ�|��VdSdSrH)rPr	�read_eof)rNrLr�r_rDrDrE�_run_reader_iterUs��	�r��argscGstt|��}t|�SrH)r�r�r*)r��eventsrDrDrE�_run_readerfsr�F�thunkc	Cs�td�t|�}t|�||�|ksJ�td�|�}t�}g}tt|��D]}|t||d�7}||||d�7}q%|t|||�7}t|�|ksJJ�tdd�|D��}|rh|sjt|d�}t|�|d�|kslJ�dSdSdS)NzTest 1zTest 2Fr)css�|]	}t|�tuVqdSrH)rPr	)�.0r_rDrDrE�	<genexpr>|s�z t_body_reader.<locals>.<genexpr>rV)�printrMr�rrWrXr*�any)	r�rKrGr�rLrNr�rY�is_completerDrDrE�
t_body_readerks$�r�cCs4tdd�dt�g�tdd�dtdd�t�g�dS)NcS�td�S)Nr�rrDrDrDrE�<lambda>��z*test_ContentLengthReader.<locals>.<lambda>r@cSr�)N�
r�rDrDrDrEr��r�s
0123456789�rK)r�r	rrDrDrDrE�test_ContentLengthReader�s�r�cCsLttdt�gdd�ttdtdd�gdd�ttdtdd�t�gdd�dS)Nr@T)r�sasdfr�F)r�rr	rrDrDrDrE�test_Http10Reader�s

�r�cCsttdt�g�ttdtdgd�g�ttdtdd�tdgd�g�ttdtdd�t�g�ttd	td
d�t�g�t�t��ttdtdd�g�Wd�n1sTwYt�t��ttd
d�Wd�n1sowYttdtdd�t�g�ttdtdd�t�g�dS)N�0

s0
Some: header

rq�r5s35
01234
10
0123456789abcdef
0
Some: header

s012340123456789abcdefr�s%5
01234
10
0123456789abcdef
0

s�aA
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
0

s�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsi9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
xxxsxxxs10
xxxsG5; hello=there
xxxxx
0; random="junk"; some=more; canbe=lonnnnngg

sxxxxxs5   	 
01234
0

s01234)r�rr	rrlrmr!rDrDrDrE�test_ChunkedReader�sN�
�������	�r�cCs�td�}t|tdd��dksJ�t|tdd��dksJ�t|t��dks&J�td�}t�t��t|tdd��Wd�n1sBwYtd�}t|tdd��t�t��t|tdd��Wd�n1skwYtd�}t|tdd��t�t��t|t��Wd�n1s�wYtd�}t|tdd��dkt|tdd��dkt�t��t|tdgd	��Wd�dS1s�wYdS)
N�s123r�s45r@s123456s456��Etag�asdfr�)r#rFrr	rlrmr!��wrDrDrE�test_ContentLengthWriter�s0���"�r�cCs�t�}t|tdd��dksJ�t|tdd��dksJ�t|tdd��dks'J�t|t��dks1J�t|tdd	gd
��dks?J�dS)Nrr�s3
aaa
saaaaaaaaaaaaaaaaaaaas14
aaaaaaaaaaaaaaaaaaaa
r@r�r�)�a�br�s0
Etag: asdf
a: b

)r"rFrr	r�rDrDrE�test_ChunkedWriter�s�r�cCstt�}t|tdd��dksJ�t|t��dksJ�t�t��t|tdgd��Wd�dS1s3wYdS)Ns1234r�r@r�r�)r$rFrr	rlrmr!r�rDrDrE�test_Http10Writer�s"�r�cC�Dt�t��ttttfdd�Wd�dS1swYdS)NsHTTP/1.0 200 OKxxxx

)rlrmr!rZrrrrDrDrDrE�&test_reject_garbage_after_request_lines"�r�cCr�)Ns&HEAD /foo HTTP/1.1 xxxxxx
Host: a

�rlrmr!rZrrrrDrDrDrE�'test_reject_garbage_after_response_line	�
�"�r�cCr�)Ns%HEAD /foo HTTP/1.1
Host: foobar

r�rDrDrDrE�"test_reject_garbage_in_header_liner�r�c	CshdD]/}td�}|�|�|�d�t�t��tttt	f|d�Wd�n1s,wYqdS)Ns �sHEAD /s HTTP/1.1
Host: foobar

)
r�rA�extendrlrmr!rZrrr)�bad_char�messagerDrDrE�test_reject_non_vchar_in_paths

���r�cCs&ttttfdtddddgd��dS)Ns\HEAD /foo HTTP/1.1
Host: foo
Set-Cookie: ___utmvafIumyLc=kUdUpAt; path=/; Max-Age=900

rorpr,)z
Set-Cookiez-___utmvafIumyLc=kUdUpAt; path=/; Max-Age=900r2)rZrrrrrDrDrDrE�"test_allow_some_garbage_in_cookies%s
���r�cCstttddg�d�dS)Nrdr}sHost: example.com
foo: bar

)rJr&rrDrDrDrE�test_host_comes_first7s

�r�)r?N)F)K�typingrrrrrl�_eventsrrr	r
rrr
�_headersrr�_readersrrrrr�_receivebufferr�_staterrrrrrrrrr �_utilr!�_writersr"r#r$r%r&r'r(�helpersr*r[rQrFrJrMrZrarcrnr~r��boolr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rDrDrDrE�<module>s�$	0$	��
������#




!
���
� 




=