403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.51
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_http_cookiejar.cpython-313.opt-1.pyc
�

��iBO���SrSSKrSSKrSSKrSSKrSSKJr SSKJr SSKJ	r	 SSK
Jr 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+"SS\
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�	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_host�win32c���\rSrSrSrSrSrSr\R"S/SQ5S5r
S	rS
r\R"S/SQ5S
5r
\R"S/SQ5S5rSrSrg)�
DateTimeTests�c	�t�SnSnUR[U5S5 UR[X-5S5 UR[USU--5S5 UR[USU--5S5 [5n[S	5nX44HnURUS
SU<SU<35 M  g)
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: � )�assertEqualr�assertRegex��self�base�day�az�bz�texts      �-C:\Python313\\Lib\test\test_http_cookiejar.py�test_time2isoz�DateTimeTests.test_time2isozs�����������4��*@�A�����4�8�,�.D�E�����4��#��:�.�0F�G�����4��#��:�.�0F�G�
�[��
�v�
���H�D����T�#G�>@�"�E�
G��c	�t�SnSnUR[U5S5 UR[X-5S5 UR[USU--5S5 UR[USU--5S5 [5n[S	5nX44HnURUS
SU<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      r2�test_time2netscape� DateTimeTests.test_time2netscape(s�����������t�,�.M�N�����t�x�0�8�	:�	
����t�A�c�E�z�2�8�	:�	
����t�A�c�E�z�2�8�	:��_��
�6�
"���H�D�����N�57��<�
>�r5c��SnURU"S5S5 URU"S5S5 URU"S5S5 g)Nc�F�[R"[U55SS$�N�)�time�gmtimer�r1s r2�
parse_date�0DateTimeTests.test_http2time.<locals>.parse_date?s���;�;�y���/���3�3r5z01 Jan 2001)i��rBrr�z	03-Feb-20)i�r%r&rrrCz	03-Feb-98)i�r%r&rrrC�r)�r,r@s  r2�test_http2time�DateTimeTests.test_http2time>sO��	4�	
����M�2�4K�L�	
����K�0�2I�J�	
����K�0�2I�Jr5c
��/SQnSn[U5nSnURX4U<SU<SU<S35 UH�nUR[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-94z03-Feb-1994z03 Feb 1994z  03   Feb   1994  0:00  z  03-Feb-1994  �>P-z1994-02-03 00:00:00Zz  =>  'z' (�))rr)r�lower�upper)r,�tests�test_t�result�expected�ss      r2�test_http2time_formats�$DateTimeTests.test_http2time_formatsJs���
��,���6�"��)������06���I�	K��A����Y�q�\�6�5����Y�q�w�w�y�1�6�7�7�9�E����Y�q�w�w�y�1�6�7�7�9�E�r5�test)��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 GMTc�8�UR[U55 g�N)�assertIsNoner�r,rUs  r2�test_http2time_garbage�$DateTimeTests.test_http2time_garbagens��"	
���)�D�/�*r5c�x�[SRSS-55 [SRSS-55 g)Nz01 Jan 1970{}00:00:00 GMT!r(i��z01 Jan 1970 00:00:00{}GMT!)r�format�r,s r2�2test_http2time_redos_regression_actually_completes�@DateTimeTests.test_http2time_redos_regression_actually_completes�s4��	�.�5�5�c�G�m�D�E��.�5�5�c�G�m�D�Er5c��SnURU"S5S5 URU"S5S5 URU"S5S5 g)Nc�F�[R"[U55SS$r;)r=r>r	r?s r2r@�/DateTimeTests.test_iso2time.<locals>.parse_date�s���;�;�x��~�.�r��2�2r5�19940203T141529Z)i�r%r&���z1994-02-03 07:15:29 -0700z1994-02-03 19:45:29 +0530rDrEs  r2�
test_iso2time�DateTimeTests.test_iso2time�sX��	3�	
����$6�7�1�	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:00�19940203z1994-02-02 24:00:00�19940203T000000Zz
  1994-02-03 z  1994-02-03T00:00:00  c��SnUR[U5X!5 UR[UR55X!R55 UR[UR55X!R55 g)NrJ)r)r	rLrM)r,rRrOs   r2�test_iso2time_formats�#DateTimeTests.test_iso2time_formats�s_�� ������!��f�0�����!�'�'�)�,�f�g�g�i�@�����!�'�'�)�,�f�g�g�i�@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:62�19800101T250000Zc�8�UR[U55 grZ)r[r	r\s  r2�test_iso2time_garbage�#DateTimeTests.test_iso2time_garbage�s��	
���(�4�.�)r5c�x�[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_regression�2DateTimeTests.test_iso2time_performance_regression�s4��	�.�5�5�c�%�i�@�A��.�5�5�c�%�i�@�Ar5�N)�__name__�
__module__�__qualname__�__firstlineno__r3r7rFrSr�subTestsr]rbrkrprtrw�__static_attributes__ryr5r2r r s���G�>�,
K�"F�H
���f�
�� +�!� +�F�3� 
���c�

�
�A�
�A�
���f�

�
�*�
�*�Br5r c��\rSrSr\R
"SSS/5S5r\R
"SSS/5S5rS	rS
r	\R
"SS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'5rS(rg))*�HeaderTests���hdrz)foo=bar; expires=01 Jan 2040 22:23:32 GMTz+foo=bar; expires="01 Jan 2040 22:23:32 GMT"c�F�/SQ/nUR[U/5U5 g)N)��foo�bar)�expiresld9W��version�0�r)r�r,r�rQs   r2�test_parse_ns_headers�!HeaderTests.test_parse_ns_headers�s%��P�P�����)�3�%�0�(�;r5zfoo=bar; version="1"�foo=bar; Version="1"c�F�SS//nUR[U/5U5 g)Nr�)r��1r�r�s   r2�test_parse_ns_headers_version�)HeaderTests.test_parse_ns_headers_version�s*��$�%5�6�7�����)�3�%�0�(�;r5c�J�SnSS//nUR[U/5U5 g)Nz expires=01 Jan 2040 22:23:32 GMT)r�z01 Jan 2040 22:23:32 GMTr�r�r�s   r2�#test_parse_ns_headers_special_names�/HeaderTests.test_parse_ns_headers_special_names�s/��1��<�>N�O�P�����)�3�%�0�(�;r5c�|�[SS//5nURUS5 UR[//5S5 g)N�r�N�r��bazzfoo; bar=bazrV)rr))r,�joineds  r2�test_join_header_words�"HeaderTests.test_join_header_words�s<��"�]�N�$C�#D�E�������0����*�B�4�0�"�5r5z
arg,expectr�r��foo=barr��	   foo   z
   foo=   )r�rVz   foo=z   foo=   ; z   foo=   ; bar= baz r��foo=bar bar=bazzfoo= bar=baz)r�zbar=baz�foo=bar;bar=baz�foo bar baz)r�)r�N)r�Nza, b, c)�aN)�bN)�cNz(foo; bar=baz, spam=, foo="\,\;\"", bar= )�spamrV)r�z,;")r�rVc���[U/5nUR
X2SU<SU<SU<S35 g! SSKnSSKnUR5nUR	SU5 SUR5-nNa=f)Nrz (error -- traceback follows)

%s�
When parsing: '�'
Expected:     '�'
Got:          '�'
)r
�	traceback�io�StringIO�	print_exc�getvaluer))r,�arg�expectrPr�r��fs       r2�test_split_header_words�#HeaderTests.test_split_header_words�sl��&	I�'���.�F�	
����&��F�F�	+�	��	I� ����
�A�����a�(�9�A�J�J�L�H�F�s	�.�?A/))r�r�)r�r�)r�r�)zfoo=�foo="")r��foo=bar; bar=baz)r�r�)r�z
foo; bar; baz)zfoo="\"" bar="\\"zfoo="\""; bar="\\")u	föo=bäruföo="bär")z	foo,,,barzfoo, bar)zfoo=bar,bar=bazzfoo=bar, bar=baz)zfoo=
r�)�foo="
"r�)zfoo=bar
r�)�
foo="bar
"r�)zfoo=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,_"r�c
�x�[U/5n[U5nURXBSU<SU<SU<SU<S3	5 g)Nr�r�r�z'
Input was:    'r�)r
rr))r,r�r��input�ress     r2�test_roundtrip�HeaderTests.test_roundtrips=��F#�C�5�)����&������f�
�F�C��' �	!r5ryN)
rzr{r|r}rr~r�r�r�r�r�r�rryr5r2r�r��s������e�7�9�
��<�	�<�

���e�"�"�
��<�	�<�
<�6�
���l�
�m�_�%�&�
�.�)�*�+�
�M�?�+�,�
�[�M�?�+�
�+���(�
�{�m�_�-�
$��^�'D�&E�F�
�.�.�!A� B�C�
�1�2�3�4�
�.�.�!A� B�C�
�J�K�L�
�+���
��}�E�F�
8��n�-��n�~�.��
�?�
@�%
��$�%�$�
���l�!%
�!�D!�E!�D!r5r�c�(�\rSrSr/S4SjrSrSrg)�FakeResponsei4Nc�b�SSKnURSRU55UlX lg)z4
headers: list of RFC822-style 'Key: value' strings
rN�
)�email�message_from_string�join�_headers�_url)r,�headers�urlr�s    r2�__init__�FakeResponse.__init__5s'��	��1�1�$�)�)�G�2D�E��
��	r5c��UR$rZ)r�ras r2�info�FakeResponse.info<s��4�=�=�(r5)r�r�)rzr{r|r}r�r�rryr5r2r�r�4s��!�t��)r5r�c��[XUS5$)NzSet-Cookie2��	_interact��	cookiejarr��set_cookie_hdrss   r2�
interact_2965r�>s���Y�_�m�D�Dr5c��[XUS5$)Nz
Set-Cookier�r�s   r2�interact_netscaper�As���Y�_�l�C�Cr5c��[RRU5nURU5 UR	SS5n/nUHnURU<SU<35 M [
Xa5nURX�5 U$)zDPerform a single request / response cycle, returning Cookie: header.rrVz: )�urllib�request�Request�add_cookie_header�
get_header�appendr��extract_cookies)	r�r�r��hdr_name�req�
cookie_hdrr�r�r�s	         r2r�r�Dsr��
�.�.�
 �
 ��
%�C�
����$�����"�-�J��G������8�S�1�2��
�w�
$�C�
���c�'��r5c�(�\rSrSrSrSrSrSrSr\	R"\S5\RS55r\	R"\S5\RS	55r\	R"\S5\RS
55rSrSrg
)�FileCookieJarTestsiQc�r�[Rn[U5nURURU5 grZ)r�TESTFNrr)�filename�r,r�r�s   r2�test_constructor_with_str�,FileCookieJarTests.test_constructor_with_strRs+���#�#����"��������X�.r5c��[Rn[[R"U55nUR	UR
U5 grZ)rr�r�FakePathr)r�r�s   r2�test_constructor_with_path_like�2FileCookieJarTests.test_constructor_with_path_likeWs6���#�#����+�+�H�5�6��������X�.r5c�P�[S5nURUR5 grZ)rr[r��r,r�s  r2�test_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.<locals>.AiaryN)rzr{r|r}rryr5r2�Ar�as��r5r��r�)�int�float�subTest�assertRaises�	TypeErrorr)r,r��type_�instancer�s     r2�!test_constructor_with_other_types�4FileCookieJarTests.test_constructor_with_other_types`sh��	�	��5�!�_�E����u��-��&�&�y�1�$�w�H�$�h�7�A�2�.�-�%�1�1��.�-�s#�A7�A&�A7�&
A4�0A7�7
B	c���[Rn[5n[USS5 UR	UR
SSSRS5 URUSS9 [5nURUSS9 [R"U5 UR	UR
SSSRS5 g![R"U5 f=f)N�http://www.acme.com/�boo�www.acme.com�/T��ignore_discard)
rr�rr�r)�_cookies�value�save�load�unlinkr�s   r2�test_lwp_valueless_cookie�,FileCookieJarTests.test_lwp_valueless_cookiejs����#�#���N���!�3�U�;�������N�3�C�8��?�E�E�t�L�	'�
�F�F�8�D�F�1���A�
�F�F�8�D�F�1����X�&�������N�3�C�8��?�E�E�t�L��
���X�&�s�*C�C z9windows file permissions are incompatible with file modesc�b�[Rn[5n[USS5 UR	USS9 [
R"U5nUR[R"UR5S5 [R"U5 g![R"U5 f=f�NrrTri�)rr�rr�r�os�statr)�S_IMODE�st_moder�r,r�r��sts    r2�test_lwp_filepermissions�+FileCookieJarTests.test_lwp_filepermissionsxs����#�#���N���!�3�U�;�	'�
�F�F�8�D�F�1�����"�B����T�\�\�"�*�*�5�u�=����X�&��I���X�&���AB�B.c�b�[Rn[5n[USS5 UR	USS9 [
R"U5nUR[R"UR5S5 [R"U5 g![R"U5 f=fr)rr�rr�rrrr)rrrrs    r2�test_mozilla_filepermissions�/FileCookieJarTests.test_mozilla_filepermissions�s����#�#������!�3�U�;�	'�
�F�F�8�D�F�1�����"�B����T�\�\�"�*�*�5�u�=����X�&��I���X�&�rc�(�[Rn[[4H�nU"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)rr�rrr�r�r�r�r�r)�lenr�clearrr)r,r��cookiejar_classr�r�r�r�s       r2�test_cookie_files_are_truncated�2FileCookieJarTests.test_cookie_files_are_truncated�s����#�#�� ,�.>�?�O���)�A��.�.�(�(�)?�@�C�J�K�G��w�(>�?�C�
���c�'����S��V�Q�'�	
+��������	���������� � ��*����S��V�Q�'�) @��$� � ��*�s
�AC9�9Dc�R�[Rn[[4H+nU"5nUR	SS9 URS5 M- [US5nURS5 [[4H+nU"5nUR[URU5 M- SSS5 [R"U5 g![a+nURUR[5 SnAM�SnAff=f!,(df   N]=f![R"U5 f=f)NzAfor this test to work, a file with this filename should not existr�z%expected OSError for invalid filename�wzoops
)rr�rrr�fail�OSError�assertIsNot�	__class__r�open�writerr)r,r�r%r��excr�s      r2�test_bad_magic�!FileCookieJarTests.test_bad_magic�s����#�#��+�-=�=�O��!�A�
C����!<��=��	�	�A�B� >�	'��h��$������!�'3�5E�'E�O�'�)�A��%�%�i�����B�(F�%�
���X�&���
;�� � ����	�:�:��
;��%�$��
���X�&�s<�C�
D�A
C=�&D�
C:� C5�5C:�=
D�D�D&ryN)rzr{r|r}r�r�r�rr�unittest�skipIf�	mswindowsr�skip_unless_working_chmodrr r&r1rryr5r2r�r�Qs���/�
/�
&�8�M��_�_�Y� [�\��(�(�
'�)�]�
'��_�_�Y� [�\��(�(�
'�)�]�
'��_�_�Y� [�\��(�(�(�)�]�(�0'r5r�c��\rSrSr\R
"S/SQ5S5rSr\R
"S/SQ5S5rS	r	S
r
SrS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�CookieTestsi�z
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)r9�bar.comT)r9�comT)�http://foo.com/zrhubarb.foo.comF)r>�.foo.comT)r>�foo.comT)r>r=T)�http://foo/zrhubarb.fooF)rAz.fooT)rAr�T)rAz	foo.localT)rA�.localT)�http://barfoo.comr?F)rCr@Fc���[5n[RRU5nUR	X%5nU(aURU5 gUR
U5 grZ)rr�r�r��domain_return_ok�
assertTrue�assertFalse)r,r��domain�ok�polr��rs       r2�test_domain_return_ok�!CookieTests.test_domain_return_ok�sL��6"�#���.�.�(�(��-��� � ��1��
�t���q�!����q�!r5c�r�[Rn[U5n[USS5 [USS5 URSSSnURUR5 URURS5 URSSSnURUR5 URURS5 UR[U5S5 [U5nURS	S	S
9 [U5nURS	S	S
9 [R"UR5 UR[U5[R "SS	-SS-U55 UR[US
5S5 g![R"UR5 f=f)Nr�eggsz"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=%sF�http://www.acme.com/foo/z"spam"; eggs)rr�rr�r
r[rr)�namer�reprr�revertrr��re�sub)r,r�r��cookie�old_strs     r2�test_missing_value�CookieTests.test_missing_values~���#�#���X�&���!�3�V�<��!�3�5I�J����N�+�C�0��8�����&�,�,�'�������f�-����N�+�G�4�X�>�����&�,�,�'�������h�/������/�
,�	.��q�'��	���d�4��8�	)� ��*�A�
�H�H�D��H�>����Q�Z�Z�(������G��F�F�&��-�/B�U�/J��
�	�
	
���*�1�.H�I�'�	)��
���Q�Z�Z�(�s�F�"F6z#rfc2109_as_netscape,rfc2965,version))NFr)NTrB)FFN)FTrB)TFr)TTrc�z�[UUS9n[U5n[USS5 URSSSnUR	UR
U5 [
USS5 U(a2URSSSnUR	UR
S	5 gg![a URU5 gf=f)
N)�rfc2109_as_netscape�rfc2965�http://www.example.com/zni=ni; Version=1�www.example.comr
�ni�foo=bar; Version=1r�rB)	rrr�r
r)r�r��KeyErrorr[)r,r]r^r��policyr�rX�
cookie2965s        r2�test_rfc2109_handling�!CookieTests.test_rfc2109_handling7s���%� 3����
�f����!�6�8J�K�	8��Z�Z� 1�2�3�7��=�F�
���V�^�^�W�5��!�6�0�
2���Z�Z�(9�:�3�?��F�
�� � ��!3�!3�Q�7����	'����g�&�	'�s�B�B:�9B:c���[5n[USS5 [USS5 [USS5 [USS5 [USS5 [USS5 [USS	5 [USS
5 URSSS
nURURS5 URUR5 URUR[5 URUR5 URURS55 URURS55 URSSSnURURS5 URUR5 URURS5 URUR5 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,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	raz80,8080�ninir��fortytworV)rr�r
r)rHrF�domain_specified�portrrG�port_specified�has_nonstandard_attrr[r��assertIsNotNoner)r,r�rXr�r�s     r2�test_ns_parser�CookieTests.test_ns_parserVs{���K���!�3�L�	N��!�3�5J�K��!�6�	�B��!�6�8K�L��!�6�9?�	@��!�3�[�A��!�3�5F�G��!�3�5F�G����K�(��-�f�5���������4�����/�/�0�������&7�8�����.�.�/�����3�3�H�=�>�����4�4�X�>�?����N�+�C�0��6���������7�����0�0�1�������i�0�����-�-�.����N�+�C�0��8�����&�+�+�&�����.�.�/��j�j��(��-�e�4���z�z�.�)�#�.�u�5�����#�+�+�&����$�,�,�'����N�+�C�0��<�����V�\�\�*�������r�*�
���N�+�C�0�1B�C�����&�,�,�'r5c��[5n[USS5 [USS5 URSSnURSU5 URSU5 g)Nrzexpires=eggszversion=eggs; spam=eggsr	r
r�r�)rr�r
�assertIn)r,r��cookiess   r2�test_ns_parser_special_names�(CookieTests.test_ns_parser_special_names�sU��
�K���!�3�^�D��!�3�5N�O��*�*�^�,�S�1���
�
�i��)��
�
�i��)r5c�N�[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 [USSU-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)N�z%Set-Cookie: FOO=BAR; path=/; expires=�http://www.coyote.com/rBrrzspam="bar"; expires=%szfoo="eggs"; expires=%s�
spam="bar"r�zeggs="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"r%rSrFzwww.python.orgTr
z1444312383.018307i?uV)rr
r=r�check_no_warningsr�r�r�r��make_cookiesr)r#r�r�rx�assertNotIn�clear_session_cookiesr)
r,r��futurer�r�r�ry�now�hrXs
          r2�test_expires�CookieTests.test_expires�s{���K���t�y�y�{�4�/�0��
�
.�
.�t�
4�>�v�h�G�H�G��.�.�(�(�)A�B�C��w�(@�A�C��n�n�S�.�G����S��\�1�-����]�7�1�:�+=�+=�>��G�
5�	�!�3�5M� �6!�	"�����Q���#��D�I�I�K��M�*���!�3�5M��6�	��a�!7�8������Q���#��
�
�l�A�&������"�	�!�3�5M� �6!�	"��!�3�5L� �6!�	"�����Q���#��!�3�62�4:�6;�	<��!�3�62�4:�6;�	<��a�!7�8������Q���#�	�!�6�
�F�����Q���#�	���!�����Q���#��
�
�l�A�&���F�G��u�&6��u�c���':���d����	
�������4�a5�
4�s
�BJ�
J$c�~�[SS9n[U5n[USS5 URSURS5 [U5n[USS5 URSURS5 [U5n[US	S5 URS
URS5 [U5n[USS5 URSURS5 [5n[USS
5 URSURS5 [5n[USS5 URSURS5 [5n[US	S5 URSURS5 [5n[USS5 URSURS5 g)NT�r^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)rrr�rxr
r��r,rJr�s   r2�test_default_path�CookieTests.test_default_path�sw��!�$�/���c�N���a�/�1J�K��
�
�c�1�:�:�n�5�6��c�N���a�3�5N�O��
�
�c�1�:�:�n�5�6��c�N���a�;�/�	1��
�
�h��
�
�>� :�;��c�N���a�<�/�	1��
�
�&��
�
�>�(B�C�
�K���!�3�\�B��
�
�c�1�:�:�n�5�6��K���!�7��F��
�
�c�1�:�:�n�5�6��K���!�?��N��
�
�g�q�z�z�.�9�:��K���!�@�,�O��
�
�o�q�z�z�.�'A�Br5c��[5nSnSn[XU5 URSURS5 UR	[X5U5 g)Nzhttp://example.com/?spam/eggsr�r
zexample.com)rr�rxr
r))r,�cj�urirs    r2�test_default_path_with_query�(CookieTests.test_default_path_with_query�sJ��
�[��-�����"�5�)��
�
�c�2�;�;�}�5�6����*�2�3�U�;r5z
arg,result))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%8Dc�:�UR[U5U5 grZ)r)r)r,r�rPs   r2�test_escape_path�CookieTests.test_escape_path�s��,	
����S�)�6�2r5c�`�[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
)r�r�r�r)r�r,r�s  r2�test_request_path�CookieTests.test_request_paths����n�n�$�$�
:�;��	
����c�*�?�	A��n�n�$�$�
(�)��	
����c�*�,@�A��n�n�$�$�%=�>������c�*�C�0r5c���[5n[SS9n[U5nSn[X4S5 URSSSnSH�upgUU3n[R
R
U5n	[X85n
U(a8URS	U
S
U35 URURXY55 MtURS	U
SU35 URURXY55 M� g)NT)�strict_ns_set_pathzhttp://bar.comzspam=eggs; Path=/foor<�/foor�))r�T)rPT)�/foo/barT)r
F)z/foobad/fooFz	spam=eggszcookie not set for zcookie set for )rrr�r
r�r�r�rxrF�set_ok_pathr�rG)r,rJ�strict_ns_path_polr��base_urlrX�pathrIr�r�r�s           r2�test_path_prefix_match�"CookieTests.test_path_prefix_match$s���!�#��0�D�I���c�N��#���!�'=�>����I�&�v�.�v�6��1�H�D�
�J�t�f�%�C��.�.�(�(��-�C�!�!�)�A���
�
�k�1�0C�D�6�.J�K���� 2� >� >�v� K�L�� � ��a�?�4�&�1I�J�� � �!3�!?�!?��!L�M�1r5c��[RRSSS0S9nUR[	U5S5 [RRSSS0S9nUR[	U5[
5 g)Nzhttp://www.acme.com:1234/�Hostzwww.acme.com:4321�r��1234r)r�r�r�r)rrr�s  r2�test_request_port�CookieTests.test_request_port<sy���n�n�$�$�%@�.4�6I�-J�%�L������c�*�F�3��n�n�$�$�%;�.4�6I�-J�%�L������c�*�,=�>r5c�f�[RRSSS0S9nUR[	U5S5 [RRSSS0S9nUR[	U5S5 [RRS	SS
0S9nUR[	U5S5 g)Nzhttp://1.1.1.1/r��www.acme.com:80r�z1.1.1.1rzirrelevant.comr	z&http://www.acme.com:2345/resource.htmlzwww.acme.com:5432)r�r�r�r)rr�s  r2�test_request_host�CookieTests.test_request_hostDs����n�n�$�$�%6�.4�6G�-H�%�J��
	
����c�*�I�6��n�n�$�$�%;�.4�6F�-G�%�I������c�*�N�;��n�n�$�$�%M�.4�6I�-J�%�L������c�*�N�;r5c��UR[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_HDN�CookieTests.test_is_HDNTs�������}�-�.�����1�2�3�����
�.�/�������$�������%������/�0�������)�������(r5c��UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S	5S	5 g)
Nr	rk�acme.comz
acme.localrB�.comr�rVz192.168.0.1)r)rras r2�
test_reach�CookieTests.test_reach^s�������~�.��<�����z�*�J�7�����|�,�h�7�����x��(�3�����v���/�����s��S�)�����r��B�'�����}�-�}�=r5c��UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[SS55 UR[S	S
55 UR[SS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)Nr�z.168.1.1zx.y.comzx.Y.comz.Y.comzY.comz	a.b.c.comz.c.comz
example.localrBz	blah.blahrVz.rhubarb.rhubarbr�rkzrhubarb.acme.comzwww.rhubarb.acme.comzy.comz.y.comr�r=�mz.mr�)rFrrGrras r2�test_domain_match�CookieTests.test_domain_matchhs�������]�M�B�C�����m�Z�@�A�����Y�	�:�;�����Y��9�:�����i��9�:�����[�(�;�<�����h��<�=�����_�h�?�@�����k�2�6�7�����b�*<�=�>�����R��,�-����)�*�j�A�B����*�:�{�C�D����)�*<�k�J�K����)�*@�+�N�O����)�)�Y�?�@����)�)�X�>�?����*�9�g�>�?����)�'�7�;�<����*�8�W�=�>����)�(�H�=�>����)�)�V�<�=����*�9�e�<�=����*�9�c�:�;����*�9�d�;�<����*�9�b�9�:����*�9�c�:�;����)�-��G�H����*�=�*�E�F����*�=�#�>�?����*�=�"�=�>r5c�h�[5n[USS5 UR[U5S5 g)Nzhttp://www.nasty.com/z)foo=bar; domain=friendly.org; Version="1"r)rr�r)r#r�s  r2�test_wrong_domain�CookieTests.test_wrong_domain�s0��

�K���a�0�A�	C�����Q���#r5c��[SS9n[US9n[USS5 [USS5 UR[	U5S5 SH.n[US	U-S
5 UR[	U5S5 M0 g)NT)�
strict_domain�rdzhttp://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)rrr�r)r#)r,�cpr��
pseudo_tlds    r2�test_strict_domain�CookieTests.test_strict_domain�s}��!�t�
4��
�b�
!���"�5�}�E��"�5�=�	?�����R��!�$�E�J��b�"6��"C�8�
:����S��W�a�(�Fr5c��[5n[USS5 UR[U5S5 URURSSSR
S5 UR[US5S5 UR[US5S5 [
[RS	9nURU5 UR[US5S
5 [USS5 [US
S5 UR[U5S5 URURSSSR
S5 URURSSSR
S5 UR[US
5S5 [USS5 UR[U5S5 [USS5 UR[U5S5 g)N�http://foo.net/zns=barrB�foo.netr
�nsr��http://www.foo.net/)�strict_ns_domainrV�http://foo.net/foo/zspam1=eggs; domain=foo.netzhttp://foo.net/foo/bar/zspam2=eggs; domain=.foo.netr&�.foo.netr��spam1rOr��spam2zspam2=eggs; spam1=eggs; ns=barznini="ni"; domain=.netzhttp://foo.co.ukznasty=trick; domain=.co.uk�)	rr�r)r#r
rr�DomainStrictNonDomain�
set_policy)r,r�rJs   r2�test_two_component_domain_ns�(CookieTests.test_two_component_domain_ns�s���
�K��	�!�.��9�����Q���#�������I�.�s�3�D�9�?�?��G����*�1�.?�@�(�K����*�1�.C�D�!�	#�"�0�F�F�H��	���S�����*�1�.C�D�b�I�	�!�2�6�	8�	�!�6�7�	9�����Q���#�������J�/��7��@�F�F��	!�������J�/�
�;�G�D�J�J��	!����*�1�.G�H�9�	;�	�!�.�0H�I�����Q���#�	�!�/�1M�N�����Q���#r5c�h�[5n[USS5 UR[U5S5 g)N�http://localhost�foo=bar; domain=localhost;rB�rr�r)r#r�s  r2�test_localhost_domain�!CookieTests.test_localhost_domain�s+���K���!�/�1M�N�����Q���#r5c��[5n[USS5 URURSSSRS5 g)Nr�r�z
.localhostr
r�r��rr�r)r
rr�s  r2�test_localhost_domain_contents�*CookieTests.test_localhost_domain_contents�s@���K���!�/�1M�N�������L�1�#�6�u�=�C�C�U�Kr5c��[5n[USS5 URURSSSRS5 g)Nr�zfoo=bar;zlocalhost.localr
r�r�r�r�s  r2� test_localhost_domain_contents_2�,CookieTests.test_localhost_domain_contents_2�s@���K���!�/��<�������$5�6�s�;�E�B�H�H�%�Pr5c�h�[5n[USS5 UR[U5S5 g)Nzhttp://evil.comzfoo=bar; domain=.localhostrr�r�s  r2�test_evil_nonlocal_domain�%CookieTests.test_evil_nonlocal_domain�s+���K���!�.�0L�M�����Q���#r5c�h�[5n[USS5 UR[U5S5 g)Nr�zfoo=bar; domain=.evil.comrr�r�s  r2�test_evil_local_domain�"CookieTests.test_evil_local_domain�s+���K���!�/�1L�M�����Q���#r5c�h�[5n[USS5 UR[U5S5 g)Nr�z foo=bar; domain=.someother.localrr�r�s  r2�test_evil_local_domain_2�$CookieTests.test_evil_local_domain_2�s+���K���!�/�1S�T�����Q���#r5c��[SS9n[U5n[USS5 UR[	U5S5 URUR
SSSRS	5 UR[US5S
5 UR[US5S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)NTr�r�r�rBr�r
r�r�z$Version=1; foo=barr�rVzhttp://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�rPr�rOr%r�z($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&)rrr�r)r#r
rr�s   r2�!test_two_component_domain_rfc2965�-CookieTests.test_two_component_domain_rfc2965�s���!�$�/���c�N��	�a�*�,B�C�����Q���#�������I�.�s�3�E�:�@�@�%�H�����q�*;�<�.�	0�	
����q�*?�@�"�E�
	�a�-�I�	K�����Q���#�����q�*>�?�.�	0�
	�a�2�>�	@�������J�/��8��@�F�F��	!�����Q���#�����q�*?�@�.�	0�����q�*C�D�C�	E�	�a�*�;�	=�����Q���#�	�a�,�?�	A�����Q���#r5c�r�[[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[U5S5 URU5 URURS55 g)
Nr�r	)�blocked_domains�allowed_domainsr��http://acme.com/�*Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/rrrBr~r%r)rrr�r�r�r�r�r)r#r��
set_cookier�rG�
has_header)r,r�r�r�r�rys      r2�test_domain_allow�CookieTests.test_domain_allow*sp���0�'�L�+�,�.�
/���n�n�$�$�%7�8��?�@���7�$6�7��	���#�#�����Q���#��n�n�$�$�%;�<���7�$:�;��	���#�#�����Q���#��n�n�$�$�%=�>���7�$<�=��	���#�#�����Q���#��n�n�$�$�%=�>���7�$<�=���.�.��*��	���W�Q�Z� �����Q���#�	���C� ��������1�2r5c���[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 URURS55 URURS55 UR5 URS/5 UR
XT5 UR[U5S	5 [RR	S5n[US5nURXT5nURUS5 UR[U5S
5 URU5 UR!URS55 UR5 UR/5 [RR	S5n[US5nURXT5nUR
XT5 UR[U5S	5 [RR	S5nURU5 URURS55 [RR	S5nURU5 UR!UR#USU55 UR!URS55 URS/5n[RR	S5nURU5 UR!URS55 [RR	S5nURU5 UR!URS55 g)NTrk)r^r�r�r�rrr�rBzhttp://www.roadrunner.net/r�Cookie2r%r�zhttp://badacme.com/)rrr�r�r�r�r�r)r#�set_blocked_domainsr$r�rFr�r�r�rG�	return_ok)r,rJr�r�r�r��prys        r2�test_domain_block�CookieTests.test_domain_blockIsk��!��;�-�9���S�!��?�@���n�n�$�$�%;�<���7�$:�;��	���#�#�����Q���#��#�#�Z�L�1��	���#�#�����Q���#�	���	��n�n�$�$�%A�B���7�$@�A��	���#�#�����Q���#��n�n�$�$�%A�B��	���C� �������x�0�1�������y�1�2�	���	�����
�.�	���#�#�����Q���#��n�n�$�$�%;�<���7�$:�;���.�.��*��	���W�Q�Z� �����Q���#�	���C� ��������1�2�	���	�����#��n�n�$�$�%7�8���7�$6�7���.�.��*��	���#�#�����Q���#��n�n�$�$�%7�8��	���C� �������x�0�1��n�n�$�$�%:�;��	���C� �������w�q�z�3�7�8��������1�2��#�#�Z�L�1���n�n�$�$�%7�8��	���C� ��������1�2��n�n�$�$�%:�;��	���C� ��������1�2r5c
��SH�nSH�n[5nU(a[SS9n[nSnO[SS9n[nSnUR	U5 SnU"X7S	U<U<35 U"X7S
U<SU<35 URURSS
SRS5 URURSS
SRS5 M� M� g)N)TF)r(rVFr�rVTz; Version=1r�foo1=bar�foo2=barz; securer	r
�foo1z#non-secure cookie registered secure�foo2z#secure cookie registered non-secure)	rrr�r�r�rGr
�securerF)r,r��
whitespacer�rJr��vsr�s        r2�test_secure�CookieTests.test_secure�s����B�%�
��K���-�e�<�C�+�C��B�-�d�;�C�'�C�&�B����S�!�,���A�s�b�*�=�>��A�s�r�:�F�G�� � ��J�J�~�.�s�3�F�;�B�B�9�;�����J�J�~�.�s�3�F�;�B�B�9�;�#&�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/)
rrr�r�r�r�r�r)r#r�rFr�rG�r,rJr�r�r�r�s      r2�test_secure_block�CookieTests.test_secure_block�sH��!�#���S�!��=�>���n�n�$�$�%<�=���7�$;�<��	���#�#�����Q���#��n�n�$�$�%<�=��	���C� �������x�0�1��n�n�$�$�%;�<��	���C� ��������1�2��n�n�$�$�%:�;��	���C� �������x�0�1��n�n�$�$�%9�:��	���C� ��������1�2r5c�^�[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)N�foos)�secure_protocolsr�rrrBrrzfoos://www.acme.com/zfoo://www.acme.com/)
rrr�r�r�r�r�r)r#r�rGr�rFrs      r2�test_custom_secure_protocols�(CookieTests.test_custom_secure_protocols�sL��!�F�8�<���S�!��=�>���n�n�$�$�%<�=���7�$;�<��	���#�#�����Q���#��n�n�$�$�%<�=��	���C� ��������1�2��n�n�$�$�%;�<��	���C� ��������1�2��n�n�$�$�%;�<��	���C� �������x�0�1��n�n�$�$�%:�;��	���C� ��������1�2r5c�z�[[SS9S9n[USS5 [US5nURUS5 g)NTr�r�rzfoo=\b"a"r; Version=1z$Version=1; foo=\\b\"a\"r)rrr�r))r,r�r�s   r2�test_quote_cookie_value�#CookieTests.test_quote_cookie_value�s>���0��>�?���a�/�1I�J��!�3�4������8�9r5c��Sn[[SS95n[X!S5 [RRU5nUR
[U5S5 URU5 URURS55 g)N�http://www.acme.comTr�rbrBr)rrr�r�r�r�r)r#r�rFr�)r,r�r�r�s    r2�test_missing_final_slash�$CookieTests.test_missing_final_slash�sm��#���)�$�7�8���a�2�3��n�n�$�$�S�)������Q���#�	���C� �������x�0�1r5c�`�[SS9n[U5nSn[X#S5 [X#5nURSUS5 [U5nSn[X#S5 [X#5nUR	SUS	5 [U5nSn[X#S
5 [X#5nUR	SUS	5 g)NTr�r9�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"�rrr�r�rx�r,rJr�r�r�s     r2�test_domain_mirror�CookieTests.test_domain_mirror�s���!�$�/���c�N��#���a�4�5��!�!������1�A�	C�
�c�N��#���a�E�F��!�!���
�
�*�A�/D�E��c�N��#���a�D�E��!�!���
�
�)�1�.C�Dr5c���[SS9n[U5nSn[X#S5 [X#5nURSUS5 [U5nSn[X#S5 [X#5nUR	SUS	5 g)
NTr�r9r$�Pathz&absent path returned with path presentzspam=eggs; Version=1; Path=/z	$Path="/"zpath not returnedr&r's     r2�test_path_mirror�CookieTests.test_path_mirrorsv��!�$�/���c�N��#���a�4�5��!�!�������$L�M��c�N��#���a�<�=��!�!���
�
�k�1�&9�:r5c���[SS9n[U5nSn[X#S5 [X#5nURSUS5 [U5nSn[X#S5 [X#5nUR	USS	5 [U5nSn[X#S
5 [X#5nURSUS5 [U5nSn[X#S
5 [X#5nURSUS5 g)NTr�r9r$�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)rrr�r�r*rxr's     r2�test_port_mirror�CookieTests.test_port_mirrors���!�$�/���c�N��#���a�4�5��!�!�������$L�M��c�N��#���a�:�;��!�!������-�H�	J�
�c�N��#���a�?�@��!�!���
�
�l�A�M�	O�
�c�N��#���a�D�E��!�!���
�
�'���	 r5c��[[SS95nSn[XS5 [X5nURSUS5 g)NTr�r9zfspam=eggs; Version=1; Comment="does anybody read these?"; CommentURL="http://foo.bar.net/comment.html"�Commentz:Comment or CommentURL cookie-attributes returned to server)rrr�r�)r,r�r�r�s    r2�test_no_return_comment�"CookieTests.test_no_return_comment/sJ���)�$�7�8��#���a�E�	F�
�!�!������A�H�	Jr5c�*�[[SS95n[USS5 [USS5 [USS5 [USS5 [US	S
5 /SQn/SQn/S
Qn/SQn[	S5H�nSnUH�nURU[5 URURX&5 URURX65 URURXF5 URURXV5 US-nM� M� g)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! (\"|\\\\) ")rBrrBrBrB)r�r�r�r��bang)z
blah.spam.orgr	r	r	z.sol.no)r
r�r�r
r
r�rrB)rrr�r��range�assertIsInstancerr)r�rSrHr�)r,�cs�versions�names�domains�paths�ir�s        r2�test_Cookie_iterator� CookieTests.test_Cookie_iterator9s��
�*�4�8�
9���b�1�4E�	F�	�"�9�;M�N��b�5�2�	4��b�5�2�	4��b�-�K�	L�
#��5��.��2���q��A��A����%�%�a��0�� � ����H�K�8�� � ������2�� � ����7�:�6�� � ������2���E��
�r5c�r�UR[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�)r�r
)rHNr�z)foo=bar; expires=Foo Bar 12 33:22:11 2000)r�)r�Nr�r�r�r�zfoo=bar; expireszfoo=bar; versionr�)r�NrVr�ras r2r��!CookieTests.test_parse_ns_headersYs�������7�8�9�A�
B�	�	
����I�J�K�
B�C�	�
	
����e�W�%��-�
.�/�	�
	
����0�1�2�
B�C�	E�	
����0�1�2��/�
0�1�	3�	
���)�2�$�/��4r5c�8�Sn[[R"5S-5nS/S/S/S/S/SU-/4H&nU"U5nUR[U5S	5 M( S
/nU"U5nURSSS
nURUR5 g)Nc��[5n[RRS5n[	US5nURX25 U$)Nr_)rr�r�r�r�r�)r�r�r�rKs    r2�cookiejar_from_cookie_headers�ICookieTests.test_bad_cookie_header.<locals>.cookiejar_from_cookie_headersvs>����A��.�.�(�(�)B�C�C��W�&?�@�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,rHr�r�r�rXs      r2�test_bad_cookie_header�"CookieTests.test_bad_cookie_headerts���	��t�y�y�{�4�/�0����
��
<�=�
.�/�
.�/�
&��
/�0�
�G�.�g�6�A����S��V�Q�'�
� I�I��)�'�2�����-�.�s�3�C�8�����&�.�.�)r5ryN)/rzr{r|r}rr~rLrZrfrurzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr!r(r,r0r4rBr�rJrryr5r2r8r8�s?��^
���o�(
��*
"�+�*
"�)�@
���;�	>
�	�8�	�8�*.(�`	*�55�r&C�P<�
���l�%
��*3�+�*3�1� N�0?�<� )�>�"?�H$�)�.$�`$�L�Q�$�$�$�*$�X3�>A3�F;�.3�83�6:�2�E�.
;� �>J��@5�6*r5r8c�\�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrg)�LWPCookieTestsi�c�F�[R"5SS-n/n[[SS95n[R
R
SSS0S9nURS	U-5 [US
5nURXT5 [R
R
S
5nURU5 URURS5S5 URURS
5S5 URS5 [US
5nURXT5 [R
R
S5nURU5 URS5nURSU5 URSU5 URS5 [US5nURXT5 [R
R
S
5nURU5 URS5nURSU5 URSU5 URSU5 [R
R
S5nURU5 URS5nURSU5 URSU5 URUS5 g)NrrBTr�rir�r�r�zVSet-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=�	localtimerrr�r�r�r�r�r�r�r)r�rxr��assertStartsWith)r,�
year_plus_oner�r�r�r�r�s       r2�test_netscape_example_1�&LWPCookieTests.test_netscape_example_1�sF��J���(��+�a�/�
����)�D�9�:���n�n�$�$�%>�%�'8�9�%�;��	���
8�:G�
H�	I��7�$:�;��	���#�#��n�n�$�$�%;�<��	���C� ��������1�3K�L�������	�2�N�C����M�N��7�$:�;��	���#�#��n�n�$�$�%B�C��	���C� ��N�N�8�$���
�
�8�!�<��
�
�.��2����>�?��7�$9�:��	���#�#��n�n�$�$�%;�<��	���C� ��N�N�8�$���
�
�8�!�<��
�
�.��2����)�1�-��n�n�$�$�%?�@��	���C� ��N�N�8�$���
�
�8�!�<��
�
�.��2����a�!2�3r5c�V�[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)rr�r�r�r�r�r�r�r)r�r*�r,r�r�r�r�s     r2�test_netscape_example_2�&LWPCookieTests.test_netscape_example_2�s���0
�K�����n�n�$�$�%;�<�����M�N��7�$:�;��	���#�#��n�n�$�$�%;�<��	���C� ��������1�;�	=�	���D�	F��7�$:�;��	���#�#��n�n�$�$�%?�@��	���C� ��������1�=�	>r5c��[[SS95n[USS5nURU5 [USS5nUR	US5 [USS	5nUR	US
5 UR	US5 UR	US5 [US
5nUR	US5 URSU5 g)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"�
WILE_E_COYOTE)rrr�rGr*rx�r,r�rXs   r2�test_ietf_example_1�"LWPCookieTests.test_ietf_example_1's���
�)�$�7�8��,�
�/�A�C��	
���� �&�q�"E� ;�<��	
����L�	N�*�q�"E�L�N��	
����!5�6�����"7�	8�����"7�	8�*�q�"D�E������!I�J��
�
�o�v�.r5c���[[SS95n[USSS5 [US5nURUS5 [US5nUR	S	U5 URS
U5 g)NTr�z&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)rrr�r*rxr�r^s   r2�test_ietf_example_2�"LWPCookieTests.test_ietf_example_2�sz��
�)�$�7�8��	�
�7�K�N�	P�"�q�"E�F������!L�M��q�"C�D���
�
�,�f�5����-�v�6r5c��[SS9n[US9nSn[USS5nURU5 [USS5nUR	[U5S5 [US	S
5nUR	[U5S5 [US	S5nUR	[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)NTr�r�z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=1r8r�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)rrr�rGr)r#rr�rrTrr)r,rJr��max_agerXr��olds       r2�test_rejection�LWPCookieTests.test_rejection�sc��!�$�/����$�� ���q�"7�B�D��������q�"7�H�J������Q���#��q�"9�H�J������Q���#��q�"9�M�O������Q���#��q�":�K�M������Q���#��q�"5� +�,��	
����Q���#��q�"=� +�,��	
����Q���#��q�"5� +�,��	
����Q���#��
�"�
A�B��
	
����Q���#��q�"5� .�/��	
����Q���#��q�":�D�F������Q���#��#�#��	'�
�F�F�8�D�F�1��q�'�C��C�(�A�
�F�F�8�D�F�1����X�&�����d�1�g�&��
���X�&�s�4H:�:Ic�>�[[SS95n[USS5 [USS5n[R"S[R
5nUR
SU5 URX#5 [US	5nURU5 [US
5ng)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\"?r�u-http://www.acme.com/foo/%25/<<%0anewå/æøåuhttp://www.acme.com/ü)	rrr�rV�compile�Irxr*rG)r,r�rX�
version_res    r2�test_url_encoding� LWPCookieTests.test_url_encoding&s���
�)�$�7�8���a�5�6�	8��
�H�.�0���Z�Z� 5�r�t�t�<�
��
�
�i��(�����,��
�F�H������ ��q�"<�=�r5c��^�[R"5SS-n[Rm[	T[SS9S9n[
USS5 [
USS5 [
USS	5 S
U4-n[USSU-5 [USS
U-5 [USSU-5 UH'nURS:XdMURSS5 M) U4SjnU"US5nUR[U5S5 URS[U55 URS[U55 U"US5nUR[U5S5 URS[U55 g)NrrBTr�r�rz 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)NrTr�)rrrrrr)r�r�new_cr�s   �r2�save_and_restore�5LWPCookieTests.test_mozilla.<locals>.save_and_restoreVs^���
+����~��6�(��)<�T�)J�L���
�
�.�
�9�� � ��*��L��� � ��*�s�1A�A$r<zname='foo1', value='bar'zrest={'HTTPOnly': ''}Fr�)r=rRrr�rrr�r�rS�set_nonstandard_attrr)r#rxrT)r,rTr�r�rXrvrur�s       @r2�test_mozilla�LWPCookieTests.test_mozilla<s^������(��+�a�/�
��#�#���X�$7��$E�
G���a�/�8�	:��a�/�L�	N��a�/�1N�O�2�m�5E�E���!�2�(�7�2�	4��!�2�9�G�C�	E��!�2�<�w�F�	H��F��{�{�f�$��+�+�J��;��	�!��D�)������U��Q�'��
�
�0�$�u�+�>��
�
�-�t�E�{�;� ��E�*������U��Q�'��
�
�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)
rr�r�r�r�r�r�r�rxr�rXs     r2�test_netscape_misc�!LWPCookieTests.test_netscape_miscis����K�����n�n�$�$�%B�C��	���M�N��7�$=�>��	���#�#�
	���M�N��7�$=�>��	���#�#��n�n�$�$�%B�C��	���C� ��
�
�'�����)A�B��
�
�.�s�~�~�h�/G�Hr5c��[[SS95n[USS5 [USS5nURSU5 [USS5 [US5nURSU5 UR	[U5S	5 g)
NTr��http://example/z#foo1=bar; PORT; Discard; Version=1;z$foo2=bar; domain=".local"; Version=1rzfoo3=bar; Version=1r	r&)rrr�rxr)r#r^s   r2�test_intranet_domains_2965�)LWPCookieTests.test_intranet_domains_2965�s����)�$�7�8���a�*�;�	=��q�"3�E�G���
�
�j�&�)��a�*�,A�B��q�"3�4���
�
�j�&�)�����Q���#r5c�(�[[SS95n[USS5 [USS5nUR[	U5S5 URSU5 [US5nURSU5 UR[	U5S5 g)NFr�rrzfoo2=bar; domain=.localr%r	)rrr�r)r#rxr^s   r2�test_intranet_domains_ns�'LWPCookieTests.test_intranet_domains_ns�s����)�E�:�;���!�.�
�;�"�1�&7�#<�>������Q���#��
�
�j�&�)�"�1�&7�8���
�
�j�&�)�����Q���#r5c��[[SS95n/n[RR	S5nURS5 [
US5nURXC5 [RR	S5nURU5 URURS5S5 URURS5S5 [RR	S	5nURU5 URURS5S5 URURS5S5 g)
NTr�zhttp://www.ants.com/z,Set-Cookie: JSESSIONID=ABCDERANDOM123; Path=rzJSESSIONID=ABCDERANDOM123rrOzhttp://www.ants.com:8080)rrr�r�r�r�r�r�r�r)r�rXs     r2�test_empty_path�LWPCookieTests.test_empty_path�s��
�)�D�9�:�����n�n�$�$�%;�<�����E�F��7�$:�;��	���#�#��n�n�$�$�%;�<��	���C� ��������1�4�	6�������	�2�N�C��n�n�$�$�%?�@��	���C� ��������1�4�	6�������	�2�N�Cr5c��[R"5SS-n[RR	S5n/nURS5 URSU-5 URSU-5 URS5 URS5 [
US5n[5nURXB5 SSSSS	.nUHnS
UR-nXhS-Xh'M UR5 UHnSUR-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 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�)
r=rRr�r�r�r�r�rr�rr�r)�assertNotEqual)	r,rTr�r�r�r��counterrX�keys	         r2�test_session_cookies�#LWPCookieTests.test_session_cookies�sn�����(��+�a�/�
�
�n�n�$�$�%I�J�������=�>����D�$�%�	&�	���0�2?�@�	A����1�	2����K�L��7�$H�I���K��	���#�#�$%�!"�%&�"#�%���F�����,�C�"�<�!�+�G�L��	
���!��F��v�|�|�+�C�"�<�!�+�G�L��
	
�����.��
�0F�G������1�1�5����G�$4�5�q�9r5ryN)rzr{r|r}rUrYr_rdrjrpryr|r�r�r�r�rryr5r2rMrM�sI��Y4�v1>�fg/�`37�jX'�t>�,+?�ZI�.$�
$�D�>(:r5rM�__main__)6�__doc__rr�sysrVrUr�test.supportrr�test.support.testcaserr=r3�urllib.requestr��http.cookiejarrrr	r
rrr
rrrrrrrrrrrrrrrr�platformr5�TestCaser r�r�r�r�r�r�r8rMrz�mainryr5r2�<module>r�s���"�	��
�	��"�(�1����!�!�!�!�!�!�!��\�\�W�
$�	�jB�H�%�%�jB�Zl!�(�#�#�l!�^)�)�E�D�
�t'��*�*�t'�lL*�(�#�#�L*�^K	:�X�&�&��K	:�\�z���M�M�O�r5

Youez - 2016 - github.com/yon3zu
LinuXploit