KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/22697/root/usr/lib/python2.4/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/22697/root/usr/lib/python2.4/test/test_cookielib.pyo
mò
‚=5Dc@sdZdkZdkZdkZdklZdklZdefd„ƒYZdefd„ƒYZ	dfd	„ƒYZ
d
„Zd„Zd„Z
d
efd„ƒYZdefd„ƒYZdefd„ƒYZed„ZedjoedeƒndS(sTests for cookielib.py.N(sTestCase(stest_supportt
DateTimeTestscBs,tZd„Zd„Zd„Zd„ZRS(NcCsßdkl}d}dd}|i||ƒdƒ|i|||ƒdƒ|i||d|ƒdƒ|i||d	|ƒd
ƒ|ƒ}|dƒ}x:||fD],}|i	t
id|ƒd
||fƒq«WdS(N(s	time2isozix+À<iis2002-04-19 14:36:40Zs2002-04-20 14:36:40Zis2002-04-21 14:36:40Zis2002-04-22 14:36:40Zi ¡s!^\d{4}-\d\d-\d\d \d\d:\d\d:\d\dZ$sbad time2isoz format: %s %s(t	cookielibt	time2isoztbasetdaytselftassertEqualstaztbzttexttassert_tretsearch(RR	RRRRR((t)/usr/lib/python2.4/test/test_cookielib.pyttest_time2isozs

	
c	s_dkl‰‡d†}|i|dƒdƒ|i|dƒdƒ|i|dƒdƒdS(N(s	http2timecstiˆ|ƒƒd S(Ni(ttimetgmtimet	http2timeR	(R	(R(R
t
parse_datess01 Jan 2001iÑiif0.0s	03-Feb-20iäiis	03-Feb-98iÎ(iÑiiiif0.0(iäiiiif0.0(iÎiiiif0.0(RRRRR(RRR((RR
ttest_http2times

c
Csdkl}l}	dddddddd	d
ddd
dg
}d}|	|ƒ}d}|i||d|||fƒx„|D]|}||ƒ}
||iƒƒ}||i
ƒƒ}|i|
|jo|jo
|jnd||
|||fƒqWdS(N(s	http2times	time2isozsThu, 03 Feb 1994 00:00:00 GMTs Thursday, 03-Feb-94 00:00:00 GMTs"Thursday, 03-Feb-1994 00:00:00 GMTs03 Feb 1994 00:00:00 GMTs03-Feb-94 00:00:00 GMTs03-Feb-1994 00:00:00 GMTs03-Feb-1994 00:00 GMTs03-Feb-1994 00:00s	03-Feb-94s03-Feb-1994s03 Feb 1994s  03   Feb   1994  0:00  s  03-Feb-1994  i€>P-s1994-02-03 00:00:00Zs%s  =>  '%s' (%s)s'%s'  =>  %s, %s, %s (%s)(RRRtteststtest_ttresulttexpectedRRtstttlowertt2tuppertt3R
(RRRRRRRRRRR((R
ttest_http2time_formats)s-,c
Csldkl}xXdddddddd	d
dg
D]2}|i||ƒdjd|||ƒfƒq2WdS(
N(s	http2timettGarbagesMandag 16. September 1996s
01-00-1980s
01-13-1980s
00-01-1980s
32-01-1980s01-01-1980 25:00:00s01-01-1980 00:61:00s01-01-1980 00:00:62s,http2time(%s) is not None
http2time(test) %s(RRttestRR
tNone(RR!R((R
ttest_http2time_garbagePs

%(t__name__t
__module__RRRR#(((R
R	s			'tHeaderTestscBs5tZd„Zd„Zd„Zd„Zd„ZRS(NcCsSdkl}d
ddgg}x-dd	gD]}|i||gƒ|ƒq,WdS(
N(sparse_ns_headerstfootbartexpiresld9Wtversiont0s)foo=bar; expires=01 Jan 2040 22:23:32 GMTs+foo=bar; expires="01 Jan 2040 22:23:32 GMT"(sfooR((sexpiresld9W(sversionR+(Rtparse_ns_headersRthdrRR(RRR,R-((R
ttest_parse_ns_headersfs


cCs?dkl}d}ddgg}|i||gƒ|ƒdS(	N(sparse_ns_headerss expires=01 Jan 2040 22:23:32 GMTR)s01 Jan 2040 22:23:32 GMTR*R+(sexpiress01 Jan 2040 22:23:32 GMT(sversionR+(RR,R-RRR(RRR,R-((R
t#test_parse_ns_headers_special_namesqs
cCsOdkl}|ddggƒ}|i|dƒ|i|ggƒdƒdS(	N(sjoin_header_wordsR'R(tbazsfoo; bar=bazR(sfooN(sbarR0(Rtjoin_header_wordsR"tjoinedRR(RR2R1((R
ttest_join_header_words{s
c	Cs,dkl}ddtfggfdddfggfddtfggfdddfggfdddfggfd	ddfggfd
ddfddfggfdddfddfggfd
ddfggfdddfddfggfddtfdtfdtfggfddtfgdtfgdtfggfddtfddfgddfgddfgddfggfg
}x|D]‡\}}y||gƒ}WnEdk}dk}|iƒ}|i
t|ƒd|iƒ}nX|i
||d|||fƒqWdS(N(ssplit_header_wordsR'sfoo=barR(s	   foo   s
   foo=   Rs   foo=s   foo=   ; s   foo=   ; bar= baz R0sfoo=bar bar=bazsfoo= bar=bazsbar=bazsfoo=bar;bar=bazsfoo bar bazsa, b, ctatbtcs(foo; bar=baz, spam=, foo="\,\;\"", bar= tspams,;"s (error -- traceback follows)

%ss:
When parsing: '%s'
Expected:     '%s'
Got:          '%s'
(Rtsplit_header_wordsR"RtargtexpectRt	tracebacktStringIOtft	print_exctgetvalueRR(	RR=R<R;R8RR:R9R((R
ttest_split_header_wordsƒs
ÿŠcCs™dkl}l}dddddddd d!d"d#d$d%g
}xR|D]J\}}||gƒ}||ƒ}|i	||d||||fƒqGWdS(&N(ssplit_header_wordssjoin_header_wordsR'sfoo=bars	   foo   sfoo=sfoo=""sfoo=bar bar=bazsfoo=bar; bar=bazsfoo=bar;bar=bazsfoo bar bazs
foo; bar; bazsfoo="\"" bar="\\"sfoo="\""; bar="\\"s	foo,,,barsfoo, barsfoo=bar,bar=bazsfoo=bar, bar=bazstext/html; charset=iso-8859-1stext/html; charset="iso-8859-1"s)foo="bar"; port="80,81"; discard, bar=bazs'foo=bar; port="80,81"; discard, bar=bazsBasic realm="\"foo\\\\bar\""sBasic; realm="\"foo\\\\bar\""sM
When parsing: '%s'
Expected:     '%s'
Got:          '%s'
Input was:    '%s'
(sfoosfoo(sfoo=barsfoo=bar(s	   foo   sfoo(sfoo=sfoo=""(sfoo=bar bar=bazsfoo=bar; bar=baz(sfoo=bar;bar=bazsfoo=bar; bar=baz(sfoo bar bazs
foo; bar; baz(sfoo="\"" bar="\\"sfoo="\""; bar="\\"(s	foo,,,barsfoo, bar(sfoo=bar,bar=bazsfoo=bar, bar=baz(stext/html; charset=iso-8859-1stext/html; charset="iso-8859-1"(s)foo="bar"; port="80,81"; discard, bar=bazs'foo=bar; port="80,81"; discard, bar=baz(sBasic realm="\"foo\\\\bar\""sBasic; realm="\"foo\\\\bar\""(
RR8R1RR9R:tinputtresRR(RRRBR8R:R9RAR1((R
ttest_roundtrip§s-(R$R%R.R/R3R@RC(((R
R&es
		
		$tFakeResponsecBs tZgdd„Zd„ZRS(NcCsIdk}dk}|idi|ƒƒ}|i|ƒ|_||_	dS(sD
        headers: list of RFC822-style 'Key: value' strings
        Ns
(
t	mimetoolsR<tjointheadersR=tMessageRt_headersturlt_url(RRGRJRER=R<((R
t__init__Ìs
cCs|iS(N(RRI(R((R
tinfoÔs(R$R%R"RLRM(((R
RDËscGst|||dƒS(NsSet-Cookie2(t	_interactt	cookiejarRJtset_cookie_hdrs(RORJRP((R
t
interact_2965ÖscGst|||dƒS(Ns
Set-Cookie(RNRORJRP(RORJRP((R
tinteract_netscapeÙsc
Cs‰dkl}||ƒ}|i|ƒ|iddƒ}g}	x%|D]}|	id||fƒqEWt
|	|ƒ}|i||ƒ|S(sDPerform a single request / response cycle, returning Cookie: header.(sRequesttCookieRs%s: %sN(turllib2tRequestRJtreqROtadd_cookie_headert
get_headert
cookie_hdrRGRPR-tappendthdr_nameRDRBtextract_cookies(
RORJRPR[R-RBRVRURYRG((R
RNÜs

tFileCookieJarTestscBstZd„Zd„ZRS(NcCsÕdkl}ti}|ƒ}t|ddƒ|i|i	dddi
dƒz3|i|dt
ƒ|ƒ}|i|dt
ƒWdyti|ƒWntj
onXX|i|i	dddi
dƒdS(N(sLWPCookieJarshttp://www.acme.com/tbooswww.acme.comt/tignore_discard(RtLWPCookieJarttest_supporttTESTFNtfilenameR6RRRtassertEqualt_cookiestvalueR"tsavetTruetloadtostunlinktOSError(RR6RdRa((R
ttest_lwp_valueless_cookieës
		"	c	Csdkl}l}l}ti}xi||fD][}|ƒ}y|i	ddƒWn(t
j
o}|i
|it
ƒq/X|idƒq/WzVt|dƒ}|idƒx3||fD]%}|ƒ}|i||i	|ƒqºWWdyti|ƒWntj
onXXdS(N(sLWPCookieJarsMozillaCookieJars	LoadErrorRdsAfor this test to work, a file with this filename should not exists%expected IOError for invalid filenametwsoops
(RRatMozillaCookieJart	LoadErrorRbRcRdtcookiejar_classR6RjtIOErrortexcRRet	__class__tfailtopenR=twritetassertRaisesRkRlRm(	RR6RtRqRpR=RdRaRr((R
ttest_bad_magicûs,	
	

	(R$R%RnRz(((R
R]ês	tCookieTestscBstZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d	„Z
d
„Zd„Zd„Z
d
„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(Nc	CsCdk}dk}|iƒ}xddtfddtfddtfddtfddtfddtfddtfd	d
tfd	dtfd	dtfd	dtfd
dtfd
dtfd
dtfd
dtfd
dtfgD]V\}}}|i	|ƒ}|i||ƒ}|o|i|ƒqå|i|ƒqåWdS(Nshttp://foo.bar.com/sblah.comsrhubarb.blah.comsrhubarb.foo.bar.coms.foo.bar.comsfoo.bar.coms.bar.comtcomshttp://foo.com/srhubarb.foo.coms.foo.comsfoo.comshttp://foo/srhubarb.foos.fooR's	foo.locals.local(RRTtDefaultCookiePolicytpoltFalseRiRJtdomaintokRUtrequesttdomain_return_oktrRR
(	RR€RRJR‚RTR~R„R((R
ttest_domain_return_okDsÇcCs€dkl}l}ti}||ƒ}t|ddƒt|ddƒ|iddd}|i|idjƒ|i|idƒ|iddd}|i|idjƒ|i|idƒ|i||ƒd	ƒt|ƒ}|id
tdtƒz&||ƒ}|id
tdtƒWdti|iƒX|it|ƒtidtdt|ƒƒ|it|d
ƒdƒdS(N(sMozillaCookieJarslwp_cookie_strshttp://www.acme.com/teggss"spam"; path=/foo/swww.acme.comR_s/foo/s"spam"sJ"spam"; path="/foo/"; domain="www.acme.com"; path_spec; discard; version=0tignore_expiresR`spath_specified=%sshttp://www.acme.com/foo/s"spam"; eggs(RRptlwp_cookie_strRbRcRdR6RRRftcookieRR
RgR"Rtnametreprtold_strRhRitrevertRkRlRtsubR(RR6RpRˆRdR‰RŒ((R
ttest_missing_valuecs0	
cCsádkl}l}|ƒ}t|ddƒt|ddƒt|ddƒt|ddƒt|ddƒ|id	d
d}|i|i	d	ƒ|i
|iƒ|i|i|ƒ|i
|i
ƒ|i
|idƒo|id
ƒƒ|idd
d}|i|i	dƒ|i
|iƒ|i|idƒ|i
|i
ƒ|idd
d}|i
|idjƒ|i
|i
ƒ|idd
d}|idd
d}|i
|idjƒ|i
|idjƒdS(N(s	CookieJarsDEFAULT_HTTP_PORTshttp://www.acme.com/s0spam=eggs; DoMain=.acme.com; port; blArgh="feep"sni=ni; port=80,8080shttp://www.acme.com:80/snini=nisfoo=bar; expires=s-spam=eggs; expires="Foo Bar 25 33:22:11 3022"s	.acme.comR_R7tblArghtblarghswww.acme.comtnis80,8080tniniR'(Rt	CookieJartDEFAULT_HTTP_PORTR6RRRfR‰RRR€R
tdomain_specifiedtporttport_specifiedthas_nonstandard_attrR"R'R7R)(RR6R”R7R‰R•R'((R
ttest_ns_parser…s4		'cCsqdkl}|ƒ}t|ddƒt|ddƒ|idd}|id|jƒ|id|jƒdS(	N(s	CookieJarshttp://www.acme.com/sexpires=eggssversion=eggs; spam=eggsswww.acme.comR_R)R*(RR”R6RRRftcookiesRR
(RR”R6R›((R
ttest_ns_parser_special_namesªs
	cCs³dkl}l}|ƒ}|tiƒdƒ}t|dd|ƒ|it	|ƒdƒ|tiƒdƒ}t|dd|ƒt|dƒ}|it	|ƒdƒ|id|jo
d|jƒt|dd	|ƒt|dd
|ƒ|it	|ƒdƒt|dd|ƒt|dd
|ƒt|dƒ}|it	|ƒdƒt|ddƒ|it	|ƒdƒ|i
ƒ|it	|ƒdƒ|id|jƒdS(N(s
time2netscapes	CookieJarishttp://www.acme.com/sspam="bar"; expires=%sisfoo="eggs"; expires=%ss
spam="bar"R'seggs="bar"; expires=%ssbar="bar"; expires=%sis!eggs="bar"; expires=%s; max-age=0s bar="bar"; max-age=0; expires=%sshttp://www.rhubarb.net/swhum="fizz"i(Rt
time2netscapeR”R6RtfutureRRRRtlentnowthR
tclear_session_cookies(RR6R”R¡RžRR ((R
ttest_expires·s,	 
cCsÊdkl}l}|dtƒ}||ƒ}t|ddƒ|id|i	djƒ||ƒ}t|ddƒ|id|i	djƒ||ƒ}t|d	dƒ|id
|i	djƒ||ƒ}t|ddƒ|id|i	djƒ|ƒ}t
|dd
ƒ|id|i	djƒ|ƒ}t
|ddƒ|id|i	djƒ|ƒ}t
|d	dƒ|id|i	djƒ|ƒ}t
|ddƒ|id|i	djƒdS(N(s	CookieJarsDefaultCookiePolicytrfc2965shttp://www.acme.com/sspam="bar"; Version="1"R_swww.acme.comshttp://www.acme.com/blahseggs="bar"; Version="1"s http://www.acme.com/blah/rhubarbs/blah/s!http://www.acme.com/blah/rhubarb/s/blah/rhubarb/s
spam="bar"s
eggs="bar"s/blahs
/blah/rhubarb(RR”R}RiR~R6RQRR
RfRR(RR}R6R”R~((R
ttest_default_pathßs8						cCsedkl}dddddddddddg}x*|D]"\}}|i||ƒ|ƒq;WdS(N(sescape_paths/foo%2f/bars/foo%2F/bars
/foo%%/bars/fo%19o/bars/fo%7do/bars/fo%7Do/bars	/foo/bar&s	/foo//bars	~/foo/bars	/foo/bars/foo%19/bars	/}foo/bars/%7Dfoo/baru/foo/barê¯s/foo/bar%EA%AF%8D(s/foo%2f/bars/foo%2F/bar(s/foo%2F/bars/foo%2F/bar(s
/foo%%/bars
/foo%%/bar(s/fo%19o/bars/fo%19o/bar(s/fo%7do/bars/fo%7Do/bar(s	/foo/bar&s	/foo/bar&(s	/foo//bars	/foo//bar(s	~/foo/bars	~/foo/bar(s	/foo/bars/foo%19/bar(s	/}foo/bars/%7Dfoo/bar(u/foo/barê¯s/foo/bar%EA%AF%8D(Rtescape_pathtcasesR9RRR(RRR§R¦R9((R
ttest_escape_path	s

'cCs„dkl}dkl}|dƒ}|i||ƒdƒ|dƒ}|i||ƒdƒ|dƒ}|i||ƒdƒdS(	N(sRequest(srequest_pathsShttp://www.example.com/rheum/rhaponicum;foo=bar;sing=song?apples=pears&spam=eggs#nis=/rheum/rhaponicum;foo=bar;sing=song?apples=pears&spam=eggs#nisAhttp://www.example.com/rheum/rhaponicum?apples=pears&spam=eggs#nis+/rheum/rhaponicum?apples=pears&spam=eggs#nishttp://www.example.comR_(RTRURtrequest_pathRVRR(RRVRUR©((R
ttest_request_path!s

cCs†dkl}dkl}l}|ddhdd<ƒ}|i||ƒdƒ|ddhdd<ƒ}|i||ƒ|ƒdS(	N(sRequest(srequest_portsDEFAULT_HTTP_PORTshttp://www.acme.com:1234/RGtHostswww.acme.com:4321t1234shttp://www.acme.com/(RTRURtrequest_portR•RVRR(RRVR­RUR•((R
ttest_request_port2s
cCsâdkl}dkl}|ddhdd<ƒ}|i||ƒdƒ|ddhdd	<ƒ}|i||ƒd
ƒ|ddhdd
<ƒ}|i||ƒd
ƒ|ddhdd
<ƒ}|i||ƒd
ƒdS(N(sRequest(srequest_hostshttp://1.1.1.1/RGR«swww.acme.com:80s1.1.1.1shttp://www.acme.com/sirrelevant.comswww.acme.coms/resource.htmls&http://www.acme.com:2345/resource.htmlswww.acme.com:5432(RTRURtrequest_hostRVRR(RR¯RVRU((R
ttest_request_host<s

cCs¯dkl}|i|dƒƒ|i|dƒƒ|i|dƒƒ|i|dƒƒ|i|dƒƒ|i|dƒƒ|i|dƒƒ|i|d	ƒƒdS(
N(sis_HDNsfoo.bar.coms1foo2.3bar4.5coms192.168.1.1Rt.s.foo.bar.coms..foosfoo.(Rtis_HDNRR
(RR²((R
ttest_is_HDNSs
cCsÁdkl}|i|dƒdƒ|i|dƒdƒ|i|dƒdƒ|i|dƒdƒ|i|dƒdƒ|i|dƒdƒ|i|d	ƒd	ƒ|i|d
ƒd
ƒdS(N(sreachswww.acme.coms	.acme.comsacme.coms
acme.locals.locals.comR±Rs192.168.0.1(RtreachRR(RR´((R
t
test_reach^s
cCsÑdkl}l}|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|dd	ƒƒ|i|d	dƒƒ|i|d
dƒƒ|i|dd
ƒƒ|i|d
dƒƒ|i|d
d
ƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|dd
ƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|ddƒƒ|i|dd
ƒƒdS(N(sdomain_matchsuser_domain_matchs192.168.1.1s.168.1.1sx.y.comsx.Y.coms.Y.comsY.coms	a.b.c.coms.c.coms
example.locals.locals	blah.blahRs.rhubarb.rhubarbsacme.coms	.acme.comsrhubarb.acme.comswww.rhubarb.acme.comsy.coms.y.coms.comR|tms.mR±(Rtdomain_matchtuser_domain_matchRR
(RR¸R·((R
ttest_domain_matchis@cCs@dkl}|ƒ}t|ddƒ|it|ƒdƒdS(N(s	CookieJarshttp://www.nasty.com/s)foo=bar; domain=friendly.org; Version="1"i(RR”R6RQRRRŸ(RR”R6((R
ttest_wrong_domainŽs

		cCs±dkl}l}|ƒ}t|ddƒ|it|ƒdƒ|i|idddi	dƒ|it|dƒdƒ|it|d	ƒdƒ|d
|i
ƒ}|i|ƒ|it|d	ƒdƒt|dd
ƒt|ddƒ|it|ƒdƒ|i|idddi	dƒ|i|idddi	dƒ|it|dƒdƒt|ddƒ|it|ƒdƒt|ddƒ|it|ƒdƒdS(N(s	CookieJarsDefaultCookiePolicyshttp://foo.net/sns=barisfoo.netR_tnsR(shttp://www.foo.net/tstrict_ns_domainRshttp://foo.net/foo/sspam1=eggs; domain=foo.netshttp://foo.net/foo/bar/sspam2=eggs; domain=.foo.netis.foo.nets/footspam1R†s/foo/bartspam2sspam2=eggs; spam1=eggs; ns=barsnini="ni"; domain=.netshttp://foo.co.uksnasty=trick; domain=.co.uki(
RR”R}R6RRRRRŸRfRgtDomainStrictNonDomainR~t
set_policy(RR}R6R”R~((R
ttest_two_component_domain_ns™s4	"
		cCs±dkl}l}|dtƒ}||ƒ}t|ddƒ|it	|ƒdƒ|i|i
dddid	ƒ|it|dƒd
ƒ|it|dƒdƒt|d
dƒ|it	|ƒdƒ|it|d
ƒd
ƒt|ddƒ|i|i
dddidƒ|it	|ƒdƒ|it|dƒd
ƒ|it|dƒdƒt|ddƒ|it	|ƒdƒt|ddƒ|it	|ƒdƒdS(N(s	CookieJarsDefaultCookiePolicyR¤shttp://foo.net/sfoo=bar; Version="1"isfoo.netR_R'R(s$Version=1; foo=barshttp://www.foo.net/Rshttp://foo.net/foos1spam=eggs; domain=foo.net; path=/foo; Version="1"shttp://www.foo.net/foo/s&spam=eggs; domain=foo.net; Version="1"s.foo.nets/foo/R7R†ishttp://foo.net/foo/s($Version=1; spam=eggs; $Domain="foo.net"s#ni="ni"; domain=".net"; Version="1"shttp://foo.co.uk/s'nasty=trick; domain=.co.uk; Version="1"i(RR”R}RiR~R6RQRRRŸRfRg(RR}R6R”R~((R
t!test_two_component_domain_rfc2965Ës:"				c	CsŒdkl}l}dkl}|d|ddgddgƒƒ}|dƒ}d	g}t|dƒ}|i
||ƒ|it
|ƒd
ƒ|dƒ}t|dƒ}|i
||ƒ|it
|ƒdƒ|d
ƒ}t|d
ƒ}|i
||ƒ|it
|ƒdƒ|d
ƒ}t|d
ƒ}|i||ƒ}|i|d
ƒ|it
|ƒdƒ|i|ƒ|i|idƒƒdS(N(s	CookieJarsDefaultCookiePolicy(sRequesttpolicytblocked_domainssacme.comtallowed_domainsswww.acme.comshttp://acme.com/s*Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/ishttp://www.acme.com/ishttp://www.coyote.com/iRS(RR”R}RTRUR6RVRGRDRBR\RRRŸtmake_cookiesR›t
set_cookieRWR
t
has_header(	RR}R6R”RBRVRUR›RG((R
ttest_domain_allowùs0
	
cCsdkl}l}dkl}|dtddgƒ}
|d|
ƒ}dg}	|dƒ}t
|	dƒ}|i||ƒ|it|ƒd	ƒ|
id
gƒ}|i||ƒ|it|ƒdƒ|iƒ|dƒ}t
|	dƒ}|i||ƒ|it|ƒdƒ|dƒ}|i|ƒ|i|id
ƒo
|idƒƒ|iƒ|
idgƒ|i||ƒ|it|ƒdƒ|dƒ}t
|	dƒ}|i||ƒ}|i|d	ƒ|it|ƒdƒ|i|ƒ|i|id
ƒƒdS(N(s	CookieJarsDefaultCookiePolicy(sRequestR¤RÄs	.acme.comRÃs*Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/shttp://www.acme.com/isacme.comishttp://www.roadrunner.net/RStCookie2i(RR”R}RTRURiR~R6RGRVRDRBR\RRRŸtset_blocked_domainstptclearRWR
RÈRÆR›RÇ(RR}R6R”RÌRBRVRUR›RGR~((R
ttest_domain_blocks>
	

&

c
Csdkl}l}xûttfD]í}	xädD]Ü}|ƒ}|	o|dtƒ}t	}d}n|dtƒ}t}d}|i
|ƒd}|||d||fƒ|||d||fƒ|i|id	d
didƒ|i|id	d
d
idƒq-Wq WdS(N(s	CookieJarsDefaultCookiePolicyt RR¤s; Version=1shttp://www.acme.com/sfoo1=bar%s%ssfoo2=bar%s; secure%sswww.acme.comR_tfoo1s#non-secure cookie registered securetfoo2s#secure cookie registered non-secure(RÏR(RR”R}RiRR»t
whitespaceR6R~RRtinttvsRQRÀRJRR
Rftsecure(
RR}R6R”RÒRÓR~RÔRJR»((R
ttest_secureFs*
	

cCs^dkl}l}|d|dtƒƒ}t|ddƒt|dƒ}|i|dƒdS(N(s	CookieJarsDefaultCookiePolicyRÃR¤shttp://www.acme.com/sfoo=\b"a"r; Version=1s$Version=1; foo=\\b\"a\"r(	RR”R}RiR6RQR¡RR(RR}R6R”R¡((R
ttest_quote_cookie_value_s
cCs”dkl}l}dkl}d}||dtƒƒ}t||dƒ||ƒ}|it|ƒdƒ|i
|ƒ|i|idƒƒdS(N(s	CookieJarsDefaultCookiePolicy(sRequestshttp://www.acme.comR¤sfoo=bar; Version=1iRS(RR”R}RTRURJRiR6RQRVRRRŸRWR
RÈ(RR}R6R”RJRVRU((R
ttest_missing_final_slashfs

cCsûdkl}l}|dtƒ}||ƒ}d}t||dƒt||ƒ}|i
d|jdƒ||ƒ}d}t||dƒt||ƒ}|i
d|jd	ƒ||ƒ}d}t||d
ƒt||ƒ}|i
d|jd	ƒdS(N(s	CookieJarsDefaultCookiePolicyR¤shttp://foo.bar.com/sspam=eggs; Version=1tDomains*absent domain returned with domain presents%spam=eggs; Version=1; Domain=.bar.coms$Domain=".bar.com"sdomain not returneds$spam=eggs; Version=1; Domain=bar.coms$Domain="bar.com"(RR”R}RiR~R6RJRQR¡RR
(RR}R6R”RJR¡R~((R
ttest_domain_mirrorrs$cCs´dkl}l}|dtƒ}||ƒ}d}t||dƒt||ƒ}|i
d|jdƒ||ƒ}d}t||dƒt||ƒ}|i
d|jd	ƒdS(
N(s	CookieJarsDefaultCookiePolicyR¤shttp://foo.bar.com/sspam=eggs; Version=1tPaths&absent path returned with path presentsspam=eggs; Version=1; Path=/s	$Path="/"spath not returned(RR”R}RiR~R6RJRQR¡RR
(RR}R6R”RJR¡R~((R
ttest_path_mirror‹scCsHdkl}l}|dtƒ}||ƒ}d}t||dƒt||ƒ}|i
d|jdƒ||ƒ}d}t||dƒt||ƒ}|i
tid|ƒd	ƒ||ƒ}d}t||d
ƒt||ƒ}|i
d|jdƒ||ƒ}d}t||d
ƒt||ƒ}|i
d|jdƒdS(N(s	CookieJarsDefaultCookiePolicyR¤shttp://foo.bar.com/sspam=eggs; Version=1tPorts&absent port returned with port presentsspam=eggs; Version=1; Ports\$Port([^=]|$)s-port with no value not returned with no valuesspam=eggs; Version=1; Port="80"s
$Port="80"s5port with single value not returned with single values$spam=eggs; Version=1; Port="80,8080"s$Port="80,8080"s;port with multiple values not returned with multiple values(
RR”R}RiR~R6RJRQR¡RR
RR(RR}R6R”RJR¡R~((R
ttest_port_mirrors4cCsgdkl}l}||dtƒƒ}d}t||dƒt||ƒ}|i	d|jdƒdS(N(s	CookieJarsDefaultCookiePolicyR¤shttp://foo.bar.com/sfspam=eggs; Version=1; Comment="does anybody read these?"; CommentURL="http://foo.bar.net/comment.html"tComments:Comment or CommentURL cookie-attributes returned to server(
RR”R}RiR6RJRQR¡RR
(RR}R6R”RJR¡((R
ttest_no_return_comment¿scCs€dkl}l}l}||dtƒƒ}	t|	ddƒt|	ddƒt|	ddƒt|	ddƒt|	d	d
ƒdddddg}d
ddddg}dddddg}
dddddg}x§tdƒD]™}d}xŠ|	D]‚}|it||ƒƒ|i|i||ƒ|i|i||ƒ|i|i|
|ƒ|i|i||ƒ|d}qòWqßWdS(N(s	CookieJarsCookiesDefaultCookiePolicyR¤shttp://blah.spam.org/sefoo=eggs; Version=1; Comment="does anybody read these?"; CommentURL="http://foo.bar.net/comment.html"shttp://www.acme.com/blah/sspam=bar; securesfoo=bar; secure; Version=1sfoo=bar; path=/; Version=1shttp://www.sol.nossbang=wallop; version=1; domain=".sol.no"; port="90,100, 80,8080"; max-age=100; Comment = "Just kidding! (\"|\\\\) "iitbangR'R7s.sol.nos
blah.spam.orgswww.acme.comR_s/blahs/blah/i(RR”RSR}RitcsRQRRtversionstnamestdomainstpathstrangetiR6RR
t
isinstanceRR*RŠR€tpath(RR}RæR6R”RèRãRSRäRâRå((R
ttest_Cookie_iteratorÌs2			
cCs™dkl}|i|dgƒd
dddggƒ|i|d
gƒdddggƒ|i|dgƒddggƒ|i|dgƒgƒdS(N(sparse_ns_headerssfoo=bar; path=/; domainR'R(RêR_R€R*R+s)foo=bar; expires=Foo Bar 12 33:22:11 2000R)R(sfoosbar(spathR_(sdomainN(sversionR+(sfoosbar(sexpiresN(sversionR+(sfooN(sversionR+(RR,RRR"(RR,((R
R.îs
cCs˜d„}xHdgdgdgdggD](}||ƒ}|it|ƒdƒq(Wdg}||ƒ}|idd	d
}|i|i	djƒdS(NcCsRdkl}dkl}|ƒ}|dƒ}t|dƒ}|i	||ƒ|S(N(s	CookieJar(sRequestshttp://www.example.com/(
RR”RTRUR6RVRDRGR„R\(RGR6R”RVRUR„((R
tcookiejar_from_cookie_headerss

	sSet-Cookie: s
Set-Cookie2: s-Set-Cookie2: a=foo; path=/; Version=1; domainsSet-Cookie: b=foo; max-age=oopsis3Set-Cookie: c=foo; expires=Foo Bar 12 33:22:11 2000swww.example.comR_R6(RìRGR6RRRŸRfR‰R
R)R"(RR6RGR‰Rì((R
ttest_bad_cookie_headers	
	(R$R%R…RRšRœR£R¥R¨RªR®R°R³RµR¹RºRÁRÂRÉRÎRÖR×RØRÚRÜRÞRàRëR.Rí(((R
R{s8/		"	%	
	(	*			
				%		2	.	"	+						"	
	"	tLWPCookieTestscBsttZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d	„Z
d
„Zd„Zd„Z
RS(
Nc
Cs6dkl}l}dkl}tiƒdd}	g}||dt	ƒƒ}|ddhdd	<ƒ}|id
|	ƒt
|dƒ}|i||ƒ|dƒ}|i|ƒ|i|idƒd
ƒ|i|idƒdƒ|idƒt
|dƒ}|i||ƒ|dƒ}|i|ƒ|idƒ}|id|jo
d
|jƒ|idƒt
|dƒ}|i||ƒ|dƒ}|i|ƒ|idƒ}|id|jod
|jo
d|jƒ|dƒ}|i|ƒ|idƒ}|id|jod
|jo
|idƒƒdS(N(s	CookieJarsDefaultCookiePolicy(sRequestiiR¤shttp://www.acme.com:80/RGR«swww.acme.com:80sVSet-Cookie: CUSTOMER=WILE_E_COYOTE; path=/ ; expires=Wednesday, 09-Nov-%d 23:12:40 GMTshttp://www.acme.com/RSsCUSTOMER=WILE_E_COYOTERÊs$Version="1"s4Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/shttp://www.acme.com/foo/bars PART_NUMBER=ROCKET_LAUNCHER_0001s%Set-Cookie: SHIPPING=FEDEX; path=/fooshttp://www.acme.comsSHIPPING=FEDEXshttp://www.acme.com/foo/sSHIPPING=FEDEX;(RR”R}RTRURt	localtimet
year_plus_oneRGRiR6RVRZRDRBR\RWRReRXR¡R
t
startswith(
RR}R6R”RBRVRURGR¡Rð((R
ttest_netscape_example_1&s@
&


 

-
cCsþdkl}dkl}|ƒ}g}|dƒ}|idƒt|dƒ}|i
||ƒ|dƒ}|i|ƒ|i
|idƒdƒ|idƒt|dƒ}|i
||ƒ|dƒ}|i|ƒ|itid	|idƒƒƒdS(
N(s	CookieJar(sRequestshttp://www.acme.com/s4Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/RSs PART_NUMBER=ROCKET_LAUNCHER_0001s6Set-Cookie: PART_NUMBER=RIDING_ROCKET_0023; path=/ammoshttp://www.acme.com/ammosBPART_NUMBER=RIDING_ROCKET_0023;\s*PART_NUMBER=ROCKET_LAUNCHER_0001(RR”RTRUR6RGRVRZRDRBR\RWRRRXR
RR(RR6R”RBRVRURG((R
ttest_netscape_example_2„s&

	



cCs	dkl}l}||dtƒƒ}t|ddƒ}|i|ƒt|ddƒ}|it	i
d|ƒƒt|dd	ƒ}|it	i
d
|ƒƒ|it	i
d|ƒƒ|it	i
d|ƒƒt|d
ƒ}|it	i
d|ƒo
d|jƒdS(N(s	CookieJarsDefaultCookiePolicyR¤shttp://www.acme.com/acme/logins3Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"s!http://www.acme.com/acme/pickitems=Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme"s=^\$Version="?1"?; Customer="?WILE_E_COYOTE"?; \$Path="/acme"$s!http://www.acme.com/acme/shippings+Shipping="FedEx"; Version="1"; Path="/acme"s^\$Version="?1"?;s7Part_Number="?Rocket_Launcher_0001"?;\s*\$Path="\/acme"s-Customer="?WILE_E_COYOTE"?;\s*\$Path="\/acme"s http://www.acme.com/acme/processs%Shipping="?FedEx"?;\s*\$Path="\/acme"t
WILE_E_COYOTE(RR”R}RiR6RQR‰RR
RR(RR}R6R”R‰((R
ttest_ietf_example_1ºs$				
		

cCs–dkl}l}||dtƒƒ}t|dddƒt|dƒ}|it	i
d|ƒƒt|dƒ}|id	|jo
d
|jƒdS(N(s	CookieJarsDefaultCookiePolicyR¤s&http://www.acme.com/acme/ammo/specifics=Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme"s@Part_Number="Riding_Rocket_0023"; Version="1"; Path="/acme/ammo"s!http://www.acme.com/acme/ammo/...s(Riding_Rocket_0023.*Rocket_Launcher_0001shttp://www.acme.com/acme/parts/tRocket_Launcher_0001tRiding_Rocket_0023(RR”R}RiR6RQR‰RR
RR(RR}R6R”R‰((R
ttest_ietf_example_2-s
	c	Cszdkl}l}|dtƒ}|d|ƒ}d}t|ddƒ}|i
|ƒt|ddƒ}|it|ƒdƒt|d	d
ƒ}|it|ƒdƒt|d	dƒ}|it|ƒdƒt|d
dƒ}|it|ƒdƒt|ddƒ}|it|ƒdƒt|ddƒ}|it|ƒdƒt|ddƒ}|it|ƒdƒt|ddƒ}|it|ƒdƒt|ddƒ}|it|ƒdƒt|ddƒ}|it|ƒdƒt
i}zE|i|dtƒt|ƒ}|d|ƒ}|i|dtƒWdyti|ƒWntj
onXX|i|t|ƒƒdS(N(sDefaultCookiePolicysLWPCookieJarR¤RÃsmax-age=3600shttp://www.acme.coms!foo=bar; domain=".com"; version=1s'ping=pong; domain="acme.com"; version=1ishttp://www.a.acme.coms'whiz=bang; domain="acme.com"; version=1s,wow=flutter; domain=".a.acme.com"; version=1ishttp://125.125.125.125s*zzzz=ping; domain="125.125.125"; version=1shttp://www.sol.nos6blah=rhubarb; domain=".sol.no"; path="/foo"; version=1shttp://www.sol.no/foo/bars3bing=bong; domain=".sol.no"; path="/foo"; version=1is5whiz=ffft; domain=".sol.no"; port="90,100"; version=1ssbang=wallop; version=1; domain=".sol.no"; port="90,100, 80,8080"; max-age=100; Comment = "Just kidding! (\"|\\\\) "is9foo9=bar; version=1; domain=".sol.no"; port; max-age=100;ishttp://www.sol.no/<oo/s"foo8=bar; version=1; path="/%3coo"iR`(RR}RaRiR~R6tmax_ageRQR‰RR
RRŸRbRcRdRhR‹toldRjRkRlRm(	RR}RùR6RúRdR~R‰Ra((R
ttest_rejectionesb																								cCs²dkl}l}||dtƒƒ}t|ddƒt|ddƒ}tidti	ƒ}|id|jo
|i
|ƒƒt|d	ƒ}|i|ƒt|d
ƒ}dS(N(s	CookieJarsDefaultCookiePolicyR¤s1http://www.acme.com/foo%2f%25/%3c%3c%0Anew%E5/%E5sfoo  =   bar; version    =   1s+http://www.acme.com/foo%2f%25/<<%0anewå/æøås bar=baz; path="/foo/"; version=1s^\$version=\"?1\"?sfoo=bars)http://www.acme.com/foo/%25/<<%0anewå/æøåuhttp://www.acme.com/ü(RR”R}RiR6RQR‰RtcompiletIt
version_reRR
R(RR}R6R”R‰Rþ((R
ttest_url_encodingÂs			#c	sVdkl‰l‰tiƒdd}ti‰ˆˆdˆdt	ƒƒ}t|ddƒt|ddƒt|dd	ƒd
|f}t
|dd|ƒt
|dd
|ƒt
|dd|ƒ‡‡‡d†}||t	ƒ}|it|ƒdƒ|idt|ƒjƒ||tƒ}|it|ƒdƒ|idt|ƒjƒdS(N(sMozillaCookieJarsDefaultCookiePolicyiiRÃR¤shttp://www.acme.com/s foo1=bar; max-age=100; Version=1s4foo2=bar; port="80"; max-age=100; Discard; Version=1sfoo3=bar; secure; Version=1sexpires=09-Nov-%d 23:12:40 GMTshttp://www.foo.com/sfooa=bar; %ssfoob=bar; Domain=.foo.com; %ss fooc=bar; Domain=www.foo.com; %scskz<|id|ƒˆˆˆdtƒƒ}|id|ƒWdyt	i
ˆƒWntj
onXX|S(NR`R¤(tcjRhR`RpRdR}Ritnew_cRjRkRlRm(RR`R(R}RpRd(R
tsave_and_restoreðsisname='foo1', value='bar'i(RRpR}RRïRðRbRcRdRiR6RQR)RRRRRRRŸR
R‹R(	RR}R6RpR)RdRRRð((R}RpRdR
ttest_mozillaØs0			
			cCsÜdkl}dkl}|ƒ}g}|dƒ}|idƒt|dƒ}|i
||ƒ|idƒt|dƒ}|i
||ƒ|dƒ}|i|ƒ|i
d|idƒjod	|idƒjƒdS(
N(s	CookieJar(sRequestshttp://foo.bar.acme.com/foos4Set-Cookie: Customer=WILE_E_COYOTE; domain=.acme.comshttp://www.acme.com/foos4Set-Cookie: PART_NUMBER=3,4; domain=foo.bar.acme.comsPART_NUMBER=3,4RSsCustomer=WILE_E_COYOTE(RR”RTRUR6RGRVRZRDRBR\RWRR
RX(RR6R”RBRVRURG((R
ttest_netscape_miscs

	


cCs¦dkl}l}||dtƒƒ}t|ddƒt|ddƒ}|id|jƒt|ddƒt|dƒ}|id|jot	|ƒd	jƒdS(
N(s	CookieJarsDefaultCookiePolicyR¤shttp://example/s#foo1=bar; PORT; Discard; Version=1;s$foo2=bar; domain=".local"; Version=1sfoo1=barsfoo3=bar; Version=1sfoo2=bari(
RR”R}RiR6RQR‰RR
RŸ(RR}R6R”R‰((R
ttest_intranet_domains_2965s			cCs¯dkl}l}||dtƒƒ}t|ddƒt|ddƒ}|it	|ƒdƒ|i
d|jƒt|dƒ}|i
d|jƒ|it	|ƒdƒdS(N(s	CookieJarsDefaultCookiePolicyR¤shttp://example/sfoo1=barsfoo2=bar; domain=.localisfoo2=bar(RR”R}RR6RRR‰RRRŸR
(RR}R6R‰R”((R
ttest_intranet_domains_ns-s		cCs
dkl}l}dkl}||dtƒƒ}g}|dƒ}|i	dƒt
|dƒ}|i||ƒ|dƒ}|i
|ƒ|i|idƒdƒ|i|idƒd	ƒ|d
ƒ}|i
|ƒ|i|idƒdƒ|i|idƒd	ƒdS(N(s	CookieJarsDefaultCookiePolicy(sRequestR¤shttp://www.ants.com/s,Set-Cookie: JSESSIONID=ABCDERANDOM123; Path=RSsJSESSIONID=ABCDERANDOM123RÊs$Version="1"shttp://www.ants.com:8080(RR”R}RTRURiR6RGRVRZRDRBR\RWRRRX(RR}R6R”RBRVRURG((R
ttest_empty_path;s$
	


cCs‡dkl}dkl}tiƒdd}
|dƒ}g}|i	dƒ|i	d|
ƒ|i	d|
ƒ|i	d	ƒ|i	d
ƒt
|dƒ}|ƒ}|i
||ƒhdd<dd<d
d<dd<}x-|D]%}d|i}	||	d||	<qâW|iƒx-|D]%}d|i}	||	d||	<qW|i|d|djp|ddjp|d
djƒdS(N(s	CookieJar(sRequestiis"http://www.perlmeister.com/scriptss$Set-Cookie: s1=session;Path=/scriptssWSet-Cookie: p1=perm; Domain=.perlmeister.com;Path=/;expires=Fri, 02-Feb-%d 23:24:20 GMTs>Set-Cookie: p2=perm;Path=/;expires=Fri, 02-Feb-%d 23:24:20 GMTs<Set-Cookie: s2=session;Path=/scripts;Domain=.perlmeister.coms2Set-Cookie2: s3=session;Version=1;Discard;Path="/"t
session_aftert
perm_aftertsession_beforetperm_befores	%s_befores%s_after(RR”RTRURRïRðRVRGRZRDRBR6R\tcounterR‰RgtkeyR¢RR
(RR6RR”RBRVRURGR‰R
Rð((R
ttest_session_cookies]s0




	*


(R$R%RòRóRõRøRûRÿRRRRRR(((R
Rî#s	^	6	s	8	]		+				"cCs*dkl}titttttƒdS(N(s	test_sets(	R!t	test_setsRbtrun_unittestRR&R{R]Rî(tverboseR((R
t	test_mainŒs
	t__main__R(t__doc__RRkRtunittesttTestCaseR!RbRR&RDRQRRRNR]R{RîR"RR$Ri(RbRNRRR]R&RîRRRR{RRQRDRRk((R
t?s(

\f			+ÿÿÿÿÿk



Anon7 - 2021