Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_http_cookiejar.cpython-310.pyc
o

�9j�9�@sPdZddlZddlZddlZddlmZddlmZddlZddlZddl	Z
ddlZddlm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#Gdd�dej$�Z%Gdd	�d	ej$�Z&Gd
d�d�Z'dd
�Z(dd�Z)dd�Z*Gdd�dej$�Z+Gdd�dej$�Z,Gdd�dej$�Z-e.dkr�e�/�dSdS)zTests for http/cookiejar.py.�N)�	os_helper)�warnings_helper)�	time2isoz�	http2time�iso2time�
time2netscape�parse_ns_headers�join_header_words�split_header_words�Cookie�	CookieJar�DefaultCookiePolicy�LWPCookieJar�MozillaCookieJar�	LoadError�lwp_cookie_str�DEFAULT_HTTP_PORT�escape_path�reach�is_HDN�domain_match�user_domain_match�request_path�request_port�request_hostc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�
DateTimeTestscC�d}d}|�t|�d�|�t||�d�|�t|d|�d�|�t|d|�d�t�}td	�}||fD]
}|�|d
d||f�q9dS)N�x+�<�Qz2002-04-19 14:36:40Zz2002-04-20 14:36:40Z�z2002-04-21 14:36:40Z�z2002-04-22 14:36:40Z� �z!^\d{4}-\d\d-\d\d \d\d:\d\d:\d\dZ$zbad time2isoz format: %s %s)�assertEqualr�assertRegex��self�base�day�az�bz�text�r+�//usr/lib/python3.10/test/test_http_cookiejar.py�test_time2isozs
��zDateTimeTests.test_time2isozcCr)NrrzFri, 19-Apr-2002 14:36:40 GMTzSat, 20-Apr-2002 14:36:40 GMTrzSun, 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: %s %s)r"rr#r$r+r+r,�test_time2netscape%s*���
��z DateTimeTests.test_time2netscapecCs<dd�}|�|d�d�|�|d�d�|�|d�d�dS)	NcS�t�t|��dd�S�N�)�time�gmtimer�r*r+r+r,�
parse_date<�z0DateTimeTests.test_http2time.<locals>.parse_datez01 Jan 2001)i��r7rr�z	03-Feb-20)i�rr rrr8z	03-Feb-98)i�rr rrr8�r"�r%r5r+r+r,�test_http2time;szDateTimeTests.test_http2timecCs�gd�}d}t|�}d}|�||d|||f�|D]%}|�t|�||�|�t|���||���|�t|���||���qdS)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-94z03-Feb-1994z03 Feb 1994z  03   Feb   1994  0:00  z  03-Feb-1994  �>P-z1994-02-03 00:00:00Zz%s  =>  '%s' (%s))rr"r�lower�upper)r%�tests�test_t�result�expected�sr+r+r,�test_http2time_formatsGs��z$DateTimeTests.test_http2time_formatscCs*dD]}|�t|�d|t|�f�qdS)N)��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:00�01-01-1980 00:00:62z08-Oct-3697739z
08-01-3697739z09 Feb 19942632 22:23:32 GMTz Wed, 09 Feb 1994834 22:23:32 GMTz,http2time(%s) is not None
http2time(test) %s)�assertIsNoner�r%�testr+r+r,�test_http2time_garbageks

���z$DateTimeTests.test_http2time_garbagecC�(td�dd��td�dd��dS)Nz01 Jan 1970{}00:00:00 GMT!� i��z01 Jan 1970 00:00:00{}GMT!)r�format�r%r+r+r,�2test_http2time_redos_regression_actually_completes�sz@DateTimeTests.test_http2time_redos_regression_actually_completescCs<dd�}|�|d�d�|�|d�d�|�|d�d�dS)NcSr/r0)r2r3rr4r+r+r,r5�r6z/DateTimeTests.test_iso2time.<locals>.parse_date�19940203T141529Z)i�rr ���z1994-02-03 07:15:29 -0700z1994-02-03 19:45:29 +0530r9r:r+r+r,�
test_iso2time�s
�
�
�zDateTimeTests.test_iso2timecCs`gd�}d}|D]%}|�t|�||�|�t|���||���|�t|���||���qdS)N)
z1994-02-03 00:00:00 -0000z1994-02-03 00:00:00 +0000z1994-02-03 00:00:00z
1994-02-03z1994-02-03T00:00:00�19940203z1994-02-02 24:00:00�19940203T000000Zz
  1994-02-03 z  1994-02-03T00:00:00  r=)r"rr>r?)r%r@rArDr+r+r,�test_iso2time_formats�s�z#DateTimeTests.test_iso2time_formatscCs"dD]}|�t|�d|�qdS)N)rFrGr<z
1980-00-01z
1980-13-01z
1980-01-00z
1980-01-32z1980-01-01 25:00:00z1980-01-01 00:61:00rHz01-01-1980T00:00:62�19800101T250000Zziso2time(%r))rIrrJr+r+r,�test_iso2time_garbage�s

��z#DateTimeTests.test_iso2time_garbagecCrM)Nz1994-02-03{}14:15:29 -0100!rNi@Bz1994-02-03 14:15:29{}-0100!)rrOrPr+r+r,�$test_iso2time_performance_regression�sz2DateTimeTests.test_iso2time_performance_regressionN)
�__name__�
__module__�__qualname__r-r.r;rErLrQrVrYr[r\r+r+r+r,rs$rc@�<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�HeaderTestscCs*gd�g}dD]}|�t|g�|�qdS)N)��foo�bar)�expiresld9W��version�0)z)foo=bar; expires=01 Jan 2040 22:23:32 GMTz+foo=bar; expires="01 Jan 2040 22:23:32 GMT"�r"r�r%rC�hdrr+r+r,�test_parse_ns_headers�s
�z!HeaderTests.test_parse_ns_headerscCs*ddgg}dD]}|�t|g�|�qdS)Nrb)rg�1)zfoo=bar; version="1"�foo=bar; Version="1"rirjr+r+r,�test_parse_ns_headers_version�s
�z)HeaderTests.test_parse_ns_headers_versioncCs$d}ddgg}|�t|g�|�dS)Nz expires=01 Jan 2040 22:23:32 GMT)rez01 Jan 2040 22:23:32 GMTrfri)r%rkrCr+r+r,�#test_parse_ns_headers_special_names�s
z/HeaderTests.test_parse_ns_headers_special_namescCs0tddgg�}|�|d�|�tgg�d�dS)N�rcN�rd�bazzfoo; bar=bazrF)r	r")r%�joinedr+r+r,�test_join_header_words�sz"HeaderTests.test_join_header_wordscCsddggfddggfddggfddggfddggfd	dggfd
ddggfdddggfd
dggfdddggfdgd�gfddgdgdggfdddgdgdgdggfg
}|D]4\}}zt|g�}Wnddl}ddl}|��}|�d|�d|��}Y|�||d|||f�qTdS)Nrcrq�foo=barrb�	   foo   z
   foo=   )rcrFz   foo=z   foo=   ; z   foo=   ; bar= baz rr�foo=bar bar=bazzfoo= bar=baz)rczbar=baz�foo=bar;bar=baz�foo bar baz)rq)rdN)rsNza, b, c)�aN)�bN)�cNz(foo; bar=baz, spam=, foo="\,\;\"", bar= )�spamrF)rcz,;")rdrFrz (error -- traceback follows)

%sz:
When parsing: '%s'
Expected:     '%s'
Got:          '%s'
)r
�	traceback�io�StringIO�	print_exc�getvaluer")r%r@�arg�expectrBrr��fr+r+r,�test_split_header_words�s<






���
��z#HeaderTests.test_split_header_wordsc
CsFgd�}|D]\}}t|g�}t|�}|�||d||||f�qdS)N)
)rcrc)rvrv)rwrc)zfoo=zfoo="")rx�foo=bar; bar=baz)ryr�)rzz
foo; bar; baz)zfoo="\"" bar="\\"zfoo="\""; bar="\\")z	foo,,,barzfoo, bar)zfoo=bar,bar=bazzfoo=bar, bar=baz)ztext/html; charset=iso-8859-1ztext/html; charset="iso-8859-1")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\""zM
When parsing: '%s'
Expected:     '%s'
Got:          '%s'
Input was:    '%s'
)r
r	r")r%r@r�r��input�resr+r+r,�test_roundtrips


��zHeaderTests.test_roundtripN)	r]r^r_rlrorprur�r�r+r+r+r,ra�s	
"rac@s"eZdZgdfdd�Zdd�ZdS)�FakeResponseNcCs$ddl}|�d�|��|_||_dS)zD
        headers: list of RFC822-style 'Key: value' strings
        rN�
)�email�message_from_string�join�_headers�_url)r%�headers�urlr�r+r+r,�__init__/s
zFakeResponse.__init__cCs|jS�N)r�rPr+r+r,�info6szFakeResponse.info)r]r^r_r�r�r+r+r+r,r�.sr�cG�t|||d�S)NzSet-Cookie2��	_interact��	cookiejarr��set_cookie_hdrsr+r+r,�
interact_29658�r�cGr�)Nz
Set-Cookier�r�r+r+r,�interact_netscape;r�r�c	Cs\tj�|�}|�|�|�dd�}g}|D]}|�d||f�qt||�}|�||�|S)zDPerform a single request / response cycle, returning Cookie: header.rrFz%s: %s)�urllib�request�Request�add_cookie_header�
get_header�appendr��extract_cookies)	r�r�r��hdr_name�req�
cookie_hdrr�rkr�r+r+r,r�>s

r�c@r`)�FileCookieJarTestscCs tj}t|�}|�|j|�dSr�)r�TESTFNrr"�filename�r%r�r}r+r+r,�test_constructor_with_strLsz,FileCookieJarTests.test_constructor_with_strcCs,t�tj�}t|�}|�|jt�|��dSr�)	�pathlib�Pathrr�rr"r��os�fspathr�r+r+r,�test_constructor_with_path_likeQsz2FileCookieJarTests.test_constructor_with_path_likecCstd�}|�|j�dSr�)rrIr��r%r}r+r+r,�test_constructor_with_noneVsz-FileCookieJarTests.test_constructor_with_nonec
Cs�Gdd�d�}tt|fD]5}|j|d��%|�t��|�}t|d�}Wd�n1s-wYWd�n1s<wYqdS)Nc@seZdZdS)z?FileCookieJarTests.test_constructor_with_other_types.<locals>.AN)r]r^r_r+r+r+r,�A[sr��r�)�int�float�subTest�assertRaises�	TypeErrorr)r%r��type_�instancer}r+r+r,�!test_constructor_with_other_typesZs�����z4FileCookieJarTests.test_constructor_with_other_typescCs�tj}t�}t|dd�|�|jdddjd�z#|j|dd�t�}|j|dd�Wzt	�
|�Wnty=Ynwzt	�
|�WwtyNYww|�|jdddjd�dS)N�http://www.acme.com/�boo�www.acme.com�/T��ignore_discard)rr�rr�r"�_cookies�value�save�loadr��unlink�OSErrorr�r+r+r,�test_lwp_valueless_cookieds� z,FileCookieJarTests.test_lwp_valueless_cookiecCstj}ttfD],}|�}z|jdd�Wnty-}z
|�|jt�WYd}~qd}~ww|�	d�qz@t
|d��}|�d�ttfD]
}|�}|�t|j|�qDWd�n1s\wYWzt
�|�WdStytYdSwzt
�|�Wwty�Yww)NzAfor this test to work, a file with this filename should not existr�z%expected OSError for invalid filename�wzoops
)rr�rrr�r��assertIsNot�	__class__r�fail�open�writer�r�r�)r%r��cookiejar_classr}�excr�r+r+r,�test_bad_magicss.��
����z!FileCookieJarTests.test_bad_magicN)	r]r^r_r�r�r�r�r�r�r+r+r+r,r�Ks
r�c@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dES)F�CookieTestscCsLt�}dD]\}}}tj�|�}|�||�}|r|�|�q|�|�qdS)N))�http://foo.bar.com/zblah.comF)r�zrhubarb.blah.comF)r�zrhubarb.foo.bar.comF)r��.foo.bar.comT)r��foo.bar.comT)r�z.bar.comT)r��bar.comT)r��comT)�http://foo.com/zrhubarb.foo.comF)r��.foo.comT)r��foo.comT)r�r�T)�http://foo/zrhubarb.fooF)r�z.fooT)r�rcT)r�z	foo.localT)r��.localT)�http://barfoo.comr�F)r�r�F)r
r�r�r��domain_return_ok�
assertTrue�assertFalse)r%�polr��domain�okr��rr+r+r,�test_domain_return_ok�s�z!CookieTests.test_domain_return_okc	Cstj}t|�}t|dd�t|dd�|jddd}|�|j�|�|jd�|jddd}|�|j�|�|jd�|�t	|�d�t
|�}|jd	d	d
�zt|�}|jd	d	d
�Wt
�|j�nt
�|j�w|�t
|�t�dd	dd|��|�t|d
�d�dS)Nr��eggsz"spam"; path=/foo/r�r��/foo/z"spam"zJ"spam"; path="/foo/"; domain="www.acme.com"; path_spec; discard; version=0T)�ignore_expiresr�zpath_specified=%sF�http://www.acme.com/foo/z"spam"; eggs)rr�rr�r�rIr�r"�namer�reprr��revertr�r�r��re�sub)r%r�r}�cookie�old_strr+r+r,�test_missing_value�s8
����zCookieTests.test_missing_valuec	Cs�dD]N\}}}t||d�}t|�}t|dd�z|jddd}Wnty0|�|�Yqw|�|j|�t|dd�|rP|jddd	}|�|jd
�qdS)N))NFr)NTr7)FFN)FTr7)TFr)TTr)�rfc2109_as_netscape�rfc2965�http://www.example.com/zni=ni; Version=1�www.example.comr��ni�foo=bar; Version=1rcr7)	r
rr�r��KeyErrorrIr"rgr�)r%r�r�rg�policyr}r��
cookie2965r+r+r,�test_rfc2109_handling�s*
�����z!CookieTests.test_rfc2109_handlingcCs�t�}t|dd�t|dd�t|dd�t|dd�t|dd�t|dd�t|dd	�t|dd
�|jddd
}|�|jd�|�|j�|�|jt�|�	|j
�|�|�d��|�	|�d��|jddd}|�|jd�|�	|j�|�|jd�|�|j
�|jddd}|�|j�|�	|j
�|jddd}|jddd}|�|j
�|�|j
�|jddd}|�|j�|�|jd�|jddd
}|�|j�dS)Nr�z0spam=eggs; DoMain=.acme.com; port; blArgh="feep"zni=ni; port=80,8080�http://www.acme.com:80/znini=nizfoo=bar; expires=z-spam=eggs; expires="Foo Bar 25 33:22:11 3022"z	fortytwo=z=unladenswallow�holyhandgrenade�	.acme.comr�r~�blArgh�blarghr�r�z80,8080�ninirc�fortytworF)rr�r�r"r�r��domain_specified�portrr��port_specified�has_nonstandard_attrrIre�assertIsNotNoner�)r%r}r�rcr~r+r+r,�test_ns_parsersF�zCookieTests.test_ns_parsercCsHt�}t|dd�t|dd�|jdd}|�d|�|�d|�dS)Nr�zexpires=eggszversion=eggs; spam=eggsr�r�rerg)rr�r��assertIn)r%r}�cookiesr+r+r,�test_ns_parser_special_namesLsz(CookieTests.test_ns_parser_special_namesc
Cs�t�}tt��d�}t�|��2d|��g}tj�d�}t|d�}|�	||�}|�
t|�d�|�
t|dj�|�Wd�n1sEwYt
|dd|�|�
t|�d�tt��d�}t
|dd|�t
|d�}|�
t|�d�|�d	|�|�d
|�t
|dd|�t
|dd|�|�
t|�d
�t
|dd|�t
|dd|�t
|d�}|�
t|�d�t
|dd�|�
t|�d�|��|�
t|�d�|�d	|�tdddddddddddddddi�}	|�
|	jd�dS)N�z%Set-Cookie: FOO=BAR; path=/; expires=�http://www.coyote.com/r7rr�zspam="bar"; expires=%szfoo="eggs"; expires=%s�
spam="bar"rczeggs="bar"; expires=%szbar="bar"; expires=%sr z!eggs="bar"; expires=%s; max-age=0z bar="bar"; max-age=0; expires=%szhttp://www.rhubarb.net/zwhum="fizz"rr�r�Fzwww.python.orgTr�z1444312383.018307i?uV)rrr2r�check_no_warningsr�r�r�r��make_cookiesr"�lenrer�r�assertNotIn�clear_session_cookiesr)
r%r}�futurer�r�r�r�now�hr�r+r+r,�test_expiresWsd
���
����
�zCookieTests.test_expirescCs6tdd�}t|�}t|dd�|�d|jd�t|�}t|dd�|�d|jd�t|�}t|d	d�|�d
|jd�t|�}t|dd�|�d|jd�t�}t|dd
�|�d|jd�t�}t|dd�|�d|jd�t�}t|d	d�|�d|jd�t�}t|dd�|�d|jd�dS)NT�r�r�zspam="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)r
rr�rr�r��r%r�r}r+r+r,�test_default_path�s:
��zCookieTests.test_default_pathcCsBt�}d}d}t|||�|�d|jd�|�t||�|�dS)Nzhttp://example.com/?spam/eggsrr�zexample.com)rr�rr�r")r%�cj�urir�r+r+r,�test_default_path_with_query�sz(CookieTests.test_default_path_with_querycCs*gd�}|D]\}}|�t|�|�qdS)N))z/foo%2f/bar�/foo%2F/bar)r&r&)�
/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%8D)r"r)r%�casesr�rBr+r+r,�test_escape_path�s�zCookieTests.test_escape_pathcCsXtj�d�}|�t|�d�tj�d�}|�t|�d�tj�d�}|�t|�d�dS)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�)r�r�r�r"r�r%r�r+r+r,�test_request_path�s�
��zCookieTests.test_request_pathcCs�t�}tdd�}t|�}d}t||d�|jddd}dD]>\}}|�|��}tj�|�}	t||�}
|rJ|�d	|
d
|���|�|�	||	��q|�
d	|
d|���|�|�	||	��qdS)NT)�strict_ns_set_pathzhttp://bar.comzspam=eggs; Path=/foor��/foor~))r1T)r�T)�/foo/barT)r�F)z/foobad/fooFz	spam=eggszcookie not set for zcookie set for )r
rr�r�r�r�r�rr��set_ok_pathrr�)r%r��strict_ns_path_polr}�base_urlr��pathr�r�r�rr+r+r,�test_path_prefix_match�s 

�z"CookieTests.test_path_prefix_matchcCsLtjjdddid�}|�t|�d�tjjdddid�}|�t|�t�dS)Nzhttp://www.acme.com:1234/�Hostzwww.acme.com:4321�r��1234r�)r�r�r�r"rrr.r+r+r,�test_request_ports��zCookieTests.test_request_portcCsptjjdddid�}|�t|�d�tjjdddid�}|�t|�d�tjjd	dd
id�}|�t|�d�dS)Nzhttp://1.1.1.1/r8�www.acme.com:80r9z1.1.1.1r�zirrelevant.comr�z&http://www.acme.com:2345/resource.htmlzwww.acme.com:5432)r�r�r�r"rr.r+r+r,�test_request_hosts���zCookieTests.test_request_hostcCst|�td��|�td��|�td��|�td��|�td��|�td��|�td��|�td��dS)	Nr�z1foo2.3bar4.5com�192.168.1.1rF�.r�z..foozfoo.)r�rr�rPr+r+r,�test_is_HDNszCookieTests.test_is_HDNcCs�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td	�d	�dS)
Nr�r�acme.comz
acme.localr��.comr?rFz192.168.0.1)r"rrPr+r+r,�
test_reach%szCookieTests.test_reachcCs�|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�td	d
��|�tdd��|�tdd
��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��|�tdd��dS)Nr>z.168.1.1zx.y.comzx.Y.comz.Y.comzY.comz	a.b.c.comz.c.comz
example.localr�z	blah.blahrFz.rhubarb.rhubarbrArzrhubarb.acme.comzwww.rhubarb.acme.comzy.comz.y.comrBr��mz.mr?)r�rr�rrPr+r+r,�test_domain_match/s>zCookieTests.test_domain_matchcCs&t�}t|dd�|�t|�d�dS)Nzhttp://www.nasty.com/z)foo=bar; domain=friendly.org; Version="1"r)rr�r"rr�r+r+r,�test_wrong_domainSs
�zCookieTests.test_wrong_domaincCsjtdd�}t|d�}t|dd�t|dd�|�t|�d�dD]}t|d	|d
�|�t|�d�q dS)NT)�
strict_domain�r�zhttp://example.co.uk/zno=problemoz!okey=dokey; Domain=.example.co.ukr)z.co.ukz.org.zaz.tx.usz.name.uszhttp://example.%s/zspam=eggs; Domain=.co.uk)r
rr�r"r)r%�cpr#�
pseudo_tldr+r+r,�test_strict_domain]s

�
��zCookieTests.test_strict_domaincCs8t�}t|dd�|�t|�d�|�|jdddjd�|�t|d�d�|�t|d�d�ttjd	�}|�|�|�t|d�d
�t|dd�t|d
d�|�t|�d�|�|jdddjd�|�|jdddjd�|�t|d
�d�t|dd�|�t|�d�t|dd�|�t|�d�dS)N�http://foo.net/zns=barr7�foo.netr��nsrd�http://www.foo.net/)�strict_ns_domainrF�http://foo.net/foo/zspam1=eggs; domain=foo.netzhttp://foo.net/foo/bar/zspam2=eggs; domain=.foo.netr �.foo.netr1�spam1r�r2�spam2zspam2=eggs; spam1=eggs; ns=barznini="ni"; domain=.netzhttp://foo.co.ukznasty=trick; domain=.co.uk�)	rr�r"rr�r�r
�DomainStrictNonDomain�
set_policy)r%r}r�r+r+r,�test_two_component_domain_nsksB��
�����z(CookieTests.test_two_component_domain_nscCs4tdd�}t|�}t|dd�|�t|�d�|�|jdddjd	�|�t|d�d
�|�t|d�d�t|d
d�|�t|�d�|�t|d
�d
�t|dd�|�|jdddjd�|�t|�d�|�t|d�d
�|�t|d�d�t|dd�|�t|�d�t|dd�|�t|�d�dS)NTrrLrnr7rMr�rcrdz$Version=1; foo=barrOrFzhttp://foo.net/fooz1spam=eggs; domain=foo.net; path=/foo; Version="1"zhttp://www.foo.net/foo/z&spam=eggs; domain=foo.net; Version="1"rRr�r~r�rrQz($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 )r
rr�r"rr�r�r!r+r+r,�!test_two_component_domain_rfc2965�sJ
���������z-CookieTests.test_two_component_domain_rfc2965cCsttdgdgd�d�}tj�d�}dg}t|d�}|�||�|�t|�d�tj�d�}t|d�}|�||�|�t|�d	�tj�d
�}t|d
�}|�||�|�t|�d	�tj�d
�}t|d
�}|�	||�}|�
|d�|�t|�d�|�|�|�|�
d��dS)
NrAr�)�blocked_domains�allowed_domainsrH�http://acme.com/�*Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/rr�r7rrr)rr
r�r�r�r�r�r"rr�
set_cookier�r��
has_header)r%r}r�r�r�rr+r+r,�test_domain_allow�s0
�




zCookieTests.test_domain_allowcCs�tddgd�}t|d�}dg}tj�d�}t|d�}|�||�|�t|�d�|�	dg�}|�||�|�t|�d	�|�
�tj�d
�}t|d
�}|�||�|�t|�d	�tj�d
�}|�|�|�|�
d��|�|�
d��|�
�|�	dg�|�||�|�t|�d	�tj�d�}t|d�}|�||�}|�|d�|�t|�d
�|�|�|�|�
d��|�
�|�	g�tj�d�}t|d�}|�||�}|�||�|�t|�d	�tj�d�}|�|�|�|�
d��tj�d�}|�|�|�|�|d|��|�|�
d��|�	dg�}tj�d�}|�|�|�|�
d��tj�d�}|�|�|�|�
d��dS)NTr)r�rZrHr]r�rrAr7zhttp://www.roadrunner.net/r�Cookie2rr\zhttp://badacme.com/)r
rr�r�r�r�r�r"r�set_blocked_domains�clearr�r�r_rr^r��	return_ok)r%r�r}r�r�r��prr+r+r,�test_domain_block�sj�











zCookieTests.test_domain_blockcCs�dD]V}dD]Q}t�}|rtdd�}t}d}n	tdd�}t}d}|�|�d}|||d	||f�|||d
||f�|�|jddd
jd�|�|jdddjd�qqdS)N)TF)rNrFFrrFTz; Version=1r�zfoo1=bar%s%szfoo2=bar%s; secure%sr�r��foo1z#non-secure cookie registered secure�foo2z#secure cookie registered non-secure)	rr
r�r�rWr�r��securer�)r%rN�
whitespacer}r�r��vsr�r+r+r,�test_secure)s0


����zCookieTests.test_securecCs�t�}t|d�}dg}tj�d�}t|d�}|�||�|�t|�d�tj�d�}|�	|�|�
|�d��tj�d�}|�	|�|�|�d��tj�d�}|�	|�|�
|�d��tj�d�}|�	|�|�|�d��dS)	NrH�(Set-Cookie: session=narf; secure; path=/�https://www.acme.com/r7rr�zwss://www.acme.com/zws://www.acme.com/)
r
rr�r�r�r�r�r"rr�r�r_r��r%r�r}r�r�r�r+r+r,�test_secure_block@s&





zCookieTests.test_secure_blockcCs�tdgd�}t|d�}dg}tj�d�}t|d�}|�||�|�t|�d�tj�d�}|�	|�|�
|�d��tj�d�}|�	|�|�
|�d��tj�d	�}|�	|�|�|�d��tj�d
�}|�	|�|�
|�d��dS)N�foos)�secure_protocolsrHrmrnr7rr�zfoos://www.acme.com/zfoo://www.acme.com/)
r
rr�r�r�r�r�r"rr�r�r_r�ror+r+r,�test_custom_secure_protocols\s&





z(CookieTests.test_custom_secure_protocolscCs6ttdd�d�}t|dd�t|d�}|�|d�dS)NTrrHr�zfoo=\b"a"r; Version=1z$Version=1; foo=\\b\"a\"r)rr
r�r")r%r}rr+r+r,�test_quote_cookie_valuews
z#CookieTests.test_quote_cookie_valuecCsXd}ttdd��}t||d�tj�|�}|�t|�d�|�|�|�	|�
d��dS)N�http://www.acme.comTrr�r7r)rr
r�r�r�r�r"rr�r�r_)r%r�r}r�r+r+r,�test_missing_final_slash}s
z$CookieTests.test_missing_final_slashcCs�tdd�}t|�}d}t||d�t||�}|�d|d�t|�}d}t||d�t||�}|�d|d	�t|�}d}t||d
�t||�}|�d|d	�dS)NTrr��spam=eggs; Version=1�Domainz*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"�r
rr�rr�r%r�r}r�rr+r+r,�test_domain_mirror�s$

�

zCookieTests.test_domain_mirrorcCsntdd�}t|�}d}t||d�t||�}|�d|d�t|�}d}t||d�t||�}|�d|d	�dS)
NTrr�rwr�z&absent path returned with path presentzspam=eggs; Version=1; Path=/z	$Path="/"zpath not returnedryrzr+r+r,�test_path_mirror�s


zCookieTests.test_path_mirrorcCs�tdd�}t|�}d}t||d�t||�}|�d|d�t|�}d}t||d�t||�}|�|dd	�t|�}d}t||d
�t||�}|�d|d�t|�}d}t||d
�t||�}|�d|d�dS)NTrr�rw�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)r
rr�rr#rrzr+r+r,�test_port_mirror�s6


�
�
�zCookieTests.test_port_mirrorcCs:ttdd��}d}t||d�t||�}|�d|d�dS)NTrr�zfspam=eggs; Version=1; Comment="does anybody read these?"; CommentURL="http://foo.bar.net/comment.html"�Commentz:Comment or CommentURL cookie-attributes returned to server)rr
r�r)r%r}r�rr+r+r,�test_no_return_comment�s
�z"CookieTests.test_no_return_commentcCs�ttdd��}t|dd�t|dd�t|dd�t|dd�t|d	d
�gd�}gd�}gd
�}gd�}td�D]7}d}|D]0}|�|t�|�|j||�|�|j	||�|�|j
||�|�|j||�|d}q?q9dS)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=1�http://www.sol.no�sbang=wallop; version=1; domain=".sol.no"; port="90,100, 80,8080"; max-age=100; Comment = "Just kidding! (\"|\\\\) ")r7r7r7rr7)�bangrcrcr~rc)z.sol.noz
blah.spam.orgr�r�r�)r�r�r�r rrUrr7)rr
r�r��range�assertIsInstancerr"rgr�r�r6)r%�cs�versions�names�domains�paths�ir}r+r+r,�test_Cookie_iterator�s6���
��z CookieTests.test_Cookie_iteratorcCs�|�tdg�gd�g�|�tdg�gd�g�|�tdg�ddgg�|�tdg�gd�g�|�td	g�d
dgg�|�tdg�g�dS)
Nzfoo=bar; path=/; domain)rb)r6r�)r�Nrfz)foo=bar; expires=Foo Bar 12 33:22:11 2000)rb)reNrfrcrqrfzfoo=bar; expireszfoo=bar; versionrb)rgNrFrirPr+r+r,rl�s*�����z!CookieTests.test_parse_ns_headerscCs�dd�}tt��d�}dgdgdgdgdgd	|gfD]}||�}|�t|�d
�qdg}||�}|jdd
d}|�|j�dS)NcSs,t�}tj�d�}t|d�}|�||�|S)Nr�)rr�r�r�r�r�)r�r}r�r�r+r+r,�cookiejar_from_cookie_headerss

zICookieTests.test_bad_cookie_header.<locals>.cookiejar_from_cookie_headersrz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})rr2r"rr�rIre)r%r�rr�r}r�r+r+r,�test_bad_cookie_headers�z"CookieTests.test_bad_cookie_headerN)%r]r^r_r�r�rr
rrr"r%r-r/r7r;r=r@rCrErFrKrXrYr`rfrlrprsrtrvr{r|r~r�r�rlr�r+r+r+r,r��sF/! 09(


$
0,C

 r�c@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�LWPCookieTestscCs�t��dd}g}ttdd��}tjjdddid�}|�d	|�t|d
�}|�	||�tj�d
�}|�
|�|�|�d�d�|�|�d
�d�|�d�t|d
�}|�	||�tj�d�}|�
|�|�d�}|�
d|�|�
d|�|�d�t|d�}|�	||�tj�d
�}|�
|�|�d�}|�
d|�|�
d|�|�d|�tj�d�}|�
|�|�d�}|�
d|�|�
d|�|�|�d��dS)Nrr7Trrr8r<r9zVSet-Cookie: CUSTOMER=WILE_E_COYOTE; path=/ ; expires=Wednesday, 09-Nov-%d 23:12:40 GMTr�rzCUSTOMER=WILE_E_COYOTEra�$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=/fooruzSHIPPING=FEDEXr�zSHIPPING=FEDEX;)r2�	localtimerr
r�r�r�r�r�r�r�r"r�rrr��
startswith)r%�
year_plus_oner�r}r�r�rr+r+r,�test_netscape_example_16sP%���











z&LWPCookieTests.test_netscape_example_1cCs�t�}g}tj�d�}|�d�t|d�}|�||�tj�d�}|�|�|�|�	d�d�|�d�t|d�}|�||�tj�d�}|�|�|�
|�	d�d�dS)Nr�r�rr�z6Set-Cookie: PART_NUMBER=RIDING_ROCKET_0023; path=/ammozhttp://www.acme.com/ammozBPART_NUMBER=RIDING_ROCKET_0023;\s*PART_NUMBER=ROCKET_LAUNCHER_0001)rr�r�r�r�r�r�r�r"r�r#�r%r}r�r�r�r+r+r,�test_netscape_example_2�s*


��

�z&LWPCookieTests.test_netscape_example_2cCs�ttdd��}t|dd�}|�|�t|dd�}|�|d�t|dd	�}|�|d
�|�|d�|�|d�t|d
�}|�|d�|�d|�dS)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)rr
r�r�r#r�r%r}r�r+r+r,�test_ietf_example_1�s*�
���
z"LWPCookieTests.test_ietf_example_1cCsXttdd��}t|ddd�t|d�}|�|d�t|d�}|�d	|�|�d
|�dS)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_0001�Riding_Rocket_0023)rr
r�r#rrr�r+r+r,�test_ietf_example_24s
�

z"LWPCookieTests.test_ietf_example_2cCs�tdd�}t|d�}d}t|dd�}|�|�t|dd�}|�t|�d�t|d	d
�}|�t|�d�t|d	d�}|�t|�d�t|d
d�}|�t|�d�t|dd�}|�t|�d�t|dd�}|�t|�d�t|dd�}|�t|�d�t|dd�}|�t|�d�t|dd�}|�t|�d�t|dd�}|�t|�d�tj}z)|j|dd�t	|�}t|d�}|j
|dd�Wzt�|�Wnt
y�Ynwzt�|�Wwt
y�Yww|�|t	|��dS)NTrrHzmax-age=3600ruz!foo=bar; domain=".com"; version=1z'ping=pong; domain="acme.com"; version=1r7zhttp://www.a.acme.comz'whiz=bang; domain="acme.com"; version=1z,wow=flutter; domain=".a.acme.com"; version=1rzhttp://125.125.125.125z*zzzz=ping; domain="125.125.125"; version=1r�z6blah=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=1r�rUz9foo9=bar; version=1; domain=".sol.no"; port; max-age=100;�zhttp://www.sol.no/<oo/z"foo8=bar; version=1; path="/%3coo"r1r�)r
rr�r�r"rrr�r�r�r�r�r�r�)r%r�r}�max_ager�r��oldr+r+r,�test_rejectionisv

�
���������	�
�zLWPCookieTests.test_rejectioncCsnttdd��}t|dd�t|dd�}t�dtj�}|�d|�|�||�t|d	�}|�|�t|d
�}dS)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\"?rvu-http://www.acme.com/foo/%25/<<%0anewå/æøåuhttp://www.acme.com/ü)	rr
r�r��compile�Irr#r�)r%r}r��
version_rer+r+r,�test_url_encoding�s ���
z LWPCookieTests.test_url_encodingcst��dd}tj�t�tdd�d�}t|dd�t|dd�t|dd	�d
|f}t|dd|�t|dd
|�t|dd|�|D]
}|jdkrR|�	dd�qE�fdd�}||d�}|�
t|�d�|�dt
|��|�dt
|��||d�}|�
t|�d�|�dt
|��dS)Nrr7TrrHr�z 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; %srg�HTTPOnlyrFcstz(|j|d�t�tdd��}|j|d�Wzt���W|Sty(Y|Swzt���Wwty9Yww)Nr�Tr)r�rr
r�r�r�r�)r#r��new_cr�r+r,�save_and_restore�s����z5LWPCookieTests.test_mozilla.<locals>.save_and_restorer1zname='foo1', value='bar'zrest={'HTTPOnly': ''}FrU)r2r�rr�rr
r�r�r��set_nonstandard_attrr"rrr�)r%r�r}rer�r�r�r+r�r,�test_mozilla�sD���
���
�

zLWPCookieTests.test_mozillacCs�t�}g}tj�d�}|�d�t|d�}|�||�|�d�t|d�}|�||�tj�d�}|�|�|�d|�	d��|�d|�	d��dS)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)
rr�r�r�r�r�r�r�rr�r�r+r+r,�test_netscape_miscs




z!LWPCookieTests.test_netscape_misccCshttdd��}t|dd�t|dd�}|�d|�t|dd�t|d�}|�d|�|�t|�d	�dS)
NTr�http://example/z#foo1=bar; PORT; Discard; Version=1;z$foo2=bar; domain=".local"; Version=1�foo1=barzfoo3=bar; Version=1�foo2=barr )rr
r�rr"rr�r+r+r,�test_intranet_domains_2965s��
z)LWPCookieTests.test_intranet_domains_2965cCslttdd��}t|dd�t|dd�}|�t|�d�|�d|�t|d�}|�d|�|�t|�d�dS)NFrr�r�zfoo2=bar; domain=.localrr�)rr
r�r"rrr�r+r+r,�test_intranet_domains_ns-s�
z'LWPCookieTests.test_intranet_domains_nscCs�ttdd��}g}tj�d�}|�d�t|d�}|�||�tj�d�}|�|�|�	|�
d�d�|�	|�
d�d�tj�d	�}|�|�|�	|�
d�d�|�	|�
d�d�dS)
NTrzhttp://www.ants.com/z,Set-Cookie: JSESSIONID=ABCDERANDOM123; Path=rzJSESSIONID=ABCDERANDOM123rar�zhttp://www.ants.com:8080)rr
r�r�r�r�r�r�r�r"r�r�r+r+r,�test_empty_path9s$


�
�zLWPCookieTests.test_empty_pathc	Cst��dd}tj�d�}g}|�d�|�d|�|�d|�|�d�|�d�t|d�}t�}|�||�ddddd	�}|D]}d
|j	}||d||<qD|�
�|D]}d|j	}||d||<qZ|�|d|d
�|�|dd�|�|dd�dS)Nrr7z"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 GMTz<Set-Cookie: s2=session;Path=/scripts;Domain=.perlmeister.comz2Set-Cookie2: s3=session;Version=1;Discard;Path="/")�
session_after�
perm_after�session_before�perm_beforez	%s_beforez%s_afterr�r�r�r�)
r2r�r�r�r�r�r�rr�r�rr"�assertNotEqual)	r%r�r�r�r�r}�counterr��keyr+r+r,�test_session_cookiesXs<
��


�

z#LWPCookieTests.test_session_cookiesN)r]r^r_r�r�r�r�r�r�r�r�r�r�r�r�r+r+r+r,r�3s[3p5[.r��__main__)0�__doc__r�r��test.supportrKrrr2�unittest�urllib.requestr�r��http.cookiejarrrrrrr	r
rrr
rrrrrrrrrrrrr�TestCaserrar�r�r�r�r�r�r�r]�mainr+r+r+r,�<module>sFd3g

B-T�

Youez - 2016 - github.com/yon3zu
LinuXploit