python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_cgi.cpython-311.opt-2.pyc

eYddlZddlZddlZddlZddlmZddlmZmZddl	m
Z
ddlmZej
dZGddZee_Gd	d
ZdZdifd
edfdedfdifdifdddgifdedfdedfdedfdddgifdddgifdddgifdddgifdedfd ed!fd"d#gd$gd%fd&dd#d'gifd(d)gd*gd+gd,fd-d.gd/gd0gd1gd2gd3gd4gd5gd6fd7d8gd9gd:gd)gd;gd<gd=fgZd>Zd?Zd@ZdAZGdBdCejZdDZdEZdFZdGZdHZedIkrej dSdS)JN)
namedtuple)StringIOBytesIO)support)warnings_helpercgic eZdZgZejZdS)HackedSysModuleN)__name__
__module____qualname__argvsysstdinA/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_cgi.pyr
r

sDIEEErr
c&eZdZdZdZdZdZdS)ComparableExceptionc||_dSN)err)selfrs  r__init__zComparableException.__init__s
rc*t|jSr)strrrs r__str__zComparableException.__str__s48}}rct|tstS|jj|jko|jj|jkSr)
isinstance	ExceptionNotImplementedr	__class__args)ranExcs  r__eq__zComparableException.__eq__sA%++	"!!"eo5,
+	-rc,t|j|Sr)getattrr)rattrs  r__getattr__zComparableException.__getattr__"stx&&&rN)rrr
rrr&r*rrrrrsP---'''''rrc|i}|dkr
d}d|d<||d<nd|dkrLt|d}d|d<d|d<tt||d<nt	d	|z	t
||d
S#t$r}t|cYd}~Sd}~wwxYw)NGETREQUEST_METHODQUERY_STRINGPOSTlatin-1!application/x-www-form-urlencodedCONTENT_TYPECONTENT_LENGTHzunknown method: %s)strict_parsing)	rencoderlen
ValueErrorrparser!r)bufmethodenvfprs     rdo_testr>%s
C

 %!N	6		
SZZ	**
+
+ &AN #CHH

-6777(yySy333((("3''''''''(s;B
B;"B60B;6B;&bad query field: ''z&&=z=&=z=aaz&=az=a&z=&abad query field: 'a'zb=abzb+=azb za=b=aza=+b=az b=az&b=azb&=abad query field: 'b'za=a+b&b=b+ca bb crCrEza=a+b&a=b+ab azx=1&y=2.0&z=2-3.%2b012.02-3.+0xyzzHbc5161168c542333633315dee1182227:key_store_seqid=400006&cuyer=r&view=bustomer&order_id=0bb2e248638833d48cb7fed300000f1b&expire=964546263&lobale=en-US&kid=130003.300038&ss=env400006r	964546263z
130003.300038zen-US 0bb2e248638833d48cb7fed300000f1br<bustomer)z1Hbc5161168c542333633315dee1182227:key_store_seqidcuyerexpirekidlobaleorder_idssviewzQgroup_id=5470&set=custom&_assigned_to=31392&_status=1&_category=100&SUBMIT=BrowseBrowse313921005470custom)SUBMIT_assigned_to	_category_statusgroup_idsetc.t|tS)N)key)sortedrepr)seqs rnormrnas#4    rcd|DS)Ncg|]
}|dS)rr.0ps  r
<listcomp>zfirst_elts.<locals>.<listcomp>esQAaDrrlists r
first_eltsrwds$rcd|DS)Nc:g|]}|d|ddfS)rr4rrqs  rrtz%first_second_elts.<locals>.<listcomp>hs(***QqT1Q47O***rrrus rfirst_second_eltsrzgs**T****rcld}t||}|dt|||}i}t|D]9\}}t|tr|	|p|j
||<:|S)Nr0r)r=environencoding)rr6seekrFieldStoragedictitemsr rvgetlistvalue)datar|r}
fake_stdinformresultkvs        r
gen_resultrjsHX..//JOOAz7XNND
FT

  ""GG1q$'';DLLOOFqwq		MrceZdZdZdZdZdZdZdZdZ	e
jed	Z
d
ZdZdZd
ZdZdZdZdZdZdddgdddZdZdZdZdZdZdZdS) CgiTestscttd}tddd}t||}dgdgdgdgd}|||dS)	Nlatin1558boundaryzCONTENT-LENGTH Add 1234
Testing 123.
r?)submitidfiletitle)rPOSTDATAr6BOUNDARYrparse_multipartassertEqual)rr=r<rexpecteds     rtest_parse_multipartzCgiTests.test_parse_multipartxs
X__X..
/
/#??844!&(($$R--&ix./2$@@*****rcd}t|d}dddi}t||}ddgi}|||dS)NzY--JfISa01
Content-Disposition: form-data; name="submit-name"

just a string

--JfISa01--
rrJfISa01submit-namezjust a string
)rr6rrr)rrr=r<rrs      r+test_parse_multipart_without_content_lengthz4CgiTests.test_parse_multipart_without_content_lengths{X__X..
/
/9++H556$$R--!$5#67*****rcd}d}t|d}|dtt|dd}t||dd}d	d
gi}||||dd|d	ddddS)
Nru]--JfISa01
Content-Disposition: form-data; name="submit-name"
Content-Length: 3

☃
--JfISa01utf8rrasciisurrogateescape)r}errorsru	u☃r)rr6rr7rrr)rrrr=r<rrs       r%test_parse_multipart_invalid_encodingz.CgiTests.test_parse_multipart_invalid_encodings
X__V,,
-
-#??844!$S)@)@%A%A!B!BDD$$Rw,=%??!$8#9:***00
.q188ARSS	U	U	U	U	Urct}|||dt	||t
|t
||jtddd|
|dS)NrMockFieldStoragename
fieldvalue)rrassertFalseassertInrlrrvkeysappendr
assertTruerfss  rtest_fieldstorage_propertiesz%CgiTests.test_fieldstorage_propertiess






nd2hh///b4		??333
=z"4f==lKKLLLrc$|ttjdddi|ttjddtddi	}|tt|dS)
Nznot-a-file-objr-PUTr|foobarzcontent-type
text/plain)headers)assertRaises	TypeErrorrrboolrs  rtest_fieldstorage_invalidz"CgiTests.test_fieldstorage_invalids)S%57GEUV[D\		^	^	^)S%5ueDDD


~l&C

D
D)T2.....rc	tD]\}}t|d}|||dt|zt|d}|||dt|zd|i}t|}t
|tr5|t|t||	|
|
||ddd|
D]}||}|||t|d	kr*||||]||||d
dS)Nr,zError parsing %s method GETr/zError parsing %s method POSTr.rznonexistent fielddefaultr4r)
parse_strict_test_casesr>rrlrrr rr7assertCountEqualrgetvaluer)rorigexpectdr<rrj
expect_vals        rtest_strictzCgiTests.test_stricts3	J	JLD&e$$AQ(ET

(RSSSf%%AQ(Fd(STTT!4(C!!#!..B&$''
J  Vc"gg666%%fkkmmRWWYY???  -@)!L!LiXXX!;;==JJC!'JMM#r***:**((S)9)9:FFFF((S)9)9:a=IIII/	J	Jrcddgdgdfddgdgdgdfdtd	fd
td	fdtdfd
td	fdtdfddgdgdfddddgifg	}|D]\}}d|i}td|}t|tr|D]}||}|||t|dkr*||	||]||	||ddS)Nz	x=1;y=2.0rKrL)rOrPzx=1;y=2.0;z=2-3.%2b0rMrN;rAz;;z=;arDz;b=azb;=arFza=a+b;b=b+crGrHrIza=a+b;a=b+arCrJr.)	separatorr|r4r)
r8rrr rrrr7rr)rparse_semicolonrrr<rrjrs        rtest_separatorzCgiTests.test_separators
UG445
#C5whZ%P%PQ
*2334
:3445
J5667
Z 5667
Z 6778
5'889
S5%.12

,
	J
	JLD&!4(C!!C!==B&$''
J!;;==JJC!'JMM#r***:**((S)9)9:FFFF((S)9)9:a=IIII
	J
	Jr)categoryc|tdtt_tddtdd|tjdtj	tj
rxdt_tj
t_tdd|tj
tddSdS)NTestingz%szTesting initlog 1z
Testing log 2z Testing initlog 1
Testing log 2
z
Testing log 3z
Testing log 4)rlogrlogfpinitlogrrospathexistsdevnulllogfile
addCleanupcloselogrs rtest_logzCgiTests.test_logs	JJ	D-...o&&&++--/STTT
7>>"*%%	%CI*CKKKo...OOCL)))GGO$$$$$	%	%rcGdd}|tjd}||j|ddz|dddi}t||	}||jj|	|j
d
|dS)Nc"eZdZdZddZdZdS)=CgiTests.test_fieldstorage_readline.<locals>.TestReadlineFilec"||_d|_dS)Nr)rnumcalls)rrs  rrzFCgiTests.test_fieldstorage_readline.<locals>.TestReadlineFile.__init__s 	 !


rNc|xjdz
c_|r|j|S|jS)Nr4)rrreadline)rsizes  rrzFCgiTests.test_fieldstorage_readline.<locals>.TestReadlineFile.readlinesD

"

09--d3339--///rc|jd}t||}t|tst	||||S)Nr)__dict__r(r intsetattr)rrrrCs    rr*zICgiTests.test_fieldstorage_readline.<locals>.TestReadlineFile.__getattr__sF}V,D$''!!S))+D$***rr)rrr
rrr*rrrTestReadlineFilersF
"
"
"
0
0
0
0




rrzwb+sxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxirr-rr=r|)tempfile
TemporaryFilerclosewriter~rrr
assertGreaterr)rrfr<rs     rtest_fieldstorage_readlinez#CgiTests.test_fieldstorage_readlines
								&
X3E::;;   	
T!"""	q			&


C

0
0
&&&	
1:q)))						rc0ddtdd}ttd}t
||d}|t|j	dddd	d
dddd
d
ddd
dddd
g}tt|j	D]S}||D]6\}}t|j	||}|||7TdS)Nr/ multipart/form-data; boundary={}rr-r2r3r0r|r}rrrfilenamerrr?rtest.txtrrr
formatrrrr6rrrr7rvrangerr(	rr<r=rrrOrexpgots	         rtest_fieldstorage_multipartz$CgiTests.test_fieldstorage_multiparts6%>EEhOO#%%X__Y//
0
0


b#	

B
BRWq)))4@@!dB?? ZARSS"tWEEGs27||$$	+	+A )//++
+
+3bgaj!,,  c****
+	+	+rc6ddtdd}tdtdz}t
||d}|t|j	dd	dd
dddd
dddddddddg}tt|j	D]S}||D]6\}}t|j	||}|||7TdS)Nr/r560rs
r0rrrrrrr?rrrrrrrs	         r.test_fieldstorage_multipart_leading_whitespacez7CgiTests.test_fieldstorage_multipart_leading_whitespace(s9$>EEhOO#%%Wxy999
:
:


b#	

B
BRWq)))4@@!dB?? ZARSS"tWEEGs27||$$	+	+A )//++
+
+3bgaj!,,  c****
+	+	+rcddtdd}dD]}tt|}t
|||}|t|j	dddd	d
g}tt|j	D]S}||D]6\}}t|j	||}	||	|7TdS)Nr/rrr)z
iso-8859-1zutf-8rr4ruçñ€r)
rrrPOSTDATA_NON_ASCIIr6rrrr7rvrrr()
rr<r}r=rrrOrrrs
          r%test_fieldstorage_multipart_non_asciiz.CgiTests.test_fieldstorage_multipart_non_ascii;s &>EEhOO"$$/	/	/H+228<<==B!!"c8!DDBS\\1---"t^LLMF3rw<<((
/
/$Qioo////FAs!"'!*a00C$$S#..../
/	/	/rcd}d_fd}|d|dz
z|d|dz
zdz|d|dz
zdzd|dz
zzdS)Nicddd|z}tt|ddd}t	||d|didS)	Nzp---123
Content-Disposition: form-data; name="upload"; filename="fake.txt"
Content-Type: text/plain

%s
---123--

z
"multipart/form-data; boundary=-123r/r3r2r-uploadr)replacerr7rrr6)contentrr|rs   rcheckz;CgiTests.test_fieldstorage_multipart_maxline.<locals>.checkNsGD&G
$D%(D		NN$H$*G

Zg66&x(@(@A
C
C
C
C
CrrOr4
rP)maxDiff)rmaxliners`  r#test_fieldstorage_multipart_maxlinez,CgiTests.test_fieldstorage_multipart_maxlineJs	C	C	C	C	C	cWq[!"""
cWq[!D()))
cWq[!D(3'A++>>?????rcddttttd}ttd}t||d}|	t|j
d|	|j
djd|	|j
djd	|	|j
d
jd|j
d
j}|	t|dddd
dddddg}tt|D]N}||D]1\}}t|||}	|	|	|2OdS)Nr/rrr0rrrrLarryr4filesz	file1.txts... contents of file1.txt ...rz	file2.gifs...contents of file2.gif...)rBOUNDARY_W3rr7POSTDATA_W3rr6rrrrvrrrrr()
rr<r=rrrrOrrrs
          rtest_fieldstorage_multipart_w3cz(CgiTests.test_fieldstorage_multipart_w3cas%>EEkRR!#k"2"23355[''	22
3
3


b#	

B
BRWq)))-888)7333'222
 UQ'''[Ccdd[Cabbds5zz""	+	+A )//++
+
+3eAh**  c****
+	+	+rcd}d}dd|tt|d}t|d}t
||d}|t|jd||jd	j	d
||jd	j
ddS)Nrz_--JfISa01
Content-Disposition: form-data; name="submit-name"
Content-Length: 5

Larry
--JfISa01r/rrr0rr4rrr)rrr7rr6rrrrvrr)rrrr<r=rs      r%test_fieldstorage_part_content_lengthz.CgiTests.test_fieldstorage_part_content_lengthvs
%>EEhOO!#h--0022X__Y//
0
0


b#	

B
BRWq)))-888)733333rctd}dd|d}t||}|t	|djddS)Nsa--MyBoundary
Content-Disposition: form-data; name="my-arg"; filename="foo"

Test

--MyBoundary--
r/z(multipart/form-data; boundary=MyBoundary)r-r2z
wsgi.inputrzmy-arg)rrrrr7rread)rr=r<fieldss    r.test_field_storage_multipart_no_content_lengthz7CgiTests.test_field_storage_multipart_no_content_lengths
%F


!!"c!22VH-27799::A>>>>>rctd}ddi}t||5}|j}||jjdddn#1swxYwY||jj||d|	td5|jddddS#1swxYwYdS)Ns
xxxxxxxxxxr-rr
xxxxxxxxxxzI/O operation on closed file)rrrrrrclosedrrassertRaisesRegexr8)rr=r<rrs     r$test_fieldstorage_as_context_managerz-CgiTests.test_fieldstorage_as_context_managersc
Y

'


S

1
1	-RgllnnGRW^,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	
'''(+++

#
#J0N
O
O		GLLNNN																		s#9A55A9<A9C77C;>C;value1value2xvalue2yvalue3value4)key1key2key3key4cd}tt|dddd}t||}||j|dS)Nz$key2=value2x&key3=value3&key4=value4r1zkey1=value1&key2=value2yr/r3r2r.r-rr7rr
_qs_resultrrr|rs    rtestQSAndUrlEncodezCgiTests.testQSAndUrlEncodesZ5 #CII C : &	


tW%%!,,,,,rcddgdz}tt|ddd}|t5t
t||ddddn#1swxYwYd	}tt|d
ddd}|t5t
t||d
dddn#1swxYwYt
t||ddS)Nr@za=ar1r/r
)r=r|max_num_fieldsz---123
Content-Disposition: form-data; name="a"

3
---123
Content-Type: application/x-www-form-urlencoded

a=4
---123
Content-Type: application/x-www-form-urlencoded

a=5
---123--
rza=1&a=2r1rr)	joinrr7rr8rrrr6)rrr|s   rtest_max_num_fieldszCgiTests.test_max_num_fieldssxx
##!#d))nn?$



z
*
*		4;;==))!



															
!$CII D ) &	



z
*
*		4;;==)) 



																t{{}}%%		
	
	
	
	
s$=BB!$B!%=D..D25D2cd}tt|dddd}t||}||j|dS)Nz---123
Content-Disposition: form-data; name="key2"

value2y
---123
Content-Disposition: form-data; name="key3"

value3
---123
Content-Disposition: form-data; name="key4"

value4
---123--
rkey1=value1&key2=value2xr/r1r2r4s    rtestQSAndFormDatazCgiTests.testQSAndFormDatas^
!$CII D : &	


tW%%!,,,,,rcd}tt|dddd}|j}|ddit||}|||dS)NaE---123
Content-Disposition: form-data; name="key2"

value2y
---123
Content-Disposition: form-data; name="key3"

value3
---123
Content-Disposition: form-data; name="key4"

value4
---123
Content-Disposition: form-data; name="upload"; filename="fake.txt"
Content-Type: text/plain

this is the content of the fake file

---123--
rr=r/r1r
s%this is the content of the fake file
)rr7r3copyupdaterr)rrr|rrs     rtestQSAndFormDataFilezCgiTests.testQSAndFormDataFiles*!$CII D : &	

%%''

?
			
tW%%#####rc|tddif|tddif|tddddif|tddddif|tdddd	d
f|tddd
dif|tddd
dif|tdddddf|tdddddfdS)Nrztext/vnd.just.made.this.up ; ztext/vnd.just.made.this.upztext/plain;charset=us-asciicharsetzus-asciiztext/plain ; charset="us-ascii"z,text/plain ; charset="us-ascii"; another=optopt)rDanotherz attachment; filename="silly.txt"
attachmentrz	silly.txtz#attachment; filename="strange;name"zstrange;namez-attachment; filename="strange;name";size=123;123)rrz-form-data; name="files"; filename="fo\"o;bar"z	form-datarzfo"o;bar)rr)rrparse_headerrs rtest_parse_headerzCgiTests.test_parse_header%s\**
2	 	 	 	
<==
)2.	0	0	0	
:;;
Iz23	5	5	5	
>??
Iz23	5	5	5	
KLL
zeDDE	G	G	G	
?@@
J45	7	7	7	
BCC
J78	:	:	:	
LMM
FFG	I	I	I	
MNN
7
CCD	F	F	F	F	FrcFhd}tj|t|dS)N>	rdologrnologmaxlenrrrvalid_boundary)not_exported)rcheck__all__r)rrPs  rtest_allzCgiTests.test_allBs3(((	T3\BBBBBBrN)rrr
rrrrrrrrignore_warningsDeprecationWarningrrrrrrrrr!r&r3r5r;r>rBrJrRrrrrrvs++++++UUU$///JJJ4JJJ0%_$.@AAA%%BA%###J+++$+++&
/
/
/@@@.+++*444$???"			I&	J	-	-	-4
4
4
l---0 $ $ $DFFF:CCCCCrrz6---------------------------721837373350705526688164684a-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="id"

1234
-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="title"


-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain

Testing 123.

-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="submit"

 Add 
-----------------------------721837373350705526688164684--
u-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="id"

çñ€
-----------------------------721837373350705526688164684
AaB03xa--AaB03x
Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="files"
Content-Type: multipart/mixed; boundary=BbC04y

--BbC04y
Content-Disposition: file; filename="file1.txt"
Content-Type: text/plain

... contents of file1.txt ...
--BbC04y
Content-Disposition: file; filename="file2.gif"
Content-Type: image/gif
Content-Transfer-Encoding: binary

...contents of file2.gif...
--BbC04y--
--AaB03x--
__main__)!rrrunittestcollectionsriorrtestrtest.supportrimport_deprecatedrr
rr>r8rrnrwrzrTestCaserrrrrrrmainrrr<module>r_sY				



""""""        (((((('o'../

'''''''' (((&H***
+
+,	::+,,-"I
BK	B;
JJ,--.
JJ,--.
JJ-../
S3%LdSE]sUGn
fXZZ-
.
./ZZ.
/
/05'001S5%.)*C5whZHHIw<D:u

	56
Gl		Y
i7(Z	A(T!!!   +++


PCPCPCPCPCx PCPCPCfD*.zHMOOOOOr