Format: application/x-python-code
⬇ Download File (12.0 KB)
   1  o
   2  
   3  .'h@�@s�ddlmZmZmZmZddlZddlmZmZm	Z	m
   4  Z
   5  mZmZm
   6  Z
   7  ddlmZmZddlmZmZmZmZmZddlmZddlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#dd	l$m%Z%dd
   8  l&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/eefed
   9  dddgd�dfe"e!fe
  10  ddgdd�dfe"e!fe
  11  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
  12  fd;d<�Z=dZd>ed&e1d#ed7e;d df
  13  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�
  14  ChunkedReader�ContentLengthReader�Http10Reader�READERS��
  15  ReceiveBuffer)
  16  �CLIENT�CLOSED�DONE�IDLE�MIGHT_SWITCH_PROTOCOL�
  17  MUST_CLOSE�	SEND_BODY�
  18  SEND_RESPONSE�SERVER�SWITCHED_PROTOCOL)�LocalProtocolError)�
  19  ChunkedWriter�ContentLengthWriter�Http10Writer�write_any_response�
  20  write_headers�
  21  write_request�WRITERS�)�normalize_data_events�GETz/a��Host�foo��
  22  Connection�close��method�target�headerss1GET /a HTTP/1.1
  23  Host: foo
  24  Connection: close
  25  
  26  ���OK)�status_coder5�reasons&HTTP/1.1 200 OK
  27  Connection: close
  28  
  29  sHTTP/1.1 200 OK
  30  
  31  �e)ZUpgradeZ	websocketsUpgrades,HTTP/1.1 101 Upgrade
  32  Upgrade: websocket
  33  
  34  sHTTP/1.1 101 Upgrade
  35  
  36  �writer).N�obj�returncCsg}|||j�d�|�S)N�)�append�join)r;r<Zgot_list�rA�GC:\Users\shubh\Videos\agent\nova\Lib\site-packages\h11/tests/test_io.py�dowriteRs
  37  rC�expectedcCst||�}||ksJ�dS�N)rC)r;r<rD�gotrArArB�twXs
  38  rG�datacCst�}||7}|SrEr)rH�bufrArArB�makebuf]srJ�readercs�dtddf�fdd�}t|�}|||��|rJ�t�}tt|��D]}||�dus,J�||||d�7}q"|||��t|�}|d7}|||��t|�dksSJ�dS)NrFr=csF|�ksJ�t|dg�D]\}}t|�tusJ�t|�tus J�qdS)Nr5)�getattr�type�bytes)rF�name�value�rDrArB�checkds
  39  �ztr.<locals>.checkr)�trailing)rrJr�range�lenrN)rKrHrDrRrI�irArQrB�trcs	rWcCs,tD]\\}}}}tt||f||�qdSrE)�SIMPLE_CASESrGr(�Zrole�state�event�binaryrArArB�test_writers_simple��r]cCs,tD]\\}}}}tt||f||�qdSrE)rXrWrrYrArArB�test_readers_simple�r^r_c	Cs�tttddg�d�tttg�d�t�t��tttddddgd	d
  40  �d�Wd�n1s0wYt�t��tt	t
  41  ddgd	d�d�Wd�dS1sRwYdS)
  42  N�r.�bar)ZbazZquuxsfoo: bar
  43  baz: quux
  44  
  45  s
  46  r+�/r,r/�1.0�r3r4r5�http_versionr6)r8r5re)rGr&rr�pytest�raisesr!r'rr%r
  47  rArArArB�test_writers_unusual�s6
  48  ������"�rhc	Cs�ttttfdtdddgdd��ttttfdtddgdd��ttttfdtd	dgdd
  49  d��ttttfdtd	d
  50  gdd
  51  d��ttttfdtd	dgdd
  52  d��ttttfdtd	dgdd
  53  d��ttttfdtd	dgddd��ttttfdtd	dgddd��ttttfdtd	ddgddd��ttttfdtd	ddgddd��ttttfdtddgd�d��t�	t
  54  ��ttttfdd�Wd�n1s�wYt�	t
  55  ��ttttfd d�Wd�n1s�wYt�	t
  56  ��ttttfd!d�Wd�n	1�swYt�	t
  57  ��ttttfd!d�Wd�n	1�s5wYt�	t
  58  ��ttttfd"d�Wd�dS1�sVwYdS)#Ns$HEAD /foo HTTP/1.0
  59  Some: header
  60  
  61  �HEAD�/foo��Some�headerrcrdsHEAD /foo HTTP/1.0
  62  
  63  s!HTTP/1.0 200 OK
  64  Some: header
  65  
  66  r6r7)r8r5rer9s$HTTP/1.0 200 OK
  67  Foo: a a a a a 
  68  
  69  )�Fooz	a a a a asHTTP/1.0 200 OK
  70  Foo:
  71  
  72  )rn�sHTTP/1.0 200 OK
  73  Foo: 	 	 
  74  
  75  sHTTP/1.0 200
  76  Foo: bar
  77  
  78  )rnrar>s#HTTP/1.1 200 OK
  79  SomeHeader: val
  80  
  81  )Z
  82  SomeHeader�valz1.1�OKs5HTTP/1.1 200 OK
  83  SomeHeader1: val1
  84  SomeHeader2: val2
  85  
  86  )ZSomeHeader1Zval1)ZSomeHeader2Zval2s7HTTP/1.1 200 OK
  87  SomeHeader1: val1
  88  SomeHeader2: val2
  89  
  90  s�HEAD /foo HTTP/1.1
  91  Host: example.com
  92  Some: multi-line
  93   header
  94  	nonsense
  95      	   		I guess
  96  Connection: close
  97  More-nonsense: in the
  98      last header  
  99  
 100  )�r-zexample.com)rlz"multi-line header nonsense I guessr/)z
 101  More-nonsensezin the last headerr2s&HEAD /foo HTTP/1.1
 102    folded: line
 103  
 104  s#HEAD /foo HTTP/1.1
 105  foo  : line
 106  
 107  s"HEAD /foo HTTP/1.1
 108  foo	: line
 109  
 110  sHEAD /foo HTTP/1.1
 111  : line
 112  
 113  )rWrrrrrrr
 114  rfrgr!rArArArB�test_readers_unusual�s�
 115  ��
 116  �
 117  ��
 118  ��
 119  
 120  ��
 121  
 122  ��	
 123  
 124  ��
 125  
 126  ��
 127  ��
 128  ��
 129  	��
 130  ��
 131  ��
 132  ��
 133  ��$�rscCs&ttgd���dtd�dgksJ�dS)N)�aaasbbbs  ccc�dddrtsbbb cccru)�listr�	bytearrayrArArArB�test__obsolete_line_fold_bytesHs
 134  �rxrI�do_eofccsJ�	||�}|durn|Vt|�turnq|r#|rJ�|��VdSdSrE)rMr	Zread_eof)rKrIryr[rArArB�_run_reader_iterUs��	�rz�argscGstt|��}t|�SrE)rvrzr*)r{�eventsrArArB�_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|�tuVqdSrE)rMr	)�.0r[rArArB�	<genexpr>|s�z t_body_reader.<locals>.<genexpr>rS)�printrJr}rrTrUr*�any)	r~rHrDryrIrKr|rVZis_completerArArB�
 135  t_body_readerks$�r�cCs4tdd�dt�g�tdd�dtdd�t�g�dS)NcS�td�S)Nr�rrArArArB�<lambda>��z*test_ContentLengthReader.<locals>.<lambda>r>cSr�)N�
 136  r�rArArArBr��r�s
 137  0123456789�rH)r�r	rrArArArB�test_ContentLengthReader�s�r�cCsLttdt�gdd�ttdtdd�gdd�ttdtdd�t�gdd�dS)Nr>T)rysasdfr�F)r�rr	rrArArArB�test_Http10Reader�s
 138  
 139  �r�cCsttdt�g�ttdtdgd�g�ttdtdd�tdgd�g�ttdtdd�t�g�ttd	td
 140  d�t�g�t�t��ttdtdd�g�Wd�n1sTwYt�t��ttd
 141  d�Wd�n1sowYttdtdd�t�g�ttdtdd�t�g�dS)N�0
 142  
 143  s0
 144  Some: header
 145  
 146  rk�r5s35
 147  01234
 148  10
 149  0123456789abcdef
 150  0
 151  Some: header
 152  
 153  s012340123456789abcdefr�s%5
 154  01234
 155  10
 156  0123456789abcdef
 157  0
 158  
 159  s�aA
 160  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 161  0
 162  
 163  s�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsi9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 164  xxxsxxxs10
 165  xxxsG5; hello=there
 166  xxxxx
 167  0; random="junk"; some=more; canbe=lonnnnngg
 168  
 169  sxxxxxs5   	 
 170  01234
 171  0
 172  
 173  s01234)r�rr	rrfrgr!rArArArB�test_ChunkedReader�sN�
 174  �������	�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)
 175  N�s123r�s45r>s123456s456�ZEtagZasdfr�)r#rCrr	rfrgr!��wrArArB�test_ContentLengthWriter�s0���"�r�cCs�t�}t|tdd��dksJ�t|tdd��dksJ�t|tdd��dks'J�t|t��dks1J�t|tdd	gd
 176  ��dks?J�dS)Nrtr�s3
 177  aaa
 178  saaaaaaaaaaaaaaaaaaaas14
 179  aaaaaaaaaaaaaaaaaaaa
 180  r>r�r�)�a�br�s0
 181  Etag: asdf
 182  a: b
 183  
 184  )r"rCrr	r�rArArB�test_ChunkedWriter�s�r�cCstt�}t|tdd��dksJ�t|t��dksJ�t�t��t|tdgd��Wd�dS1s3wYdS)Ns1234r�r>r�r�)r$rCrr	rfrgr!r�rArArB�test_Http10Writer�s"�r�cC�Dt�t��ttttfdd�Wd�dS1swYdS)NsHTTP/1.0 200 OKxxxx
 185  
 186  )rfrgr!rWrrrrArArArB�&test_reject_garbage_after_request_lines"�r�cCr�)Ns&HEAD /foo HTTP/1.1 xxxxxx
 187  Host: a
 188  
 189  �rfrgr!rWrrrrArArArB�'test_reject_garbage_after_response_line	�
 190  �"�r�cCr�)Ns%HEAD /foo HTTP/1.1
 191  Host: foobar
 192  
 193  r�rArArArB�"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
 194  Host: foobar
 195  
 196  )
 197  rwr?�extendrfrgr!rWrrr)Zbad_char�messagerArArB�test_reject_non_vchar_in_paths
 198  
 199  ���r�cCs&ttttfdtddddgd��dS)Ns\HEAD /foo HTTP/1.1
 200  Host: foo
 201  Set-Cookie: ___utmvafIumyLc=kUdUpAt; path=/; Max-Age=900
 202  
 203  rirjr,)z
 204  Set-Cookiez-___utmvafIumyLc=kUdUpAt; path=/; Max-Age=900r2)rWrrrrrArArArB�"test_allow_some_garbage_in_cookies%s
 205  ���r�cCstttddg�d�dS)Nr`rrsHost: example.com
 206  foo: bar
 207  
 208  )rGr&rrArArArB�test_host_comes_first7s
 209  
 210  �r�)r=N)F)K�typingrrrrrfZ_eventsrrr	r
 211  rrr
 212  �_headersrr�_readersrrrrrZ_receivebufferr�_staterrrrrrrrrr Z_utilr!�_writersr"r#r$r%r&r'r(�helpersr*rXrNrCrGrJrWr]r_rhrsrx�boolrzr}r�r�r�r�r�r�r�r�r�r�r�r�r�rArArArB�<module>s�$	0$	��
 213  ������#
 214  
 215  
 216  
 217  
 218  !
 219  ���
 220  � 
 221  
 222  
 223  
 224  
 225  =
 226  
 227  
 228  	
 229  
 230  	
 231  	
 232  
 233