C¨@6SrSSKrSSKrSSKrSSKrSSKJr SSKJr SSKJ r SSK J r SSK r SSK r SSKrSSKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r' \RPS:Hr)"S S \ RT5r+"S S \ RT5r,"S S5r-Sr.Sr/Sr0"SS\ RT5r1"SS\ RT5r2"SS\ RT\ 5r3\4S:Xa\ Rj"5 gg)zTests for http/cookiejar.py.N)support) os_helper)warnings_helper)ExtraAssertions) time2isoz http2timeiso2time time2netscapeparse_ns_headersjoin_header_wordssplit_header_wordsCookie CookieJarDefaultCookiePolicy LWPCookieJarMozillaCookieJar LoadErrorlwp_cookie_strDEFAULT_HTTP_PORT escape_pathreachis_HDN domain_matchuser_domain_match request_path request_port request_hostwin32c\rSrSrSrSrSrSr\R"S/SQ5S5r S r S r \R"S /S Q5S 5r \R"S/SQ5S5rSrSrg) DateTimeTestsc tSnSnUR[U5S5 UR[X-5S5 UR[USU--5S5 UR[USU--5S5 [5n[S 5nX44HnURUS S U<S U<35 M g) Nx+@"E Gc tSnSnUR[U5S5 UR[X-5S5 UR[USU--5S5 UR[USU--5S5 [5n[S 5nX44HnURUS S U<S U<35 M g) Nr#r$zFri, 19-Apr-2002 14:36:40 GMTzSat, 20-Apr-2002 14:36:40 GMTr%zSun, 21-Apr-2002 14:36:40 GMTr&zMon, 22-Apr-2002 14:36:40 GMTr'z;[a-zA-Z]{3}, \d{2}-[a-zA-Z]{3}-\d{4} \d{2}:\d{2}:\d{2} GMT$zbad time2netscape format: r()r)r r*r+s r2test_time2netscape DateTimeTests.test_time2netscape(s t,.MN tx08 : tAcEz28 : tAcEz28 :_ 6 "HD   N57< >r5cSnURU"S5S5 URU"S5S5 URU"S5S5 g)NcF[R"[U55SS$N)timegmtimerr1s r2 parse_date0DateTimeTests.test_http2time..parse_date?s;;y/3 3r5z 01 Jan 2001)irBrrz 03-Feb-20)ir%r&rrrCz 03-Feb-98)ir%r&rrrCr)r,r@s r2test_http2timeDateTimeTests.test_http2time>sO 4 M24KL K02IJ K02IJr5c /SQnSn[U5nSnURX4U<SU<SU<S35 UHnUR[U5X%5 UR[UR55X%R55 UR[UR 55X%R 55 M g)N)zThu, 03 Feb 1994 00:00:00 GMT Thursday, 03-Feb-94 00:00:00 GMTz"Thursday, 03-Feb-1994 00:00:00 GMTz03 Feb 1994 00:00:00 GMTz03-Feb-94 00:00:00 GMTz03-Feb-1994 00:00:00 GMTz03-Feb-1994 00:00 GMTz03-Feb-1994 00:00z02-Feb-1994 24:00z 03-Feb-94z 03-Feb-1994z 03 Feb 1994z 03 Feb 1994 0:00 z 03-Feb-1994 >P-z1994-02-03 00:00:00Zz => 'z' ())rr)rlowerupper)r,teststest_tresultexpectedss r2test_http2time_formats$DateTimeTests.test_http2time_formatsJs ,6") 06I KA   Yq\6 5   Yqwwy16779 E   Yqwwy16779 Er5test)GarbagezMandag 16. September 1996z 01-00-1980z 01-13-1980z 00-01-1980z 32-01-1980z01-01-1980 25:00:00z01-01-1980 00:61:0001-01-1980 00:00:62z08-Oct-3697739z 08-01-3697739z09 Feb 19942632 22:23:32 GMTz Wed, 09 Feb 1994834 22:23:32 GMTc8UR[U55 gN) assertIsNonerr,rUs r2test_http2time_garbage$DateTimeTests.test_http2time_garbagens" )D/*r5cx[SRSS-55 [SRSS-55 g)Nz01 Jan 1970{}00:00:00 GMT!r(iz01 Jan 1970 00:00:00{}GMT!)rformatr,s r22test_http2time_redos_regression_actually_completes@DateTimeTests.test_http2time_redos_regression_actually_completess4 .55cGmDE.55cGmDEr5cSnURU"S5S5 URU"S5S5 URU"S5S5 g)NcF[R"[U55SS$r;)r=r>r r?s r2r@/DateTimeTests.test_iso2time..parse_dates;;x~.r2 2r519940203T141529Z)ir%r&z1994-02-03 07:15:29 -0700z1994-02-03 19:45:29 +0530rDrEs r2 test_iso2timeDateTimeTests.test_iso2timesX 3 $671 3 $?@1 3 $?@1 3r5rR) z1994-02-03 00:00:00 -0000z1994-02-03 00:00:00 +0000z1994-02-03 00:00:00z 1994-02-03z1994-02-03T00:00:0019940203z1994-02-02 24:00:0019940203T000000Zz 1994-02-03 z 1994-02-03T00:00:00 cSnUR[U5X!5 UR[UR55X!R55 UR[UR55X!R55 g)NrJ)r)r rLrM)r,rRrOs r2test_iso2time_formats#DateTimeTests.test_iso2time_formatss_  !f0 !''),fggi@ !''),fggi@r5) rVrWrIz 1980-00-01z 1980-13-01z 1980-01-00z 1980-01-32z1980-01-01 25:00:00z1980-01-01 00:61:00rXz01-01-1980T00:00:6219800101T250000Zc8UR[U55 grZ)r[r r\s r2test_iso2time_garbage#DateTimeTests.test_iso2time_garbages (4.)r5cx[SRSS-55 [SRSS-55 g)Nz1994-02-03{}14:15:29 -0100!r(i@Bz1994-02-03 14:15:29{}-0100!)r r`ras r2$test_iso2time_performance_regression2DateTimeTests.test_iso2time_performance_regressions4 .55c%i@A.55c%i@Ar5N)__name__ __module__ __qualname____firstlineno__r3r7rFrSrsubTestsr]rbrkrprtrw__static_attributes__ryr5r2r r s G>, K"FH f  +! +F3  c   A  A f   *  *Br5r c\rSrSr\R "SSS/5S5r\R "SSS/5S5rS rS r \R "S S S //4SS//4SS //4SS//4SS//4SS//4SSS//4SSS//4SS//4SSS//4S/SQ/4SS/S/S //4S!S S/S"/S#/S$//4/ 5S%5r \R "S /S&Q5S'5r S(r g))* HeaderTestshdrz)foo=bar; expires=01 Jan 2040 22:23:32 GMTz+foo=bar; expires="01 Jan 2040 22:23:32 GMT"cF/SQ/nUR[U/5U5 g)N)foobar)expiresld9Wversion0r)r r,rrQs r2test_parse_ns_headers!HeaderTests.test_parse_ns_headerss% PP )3%0(;r5zfoo=bar; version="1"foo=bar; Version="1"cFSS//nUR[U/5U5 g)Nr)r1rrs r2test_parse_ns_headers_version)HeaderTests.test_parse_ns_headers_versions* $%567 )3%0(;r5cJSnSS//nUR[U/5U5 g)Nz expires=01 Jan 2040 22:23:32 GMT)rz01 Jan 2040 22:23:32 GMTrrrs r2#test_parse_ns_headers_special_names/HeaderTests.test_parse_ns_headers_special_namess/1<>NOP )3%0(;r5c|[SS//5nURUS5 UR[//5S5 g)NrNrbazz foo; bar=bazrV)r r))r,joineds r2test_join_header_words"HeaderTests.test_join_header_wordss<"]N$C#DE 0 *B40"5r5z arg,expectrrfoo=barr foo z foo= )rrVz foo=z foo= ; z foo= ; bar= baz rfoo=bar bar=bazz foo= bar=baz)rzbar=bazfoo=bar;bar=baz foo bar baz)r)rN)rNza, b, c)aN)bN)cNz(foo; bar=baz, spam=, foo="\,\;\"", bar= )spamrV)rz,;")rrVc [U/5nUR X2SU<SU<SU<S35 g! SSKnSSKnUR5nUR SU5 SUR 5-nNa=f)Nrz (error -- traceback follows) %s When parsing: '' Expected: '' Got: '' )r tracebackioStringIO print_excgetvaluer))r,argexpectrPrrfs r2test_split_header_words#HeaderTests.test_split_header_wordssl& I'.F & FF +   I  A   a (9AJJLHFs .?A/))rr)rr)rr)zfoo=foo="")rfoo=bar; bar=baz)rr)rz foo; bar; baz)zfoo="\"" bar="\\"zfoo="\""; bar="\\")u föo=bäru föo="bär")z foo,,,barzfoo, bar)zfoo=bar,bar=bazzfoo=bar, bar=baz)zfoo= r)foo=" "r)zfoo=bar r) foo="bar "r)z foo=bar bazz foo=bar; baz) foo="bar baz"r)text/html; charset=iso-8859-1r)text/html; charset="iso-8859/1"r)z)foo="bar"; port="80,81"; discard, bar=bazz'foo=bar; port="80,81"; discard, bar=baz)zBasic realm="\"foo\\\\bar\""zBasic; realm="\"foo\\\\bar\"")n; foo="foo;_", bar="foo,_"rc x[U/5n[U5nURXBSU<SU<SU<SU<S3 5 g)Nrrrz' Input was: 'r)r r r))r,rrinputress r2test_roundtripHeaderTests.test_roundtrips=F#C5)& f  FC '  !r5ryN) rzr{r|r}rr~rrrrrrrryr5r2rrs e 7 9  <  <  e " "  <  < <6  l m_% & .)* + M?+ , [M? + + ( {m_ - $ ^'D&E F ..!A B C 123 4 ..!A B C JK L + }E F 8n-n~. ? @%  $ % $  l!% ! D!E! D!r5rc(\rSrSr/S4SjrSrSrg) FakeResponsei4NcbSSKnURSRU55UlX lg)z4 headers: list of RFC822-style 'Key: value' strings rN )emailmessage_from_stringjoin_headers_url)r,headersurlrs r2__init__FakeResponse.__init__5s' 11$))G2DE  r5cUR$rZ)rras r2infoFakeResponse.info<s 4==(r5)rr)rzr{r|r}rrrryr5r2rr4s!t)r5rc[XUS5$)Nz Set-Cookie2 _interact cookiejarrset_cookie_hdrss r2 interact_2965r>s Y_m DDr5c[XUS5$)Nz Set-Cookierrs r2interact_netscaperAs Y_l CCr5c[RRU5nURU5 UR SS5n/nUHnUR U<SU<35 M [ Xa5nURX5 U$)zDPerform a single request / response cycle, returning Cookie: header.rrVz: )urllibrequestRequestadd_cookie_header get_headerappendrextract_cookies) rrrhdr_namereq cookie_hdrrrrs r2rrDsr ..  %C $"-JG8S12 w $C c' r5c(\rSrSrSrSrSrSrSr\ R"\ S5\ RS55r\ R"\ S5\ RS 55r\ R"\ S5\ RS 55rS rS rg )FileCookieJarTestsiQcr[Rn[U5nURURU5 grZ)rTESTFNrr)filenamer,rrs r2test_constructor_with_str,FileCookieJarTests.test_constructor_with_strRs+##  " X.r5c[Rn[[R"U55nUR UR U5 grZ)rrrFakePathr)rrs r2test_constructor_with_path_like2FileCookieJarTests.test_constructor_with_path_likeWs6## ++H5 6 X.r5cP[S5nURUR5 grZ)rr[rr,rs r2test_constructor_with_none-FileCookieJarTests.test_constructor_with_none\s   !**%r5c"SS5n[[U4HInURUS9 UR[5 U"5n[ US9nSSS5 SSS5 MK g!,(df  N=f!,(df  Mn=f)Nc\rSrSrSrg)?FileCookieJarTests.test_constructor_with_other_types..AiaryN)rzr{r|r}rryr5r2Aras r5rr)intfloatsubTest assertRaises TypeErrorr)r,rtype_instancers r2!test_constructor_with_other_types4FileCookieJarTests.test_constructor_with_other_types`sh  5!_Eu-&&y1$wH$h7A2.-%11.-s#A7A&A7& A4 0A77 B c[Rn[5n[USS5 UR UR SSSR S5 URUSS9 [5nURUSS9 [R"U5 UR UR SSSR S5 g![R"U5 f=f)Nhttp://www.acme.com/boo www.acme.com/Tignore_discard) rrrrr)_cookiesvaluesaveloadunlinkrs r2test_lwp_valueless_cookie,FileCookieJarTests.test_lwp_valueless_cookiejs## N!3U; N3C8?EEtL ' FF8DF 1A FF8DF 1   X & N3C8?EEtL   X &s *CC z9windows file permissions are incompatible with file modescb[Rn[5n[USS5 UR USS9 [ R "U5nUR[ R"UR5S5 [R"U5 g![R"U5 f=fNrrTr i) rrrrrosstatr)S_IMODEst_moderr,rrsts r2test_lwp_filepermissions+FileCookieJarTests.test_lwp_filepermissionsxs## N!3U; ' FF8DF 1"B   T\\"**5u =   X &I  X & ABB.cb[Rn[5n[USS5 UR USS9 [ R "U5nUR[ R"UR5S5 [R"U5 g![R"U5 f=fr) rrrrrrrr)rrrrs r2test_mozilla_filepermissions/FileCookieJarTests.test_mozilla_filepermissionss##  !3U; ' FF8DF 1"B   T\\"**5u =   X &I  X &rc([Rn[[4HnU"U5n[R R S5nS/n[US5nURXd5 UR[U5S5 UR5 UR5 UR5 UR5 [R"U5 UR[U5S5 M g![R"U5 f=f)Nrz1Set-Cookie: pll_lang=en; Max-Age=31536000; path=/rBr)rrrrrrrrrr)lenrclearrr)r,rcookiejar_classrrrrs r2test_cookie_files_are_truncated2FileCookieJarTests.test_cookie_files_are_truncateds## ,.>?O)A..(()?@CJKGw(>?C  c '   SVQ ' +   *   SVQ ') @$  *s AC99DcR[Rn[[4H+nU"5nUR SS9 UR S5 M- [US5nURS5 [[4H+nU"5nUR[URU5 M- SSS5 [R"U5 g![ a+nURUR[5 SnAMSnAff=f!,(df  N]=f![R"U5 f=f)NzAfor this test to work, a file with this filename should not existrz%expected OSError for invalid filenamewzoops )rrrrrfailOSError assertIsNot __class__ropenwriterr)r,rr%rexcrs r2test_bad_magic!FileCookieJarTests.test_bad_magics##+-==O!A C!<= AB > 'h$!'35E'EO')A%%iB(F%   X & ;   :: ;%$   X &s<C DA C=&D C: C55C:= D DD&ryN)rzr{r|r}rrrrrunittestskipIf mswindowsrskip_unless_working_chmodrr r&r1rryr5r2rrQs/ / &8 M__Y [\(( ')] '__Y [\(( ')] '__Y [\((()](0'r5rc\rSrSr\R "S/SQ5S5rSr\R "S/SQ5S5rS r S r S r S r S r \R "S/SQ5S5rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrS rS!rS"r S#r!S$r"S%r#S&r$S'r%S(r&S)r'S*r(S+r)S,r*S-r+S.r,S/r-S0r.g1)2 CookieTestsiz url,domain,ok))http://foo.bar.com/zblah.comF)r9zrhubarb.blah.comF)r9zrhubarb.foo.bar.comF)r9 .foo.bar.comT)r9 foo.bar.comT)r9z.bar.comT)r9bar.comT)r9comT)http://foo.com/zrhubarb.foo.comF)r>.foo.comT)r>foo.comT)r>r=T) http://foo/z rhubarb.fooF)rAz.fooT)rArT)rAz foo.localT)rA.localT)http://barfoo.comr?F)rCr@Fc[5n[RRU5nUR X%5nU(aUR U5 gUR U5 grZ)rrrrdomain_return_ok assertTrue assertFalse)r,rdomainokpolrrs r2test_domain_return_ok!CookieTests.test_domain_return_oksL6"#..((-   1 tq!q!r5cr[Rn[U5n[USS5 [USS5 URSSSnUR UR 5 URURS5 URSSSnUR UR 5 URURS5 UR[U5S5 [U5nURS S S 9 [U5nURS S S 9 [R"UR5 UR[U5[R "S S -S S -U55 UR[US 5S5 g![R"UR5 f=f)Nreggsz"spam"; path=/foo/r r /foo/z"spam"zH"spam"; path="/foo/"; domain=www.acme.com; path_spec; discard; version=0T)ignore_expiresr zpath_specified=%sFhttp://www.acme.com/foo/z "spam"; eggs)rrrrr r[rr)namerreprrrevertrrresub)r,rrcookieold_strs r2test_missing_valueCookieTests.test_missing_values~## X &!3V<!35IJN+C08 &,,' f-N+G4X> &,,' h/ / , .q' d48 ) *A HHDH >   QZZ (  G FF&-/BU/J   *1.HI' )   QZZ (s F"F6z#rfc2109_as_netscape,rfc2965,version))NFr)NTrB)FFN)FTrB)TFr)TTrcz[UUS9n[U5n[USS5 URSSSnUR UR U5 [ USS5 U(a2URSSSnUR UR S 5 gg![a URU5 gf=f) N)rfc2109_as_netscaperfc2965http://www.example.com/zni=ni; Version=1www.example.comr nifoo=bar; Version=1rrB) rrrr r)rrKeyErrorr[)r,r]r^rpolicyrrX cookie2965s r2test_rfc2109_handling!CookieTests.test_rfc2109_handling7s% 3 f !68JK 8ZZ 1237=F   V^^W 5 !60 2ZZ(9:3?F   !3!3Q7 '   g & 'sBB:9B:c[5n[USS5 [USS5 [USS5 [USS5 [USS5 [USS5 [USS 5 [USS 5 URS S S nURURS 5 UR UR 5 URUR[5 URUR5 UR URS55 URURS55 URSS SnURURS5 URUR 5 URURS5 UR UR5 URSS SnURUR5 URUR5 URSS SnURSS SnURUR5 URUR5 URSS SnURUR5 URURS5 URSS S nURUR5 g)Nrz0spam=eggs; DoMain=.acme.com; port; blArgh="feep"zni=ni; port=80,8080http://www.acme.com:80/znini=nizfoo=bar; expires=z-spam=eggs; expires="Foo Bar 25 33:22:11 3022"z fortytwo=z=unladenswallowholyhandgrenade .acme.comr rblArghblarghr raz80,8080ninirfortytworV)rrr r)rHrFdomain_specifiedportrrGport_specifiedhas_nonstandard_attrr[rassertIsNotNoner)r,rrXrrs r2test_ns_parserCookieTests.test_ns_parserVs{ K!3L N!35JK!6 B!68KL!69? @!3[A!35FG!35FGK(-f5  4 //0 &78 ../ 33H=> 44X>?N+C06 7 001 i0 --.N+C08 &++& ../jj(-e4zz.)#.u5 #++& $,,'N+C0< V\\* r* N+C01BC &,,'r5c[5n[USS5 [USS5 URSSnURSU5 URSU5 g)Nrz expires=eggszversion=eggs; spam=eggsr r rr)rrr assertIn)r,rcookiess r2test_ns_parser_special_names(CookieTests.test_ns_parser_special_namessU K!3^D!35NO**^,S1 i) i)r5cN[5n[[R"5S-5n[R"U5 SU3/n[ R RS5n[US5nURXT5nUR[U5S5 UR[USR5U5 SSS5 [USSU-5 UR[U5S5 [[R"5S- 5n[USSU-5 [US5nUR[U5S5 URS U5 URS U5 [USS U-5 [USS U-5 UR[U5S 5 [USSU-5 [USSU-5 [US5nUR[U5S5 [USS5 UR[U5S5 UR!5 UR[U5S5 URS U5 [#SSSSSSSSSSSSSSS05n URU RS5 g!,(df  GN=f)Nz%Set-Cookie: FOO=BAR; path=/; expires=http://www.coyote.com/rBrrzspam="bar"; expires=%szfoo="eggs"; expires=%s spam="bar"rzeggs="bar"; expires=%szbar="bar"; expires=%sr&z!eggs="bar"; expires=%s; max-age=0z bar="bar"; max-age=0; expires=%szhttp://www.rhubarb.net/z whum="fizz"r%rSrFzwww.python.orgTr z1444312383.018307i?uV)rr r=rcheck_no_warningsrrrr make_cookiesr)r#rrrx assertNotInclear_session_cookiesr) r,rfuturerrrrynowhrXs r2 test_expiresCookieTests.test_expiress{ Ktyy{4/0  . .t 4>vhGHG..(()ABCw(@ACnnS.G   S\1 -   ]71:+=+=> G 5 !35M 6! " Q#DIIKM*!35M6  a!7 8 Q# lA& " !35M 6! "!35L 6! " Q#!3624:6; <!3624:6; < a!7 8 Q# !6 F Q# ! Q# lA&FGu&6uc':d  4a5 4s BJ J$c~[SS9n[U5n[USS5 URSURS5 [U5n[USS5 URSURS5 [U5n[US S5 URS URS5 [U5n[US S5 URS URS5 [5n[ USS 5 URSURS5 [5n[ USS5 URSURS5 [5n[ US S5 URSURS5 [5n[ US S5 URSURS5 g)NTr^rzspam="bar"; Version="1"r r zhttp://www.acme.com/blahzeggs="bar"; Version="1"z http://www.acme.com/blah/rhubarb/blah/z!http://www.acme.com/blah/rhubarb/z/blah/rhubarb/r eggs="bar"/blahz /blah/rhubarb)rrrrxr rr,rJrs r2test_default_pathCookieTests.test_default_pathsw!$/ cNa/1JK c1::n56 cNa35NO c1::n56 cNa;/ 1 h > :; cNa</ 1 & >(BC K!3\B c1::n56 K!7F c1::n56 K!?N gqzz.9: K!@,O oqzz.'ABr5c[5nSnSn[XU5 URSURS5 UR [X5U5 g)Nzhttp://example.com/?spam/eggsrr z example.com)rrrxr r))r,cjurirs r2test_default_path_with_query(CookieTests.test_default_path_with_querysJ [-"5) c2;;}56 *23U;r5z arg,result) )z /foo%2f/bar /foo%2F/bar)rr) /foo%%/barr) /fo%19o/barr)z /fo%7do/barz /fo%7Do/bar) /foo/bar&r) /foo//barr) ~/foo/barr)z /foo/barz /foo%19/bar)z /}foo/barz /%7Dfoo/bar)u /foo/barüz/foo/bar%C3%BC)u /foo/barꯍz/foo/bar%EA%AF%8Dc:UR[U5U5 grZ)r)r)r,rrPs r2test_escape_pathCookieTests.test_escape_paths, S)62r5c`[RRS5nUR[ U5S5 [RRS5nUR[ U5S5 [RRS5nUR[ U5S5 g)NzThttp://www.example.com/rheum/rhaponticum;foo=bar;sing=song?apples=pears&spam=eggs#niz$/rheum/rhaponticum;foo=bar;sing=songzBhttp://www.example.com/rheum/rhaponticum?apples=pears&spam=eggs#niz/rheum/rhaponticumzhttp://www.example.comr )rrrr)rr,rs r2test_request_pathCookieTests.test_request_pathsnn$$ :; c*? Ann$$ () c*,@Ann$$%=> c*C0r5c[5n[SS9n[U5nSn[X4S5 URSSSnSHupgUU3n[R R U5n [X85n U(a8URS U S U35 URURXY55 MtURS U S U35 URURXY55 M g) NT)strict_ns_set_pathzhttp://bar.comzspam=eggs; Path=/foor</foor))rT)rPT)/foo/barT)r F)z /foobad/fooFz spam=eggszcookie not set for zcookie set for ) rrrr rrrrxrF set_ok_pathrrG) r,rJstrict_ns_path_polrbase_urlrXpathrIrrrs r2test_path_prefix_match"CookieTests.test_path_prefix_match$s!#0DI cN#!'=>I&v.v61HD Jtf%C..((-C!!)A k10CD6.JK 2 > >v KL  a?4&1IJ  !3!?!?!LM1r5c[RRSSS0S9nUR[ U5S5 [RRSSS0S9nUR[ U5[ 5 g)Nzhttp://www.acme.com:1234/Hostzwww.acme.com:4321r1234r)rrrr)rrrs r2test_request_portCookieTests.test_request_port<synn$$%@.46I-J%L c*F3nn$$%;.46I-J%L c*,=>r5cf[RRSSS0S9nUR[ U5S5 [RRSSS0S9nUR[ U5S5 [RRS SS 0S9nUR[ U5S5 g) Nzhttp://1.1.1.1/rwww.acme.com:80rz1.1.1.1rzirrelevant.comr z&http://www.acme.com:2345/resource.htmlzwww.acme.com:5432)rrrr)rrs r2test_request_hostCookieTests.test_request_hostDsnn$$%6.46G-H%J c*I6nn$$%;.46F-G%I c*N;nn$$%M.46I-J%L c*N;r5cUR[S55 UR[S55 UR[S55 UR[S55 UR[S55 UR[S55 UR[S55 UR[S55 g) Nr;z1foo2.3bar4.5com 192.168.1.1rV.r:z..foozfoo.)rFrrGras r2 test_is_HDNCookieTests.test_is_HDNTs }-. 123  ./ $ % /0 ) (r5cUR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S 5S 5 g) Nr rkacme.comz acme.localrB.comrrVz 192.168.0.1)r)rras r2 test_reachCookieTests.test_reach^s ~. < z*J7 |,h7 x(3 v/ sS) rB' }-}=r5cUR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[S S 55 UR[S S 55 UR[S S 55 UR[S S 55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS 55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS 55 g)Nrz.168.1.1zx.y.comzx.Y.comz.Y.comzY.comz a.b.c.comz.c.comz example.localrBz blah.blahrVz.rhubarb.rhubarbrrkzrhubarb.acme.comzwww.rhubarb.acme.comzy.comz.y.comrr=mz.mr)rFrrGrras r2test_domain_matchCookieTests.test_domain_matchhs  ]MBC mZ@A  Y :;  Y9: i9:  [(;< h <=  _h?@ k267 b*<=>  R,- )*jAB *:{CD )*? *9g>? )'7;< *8W=> )(H=> ))V<= *9e<= *9c:; *9d;< *9b9: *9c:; )-GH *=*EF *=#>? *="=>r5ch[5n[USS5 UR[U5S5 g)Nzhttp://www.nasty.com/z)foo=bar; domain=friendly.org; Version="1"r)rrr)r#rs r2test_wrong_domainCookieTests.test_wrong_domains0 Ka0A C Q#r5c[SS9n[US9n[USS5 [USS5 UR[ U5S5 SH.n[US U-S 5 UR[ U5S5 M0 g) NT) strict_domainrdzhttp://example.co.uk/z no=problemoz!okey=dokey; Domain=.example.co.ukr%)z.co.ukz.org.zaz.tx.usz.name.uszhttp://example.%s/zspam=eggs; Domain=.co.uk)rrrr)r#)r,cpr pseudo_tlds r2test_strict_domainCookieTests.test_strict_domains}!t 4 b !"5}E"5= ? R!$EJ b"6"C8 :   SWa (Fr5c[5n[USS5 UR[U5S5 URURSSSR S5 UR[US5S5 UR[US5S5 [ [ RS 9nURU5 UR[US5S 5 [US S 5 [US S5 UR[U5S5 URURSSSR S5 URURSSSR S5 UR[US 5S5 [USS5 UR[U5S5 [USS5 UR[U5S5 g)Nhttp://foo.net/zns=barrBfoo.netr nsrhttp://www.foo.net/)strict_ns_domainrVhttp://foo.net/foo/zspam1=eggs; domain=foo.netzhttp://foo.net/foo/bar/zspam2=eggs; domain=.foo.netr&.foo.netrspam1rOrspam2zspam2=eggs; spam1=eggs; ns=barznini="ni"; domain=.netzhttp://foo.co.ukznasty=trick; domain=.co.uk) rrr)r#r rrDomainStrictNonDomain set_policy)r,rrJs r2test_two_component_domain_ns(CookieTests.test_two_component_domain_nss K !.9 Q# I.s3D9??G *1.?@(K *1.CD! #"0FFH S *1.CDbI !26 8 !67 9 Q# J/7@FF ! J/ ;GDJJ ! *1.GH9 ; !.0HI Q# !/1MN Q#r5ch[5n[USS5 UR[U5S5 g)Nhttp://localhostfoo=bar; domain=localhost;rBrrr)r#rs r2test_localhost_domain!CookieTests.test_localhost_domains+ K!/1MN Q#r5c[5n[USS5 URURSSSRS5 g)Nrrz .localhostr rrrrr)r rrs r2test_localhost_domain_contents*CookieTests.test_localhost_domain_contentss@ K!/1MN L1#6u=CCUKr5c[5n[USS5 URURSSSRS5 g)Nrzfoo=bar;zlocalhost.localr rrrrs r2 test_localhost_domain_contents_2,CookieTests.test_localhost_domain_contents_2s@ K!/< $56s;EBHH%Pr5ch[5n[USS5 UR[U5S5 g)Nzhttp://evil.comzfoo=bar; domain=.localhostrrrs r2test_evil_nonlocal_domain%CookieTests.test_evil_nonlocal_domains+ K!.0LM Q#r5ch[5n[USS5 UR[U5S5 g)Nrzfoo=bar; domain=.evil.comrrrs r2test_evil_local_domain"CookieTests.test_evil_local_domains+ K!/1LM Q#r5ch[5n[USS5 UR[U5S5 g)Nrz foo=bar; domain=.someother.localrrrs r2test_evil_local_domain_2$CookieTests.test_evil_local_domain_2s+ K!/1ST Q#r5c[SS9n[U5n[USS5 UR[ U5S5 URUR SSSR S 5 UR[US5S 5 UR[US 5S 5 [US S5 UR[ U5S5 UR[US 5S 5 [USS5 URUR SSSR S5 UR[ U5S5 UR[US5S 5 UR[US5S5 [USS5 UR[ U5S5 [USS5 UR[ U5S5 g)NTrrrrBrr rrz$Version=1; foo=barrrVzhttp://foo.net/fooz1spam=eggs; domain=foo.net; path=/foo; Version="1"zhttp://www.foo.net/foo/z&spam=eggs; domain=foo.net; Version="1"rrPrrOr%rz($Version=1; spam=eggs; $Domain="foo.net"z#ni="ni"; domain=".net"; Version="1"zhttp://foo.co.uk/z'nasty=trick; domain=.co.uk; Version="1"r&)rrrr)r#r rrs r2!test_two_component_domain_rfc2965-CookieTests.test_two_component_domain_rfc2965s!$/ cN a*,BC Q# I.s3E:@@%H q*;<. 0 q*?@"E a-I K Q# q*>?. 0 a2> @ J/8@FF ! Q# q*?@. 0 q*CDC E a*; = Q# a,? A Q#r5cr[[S/S/S9S9n[RR S5nS/n[ US5nUR XB5 UR[U5S5 [RR S5n[ US5nUR XB5 UR[U5S 5 [RR S 5n[ US 5nUR XB5 UR[U5S 5 [RR S 5n[ US 5nURXB5nURUS5 UR[U5S 5 URU5 URURS 55 g) Nrr )blocked_domainsallowed_domainsrhttp://acme.com/*Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/rrrBr~r%r)rrrrrrrr)r#r set_cookierrG has_header)r,rrrrrys r2test_domain_allowCookieTests.test_domain_allow*sp 0'L+,. /nn$$%78?@7$67 ## Q#nn$$%;<7$:; ## Q#nn$$%=>7$<= ## Q#nn$$%=>7$<=..* WQZ  Q# C  12r5c[SS/S9n[US9nS/n[RR S5n[ US5nUR XT5 UR[U5S5 URS/5nUR XT5 UR[U5S 5 UR5 [RR S 5n[ US 5nUR XT5 UR[U5S 5 [RR S 5nURU5 URURS 55 URURS 55 UR5 URS/5 UR XT5 UR[U5S 5 [RR S5n[ US5nURXT5nURUS5 UR[U5S 5 URU5 UR!URS 55 UR5 UR/5 [RR S5n[ US5nURXT5nUR XT5 UR[U5S 5 [RR S5nURU5 URURS 55 [RR S5nURU5 UR!UR#USU55 UR!URS 55 URS/5n[RR S5nURU5 UR!URS 55 [RR S5nURU5 UR!URS 55 g)NTrk)r^rrrrrrrBzhttp://www.roadrunner.net/rCookie2r%rzhttp://badacme.com/)rrrrrrrr)r#set_blocked_domainsr$rrFrrrrG return_ok)r,rJrrrrprys r2test_domain_blockCookieTests.test_domain_blockIsk!;-9 S !?@nn$$%;<7$:; ## Q#  # #ZL 1 ## Q#  nn$$%AB7$@A ## Q#nn$$%AB C  x01 y12    . ## Q#nn$$%;<7$:;..* WQZ  Q# C  12   #nn$$%787$67..* ## Q#nn$$%78 C  x01nn$$%:; C  wqz378 12  # #ZL 1nn$$%78 C  12nn$$%:; C  12r5c SHnSHn[5nU(a[SS9n[nSnO[SS9n[nSnUR U5 SnU"X7S U<U<35 U"X7S U<S U<35 UR UR S S SRS5 URUR S S SRS5 M M g)N)TF)r(rVFrrVTz ; Version=1rfoo1=barfoo2=barz; securer r foo1z#non-secure cookie registered securefoo2z#secure cookie registered non-secure) rrrrrrGr securerF)r,r whitespacerrJrvsrs r2 test_secureCookieTests.test_securesB% K-eAsr:FG  JJ~.s3F;BB9;JJ~.s3F;BB9;#&r5c^[5n[US9nS/n[RR S5n[ US5nUR XT5 UR[U5S5 [RR S5nURU5 URURS55 [RR S5nURU5 URURS55 [RR S5nURU5 URURS55 [RR S5nURU5 URURS55 g) Nr(Set-Cookie: session=narf; secure; path=/https://www.acme.com/rBrrzwss://www.acme.com/zws://www.acme.com/) rrrrrrrr)r#rrFrrGr,rJrrrrs r2test_secure_blockCookieTests.test_secure_blocksH!# S !=>nn$$%<=7$;< ## Q#nn$$%<= C  x01nn$$%;< C  12nn$$%:; C  x01nn$$%9: C  12r5c^[S/S9n[US9nS/n[RR S5n[ US5nUR XT5 UR[U5S5 [RR S5nURU5 URURS55 [RR S5nURU5 URURS55 [RR S 5nURU5 URURS55 [RR S 5nURU5 URURS55 g) Nfoos)secure_protocolsrrrrBrrzfoos://www.acme.com/zfoo://www.acme.com/) rrrrrrrr)r#rrGrrFrs r2test_custom_secure_protocols(CookieTests.test_custom_secure_protocolssL!F8< S !=>nn$$%<=7$;< ## Q#nn$$%<= C  12nn$$%;< C  12nn$$%;< C  x01nn$$%:; C  12r5cz[[SS9S9n[USS5 [US5nURUS5 g)NTrrrzfoo=\b"a"r; Version=1z$Version=1; foo=\\b\"a\"r)rrrr))r,rrs r2test_quote_cookie_value#CookieTests.test_quote_cookie_values> 0> ?a/1IJ !3 4 89r5cSn[[SS95n[X!S5 [RR U5nUR [U5S5 URU5 URURS55 g)Nhttp://www.acme.comTrrbrBr) rrrrrrr)r#rrFr)r,rrrs r2test_missing_final_slash$CookieTests.test_missing_final_slashsm# )$7 8a23nn$$S) Q# C  x01r5c`[SS9n[U5nSn[X#S5 [X#5nURSUS5 [U5nSn[X#S5 [X#5nUR SUS 5 [U5nSn[X#S 5 [X#5nUR S US 5 g) NTrr9spam=eggs; Version=1Domainz*absent domain returned with domain presentz%spam=eggs; Version=1; Domain=.bar.comz$Domain=".bar.com"zdomain not returnedz$spam=eggs; Version=1; Domain=bar.comz$Domain="bar.com"rrrrrxr,rJrrrs r2test_domain_mirrorCookieTests.test_domain_mirrors!$/ cN#a45 ! ! 1A C cN#aEF ! ! *A/DE cN#aDE ! ! )1.CDr5c[SS9n[U5nSn[X#S5 [X#5nURSUS5 [U5nSn[X#S5 [X#5nUR SUS 5 g) NTrr9r$Pathz&absent path returned with path presentzspam=eggs; Version=1; Path=/z $Path="/"zpath not returnedr&r's r2test_path_mirrorCookieTests.test_path_mirrorsv!$/ cN#a45 ! ! $LM cN#a<= ! ! k1&9:r5c[SS9n[U5nSn[X#S5 [X#5nURSUS5 [U5nSn[X#S5 [X#5nUR USS 5 [U5nSn[X#S 5 [X#5nUR S US 5 [U5nSn[X#S 5 [X#5nUR SUS5 g)NTrr9r$Portz&absent port returned with port presentzspam=eggs; Version=1; Portz\$Port([^=]|$)z-port with no value not returned with no valuezspam=eggs; Version=1; Port="80"z $Port="80"z5port with single value not returned with single valuez$spam=eggs; Version=1; Port="80,8080"z$Port="80,8080"z;port with multiple values not returned with multiple values)rrrrr*rxr's r2test_port_mirrorCookieTests.test_port_mirrors!$/ cN#a45 ! ! $LM cN#a:; ! ! -H J cN#a?@ ! ! lAM O cN#aDE ! ! ' r5c[[SS95nSn[XS5 [X5nURSUS5 g)NTrr9zfspam=eggs; Version=1; Comment="does anybody read these?"; CommentURL="http://foo.bar.net/comment.html"Commentz:Comment or CommentURL cookie-attributes returned to server)rrrr)r,rrrs r2test_no_return_comment"CookieTests.test_no_return_comment/sJ )$7 8#aE F ! ! A H Jr5c*[[SS95n[USS5 [USS5 [USS5 [USS5 [US S 5 /S Qn/S Qn/S Qn/SQn[ S5HnSnUHnUR U[ 5 URURX&5 URURX65 URURXF5 URURXV5 US-nM M g)NTrzhttp://blah.spam.org/zefoo=eggs; Version=1; Comment="does anybody read these?"; CommentURL="http://foo.bar.net/comment.html"zhttp://www.acme.com/blah/zspam=bar; securezfoo=bar; secure; Version=1zfoo=bar; path=/; Version=1http://www.sol.nosbang=wallop; version=1; domain=".sol.no"; port="90,100, 80,8080"; max-age=100; Comment = "Just kidding! (\"|\\\\) ")rBrrBrBrB)rrrrbang)z blah.spam.orgr r r z.sol.no)r rrr r rrrB) rrrrrangeassertIsInstancerr)rrSrHr)r,csversionsnamesdomainspathsirs r2test_Cookie_iterator CookieTests.test_Cookie_iterator9s *48 9b14E F "9;MNb52 4b52 4b-K L #5.2qAA%%a0  HK8  2  7:6  2E r5crUR[S/5/SQ/5 UR[S/5/SQ/5 UR[S/5SS//5 UR[S/5/SQ/5 UR[S /5S S //5 UR[S /5/5 g) Nzfoo=bar; path=/; domain)r)rr )rHNrz)foo=bar; expires=Foo Bar 12 33:22:11 2000)r)rNrrrrzfoo=bar; expireszfoo=bar; versionr)rNrVrras r2r!CookieTests.test_parse_ns_headersYs  78 9A B   IJ K B C   eW %- . /   01 2 B C E  01 2/ 0 1 3 )2$/4r5c8Sn[[R"5S-5nS/S/S/S/S/SU-/4H&nU"U5nUR[U5S 5 M( S /nU"U5nURS S S nUR UR 5 g)Nc[5n[RRS5n[ US5nUR X25 U$)Nr_)rrrrrr)rrrrKs r2cookiejar_from_cookie_headersICookieTests.test_bad_cookie_header..cookiejar_from_cookie_headersvs> A..(()BCCW&?@A  a %Hr5r}z Set-Cookie: z Set-Cookie2: z-Set-Cookie2: a=foo; path=/; Version=1; domainzSet-Cookie: b=foo; max-age=oopszSet-Cookie: b=foo; version=spamzSet-Cookie:; Expires=%srz3Set-Cookie: c=foo; expires=Foo Bar 12 33:22:11 2000r`r r)r r=r)r#r r[r)r,rHrrrrXs r2test_bad_cookie_header"CookieTests.test_bad_cookie_headerts tyy{4/0    < = . / . / & / 0 G.g6A   SVQ '  II )' 2-.s3C8 &..)r5ryN)/rzr{r|r}rr~rLrZrfrurzrrrrrrrrrrrrrrrrrrrrrrrrrrrr!r(r,r0r4rBrrJrryr5r2r8r8s?^ o(  * "+ * ")@ ; >  8  8*.(` *55r&CP< l%  *3+ *31 N0?< )>"?H$ ).$`$LQ$$$*$X3>A3F;.3836: 2E. ; >J@56*r5r8c\\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrg)LWPCookieTestsicF[R"5SS-n/n[[SS95n[R R SSS0S9nURS U-5 [US 5nURXT5 [R R S 5nURU5 URURS 5S 5 URURS 5S5 URS5 [US 5nURXT5 [R R S5nURU5 URS 5nURSU5 URS U5 URS5 [US5nURXT5 [R R S 5nURU5 URS 5nURSU5 URS U5 URSU5 [R R S5nURU5 URS 5nURSU5 URS U5 URUS5 g)NrrBTrrirrrzVSet-Cookie: CUSTOMER=WILE_E_COYOTE; path=/ ; expires=Wednesday, 09-Nov-%d 23:12:40 GMTrrzCUSTOMER=WILE_E_COYOTEr $Version="1"4Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/zhttp://www.acme.com/foo/bar PART_NUMBER=ROCKET_LAUNCHER_0001z%Set-Cookie: SHIPPING=FEDEX; path=/foor zSHIPPING=FEDEXrRzSHIPPING=FEDEX;)r= localtimerrrrrrrrrr)rrxrassertStartsWith)r, year_plus_onerrrrrs r2test_netscape_example_1&LWPCookieTests.test_netscape_example_1sFJ(+a/  )D9 :nn$$%>%'89%;  8:G H I7$:; ##nn$$%;< C  13KL  2NCMN7$:; ##nn$$%BC C NN8 $ 8!< .2>?7$9: ##nn$$%;< C NN8 $ 8!< .2 )1-nn$$%?@ C NN8 $ 8!< .2 a!23r5cV[5n/n[RRS5nUR S5 [ US5nUR XC5 [RRS5nURU5 URURS5S5 UR S5 [ US5nUR XC5 [RRS5nURU5 URURS5S5 g)NrrPrrQz6Set-Cookie: PART_NUMBER=RIDING_ROCKET_0023; path=/ammozhttp://www.acme.com/ammozBPART_NUMBER=RIDING_ROCKET_0023;\s*PART_NUMBER=ROCKET_LAUNCHER_0001) rrrrrrrrr)rr*r,rrrrs r2test_netscape_example_2&LWPCookieTests.test_netscape_example_2s0 Knn$$%;<MN7$:; ##nn$$%;< C  1; =  D F7$:; ##nn$$%?@ C  1= >r5c[[SS95n[USS5nURU5 [USS5nUR US5 [USS 5nUR US 5 UR US 5 UR US 5 [US 5nUR US5 UR SU5 g)NTrzhttp://www.acme.com/acme/loginz3Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"z!http://www.acme.com/acme/pickitem=Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme"z=^\$Version="?1"?; Customer="?WILE_E_COYOTE"?; \$Path="/acme"$z!http://www.acme.com/acme/shippingz+Shipping="FedEx"; Version="1"; Path="/acme"z^\$Version="?1"?;z7Part_Number="?Rocket_Launcher_0001"?;\s*\$Path="\/acme"z-Customer="?WILE_E_COYOTE"?;\s*\$Path="\/acme"z http://www.acme.com/acme/processz%Shipping="?FedEx"?;\s*\$Path="\/acme" WILE_E_COYOTE)rrrrGr*rxr,rrXs r2test_ietf_example_1"LWPCookieTests.test_ietf_example_1's )$7 8, / AC  &q"E ;<  L N*q"ELN !56 "7 8 "7 8*q"DE !IJ ov.r5c[[SS95n[USSS5 [US5nURUS5 [US5nUR S U5 UR S U5 g) NTrz&http://www.acme.com/acme/ammo/specificr\z@Part_Number="Riding_Rocket_0023"; Version="1"; Path="/acme/ammo"z!http://www.acme.com/acme/ammo/...z(Riding_Rocket_0023.*Rocket_Launcher_0001zhttp://www.acme.com/acme/parts/Rocket_Launcher_0001Riding_Rocket_0023)rrrr*rxrr^s r2test_ietf_example_2"LWPCookieTests.test_ietf_example_2sz )$7 8  7 K N P"q"EF !LMq"CD ,f5 -v6r5c[SS9n[US9nSn[USS5nURU5 [USS5nUR [ U5S5 [US S 5nUR [ U5S5 [US S 5nUR [ U5S 5 [US S5nUR [ U5S 5 [USS5nUR [ U5S 5 [USS5nUR [ U5S5 [USS5nUR [ U5S5 [USS5nUR [ U5S5 [USS5nUR [ U5S5 [USS5nUR [ U5S5 [ RnURUSS9 [U5n[US9nURUSS9 [ R"U5 UR U[U55 g![ R"U5 f=f)NTrrz max-age=3600r z!foo=bar; domain=".com"; version=1z'ping=pong; domain="acme.com"; version=1rBzhttp://www.a.acme.comz'whiz=bang; domain="acme.com"; version=1z,wow=flutter; domain=".a.acme.com"; version=1r%zhttp://125.125.125.125z*zzzz=ping; domain="125.125.125"; version=1r7z6blah=rhubarb; domain=".sol.no"; path="/foo"; version=1zhttp://www.sol.no/foo/barz3bing=bong; domain=".sol.no"; path="/foo"; version=1r&z5whiz=ffft; domain=".sol.no"; port="90,100"; version=1r8rz9foo9=bar; version=1; domain=".sol.no"; port; max-age=100;zhttp://www.sol.no/[[SS95n[USS5 [USS5n[R"S[R 5nUR SU5 URX#5 [US 5nURU5 [US 5ng) NTrz7http://www.acme.com/foo%2f%25/%3c%3c%0Anew%C3%A5/%C3%A5zfoo = bar; version = 1u/http://www.acme.com/foo%2f%25/<<%0anewå/æøåz bar=baz; path="/foo/"; version=1z^\$version=\"?1\"?ru-http://www.acme.com/foo/%25/<<%0anewå/æøåuhttp://www.acme.com/ü) rrrrVcompileIrxr*rG)r,rrX version_res r2test_url_encoding LWPCookieTests.test_url_encoding&s )$7 8a56 8 H .0ZZ 5rtt<  i( , FH  q"<=r5c^[R"5SS-n[Rm[ T[ SS9S9n[ USS5 [ USS5 [ USS 5 S U4-n[US S U-5 [US S U-5 [US SU-5 UH'nURS:XdMURSS5 M) U4SjnU"US5nUR[U5S5 URS[U55 URS[U55 U"US5nUR[U5S5 URS[U55 g)NrrBTrrrz foo1=bar; max-age=100; Version=1z4foo2=bar; port="80"; max-age=100; Discard; Version=1zfoo3=bar; secure; Version=1zexpires=09-Nov-%d 23:12:40 GMTzhttp://www.foo.com/z fooa=bar; %szfoob=bar; Domain=.foo.com; %sz fooc=bar; Domain=www.foo.com; %sr HTTPOnlyrVc>URUS9 [T[SS95nURUS9 [R "T5 U$![R "T5 f=f)Nr Tr)rrrrrr)rr new_crs r2save_and_restore5LWPCookieTests.test_mozilla..save_and_restoreVs^ +~6() -tE{; E* UQ' 0$u+>r5c[5n/n[RRS5nUR S5 [ US5nUR XC5 UR S5 [ US5nUR XC5 [RRS5nURU5 URSURS55 URSURS55 g)Nzhttp://foo.bar.acme.com/fooz4Set-Cookie: Customer=WILE_E_COYOTE; domain=.acme.comzhttp://www.acme.com/fooz4Set-Cookie: PART_NUMBER=3,4; domain=foo.bar.acme.comzPART_NUMBER=3,4rzCustomer=WILE_E_COYOTE) rrrrrrrrrxrrXs r2test_netscape_misc!LWPCookieTests.test_netscape_miscis Knn$$%BC MN7$=> ## MN7$=> ##nn$$%BC C  ')AB .s~~h/GHr5c [[SS95n[USS5 [USS5nURSU5 [USS5 [US5nURSU5 UR [ U5S 5 g) NTrhttp://example/z#foo1=bar; PORT; Discard; Version=1;z$foo2=bar; domain=".local"; Version=1rzfoo3=bar; Version=1r r&)rrrrxr)r#r^s r2test_intranet_domains_2965)LWPCookieTests.test_intranet_domains_2965s )$7 8a*; =q"3EG j&)a*,ABq"34 j&) Q#r5c([[SS95n[USS5 [USS5nUR[ U5S5 UR SU5 [US5nUR SU5 UR[ U5S5 g)NFrrrzfoo2=bar; domain=.localr%r )rrrr)r#rxr^s r2test_intranet_domains_ns'LWPCookieTests.test_intranet_domains_nss )E: ;!. ;"1&7#<> Q# j&)"1&78 j&) Q#r5c[[SS95n/n[RR S5nUR S5 [ US5nURXC5 [RR S5nURU5 URURS5S5 URURS5S5 [RR S 5nURU5 URURS5S5 URURS5S5 g) NTrzhttp://www.ants.com/z,Set-Cookie: JSESSIONID=ABCDERANDOM123; Path=rzJSESSIONID=ABCDERANDOM123rrOzhttp://www.ants.com:8080) rrrrrrrrrr)rrXs r2test_empty_pathLWPCookieTests.test_empty_paths )D9 :nn$$%;<EF7$:; ##nn$$%;< C  14 6  2NCnn$$%?@ C  14 6  2NCr5c[R"5SS-n[RR S5n/nUR S5 UR SU-5 UR SU-5 UR S5 UR S5 [ US5n[5nURXB5 SSSSS .nUHnS UR-nXhS-Xh'M UR5 UHnS UR-nXhS-Xh'M URUS US 5 URUSS5 URUSS5 g)NrrBz"http://www.perlmeister.com/scriptsz$Set-Cookie: s1=session;Path=/scriptszWSet-Cookie: p1=perm; Domain=.perlmeister.com;Path=/;expires=Fri, 02-Feb-%d 23:24:20 GMTz>Set-Cookie: p2=perm;Path=/;expires=Fri, 02-Feb-%d 23:24:20 GMTzD$% & 02?@ A1 2KL7$HI K ##$%!"%&"#%F ,C"fg/`37jX't>,+?ZI. $ $D>(:r5rM__main__)6__doc__rrsysrVrUr test.supportrrtest.support.testcaserr=r3urllib.requestrhttp.cookiejarrrr r r r r rrrrrrrrrrrrrrrrplatformr5TestCaser rrrrrrr8rMrzmainryr5r2rs" "(1 !!!!!!!\\W $ jBH%%jBZl!(##l!^))ED t'**t'lL*(##L*^K :X&&K :\ z MMOr5