403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.141
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:/Python315/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/__pycache__/test_http_cookiejar.cpython-315.pyc
R
>lqjtPc��Qs]PHs]PHs]PHs]PHs]QHGs]QHGs]QHG	s	]PH(s
]PH,s]PH0s
]QH8GsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsG s G!s!G"s"G#s#G$s$G%s%\OLQ6Hs'QQ\OP2s)QQ	\OP2s*Q
Q2s+Qs,Q
s-Qs.QQ\OP2s/QQ\OP2s0QQ\OP2s1\2Q6Xc\Of2P!P!)zTests for http/cookiejar.py.)�support)�	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_host�win32c��`�\sQs]snQsQsQsQs\OQ,QN2Q2s
QsQs\OQ	,QN2Q
2s
\OQ,QN2Q2sQsQ
sUsP!)�
DateTimeTestsc
��QoQ	oUO[U2Q2UO[V*2Q2UO[U]U**2Q2UO[U]U**2Q2[2o[Q2oV41FDoUOUQQU8QU802J 	P!)
�x+�<z2002-04-19 14:36:40Zz2002-04-20 14:36:40Zz2002-04-21 14:36:40Zz2002-04-22 14:36:40Z� �z!^\d{4}-\d\d-\d\d \d\d:\d\d:\d\dZ$zbad time2isoz format: � �Q)�assertEqualr�assertRegex��self�base�day�az�bz�texts&     �-C:\Python315\\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
��QoQ	oUO[U2Q2UO[V*2Q2UO[U]U**2Q2UO[U]U**2Q2[2o[Q2oV41FDoUOUQQU8QU802J 	P!)
rzFri, 19-Apr-2002 14:36:40 GMTzSat, 20-Apr-2002 14:36:40 GMTzSun, 21-Apr-2002 14:36:40 GMTzMon, 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#rr$r%s&     r,�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��<�
>�r/c��QoUOUQ2Q2UOUQ2Q2UOUQ2Q2P!)c�P�[O[U22Q*!�:N�N)�time�gmtimer�r+s&r,�
parse_date�0DateTimeTests.test_http2time.<locals>.parse_date>s���;�;�y���/��3�3r/z01 Jan 2001z	03-Feb-20z	03-Feb-98)i��r<�r=�)i���r=r=r>)i�r?r@r=r=r>�r#�r&r:s& r,�test_http2time�DateTimeTests.test_http2time=sO��	4�	
����M�2�4K�L�	
����K�0�2I�J�	
����K�0�2I�Jr/c
��,QNoQo[U2oQoUOV4U8QU8QU8Q02SFD�oUO[U2V%2UO[UO22V%O22UO[UO	22V%O	22J�	P!)�Thu, 03 Feb 1994 00:00:00 GMT�>P-z1994-02-03 00:00:00Zz  =>  'z' (�))rF� 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  )rr#r�lower�upper)r&�tests�test_t�result�expected�ss&     r,�test_http2time_formats�$DateTimeTests.test_http2time_formatsIs���
��,���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�r/�testc�<�UO[U22P!�N)�assertIsNoner�r&rSs&&r,�test_http2time_garbage�$DateTimeTests.test_http2time_garbagems��"	
���)�D�/�*r/c��[QOQQ*22[QOQQ*22P!)z01 Jan 1970{}00:00:00 GMT!r!z01 Jan 1970 00:00:00{}GMT!i��)r�format�r&s&r,�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�Er/c��QoUOUQ2Q2UOUQ2Q2UOUQ2Q2P!)c�P�[O[U22Q*!r5)r7r8rr9s&r,r:�/DateTimeTests.test_iso2time.<locals>.parse_date�s���;�;�x��~�.�r�2�2r/�19940203T141529Zz1994-02-03 07:15:29 -0700z1994-02-03 19:45:29 +0530)i�r?r@���rArBs& r,�
test_iso2time�DateTimeTests.test_iso2time�sX��	3�	
����$6�7�1�	3�	
����$?�@�1�	3�	
����$?�@�1�	3r/rPc��QoUO[U2V!2UO[UO22V!O22UO[UO22V!O22P!)rG)r#rrJrK)r&rPrMs&& r,�test_iso2time_formats�#DateTimeTests.test_iso2time_formats�s_�� ������!��f�0�����!�'�'�)�,�f�g�g�i�@�����!�'�'�)�,�f�g�g�i�@r/c�<�UO[U22P!rU)rVrrWs&&r,�test_iso2time_garbage�#DateTimeTests.test_iso2time_garbage�s��	
���(�4�.�)r/c��[QOQQ*22[QOQQ*22P!)z1994-02-03{}14:15:29 -0100!r!z1994-02-03 14:15:29{}-0100!i@B)rr[r\s&r,�$test_iso2time_performance_regression�2DateTimeTests.test_iso2time_performance_regression�s4��	�.�5�5�c�%�i�@�A��.�5�5�c�%�i�@�Ar/�)��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 GMT)
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  )rrrsrIz
1980-00-01z
1980-13-01z
1980-01-00z
1980-01-32z1980-01-01 25:00:00z1980-01-01 00:61:00rtz01-01-1980T00:00:62�19800101T250000Z)�__name__�
__module__�__qualname__�__firstlineno__r-r1rCrQr�subTestsrXr]rfrirlro�__static_attributes__�__classdictcell__��
__classdict__s@r,rrs�����G�>�,
K�"F�H
���f�
�� +�!� +�F�3� 
���c�

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

�
�*�
�*�B�Br/rc�`�\sQs]�sn\O
QQQ,2Q2s\O
QQQ,2Q2sQs\O
Q	Q!Q",,Q1,P1,,P1Q#,,Q1Q$,,Q
1Q%Q&,Q',,Q1Q(Q!,Q',,Q1,2Q2s	\O
QQ
Q!,,1QQ),,1QQ!,,1QQ*,,1QQ*,,1QQ*,,1QQ*Q",,1QQ)Q",,1QQ+,,1QQ)Q",,1Q,Q,N,1QQ-,Q.,Q/,,1QQ!Q",Q0,Q1,Q2,,1,
2Q2s
\O
Q,Q3N2Q2sQ sUs
P!)4�HeaderTests�hdrz)foo=bar; expires=01 Jan 2040 22:23:32 GMTz+foo=bar; expires="01 Jan 2040 22:23:32 GMT"c�J�,QN,oUO[U,2U2P!)�foo)�r��bar)�expiresld9W��version�0�r#r�r&r�rOs&& r,�test_parse_ns_headers�!HeaderTests.test_parse_ns_headers�s%��P�P�����)�3�%�0�(�;r/zfoo=bar; version="1"�foo=bar; Version="1"c�J�QQ,,oUO[U,2U2P!)r�r�)r��1r�r�s&& r,�test_parse_ns_headers_version�)HeaderTests.test_parse_ns_headers_version�s*��$�%5�6�7�����)�3�%�0�(�;r/c�N�QoQQ,,oUO[U,2U2P!)z expires=01 Jan 2040 22:23:32 GMT)r�z01 Jan 2040 22:23:32 GMTr�r�r�s&  r,�#test_parse_ns_headers_special_names�/HeaderTests.test_parse_ns_headers_special_names�s/��1��<�>N�O�P�����)�3�%�0�(�;r/zsrc,expectedr�zfoo; bar=bazza=_za=";"zn; foo="foo;_", bar=foo_barzn=m; foo, bar=foo_barc�>�UO[U2U2P!rU)r#r	)r&�srcrOs&&&r,�test_join_header_words�"HeaderTests.test_join_header_words�s��	
���*�3�/��:r/z
arg,expect�foo=bar�	   foo   z
   foo=   z   foo=z   foo=   ; z   foo=   ; bar= baz �foo=bar bar=bazzfoo= bar=baz�foo=bar;bar=baz�foo bar bazza, b, cz(foo; bar=baz, spam=, foo="\,\;\"", bar= c���[U,2oUO
V2QU8QU8QU8Q02P!]PHo]PH
oSO2oSO	PS2QSO2*oKf9h)r=z (error -- traceback follows)

%s�
When parsing: '�'
Expected:     '�'
Got:          '�'
)r
�	traceback�io�StringIO�	print_exc�getvaluer#)r&�arg�expectrNr�r��fs&&&    r,�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
�0�AA5c
�|�[U,2o[U2oUOVBQU8QU8QU8QU8Q0	2P!)r�r�r�z'
Input was:    'r�)r
r	r#)r&r�r��input�ress&&&  r,�test_roundtrip�HeaderTests.test_roundtrips=��F#�C�5�)����&������f�
�F�C��' �	!r/rq�r�N)r��baz)�a�_)r��;)�nN)r�zfoo;_)r��foo_bar)r��mr�)r�rr)r�zbar=baz)r�)r�N)r�N)r�N)�bN)�cN)�spamrr)r�z,;")r�rr))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�)rxryrzr{rr|r�r�r�r�r�r�r}r~rs@r,r�r��s�������e�7�9�
��<�	�<�

���e�"�"�
��<�	�<�
<�
���n��n�-�
.��?��2�J��d�R�L��|�n�u�%��|�n�w�'��,�-�0B�/C�
D�
*�
,��=�)�,>�+?�
@�
$�
&�
'
�
�;�
�;�
���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!r/r�c�6`�\sQsQsn,P1QksQsQsUsP!)�FakeResponse�;c�f�]PHoUOQOU22UmV mP!)z4
headers: list of RFC822-style 'Key: value' strings
�
)�email�message_from_string�join�_headers�_url)r&�headers�urlr�s&&& r,�__init__�FakeResponse.__init__<s'��	��1�1�$�)�)�G�2D�E��
��	r/c��UO!rU)r�r\s&r,�info�FakeResponse.infoCs��4�=�=�(r/)r�r�)rxryrzr{r�r�r}r~rs@r,r�r�;s����!�t��)�(r/r�c��[VUQ2!)zSet-Cookie2��	_interact��	cookiejarr��set_cookie_hdrss&&*r,�
interact_2965r�Es���Y�_�m�D�Dr/c��[VUQ2!)z
Set-Cookier�r�s&&*r,�interact_netscaper�Hs���Y�_�l�C�Cr/c��[OOU2oUOU2UO	QP2o,oSFDoUOU8QU802J	[
Va2oUOV�2U!)zDPerform a single request / response cycle, returning Cookie: header.rz: )�urllib�request�Request�add_cookie_header�
get_header�appendr��extract_cookies)	r�r�r��hdr_name�req�
cookie_hdrr�r�r�s	&&&&     r,r�r�Ksr��
�.�.�
 �
 ��
%�C�
����$�����"�-�J��G������8�S�1�2��
�w�
$�C�
���c�'��r/c�6`�\sQsQsnQsQsQsQsQs\	O\Q2\OQ22s\	O\Q2\OQ	22s\	O\Q2\OQ
22sQsQsUsP!)
�FileCookieJarTests�Xc�v�[Oo[U2oUOUOU2P!rU)r�TESTFNrr#�filename�r&r�r�s&  r,�test_constructor_with_str�,FileCookieJarTests.test_constructor_with_strYs+���#�#����"��������X�.r/c��[Oo[[OU22oUO	UO
U2P!rU)rr�r�FakePathr#r�r�s&  r,�test_constructor_with_path_like�2FileCookieJarTests.test_constructor_with_path_like^s6���#�#����+�+�H�5�6��������X�.r/c�T�[P2oUOUO2P!rU)rrVr��r&r�s& r,�test_constructor_with_none�-FileCookieJarTests.test_constructor_with_nonecs���������!�*�*�%r/c�L�QQ2o[[U1FD_oUOUQ59^tt^2UO[29^tt^2U2o[UQ5oPPP2PPP2Ja	P!)%fhK9h)%fhJ�9h)c��\sQsQsQsP!)�?FileCookieJarTests.test_constructor_with_other_types.<locals>.A�hrq)rxryrzr{r}rqr/r,�Arhs��r/r�r�)�int�float�subTest�assertRaises�	TypeErrorr)r&r�type_�instancer�s&    r,�!test_constructor_with_other_types�4FileCookieJarTests.test_constructor_with_other_typesgsq��	�	��5�!�_�E����u��-�-��&�&�y�1�1�$�w�H�$�h�7�A�2�.�-�%�1�1��.�-�-�s/�B	�A?
�)B	�?B�B�
B	�B#
�B#
c��[Oo[2o[UQQ2UO	UO
Q*Q*Q*OP2UOUP	Q5[2oUOUP	Q5[OU2UO	UO
Q*Q*Q*OP2P![OS2h9h)�http://www.acme.com/�boo�www.acme.com�/��ignore_discard)
rr�rr�r#�_cookies�value�save�load�unlinkr�s&  r,�test_lwp_valueless_cookie�,FileCookieJarTests.test_lwp_valueless_cookieqs����#�#���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�%0C(�(Dz9windows file permissions are incompatible with file modesc�l�[Oo[2o[UQQ2UO	UP	Q5[
OU2oUO[OUO2Q2[OU2P![OS2h9h�rrr�)rr�rr�r�os�statr#�S_IMODE�st_moder�r&r�r��sts&   r,�test_lwp_filepermissions�+FileCookieJarTests.test_lwp_filepermissionss����#�#���N���!�3�U�;�	'�
�F�F�8�D�F�1�����"�B����T�\�\�"�*�*�5�u�=����X�&��I���X�&���AB�B3c�l�[Oo[2o[UQQ2UO	UP	Q5[
OU2oUO[OUO2Q2[OU2P![OS2h9hr)rr�rr�rrrr#r r!rr"s&   r,�test_mozilla_filepermissions�/FileCookieJarTests.test_mozilla_filepermissions�s����#�#������!�3�U�;�	'�
�F�F�8�D�F�1�����"�B����T�\�\�"�*�*�5�u�=����X�&��I���X�&�r&c�.�[Oo[[1FD�oUU2o[O
O
Q2oQ,o[UQ2oUOVd2UO[U2]2UO2UO2UO2UO2[OU2UO[U2]2J�	P![OS2h9h)rz1Set-Cookie: pll_lang=en; Max-Age=31536000; path=/)rr�rrr�r�r�r�r�r#�lenr�clearrr)r&r��cookiejar_classr�r�r�r�s&      r,�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
�AC<�<Dc	�v�[Oo[[1FD.oU2oUO	QQ5UOQ2J0	[UQ29^tt^2oUOQ2[[1FD+oU2oUO[UOU2J-	PPP2[OU2P![c,oSOSO[2Po=J�Po=hh9h)%fhKa9h[OS2h9h)zAfor this test to work, a file with this filename should not existrz%expected OSError for invalid filename�wzoops
)rr�rrr�fail�OSError�assertIsNot�	__class__r�open�writerr)r&r�r-r��excr�s&     r,�test_bad_magic�!FileCookieJarTests.test_bad_magic�s����#�#��+�-=�=�O��!�A�
C����!<��=��	�	�A�B� >�	'��h��$�$������!�'3�5E�'E�O�'�)�A��%�%�i�����B�(F�%�
���X�&���
;�� � ����	�:�:��
;��%�$��
���X�&�sH�C�D �&AD
�4D �	D
�D
� D�D
�
D	�D	�D � D8rq)rxryrzr{r�r�r�rr�unittest�skipIf�	mswindowsr�skip_unless_working_chmodr$r(r.r9r}r~rs@r,r�r�Xs�����/�
/�
&�8�M��_�_�Y� [�\��(�(�
'�)�]�
'��_�_�Y� [�\��(�(�
'�)�]�
'��_�_�Y� [�\��(�(�(�)�]�(�0'�'r/r�c�`�\sQsQsn\O
Q,Q.N2Q2sQs\O
Q,Q/N2Q2sQs	Qs
Q	sQ
sQs
\O
Q,Q0N2Q
2sQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQsQs Q s!Q!s"Q"s#Q#s$Q$s%Q%s&Q&s'Q's(Q(s)Q)s*Q*s+Q+s,Q,s-Q-s.Us/P!)1�CookieTests��z
url,domain,okc���[2o[OOU2oUO	V%2oU%cUOU2P!UO
U2P!rU)r
r�r�r��domain_return_ok�
assertTrue�assertFalse)r&r��domain�ok�polr��rs&&&&   r,�test_domain_return_ok�!CookieTests.test_domain_return_ok�sL��6"�#���.�.�(�(��-��� � ��1��
�t���q�!����q�!r/c���[Oo[U2o[UQQ2[UQQ2UOQ*Q*Q*oUOUO2UOUOQ2UOQ*Q*Q*oUOUO2UOUOQ2UO[U2Q2[U2oUOP	P	Q5[U2oUOP	P	Q5[OUO2UO[U2[O Q	P	*Q	P
*U22UO[UQ
2Q2P![OSO2h9h)r�eggsz"spam"; path=/foo/rr�/foo/z"spam"zH"spam"; path="/foo/"; domain=www.acme.com; path_spec; discard; version=0)�ignore_expiresrzpath_specified=%s�http://www.acme.com/foo/z"spam"; eggs)rr�rr�rrVrr#�namer�reprr�revertrr��re�sub)r&r�r��cookie�old_strs&    r,�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<�<"Gz#rfc2109_as_netscape,rfc2965,versionc��[UUQ5o[U2o[UQQ2UOQ*Q*Q*oUO	UO
U2[
UQQ2U%c@UOQ*Q*Q*oUO	UO
]2P!P![cSOS2P!h9h))�rfc2109_as_netscape�rfc2965�http://www.example.com/zni=ni; Version=1�www.example.comr�ni�foo=bar; Version=1r�)	r
rr�rr#r�r��KeyErrorrV)r&r[r\r��policyr�rV�
cookie2965s&&&&    r,�test_rfc2109_handling�!CookieTests.test_rfc2109_handling>s���%� 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;�;	C�C�Cc�v�[2o[UQQ2[UQQ2[UQQ2[UQQ2[UQQ2[UQQ2[UQQ2[UQQ	2UOQ
*Q*Q*oUOUOQ
2UOUO2UOUO[2UOUO2UOUOQ
22UOUOQ22UOQ*Q*Q*oUOUOQ2UOUO2UOUOQ2UOUO2UOQ*Q*Q*oUOUO2UOUO2UOQ*Q*Q*oUOQ*Q*Q*oUOUO2UOUO2UOQ*Q*Q*oUOUO2UOUOP2UOQ*Q*Q	*oUOUO2P!)rz0spam=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.comrr��blArgh�blarghrr_z80,8080�ninir��fortytwo)rr�rr#rFrD�domain_specified�portrrE�port_specified�has_nonstandard_attrrVr��assertIsNotNoner)r&r�rVr�r�s&    r,�test_ns_parser�CookieTests.test_ns_parser]s{���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�����&�,�,�'r/c���[2o[UQQ2[UQQ2UOQ*Q*oUOQU2UOQU2P!)rzexpires=eggszversion=eggs; spam=eggsrrr�r�)rr�r�assertIn)r&r��cookiess&  r,�test_ns_parser_special_names�(CookieTests.test_ns_parser_special_names�sU��
�K���!�3�^�D��!�3�5N�O��*�*�^�,�S�1���
�
�i��)��
�
�i��)r/c��[2o[[O2Q*2o[OU29^tt^2QU0,o[
OOQ2o[UQ2oUOVT2oUO[U2]2UO[U]*O2U2PPP2[UQQU*2UO[U2]2[[O2]*
2o[UQQU*2[UQ2oUO[U2]2UOQU2UOQU2[UQQU*2[UQQ	U*2UO[U2]2[UQQ
U*2[UQQU*2[UQ2oUO[U2]2[UQQ
2UO[U2]2UO!2UO[U2]2UOQU2[#]QQPP
QP	P
QP
P
QP
PP-2o	UOU	OQ2P!)%fhCK�9h)�z%Set-Cookie: FOO=BAR; path=/; expires=�http://www.coyote.com/rzspam="bar"; expires=%szfoo="eggs"; expires=%s�
spam="bar"r�zeggs="bar"; expires=%szbar="bar"; expires=%sz!eggs="bar"; expires=%s; max-age=0z bar="bar"; max-age=0; expires=%szhttp://www.rhubarb.net/zwhum="fizz"rQrzwww.python.orgrz1444312383.018307i?uV)rrr7r�check_no_warningsr�r�r�r��make_cookiesr#r+r�r�rv�assertNotIn�clear_session_cookiesr)
r&r��futurer�r�r�rw�now�hrVs
&         r,�test_expires�CookieTests.test_expires�s����K���t�y�y�{�4�/�0��
�
.�
.�t�
4�
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�
4�s�B
K�K	�K	c���[P	Q5o[U2o[UQQ2UOQUOQ*2[U2o[UQQ2UOQUOQ*2[U2o[UQQ2UOQ	UOQ*2[U2o[UQ
Q2UOQUOQ*2[2o[UQQ2UOQUOQ*2[2o[UQQ
2UOQUOQ*2[2o[UQQ
2UOQUOQ*2[2o[UQ
Q
2UOQUOQ*2P!)T�r\rzspam="bar"; Version="1"rrzhttp://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�rvrr��r&rHr�s&  r,�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�Br/c��[2oQoQo[VU2UOQUOQ*2UO	[V2U2P!)zhttp://example.com/?spam/eggsr�rzexample.com)rr�rvrr#)r&�cj�urirs&   r,�test_default_path_with_query�(CookieTests.test_default_path_with_query�sJ��
�[��-�����"�5�)��
�
�c�2�;�;�}�5�6����*�2�3�U�;r/z
arg,resultc�>�UO[U2U2P!rU)r#r)r&r�rNs&&&r,�test_escape_path�CookieTests.test_escape_paths��,	
����S�)�6�2r/c�d�[OOQ2oUO[	U2Q2[OOQ2oUO[	U2Q2[OOQ2oUO[	U2Q2P!)zThttp://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& r,�test_request_path�CookieTests.test_request_paths����n�n�$�$�
:�;��	
����c�*�?�	A��n�n�$�$�
(�)��	
����c�*�,@�A��n�n�$�$�%=�>������c�*�C�0r/c��[2o[P	Q5o[U2oQo[V4Q2UOQ*Q*Q*oQ
FD�vqgUU0o[O
O
U2o	[V82o
U%c9UOQU
QU02UOUOVY22JuUOQU
Q	U02UOUOVY22J�	P!)T)�strict_ns_set_pathzhttp://bar.comzspam=eggs; Path=/foo�bar.com�/foor�z	spam=eggszcookie not set for zcookie set for ))r�T)rNT)�/foo/barT)rF)z/foobad/fooF)r
rr�rr�r�r�rvrD�set_ok_pathr�rE)r&rH�strict_ns_path_polr��base_urlrV�pathrGr�r�r�s&          r,�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�1r/c��[OOQQQ-Q5oUO[	U2Q2[OOQQQ-Q5oUO[	U2[
2P!)zhttp://www.acme.com:1234/�Hostzwww.acme.com:4321�r��1234r)r�r�r�r#rrr�s& r,�test_request_port�CookieTests.test_request_portCsy���n�n�$�$�%@�.4�6I�-J�%�L������c�*�F�3��n�n�$�$�%;�.4�6I�-J�%�L������c�*�,=�>r/c�|�[OOQQQ-Q5oUO[	U2Q2[OOQQQ-Q5oUO[	U2Q2[OOQQQ	-Q5oUO[	U2Q2P!)
zhttp://1.1.1.1/r��www.acme.com:80r�z1.1.1.1rzirrelevant.comrz&http://www.acme.com:2345/resource.htmlzwww.acme.com:5432)r�r�r�r#rr�s& r,�test_request_host�CookieTests.test_request_hostKs����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�;r/c��UO[Q22UO[Q22UO[Q22UO[P22UO[Q22UO[Q22UO[Q22UO[Q22P!)�foo.bar.comz1foo2.3bar4.5com�192.168.1.1�.�.foo.bar.comz..foozfoo.)rDrrEr\s&r,�test_is_HDN�CookieTests.test_is_HDN[s�������}�-�.�����1�2�3�����
�.�/�������$�������%������/�0�������)�������(r/c��UO[Q2Q2UO[Q2Q2UO[Q2Q2UO[Q2Q2UO[Q2Q2UO[Q2Q2UO[P2P2UO[Q2Q2P!)rri�acme.comz
acme.local�.local�.comr�z192.168.0.1)r#rr\s&r,�
test_reach�CookieTests.test_reaches�������~�.��<�����z�*�J�7�����|�,�h�7�����x��(�3�����v���/�����s��S�)�����r��B�'�����}�-�}�=r/c��UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ	22UO[Q
P22UO[PQ22UO[PP22UO[QQ22UO[QQ
22UO[QQ
22UO[QQ
22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QP22UO[QQ22UO[QQ22UO[QQ22UO[QQ22UO[QP22P!)r�z.168.1.1zx.y.comzx.Y.comz.Y.comzY.comz	a.b.c.comz.c.comz
example.localr�z	blah.blahz.rhubarb.rhubarbr�rizrhubarb.acme.comzwww.rhubarb.acme.comzy.comz.y.comr��comr�z.mr�)rDrrErr\s&r,�test_domain_match�CookieTests.test_domain_matchos�������]�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����*�=�#�>�?����*�=�"�=�>r/c�l�[2o[UQQ2UO[U2]2P!)zhttp://www.nasty.com/z)foo=bar; domain=friendly.org; Version="1")rr�r#r+r�s& r,�test_wrong_domain�CookieTests.test_wrong_domain�s0��

�K���a�0�A�	C�����Q���#r/c��[P	Q5o[UQ5o[UQQ2[UQQ2UO[	U2]2QFD2o[UQU*Q2UO[	U2]2J4	P!)	T)�
strict_domain�rbzhttp://example.co.uk/zno=problemoz!okey=dokey; Domain=.example.co.ukzhttp://example.%s/zspam=eggs; Domain=.co.uk)z.co.ukz.org.zaz.tx.usz.name.us)r
rr�r#r+)r&�cpr��
pseudo_tlds&   r,�test_strict_domain�CookieTests.test_strict_domain�s}��!�t�
4��
�b�
!���"�5�}�E��"�5�=�	?�����R��!�$�E�J��b�"6��"C�8�
:����S��W�a�(�Fr/c��[2o[UQQ2UO[U2]2UOUOQ*Q*Q*O
Q2UO[UQ2Q2UO[UQ2Q2[
[OQ5oUOU2UO[UQ2P2[UQQ	2[UQ
Q2UO[U2]2UOUOQ*Q
*Q*O
Q2UOUOQ*Q*Q*O
Q2UO[UQ
2Q2[UQQ2UO[U2]2[UQQ2UO[U2]2P!)�http://foo.net/zns=bar�foo.netr�nsr��http://www.foo.net/)�strict_ns_domain�http://foo.net/foo/zspam1=eggs; domain=foo.netzhttp://foo.net/foo/bar/zspam2=eggs; domain=.foo.net�.foo.netr��spam1rMr��spam2zspam2=eggs; spam1=eggs; ns=barznini="ni"; domain=.netzhttp://foo.co.ukznasty=trick; domain=.co.uk)	rr�r#r+rrr
�DomainStrictNonDomain�
set_policy)r&r�rHs&  r,�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���#r/c�l�[2o[UQQ2UO[U2]2P!)�http://localhost�foo=bar; domain=localhost;�rr�r#r+r�s& r,�test_localhost_domain�!CookieTests.test_localhost_domain�s+���K���!�/�1M�N�����Q���#r/c��[2o[UQQ2UOUOQ*Q*Q*OQ2P!)r�r�z
.localhostrr�r��rr�r#rrr�s& r,�test_localhost_domain_contents�*CookieTests.test_localhost_domain_contents�s@���K���!�/�1M�N�������L�1�#�6�u�=�C�C�U�Kr/c��[2o[UQQ2UOUOQ*Q*Q*OQ2P!)r�zfoo=bar;zlocalhost.localrr�r�r�r�s& r,� test_localhost_domain_contents_2�,CookieTests.test_localhost_domain_contents_2�s@���K���!�/��<�������$5�6�s�;�E�B�H�H�%�Pr/c�l�[2o[UQQ2UO[U2]2P!)zhttp://evil.comzfoo=bar; domain=.localhostr�r�s& r,�test_evil_nonlocal_domain�%CookieTests.test_evil_nonlocal_domain�s+���K���!�.�0L�M�����Q���#r/c�l�[2o[UQQ2UO[U2]2P!)r�zfoo=bar; domain=.evil.comr�r�s& r,�test_evil_local_domain�"CookieTests.test_evil_local_domain�s+���K���!�/�1L�M�����Q���#r/c�l�[2o[UQQ2UO[U2]2P!)r�z foo=bar; domain=.someother.localr�r�s& r,�test_evil_local_domain_2�$CookieTests.test_evil_local_domain_2�s+���K���!�/�1S�T�����Q���#r/c���[P	Q5o[U2o[UQQ2UO[	U2]2UOUO
Q*Q*Q*OQ2UO[UQ2Q2UO[UQ	2P2[UQ
Q2UO[	U2]2UO[UQ
2Q2[UQQ
2UOUO
Q*Q*Q*OQ2UO[	U2]2UO[UQ2Q2UO[UQ2Q2[UQQ2UO[	U2]2[UQQ2UO[	U2]2P!)Tr�r�r�r�rr�r�z$Version=1; foo=barr�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�rNr�rMr�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
rr�r#r+rrr�s&  r,�!test_two_component_domain_rfc2965�-CookieTests.test_two_component_domain_rfc2965s���!�$�/���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���#r/c��[[Q,Q,Q5Q5o[OO	Q2oQ,o[UQ2oUO
VB2UO[U2]2[OO	Q2o[UQ2oUO
VB2UO[U2]2[OO	Q2o[UQ2oUO
VB2UO[U2]2[OO	Q2o[UQ2oUOVB2oUOU]*2UO[U2]2UOU2UOUOQ22P!)	r�r)�blocked_domains�allowed_domainsr��http://acme.com/�*Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/rr|r)rr
r�r�r�r�r�r#r+r�
set_cookier�rE�
has_header)r&r�r�r�r�rws&     r,�test_domain_allow�CookieTests.test_domain_allow1sp���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�2r/c��[P	Q,Q5o[UQ5oQ,o[OO	Q2o[UQ2oUO
VT2UO[U2]2UOQ,2oUO
VT2UO[U2]2UO2[OO	Q2o[UQ2oUO
VT2UO[U2]2[OO	Q2oUOU2UOUOQ22UOUOQ	22UO2UOQ,2UO
VT2UO[U2]2[OO	Q2o[UQ2oUOVT2oUOU]*2UO[U2]2UOU2UO!UOQ22UO2UO,2[OO	Q
2o[UQ
2oUOVT2oUO
VT2UO[U2]2[OO	Q
2oUOU2UOUOQ22[OO	Q2oUOU2UO!UO#U]*U22UO!UOQ22UOQ,2o[OO	Q
2oUOU2UO!UOQ22[OO	Q2oUOU2UO!UOQ22P!)Tri)r\r�r�r�rr�zhttp://www.roadrunner.net/r�Cookie2r�zhttp://badacme.com/)r
rr�r�r�r�r�r#r+�set_blocked_domainsr,r�rDr�rr�rE�	return_ok)r&rHr�r�r�r��prws&       r,�test_domain_block�CookieTests.test_domain_blockPsk��!��;�-�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�2r/c��Q
FD�oQFD�o[2oU%c[P
Q5o[oPoL[P	Q5o[oQoUO	U2QoUV7QU8U802UV7QU8QU802UOUOQ*Q*Q	*OQ
2UOUOQ*Q*Q*OQ2J�	J�	P!)Tr�z; Version=1r�foo1=bar�foo2=barz; securerr�foo1z#non-secure cookie registered secure�foo2z#secure cookie registered non-secure)TF)r!rr)	rr
r�r�r�rEr�securerD)r&r��
whitespacer�rHr�vsr�s&       r,�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�;�#&�r/c�h�[2o[UQ5oQ,o[OO	Q2o[UQ2oUO
VT2UO[U2]2[OO	Q2oUOU2UOUOQ22[OO	Q2oUOU2UOUOQ22[OO	Q2oUOU2UOUOQ22[OO	Q2oUOU2UOUOQ22P!)r��(Set-Cookie: session=narf; secure; path=/�https://www.acme.com/rrzwss://www.acme.com/zws://www.acme.com/)
r
rr�r�r�r�r�r#r+r�rDr�rE�r&rHr�r�r�r�s&     r,�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�2r/c�n�[Q,Q5o[UQ5oQ,o[OO	Q2o[UQ2oUO
VT2UO[U2]2[OO	Q2oUOU2UOUOQ22[OO	Q2oUOU2UOUOQ22[OO	Q2oUOU2UOUOQ22[OO	Q2oUOU2UOUOQ22P!)	�foos)�secure_protocolsr�r
rrrzfoos://www.acme.com/zfoo://www.acme.com/)
r
rr�r�r�r�r�r#r+r�rEr�rDrs&     r,�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�2r/c��[[P	Q5Q5o[UQQ2[UQ2oUOUQ2P!)Tr�r�rzfoo=\b"a"r; Version=1z$Version=1; foo=\\b\"a\"r)rr
r�r#)r&r�r�s&  r,�test_quote_cookie_value�#CookieTests.test_quote_cookie_value�s>���0��>�?���a�/�1I�J��!�3�4������8�9r/c�$�Qo[[P	Q52o[V!Q2[OOU2oUO
[U2]2UOU2UOUOQ22P!)�http://www.acme.comr�r`r)rr
r�r�r�r�r#r+r�rDr�)r&r�r�r�s&   r,�test_missing_final_slash�$CookieTests.test_missing_final_slash�sm��#���)�$�7�8���a�2�3��n�n�$�$�S�)������Q���#�	���C� �������x�0�1r/c�j�[P	Q5o[U2oQo[V#Q2[V#2oUOQUQ2[U2oQo[V#Q2[V#2oUO	QUQ2[U2oQo[V#Q	2[V#2oUO	Q
UQ2P!)Tr��http://foo.bar.com/�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�r�rv�r&rHr�r�r�s&    r,�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�Dr/c��[P	Q5o[U2oQo[V#Q2[V#2oUOQUQ2[U2oQo[V#Q2[V#2oUO	QUQ2P!)	Tr�rr �Pathz&absent path returned with path presentzspam=eggs; Version=1; Path=/z	$Path="/"zpath not returnedr"r#s&    r,�test_path_mirror�CookieTests.test_path_mirrorsv��!�$�/���c�N��#���a�4�5��!�!�������$L�M��c�N��#���a�<�=��!�!���
�
�k�1�&9�:r/c���[P	Q5o[U2oQo[V#Q2[V#2oUOQUQ2[U2oQo[V#Q2[V#2oUO	UQQ2[U2oQo[V#Q	2[V#2oUOQ
UQ2[U2oQo[V#Q2[V#2oUOQ
UQ2P!)Tr�rr �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�r�r$rvr#s&    r,�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��!�!���
�
�'���	 r/c��[[P	Q52oQo[VQ2[V2oUOQUQ2P!)Tr�rzfspam=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�r�s&   r,�test_no_return_comment�"CookieTests.test_no_return_comment6sJ���)�$�7�8��#���a�E�	F�
�!�!������A�H�	Jr/c	�`�[[P	Q52o[UQQ2[UQQ2[UQQ2[UQQ2[UQQ	2,Q
No,QNo,QNo,Q
No[	]2FD�o]oSFD�oUOU[2UOUOV&*2UOUOV6*2UOUOVF*2UOUOVV*2U]*oJ�	J�	P!)Tr�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! (\"|\\\\) ")r<r=r<r<r<)r�r�r�r��bang)z
blah.spam.orgrrrz.sol.no)rr�r�rr)rr
r�r��range�assertIsInstancerr#r�rQrFr�)r&�cs�versions�names�domains�paths�ir�s&       r,�test_Cookie_iterator� CookieTests.test_Cookie_iterator@s��
�*�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��
�r/c�v�UO[Q,2,QN,2UO[Q,2,QN,2UO[Q,2Q	Q,,2UO[Q,2,QN,2UO[Q,2QQ
,,2UO[P,2,2P!)zfoo=bar; path=/; domainr�z)foo=bar; expires=Foo Bar 12 33:22:11 2000zfoo=bar; expireszfoo=bar; versionr�r�)r�)r�r)rFNr�)r�)r�Nr�r�)r�Nr�r\s&r,r��!CookieTests.test_parse_ns_headers`s�������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�$�/��4r/c�f�Qo[[O2Q*2oQ,Q,Q,Q,Q,QU*,1FD&oUU2oUO[U2]2J(	Q,oUU2oUOQ	*Q
*Q*oUOUO2P!)c��[2o[OOQ2o[	UQ2oUOV22U!)r])rr�r�r�r�r�)r�r�r�rIs&   r,�cookiejar_from_cookie_headers�ICookieTests.test_bad_cookie_header.<locals>.cookiejar_from_cookie_headers}s>����A��.�.�(�(�)B�C�C��W�&?�@�A�
���a�%��Hr/r{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=%sz3Set-Cookie: c=foo; expires=Foo Bar 12 33:22:11 2000r^rr�)rr7r#r+rrVr�)r&rDr�r�r�rVs&     r,�test_bad_cookie_header�"CookieTests.test_bad_cookie_header{s���	��t�y�y�{�4�/�0����
��
<�=�
.�/�
.�/�
&��
/�0�
�G�.�g�6�A����S��V�Q�'�
� I�I��)�'�2�����-�.�s�3�C�8�����&�.�.�)r/rq))rzblah.comF)rzrhubarb.blah.comF)rzrhubarb.foo.bar.comF)rr�T)rr�T)rz.bar.comT)rr�T)rr�T)�http://foo.com/zrhubarb.foo.comF)rH�.foo.comT)rH�foo.comT)rHr�T)�http://foo/zrhubarb.fooF)rKz.fooT)rKr�T)rKz	foo.localT)rKr�T)�http://barfoo.comrIF)rLrJF))NFr=)NTr<)FFN)FTr<)TFr=)TTr=))z/foo%2f/bar�/foo%2F/bar)rMrM)�
/foo%%/barrN)�/fo%19o/barrO)z/fo%7do/barz/fo%7Do/bar)�	/foo/bar&rP)�	/foo//barrQ)�	~/foo/barrR)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)0rxryrzr{rr|rJrXrdrsrxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrrrr$r(r,r0r>r�rFr}r~rs@r,r@r@�sG����^
���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*�*r/r@c�j`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsUsP!)�LWPCookieTestsi�c�n�[O2]*]*o,o[[P	Q52o[O
O
QQQ-Q5oUOQU*2[UQ2oUOVT2[O
O
Q2oUOU2UOUOQ2Q	2UOUOQ
2Q2UOQ2[UQ2oUOVT2[O
O
Q
2oUOU2UOQ2oUOQU2UOQ	U2UOQ2[UQ2oUOVT2[O
O
Q2oUOU2UOQ2oUOQU2UOQ	U2UOQU2[O
O
Q2oUOU2UOQ2oUOQU2UOQ	U2UOUQ2P!)r=r�rgr�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=/foorzSHIPPING=FEDEXrPzSHIPPING=FEDEX;)r7�	localtimerr
r�r�r�r�r�r�r�r#r�rvr��assertStartsWith)r&�
year_plus_oner�r�r�r�r�s&      r,�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�3r/c�Z�[2o,o[OOQ2oUO	Q2[UQ2oUO
VC2[OOQ2oUOU2UOUOQ2Q2UO	Q2[UQ2oUO
VC2[OOQ2oUOU2UOUOQ2Q2P!)rrWrrXz6Set-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�s&    r,�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�=�	>r/c��[[P	Q52o[UQQ2oUOU2[UQQ2oUO	UQ2[UQQ2oUO	UQ	2UO	UQ
2UO	UQ2[UQ2oUO	UQ
2UOQU2P!)Tr�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)rr
r�rEr$rv�r&r�rVs&  r,�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�.r/c���[[P	Q52o[UQQQ2[UQ2oUOUQ2[UQ2oUO	QU2UOQ	U2P!)
Tr�z&http://www.acme.com/acme/ammo/specificrcz@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$rvr�res&  r,�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�6r/c���[P	Q5o[UQ5oQo[UQQ2oUOU2[UQQ2oUO	[U2]2[UQQ2oUO	[U2]2[UQQ	2oUO	[U2]2[UQ
Q2oUO	[U2]2[UQQ
2oUO	[U2]2[UQQ2oUO	[U2]2[UQQ2oUO	[U2]2[UQQ2oUO	[U2]2[UQQ2oUO	[U2]2[UQQ2oUO	[U2]2[OoUOUP	Q5[U2o[UQ5oUOUP	Q5[OU2UO	U[U22P![OS2h9h)Tr�r�zmax-age=3600rz!foo=bar; domain=".com"; version=1z'ping=pong; domain="acme.com"; version=1zhttp://www.a.acme.comz'whiz=bang; domain="acme.com"; version=1z,wow=flutter; domain=".a.acme.com"; version=1zhttp://125.125.125.125z*zzzz=ping; domain="125.125.125"; version=1r3z6blah=rhubarb; domain=".sol.no"; path="/foo"; version=1zhttp://www.sol.no/foo/barz3bing=bong; domain=".sol.no"; path="/foo"; version=1z5whiz=ffft; domain=".sol.no"; port="90,100"; version=1r4z9foo9=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�rEr#r+rr�rrRrr)r&rHr��max_agerVr��olds&      r,�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�=I�I#c�H�[[P	Q52o[UQQ2[UQQ2o[OQ[O
2oUO
QU2UOV#2[UQ2oUOU2[UQ	2oP!)
Tr�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/ü)	rr
r�rT�compile�Irvr$rE)r&r�rV�
version_res&   r,�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�"<�=�r/c�`�[O2]*]*o[On[	R[P	Q5Q5o[
UQQ2[
UQQ2[
UQQ2QU1*o[UQQ	U*2[UQQ
U*2[UQQU*2SFD(oUOQ6XfJUOQ
P2J*	U1QkoUUP	2oUO[U2]2UOQ[U22UOQ[U22UUP
2oUO[U2]2UOQ[U22P!)r=r�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�HTTPOnlyc��:�UOUQ5[R[P	Q52oUOUQ5[O
R2U![O
R2h9h)rr�)rrr
rrr)r�r�new_cr�s&& �r,�save_and_restore�5LWPCookieTests.test_mozilla.<locals>.save_and_restore]s^���
+����~��6�(��)<�T�)J�L���
�
�.�
�9�� � ��*��L��� � ��*�s�:A�A.zname='foo1', value='bar'zrest={'HTTPOnly': ''})r7rYrr�rr
r�r�rQ�set_nonstandard_attrr#r+rvrR)r&r[r�r�rVr|r{r�s&      @r,�test_mozilla�LWPCookieTests.test_mozillaCs^������(��+�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�+�>r/c��[2o,o[OOQ2oUO	Q2[UQ2oUO
VC2UO	Q2[UQ2oUO
VC2[OOQ2oUOU2UOQUOQ22UOQUOQ22P!)zhttp://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�rvr�r_s&    r,�test_netscape_misc�!LWPCookieTests.test_netscape_miscps����K�����n�n�$�$�%B�C��	���M�N��7�$=�>��	���#�#�
	���M�N��7�$=�>��	���#�#��n�n�$�$�%B�C��	���C� ��
�
�'�����)A�B��
�
�.�s�~�~�h�/G�Hr/c��[[P	Q52o[UQQ2[UQQ2oUOQU2[UQQ2[UQ2oUOQU2UO	[U2]2P!)Tr��http://example/z#foo1=bar; PORT; Discard; Version=1;z$foo2=bar; domain=".local"; Version=1rzfoo3=bar; Version=1r)rr
r�rvr#r+res&  r,�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���#r/c�2�[[P
Q52o[UQQ2[UQQ2oUO[	U2]2UOQU2[UQ2oUOQU2UO[	U2]2P!)Fr�r�rzfoo2=bar; domain=.localr)rr
r�r#r+rvres&  r,�test_intranet_domains_ns�'LWPCookieTests.test_intranet_domains_ns�s����)�E�:�;���!�.�
�;�"�1�&7�#<�>������Q���#��
�
�j�&�)�"�1�&7�8���
�
�j�&�)�����Q���#r/c��[[P	Q52o,o[OO	Q2oUOQ2[
UQ2oUOVC2[OO	Q2oUOU2UOUOQ2Q2UOUOQ2Q2[OO	Q2oUOU2UOUOQ2Q2UOUOQ2Q2P!)	Tr�zhttp://www.ants.com/z,Set-Cookie: JSESSIONID=ABCDERANDOM123; Path=rzJSESSIONID=ABCDERANDOM123r�rVzhttp://www.ants.com:8080)rr
r�r�r�r�r�r�r�r#r�r_s&    r,�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�Cr/c�4�[O2]*]*o[OO	Q2o,oUOQ2UOQU*2UOQU*2UOQ2UOQ2[
UQ2o[2oUOVB2Q]Q]Q	]Q
]-oSFD'oQUO*oVh*]*Vh$J)	UO2SFD'oQUO*oVh*]*Vh$J)	UOUQ*UQ
*2UOUQ*]2UOUQ	*]2P!)
r=z"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_after)
r7rYr�r�r�r�r�rr�rr�r#�assertNotEqual)	r&r[r�r�r�r��counterrV�keys	&        r,�test_session_cookies�#LWPCookieTests.test_session_cookies�sv�����(��+�a�/�
�
�n�n�$�$�%I�J�������=�>����D�$�%�	&�	���0�2?�@�	A����1�	2����K�L��7�$H�I���K��	���#�#�"�A���#�Q� �!�%���F�����,�C�"�<�!�+�G�L��	
���!��F��v�|�|�+�C�"�<�!�+�G�L��
	
�����.��
�0F�G������1�1�5����G�$4�5�q�9r/rq)rxryrzr{r\r`rfrkrprvrr�r�r�r�r�r}r~rs@r,rTrT�sQ����Y4�v1>�fg/�`37�jX'�t>�,+?�ZI�.$�
$�D�>(:�(:r/rT�__main__)4�__doc__rr�sysrTrSr�test.supportrrr7r;�urllib.requestr��http.cookiejarrrrrrr	r
rrr
rrrrrrrrrrrrr�platformr=�TestCaserr�r�r�r�r�r�r@rTrx�mainrqr/r,�<module>r�s���"�	��
�	��"�(����!�!�!�!�!�!�!��\�\�W�
$�	�jB�H�%�%�jB�Zt!�(�#�#�t!�n)�)�E�D�
�t'��*�*�t'�lL*�(�#�#�L*�^K	:�X�&�&�K	:�\�z���M�M�O�r/

Youez - 2016 - github.com/yon3zu
LinuXploit