Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_http_cookiejar.cpython-39.pyc

a

��g�8�@s6dZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!Gdd�dej"�Z#Gdd�dej"�Z$Gdd	�d	�Z%d
d�Z&dd
�Z'dd�Z(Gdd�dej"�Z)Gdd�dej"�Z*Gdd�dej"�Z+e,dk�r2e�-�dS)zTests for http/cookiejar.py.�N)�	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)�
DateTimeTestscCs�d}d}|�t|�d�|�t||�d�|�t|d|�d�|�t|d|�d�t�}td	�}||fD]}|�|d
d||f�qrdS)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�baseZday�azZbz�text�r&�4/usr/local/lib/python3.9/test/test_http_cookiejar.py�test_time2isozs
�zDateTimeTests.test_time2isozcCs�d}d}|�t|�d�|�t||�d�|�t|d|�d�|�t|d|�d�t�}td	�}||fD]}|�|d
d||f�qrdS)NrrzFri, 19-Apr-2002 14:36:40 GMTzSat, 20-Apr-2002 14:36:40 GMTrzSun, 21-Apr-2002 14:36:40 GMTrzMon, 22-Apr-2002 14:36:40 GMTrz;[a-zA-Z]{3}, \d{2}-[a-zA-Z]{3}-\d{4} \d{2}:\d{2}:\d{2} GMT$zbad time2netscape format: %s %s)rrr r!r&r&r'�test_time2netscape#s(���
�z DateTimeTests.test_time2netscapecCs<dd�}|�|d�d�|�|d�d�|�|d�d�dS)	NcSst�t|��dd�S�N�)�time�gmtimer�r%r&r&r'�
parse_date:sz0DateTimeTests.test_http2time.<locals>.parse_datez01 Jan 2001)i��r0rr�z	03-Feb-20)i�rrrrr1z	03-Feb-98)i�rrrrr1�r�r"r/r&r&r'�test_http2time9szDateTimeTests.test_http2timecCs�gd�}d}t|�}d}|�||d|||f�|D]J}|�t|�||�|�t|���||���|�t|���||���q4dS)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))rrr�lower�upper)r"�tests�test_t�result�expected�sr&r&r'�test_http2time_formatsEs�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_garbageis

��z$DateTimeTests.test_http2time_garbagecCs(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)NcSst�t|��dd�Sr*)r,r-rr.r&r&r'r/�sz/DateTimeTests.test_iso2time.<locals>.parse_dateZ19940203T141529Z)i�rr���z1994-02-03 07:15:29 -0700z1994-02-03 19:45:29 +0530r2r3r&r&r'�
test_iso2time�s
�
�
�zDateTimeTests.test_iso2timecCs`gd�}d}|D]J}|�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:00Z19940203z1994-02-02 24:00:00Z19940203T000000Zz
  1994-02-03 z  1994-02-03T00:00:00  r6)rrr7r8)r"r9r:r=r&r&r'�test_iso2time_formats�sz#DateTimeTests.test_iso2time_formatscCs"dD]}|�t|�d|�qdS)N)r?r@r5z
1980-00-01z
1980-13-01z
1980-01-00z
1980-01-32z1980-01-01 25:00:00z1980-01-01 00:61:00rAz01-01-1980T00:00:62Z19800101T250000Zziso2time(%r))rBrrCr&r&r'�test_iso2time_garbage�s
�z#DateTimeTests.test_iso2time_garbagecCs(td�dd��td�dd��dS)Nz1994-02-03{}14:15:29 -0100!rFi@Bz1994-02-03 14:15:29{}-0100!)rrGrHr&r&r'�$test_iso2time_performance_regression�sz2DateTimeTests.test_iso2time_performance_regressionN)
�__name__�
__module__�__qualname__r(r)r4r>rErIrMrNrOrPr&r&r&r'rs$rc@s<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"�rr�r"r<�hdrr&r&r'�test_parse_ns_headers�s
z!HeaderTests.test_parse_ns_headerscCs*ddgg}dD]}|�t|g�|�qdS)NrU)rZ�1)zfoo=bar; version="1"�foo=bar; Version="1"r\r]r&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)rXz01 Jan 2040 22:23:32 GMTrYr\)r"r^r<r&r&r'�#test_parse_ns_headers_special_names�s
z/HeaderTests.test_parse_ns_headers_special_namescCs0tddgg�}|�|d�|�tgg�d�dS)N�rVN�rW�bazzfoo; bar=bazr?)rr)r"Zjoinedr&r&r'�test_join_header_words�sz"HeaderTests.test_join_header_wordscCsddggfddggfddggfddggfddggfd	dggfd
ddggfdddggfd
dggfdddggfdgd�gfddgdgdggfdddgdgdgdggfg
}|D]l\}}zt|g�}Wn<ddl}ddl}|��}|�d|�d|��}Yn0|�||d|||f�q�dS)NrVrd�foo=barrU�	   foo   z
   foo=   )rVr?z   foo=z   foo=   ; z   foo=   ; bar= baz re�foo=bar bar=bazzfoo= bar=baz)rVzbar=baz�foo=bar;bar=baz�foo bar baz)rd)rWN)rfNza, b, c)�aN)�bN)�cNz(foo; bar=baz, spam=, foo="\,\;\"", bar= )�spamr?)rVz,;")rWr?rz (error -- traceback follows)

%sz:
When parsing: '%s'
Expected:     '%s'
Got:          '%s'
)r�	traceback�io�StringIO�	print_exc�getvaluer)r"r9�arg�expectr;rqrr�fr&r&r'�test_split_header_words�s:






���
�z#HeaderTests.test_split_header_wordsc
CsFgd�}|D]4\}}t|g�}t|�}|�||d||||f�qdS)N)
)rVrV)rhrh)rirV)zfoo=zfoo="")rj�foo=bar; bar=baz)rkrz)rlz
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'
)rrr)r"r9rvrw�input�resr&r&r'�test_roundtrip
s


�zHeaderTests.test_roundtripN)	rQrRrSr_rbrcrgryr}r&r&r&r'rT�s	
"rTc@s"eZdZgdfdd�Zdd�ZdS)�FakeResponseNcCs$ddl}|�d�|��|_||_dS)zD
        headers: list of RFC822-style 'Key: value' strings
        rN�
)�emailZmessage_from_string�join�_headersZ_url)r"�headers�urlr�r&r&r'�__init__-szFakeResponse.__init__cCs|jS�N)r�rHr&r&r'�info4�zFakeResponse.info)rQrRrSr�r�r&r&r&r'r~,sr~cGst|||d�S)NzSet-Cookie2��	_interact��	cookiejarr��set_cookie_hdrsr&r&r'�
interact_29656sr�cGst|||d�S)Nz
Set-Cookier�r�r&r&r'�interact_netscape9sr�c	Cs\tj�|�}|�|�|�dd�}g}|D]}|�d||f�q*t||�}|�||�|S)zDPerform a single request / response cycle, returning Cookie: header.r	r?z%s: %s)�urllib�request�Request�add_cookie_header�
get_header�appendr~�extract_cookies)	r�r�r�Zhdr_name�reqZ
cookie_hdrr�r^r|r&r&r'r�<s

r�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�FileCookieJarTestscCs"tjj}t|�}|�|j|�dSr�)rD�support�TESTFNrr�filename�r"r�ror&r&r'�test_constructor_with_strJsz,FileCookieJarTests.test_constructor_with_strcCs.t�tjj�}t|�}|�|jt�	|��dSr�)
�pathlib�PathrDr�r�rrr��os�fspathr�r&r&r'�test_constructor_with_path_likeOsz2FileCookieJarTests.test_constructor_with_path_likecCstd�}|�|j�dSr�)rrBr��r"ror&r&r'�test_constructor_with_noneTsz-FileCookieJarTests.test_constructor_with_nonec
Cs�Gdd�d�}tt|fD]j}|j|d��J|�t�� |�}t|d�}Wd�n1sZ0YWd�q1sx0YqdS)Nc@seZdZdS)z?FileCookieJarTests.test_constructor_with_other_types.<locals>.AN)rQrRrSr&r&r&r'�AYsr��r�)�int�floatZsubTest�assertRaises�	TypeErrorr)r"r��type_�instanceror&r&r'�!test_constructor_with_other_typesXsz4FileCookieJarTests.test_constructor_with_other_typescCs�tjj}t�}t|dd�|�|jdddjd�zH|j|dd�t�}|j	|dd�Wzt
�|�Wq�ty|Yq�0n$zt
�|�Wnty�Yn00|�|jdddjd�dS)N�http://www.acme.com/Zboo�www.acme.com�/T��ignore_discard)
rDr�r�rr�r�_cookies�value�save�loadr��unlink�OSErrorr�r&r&r'�test_lwp_valueless_cookiebs�z,FileCookieJarTests.test_lwp_valueless_cookiecCstjj}ttfD]X}|�}z|jdd�Wn2ty\}z|�|jt	�WYd}~qd}~00|�
d�qz~t|d��>}|�d�ttfD]}|�}|�
t	|j|�q�Wd�n1s�0YWzt�|�Wnty�Yn0n&zt�|�Wnt�yYn00dS)NzAfor this test to work, a file with this filename should not existr�z%expected OSError for invalid filename�wzoops
)rDr�r�rr
r�r�ZassertIsNot�	__class__rZfail�open�writer�r�r�)r"r�Zcookiejar_classro�excrxr&r&r'�test_bad_magicqs$$
2�z!FileCookieJarTests.test_bad_magicN)	rQrRrSr�r�r�r�r�r�r&r&r&r'r�Is
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
|�|�q
dS)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�rVT)r�z	foo.localT)r��.localT)�http://barfoo.comr�F)r�r�F)rr�r�r�Zdomain_return_ok�
assertTrue�assertFalse)r"�polr��domain�okr��rr&r&r'�test_domain_return_ok�sz!CookieTests.test_domain_return_okc	Cstjj}t|�}t|dd�t|dd�|jddd}|�|j�|�|j	d�|jddd}|�|j�|�|j	d�|�t
|�d�t|�}|jd	d	d
�z&t|�}|j
d	d	d
�Wt�|j�nt�|j�0|�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)Zignore_expiresr�zpath_specified=%sF�http://www.acme.com/foo/z"spam"; eggs)rDr�r�r
r�r�rBr�r�namer�reprr�Zrevertr�r�r��re�sub)r"r�ro�cookieZold_strr&r&r'�test_missing_value�s8
����zCookieTests.test_missing_valuec	Cs�dD]�\}}}t||d�}t|�}t|dd�z|jddd}Wnty`|�|�Yq0|�|j|�t|dd�|r|jddd	}|�|jd
�qdS)N))NFr)NTr0)FFN)FTr0)TFr)TTr)�rfc2109_as_netscape�rfc2965�http://www.example.com/zni=ni; Version=1�www.example.comr��ni�foo=bar; Version=1rVr0)	rr
r�r��KeyErrorrBrrZr�)r"r�r�rZ�policyror�Z
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=unladenswallowZholyhandgrenade�	.acme.comr�rpZblArghZblarghr�r�z80,8080ZninirVZfortytwor?)r
r�r�rr�r�Zdomain_specified�portrr�Zport_specifiedZhas_nonstandard_attrrBrXZassertIsNotNoner�)r"ror�rVrpr&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�rXrZ)r
r�r��assertIn)r"ro�cookiesr&r&r'�test_ns_parser_special_namesJsz(CookieTests.test_ns_parser_special_namesc
Cs�t�}tt��d�}tj�|��dd|��g}tj�d�}t	|d�}|�
||�}|�t|�d�|�t|dj
�|�Wd�n1s�0Yt|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/r0rr�zspam="bar"; expires=%szfoo="eggs"; expires=%s�
spam="bar"rVzeggs="bar"; expires=%szbar="bar"; expires=%srz!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
rr,rDr�Zcheck_no_warningsr�r�r�r~�make_cookiesr�lenrXr�r��assertNotIn�clear_session_cookiesr	)
r"ro�futurer�r�r|r�Znow�hr�r&r&r'�test_expiresUsb
4��
����
�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)rr
r�r�r�r��r"r�ror&r&r'�test_default_path�s:
��zCookieTests.test_default_pathcCsBt�}d}d}t|||�|�d|jd�|�t||�|�dS)Nzhttp://example.com/?spam/eggsr�r�zexample.com)r
r�r�r�r)r"�cjZurir�r&r&r'�test_default_path_with_query�sz(CookieTests.test_default_path_with_querycCs*gd�}|D]\}}|�t|�|�qdS)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)rr)r"Zcasesrvr;r&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�rr�r"r�r&r&r'�test_request_path�s�
��zCookieTests.test_request_pathcCs�t�}tdd�}t|�}d}t||d�|jddd}dD]|\}}|�|��}tj�|�}	t||�}
|r�|�d	|
d
|���|�|�	||	��q>|�
d	|
d|���|�|�	||	��q>dS)NT)Zstrict_ns_set_pathzhttp://bar.comzspam=eggs; Path=/foor��/foorp))rT)r�T)�/foo/barT)r�F)z/foobad/fooFz	spam=eggszcookie not set for zcookie set for )rr
r�r�r�r�r�r�r�Zset_ok_pathr�r�)r"r�Zstrict_ns_path_polroZbase_urlr��pathr�r�r�r�r&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�Z1234r�)r�r�r�rrrrr&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/r�www.acme.com:80rz1.1.1.1r�zirrelevant.comr�z&http://www.acme.com:2345/resource.htmlzwww.acme.com:5432)r�r�r�rrrr&r&r'�test_request_host	s���zCookieTests.test_request_hostcCst|�td��|�td��|�td��|�td��|�td��|�td��|�td��|�td��dS)	Nr�z1foo2.3bar4.5com�192.168.1.1r?�.r�z..foozfoo.)r�rr�rHr&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��.comrr?z192.168.0.1)rrrHr&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)Nrz.168.1.1zx.y.comzx.Y.comz.Y.comzY.comz	a.b.c.comz.c.comz
example.localr�z	blah.blahr?z.rhubarb.rhubarbrr�zrhubarb.acme.comzwww.rhubarb.acme.comzy.comz.y.comrr��mz.mr)r�rr�rrHr&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�rr�r�r&r&r'�test_wrong_domainQs
�zCookieTests.test_wrong_domaincCsjtdd�}t|d�}t|dd�t|dd�|�t|�d�dD]$}t|d	|d
�|�t|�d�q@dS)NT)Z
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)rr
r�rr�)r"Zcpr�Z
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=barr0�foo.netr��nsrW�http://www.foo.net/)Zstrict_ns_domainr?�http://foo.net/foo/zspam1=eggs; domain=foo.netzhttp://foo.net/foo/bar/zspam2=eggs; domain=.foo.netr�.foo.netrZspam1r�rZspam2zspam2=eggs; spam1=eggs; ns=barznini="ni"; domain=.netzhttp://foo.co.ukznasty=trick; domain=.co.uk�)	r
r�rr�r�r�rZDomainStrictNonDomain�
set_policy)r"ror�r&r&r'�test_two_component_domain_nsisB��
�����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)NTr�rrar0rr�rVrWz$Version=1; foo=barrr?zhttp://foo.net/fooz1spam=eggs; domain=foo.net; path=/foo; Version="1"zhttp://www.foo.net/foo/z&spam=eggs; domain=foo.net; Version="1"r r�rpr�rrz($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)rr
r�rr�r�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)
Nrr�)�blocked_domainsZallowed_domainsr�http://acme.com/�*Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/rr�r0r�rr	)r
rr�r�r�r~r�rr�r��
set_cookier�r��
has_header)r"ror�r�r|r�r&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�r%rr'r�rrr0zhttp://www.roadrunner.net/r	�Cookie2rr&zhttp://badacme.com/)rr
r�r�r�r~r�rr�Zset_blocked_domains�clearr�r�r)r�r(r�Z	return_ok)r"r�ror�r�r|�pr�r&r&r'�test_domain_block�sj�











zCookieTests.test_domain_blockcCs�dD]�}dD]�}t�}|r.tdd�}t}d}ntdd�}t}d}|�|�d}|||d	||f�|||d
||f�|�|jddd
jd�|�|jdddjd�qqdS)N)TF)rFr?Fr�r?Tz; Version=1r�zfoo1=bar%s%szfoo2=bar%s; secure%sr�r�Zfoo1z#non-secure cookie registered secureZfoo2z#secure cookie registered non-secure)	r
rr�r�r"r�r�Zsecurer�)r"r�
whitespaceror�r�Zvsr�r&r&r'�test_secure's,


��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)	Nr�(Set-Cookie: session=narf; secure; path=/�https://www.acme.com/r0r	r�zwss://www.acme.com/zws://www.acme.com/)
rr
r�r�r�r~r�rr�r�r�r)r��r"r�ror�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)NZfoos)Zsecure_protocolsrr1r2r0r	r�zfoos://www.acme.com/zfoo://www.acme.com/)
rr
r�r�r�r~r�rr�r�r�r)r�r3r&r&r'�test_custom_secure_protocolsZs&





z(CookieTests.test_custom_secure_protocolscCs6ttdd�d�}t|dd�t|d�}|�|d�dS)NTr�rr�zfoo=\b"a"r; Version=1z$Version=1; foo=\\b\"a\"r)r
rr�r)r"ror�r&r&r'�test_quote_cookie_valueus
z#CookieTests.test_quote_cookie_valuecCsXd}ttdd��}t||d�tj�|�}|�t|�d�|�|�|�	|�
d��dS)N�http://www.acme.comTr�r�r0r	)r
rr�r�r�r�rr�r�r�r))r"r�ror�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)NTr�r��spam=eggs; Version=1ZDomainz*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"�rr
r�r�r��r"r�ror�r�r&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)
NTr�r�r9r�z&absent path returned with path presentzspam=eggs; Version=1; Path=/z	$Path="/"zpath not returnedr:r;r&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)NTr�r�r9ZPortz&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)rr
r�r�r r�r;r&r&r'�test_port_mirror�s6


�
�
�zCookieTests.test_port_mirrorcCs:ttdd��}d}t||d�t||�}|�d|d�dS)NTr�r�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
rr�r�)r"ror�r�r&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]n}d}|D]`}|�|t�|�|j||�|�|j	||�|�|j
||�|�|j||�|d}q~qrdS)NTr�zhttp://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! (\"|\\\\) ")r0r0r0rr0)ZbangrVrVrprV)z.sol.noz
blah.spam.orgr�r�r�)r�r�r�r�r�r!rr0)r
rr�r��rangeZassertIsInstancer	rrZr�r�r	)r"�csZversions�namesZdomains�paths�iror&r&r'�test_Cookie_iterator�s2���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)rU)r	r�)r�NrYz)foo=bar; expires=Foo Bar 12 33:22:11 2000)rU)rXNrYrVrdrYzfoo=bar; expireszfoo=bar; versionrU)rZNr?r\rHr&r&r'r_�s*�����z!CookieTests.test_parse_ns_headerscCs�dd�}tt��d�}dgdgdgdgdgd	|gfD]}||�}|�t|�d
�q8dg}||�}|jdd
d}|�|j�dS)NcSs,t�}tj�d�}t|d�}|�||�|S)Nr�)r
r�r�r�r~r�)r�ror�r�r&r&r'�cookiejar_from_cookie_headerss

zICookieTests.test_bad_cookie_header.<locals>.cookiejar_from_cookie_headersr�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�ro)rr,rr�r�rBrX)r"rIr�r�ror�r&r&r'�test_bad_cookie_headers�z"CookieTests.test_bad_cookie_headerN)%rQrRrSr�r�r�r�r�r�r�r�rrr
r
rrrrrrr#r$r*r.r0r4r5r6r8r<r=r>r@rHr_rJr&r&r&r'r��sD/! 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)Nrr0Tr�r�rrrzVSet-Cookie: CUSTOMER=WILE_E_COYOTE; path=/ ; expires=Wednesday, 09-Nov-%d 23:12:40 GMTr�r	zCUSTOMER=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=/foor7zSHIPPING=FEDEXr�zSHIPPING=FEDEX;)r,�	localtimer
rr�r�r�r�r~r�r�rr�r�r�r��
startswith)r"�
year_plus_oner�ror�r|r�r&r&r'�test_netscape_example_14sP%���











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�rMr	rNz6Set-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�rr�r �r"ror�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)NTr�zhttp://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"Z
WILE_E_COYOTE)r
rr�r�r r��r"ror�r&r&r'�test_ietf_example_1�s*�
���
z"LWPCookieTests.test_ietf_example_1cCsXttdd��}t|ddd�t|d�}|�|d�t|d�}|�d	|�|�d
|�dS)NTr�z&http://www.acme.com/acme/ammo/specificrUz@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/ZRocket_Launcher_0001ZRiding_Rocket_0023)r
rr�r r�r�rVr&r&r'�test_ietf_example_22s
�

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�tjj}zV|j	|dd�t
|�}t|d�}|j|dd�Wzt�
|�Wnt�y�Yn0n&zt�
|�Wnt�y�Yn00|�|t
|��dS)NTr�rzmax-age=3600r7z!foo=bar; domain=".com"; version=1z'ping=pong; domain="acme.com"; version=1r0zhttp://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=1rAz6blah=rhubarb; domain=".sol.no"; path="/foo"; version=1zhttp://www.sol.no/foo/barz3bing=bong; domain=".sol.no"; path="/foo"; version=1rz5whiz=ffft; domain=".sol.no"; port="90,100"; version=1rBr!z9foo9=bar; version=1; domain=".sol.no"; port; max-age=100;�zhttp://www.sol.no/<oo/z"foo8=bar; version=1; path="/%3coo"r+r�)rrr�r�rr�rDr�r�r�r�r�r�r�r�)r"r�roZmax_ager�r��oldr&r&r'�test_rejectiongsv

�
���������	�
�zLWPCookieTests.test_rejectioncCsnttdd��}t|dd�t|dd�}t�dtj�}|�d|�|�||�t|d	�}|�|�t|d
�}dS)NTr�z7http://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\"?rhu-http://www.acme.com/foo/%25/<<%0anewå/æøåuhttp://www.acme.com/ü)	r
rr�r��compile�Ir�r r�)r"ror�Z
version_rer&r&r'�test_url_encoding�s ���
z LWPCookieTests.test_url_encodingcs�t��dd}tjj�t�tdd�d�}t|dd�t|dd�t|dd	�d
|f}t|dd|�t|dd
|�t|dd|��fdd�}||d�}|�	t
|�d�|�dt|��||d�}|�	t
|�d�|�dt|��dS)Nrr0Tr�rr�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; %scsxzN|j|d�t�tdd��}|j|d�Wzt���WqttyLYqt0n$zt���WntypYn00|S)Nr�Tr�)r�r
rr�r�r�r�)r�r��new_cr�r&r'�save_and_restore�s��z5LWPCookieTests.test_mozilla.<locals>.save_and_restorer+zname='foo1', value='bar'Fr!)
r,rOrDr�r�r
rr�r�rr�r�r�)r"rQrorXr`r_r&r�r'�test_mozilla�s:���
���

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,4r	zCustomer=WILE_E_COYOTE)
r
r�r�r�r�r~r�r�r�r�rSr&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
rr�r�rr�rVr&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)NFr�rcrdzfoo2=bar; domain=.localrre)r
rr�rr�r�rVr&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)
NTr�zhttp://www.ants.com/z,Set-Cookie: JSESSIONID=ABCDERANDOM123; Path=r	zJSESSIONID=ABCDERANDOM123r+rLzhttp://www.ants.com:8080)r
rr�r�r�r�r~r�r�rr�rSr&r&r'�test_empty_path2s$


�
�zLWPCookieTests.test_empty_pathc	Cst��dd}tj�d�}g}|�d�|�d|�|�d|�|�d�|�d�t|d�}t�}|�||�ddddd	�}|D]}d
|j	}||d||<q�|�
�|D]}d|j	}||d||<q�|�|d|d
�|�|dd�|�|dd�dS)Nrr0z"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_afterrjrlrirk)
r,rOr�r�r�r�r~r
r�r�r�rZassertNotEqual)	r"rQr�r�r|roZcounterr��keyr&r&r'�test_session_cookiesQs<
��


�

z#LWPCookieTests.test_session_cookiesN)rQrRrSrRrTrWrXr[r^rarbrfrgrhrnr&r&r&r'rK1s[3p5[)rK�__main__).�__doc__r�r�Ztest.supportrDr,ZunittestZurllib.requestr�r�Zhttp.cookiejarrrrrrrrr	r
rrr
rrrrrrrrrrrZTestCaserrTr~r�r�r�r�r�rKrQ�mainr&r&r&r'�<module>s>d3g

B-O


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists