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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python313/Lib/test/__pycache__/test_wsgiref.cpython-313.opt-2.pyc
�

��il���SSKJr SSKJr SSKJrJr SSKJr SSKJ	r	 SSK
Jr SSKJ
r
 SSKJrJrJr SS	KJr SS
KJr SSKJrJr SSKJr SS
KJr SSKJrJrJr SSK J!r! SSK"J#r# SSK$r$SSK%r%SSK&r&SSK'r'SSK(r(SSKr"SS\5r)"SS\5r*Sr+Sr,\+S4Sjr-Sr."SS\	5r/"SS\	5r0"SS \	5r1"S!S"\5r2"S#S$\25r3"S%S&\	5r4\5S':Xa\Rl"5 gg)(�)�mock)�support)�
socket_helper�control_characters_c0)�NoLogRequestHandler)�TestCase)�setup_testing_defaults)�Headers)�BaseHandler�BaseCGIHandler�
SimpleHandler)�util)�	validator)�
WSGIServer�WSGIRequestHandler)�make_server)�HTTPConnection)�StringIO�BytesIO�BufferedReader)�
BaseServer)�python_implementationNc� �\rSrSrSrSrSrg)�
MockServer�c�R�[R"XU5 UR5 g�N)r�__init__�server_bind)�self�server_address�RequestHandlerClasss   �&C:\Python313\\Lib\test\test_wsgiref.pyr�MockServer.__init__s�����D�2E�F�����c�X�URupXlX lUR5 gr)r!�server_name�server_port�
setup_environ)r �host�ports   r#r�MockServer.server_bind!s'���(�(�
���������r%)r'r(N)�__name__�
__module__�__qualname__�__firstlineno__rr�__static_attributes__�r%r#rrs���r%rc� �\rSrSrSrSrSrg)�MockHandler�(c�X�URUlURuUlUlgr)�request�
connection�rfile�wfile�r s r#�setup�MockHandler.setup*s���,�,���!%�����
�D�Jr%c��grr2r;s r#�finish�MockHandler.finish.s��r%)r8r9r:N)r-r.r/r0r<r?r1r2r%r#r4r4(s��1�
r%r4c��U"SSS/5 S/$)N�200 OK��Content-Typez
text/plain��DatezMon, 05 Jun 2006 18:49:54 GMT�
Hello, world!r2��environ�start_responses  r#�	hello_apprK2s"���8�%�0���
��r%c�r�U"SSS/5 SRUSUSUS/5RS5/$)	NrBrCrE�;�HTTP_X_TEST_HEADER�QUERY_STRING�	PATH_INFO�
iso-8859-1)�join�encoderHs  r#�
header_apprT:sX���8�&�1���
�H�H��$�%�w�~�'>�����
��v�l���r%sGET / HTTP/1.0

c�T�[SSU[[5n[[	U55n[	5n[
Rn[5=n[
lURX44S5 U[
lUR5UR54$!U[
lf=f)N��P)�	127.0.0.1i�")
rrr4rr�sys�stderrr�finish_request�getvalue)�app�data�server�inp�out�olderr�errs       r#�	run_amockrdEs���
��R��j�+�
>�F�
����
'�C�
�)�C�
�Z�Z�F��z�!�C�#�*�����s�j�*<�=���
��<�<�>�3�<�<�>�)�)����
�s�B�
B'c���U"5n[U5ULa[eUHn[U5U:XaM[e [U5 [SU5e![a gf=f)NzToo many items from .__next__())�iter�AssertionError�next�
StopIteration)�make_it�match�it�items    r#�compare_generic_iterrnTsi��
��B���8�r�>������B�x�4�� � ��D��R���>��C�C���
��
�s�A�
A�Ac�Z�\rSrSrSSjrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rg)�IntegrationTests�ic���[5S-[RR5S-nUR	USU-S-U=(a S=(d S-S-RS55 g)	N�/rz(HTTP/1.0 200 OK
Server: WSGIServer/0.2 zA
Content-Type: text/plain
Date: Mon, 05 Jun 2006 18:49:54 GMT
zContent-Length: 13
rVz
Hello, world!rQ)rrY�version�split�assertEqualrS)r ra�
has_length�pyvers    r#�check_hello�IntegrationTests.check_helloks{��&�(�3�.����!�!�#�A�&�'������&�(-�.�06�6��
5�5�
;��	=�

��$�V�L�1�	
r%c�>�[5upURU5 gr)rdry�r rarcs   r#�test_plain_hello�!IntegrationTests.test_plain_helloxs���;�������r%c�r�Sn[[U5up#URUR5SS5 g)NsmGET /p%61th/?query=test HTTP/1.0
X-Test-Header: Python test 
X-Test-Header: Python test 2
Content-Length: 0

���s+Python test,Python test 2;query=test;/path/)rdrTrv�
splitlines)r r7rarcs    r#�test_environ�IntegrationTests.test_environ|s<��
%�	��Z��1�������N�N��R� �:�	
r%c�r�[SSS--S-S9upURUR5SS5 g)NsGET �xis HTTP/1.0

�r^rsHTTP/1.0 414 URI Too Long)rdrvr�r|s   r#�test_request_length�$IntegrationTests.test_request_length�s<���'�T�E�\�":�=M�"M�N���������)�!�,�5�	7r%c�X�[[[55upURUSS9 g)NF)rw)rdrrKryr|s   r#�test_validated_hello�%IntegrationTests.test_validated_hello�s&���Y�y�1�2���������/r%c��Sn[[U55up#URURS55 UR	UR5SS5 g)Nc��U"SS5 S/$)NrBrCz
Hello, world!r2rHs  r#�bad_app�>IntegrationTests.test_simple_validation_error.<locals>.bad_app�s���8�%B�C�#�$�$r%�;A server error occurred.  Please contact the administrator.���z^AssertionError: Headers (('Content-Type', 'text/plain')) must be of type list: <class 'tuple'>�rdr�
assertTrue�endswithrvr��r r�rarcs    r#�test_simple_validation_error�-IntegrationTests.test_simple_validation_error�sX��	%��Y�w�/�0���������J�
�	�	
����N�N��R� �
0�	
r%c�(�Sn/SQnUHsup4URUS9 [U"U55upVURURS55 UR	UR5SU5 SSS5 Mu g!,(df   M�=f)Nc�^�U4SjnU$)Nc�>�U"TS/5 S/$)N�rDztext/plain; charset=utf-8rGr2)rIrJ�statuss  �r#r��WIntegrationTests.test_status_validation_errors.<locals>.create_bad_app.<locals>.bad_app�s����v�(U�'V�W�(�)�)r%r2)r�r�s` r#�create_bad_app�FIntegrationTests.test_status_validation_errors.<locals>.create_bad_app�s���
*��Nr%))�200z4AssertionError: Status must be at least 4 characters)z20X OKz8AssertionError: Status message must begin w/3-digit code)�200OKz;AssertionError: Status message must have a space after code)r�r�r�)�subTestrdr�r�rvr�)r r��testsr��exc_messagerarcs       r#�test_status_validation_errors�.IntegrationTests.test_status_validation_errors�s���	�
��$)��F����V��,�$�^�F�%;�<���������R�!��� � ����!1�"�!5�{�C�-�,�$)�,�,�s�AB�
B	c��Sn[[U55up#URURS55 UR	UR5SS5 g)Nc�B�USR5 U"SS/5 S/$)N�
wsgi.inputrBr��data)�read��e�ss  r#r��1IntegrationTests.test_wsgi_input.<locals>.bad_app�s(��
�l�O� � �"�
�h�F�G�H��9�r%r�r�rgr�r�s    r#�test_wsgi_input� IntegrationTests.test_wsgi_input�sV��	��Y�w�/�0���������J�
�	�	
����N�N��R� �"2�	
r%c�H�Sn[[U55up#URURS55 [R
R
5SRS5n[5RS5nUS-U-nURSU-S-U5 g)Nc��U"SSS/5 S/$)NrBr��rFzWed, 24 Dec 2008 13:29:32 GMTr�r2r�s  r#r]�3IntegrationTests.test_bytes_validation.<locals>.app�s!��
�h�=�9��
��9�r%z"GET / HTTP/1.0" 200 4
r�ascii�/s(HTTP/1.0 200 OK
Server: WSGIServer/0.2 sV
Content-Type: text/plain; charset=utf-8
Date: Wed, 24 Dec 2008 13:29:32 GMT

data)
rdrr�r�rYrtrurSrrv)r r]rarc�ver�pyrxs       r#�test_bytes_validation�&IntegrationTests.test_bytes_validation�s���	��Y�s�^�,���������%?�@�A��k�k���!�!�$�+�+�G�4��#�%�,�,�W�5���T�	�C������+�,1�2�5���	r%c��Sn[[U5SS9up#URS[RSSSS/UR55 g)	Nc�B�U"SSS/5 USRS5/$)NrBrCr�rP�latin1�rSr�s  r#r]�-IntegrationTests.test_cp1252_url.<locals>.app�s1��
�h�.�9��
��k�N�)�)�(�3�4�4r%sGET /�%80 HTTP/1.0r�sHTTP/1.0 200 OKsContent-Type: text/plains#Date: Wed, 24 Dec 2008 13:29:32 GMTr%s/��)rdrrvr�ANYr�)r r]rarcs    r#�test_cp1252_url� IntegrationTests.test_cp1252_url�sT��	5���c�N�!9�;������"����+�6���

�
�N�N��		r%c��^^^	^
^�[R"[S5m	Sn"SS[[5n[[RSXS9mURTR5 [R"5mU4Sjn[R"[RU5nUR[R[RU5 Sm
[R"5mUUU	U
U4Sjn[R"US	9nUR5 TR!5 UR#5 UR%T
[R&S
-
5 g)N�pthread_killc�<�U"S/5 S[R-/$)NrB�)r�
SOCK_MAX_SIZErHs  r#r]�4IntegrationTests.test_interrupted_write.<locals>.app�s ���8�R�(��G�1�1�1�2�2r%c��\rSrSrSrg)�<IntegrationTests.test_interrupted_write.<locals>.WsgiHandler�r2N�r-r.r/r0r1r2r%r#�WsgiHandlerr�����r%r�r)�
handler_classc�&>�TR5 gr)�set)�signum�frame�interrupteds  �r#�signal_handler�?IntegrationTests.test_interrupted_write.<locals>.signal_handlers
����O�O�r%c�>�[TR6nURSS5 UR5nUR	S5 T"T[
R5 TR[S5S9(aOM7[UR	55mSSS5 UR5 g!,(df   N=f)N�GETrs�d�)�timeout)rr!r7�getresponser��signal�SIGUSR1�wait�float�len�close)�http�responser��main_threadr��receivedr_s  �����r#�
run_client�;IntegrationTests.test_interrupted_write.<locals>.run_clients����!�6�#8�#8�9�D��L�L���$��!�!�#�x��
�
�c�"�� ��f�n�n�=�"�'�'��a��'�9���
�x�}�}��/��$�
�J�J�L�$�#�s�A#B2�2
C)�targetr�)r�
get_attributer�rrrr�HOST�
addCleanup�server_close�	threading�Eventr��	get_ident�Thread�start�handle_requestrRrvr�)r r]r�r��originalr��
backgroundr�r�r�r�r_s       @@@@@r#�test_interrupted_write�'IntegrationTests.test_interrupted_write�s�����,�,�V�^�D��	3�	�-�/A�	��]�/�/��C�S������+�+�,��o�o�'��	��=�=�����@������
�
�v�~�~�x�@����)�)�+��	�	�$�%�%�Z�8�
�����������������7�#8�#8�3�#>�?r%r2N)T)r-r.r/r0ryr}r�r�r�r�r�r�r�r�r�r1r2r%r#rprpis;��
��
�7�
0�

�D�*
��*�./@r%rpc�v�\rSrSrSrSSjrSrSrSSjrSr	S	r
S
rSrSr
S
rSrSrSrSrSrg)�UtilityTestsi!c���XS.n[R"U5 UR[R"U5U5 URUSU5 URUSU5 U$)N��SCRIPT_NAMErPrPr�)rr	rv�shift_path_info)r �sn_in�pi_in�part�sn_out�pi_out�envs       r#�
checkShift�UtilityTests.checkShift#sb��"�5���#�#�C�(�����-�-�c�2�4�8�����[�)�&�1�����]�+�F�3��
r%Nc�n�0n[R"U5 [U[5(aUR	XA[5 OB[U[
5(aUR	XA[
5 OUR
XAU5 X0n[R"U5 URXAU5 gr)rr	�
isinstancer�assertIsInstancerrv�assertIs)r �key�value�altrs     r#�checkDefault�UtilityTests.checkDefault+s������#�#�C�(��e�X�&�&��!�!�#�(�H�5�
��g�
&�
&��!�!�#�(�7�3����S�X�u�-��i���#�#�C�(��
�
�c�h��$r%c�X�[R"U5 URX1U5 gr)rr	rv)r rr�kws    r#�checkCrossDefault�UtilityTests.checkCrossDefault;s"���#�#�B�'�������'r%c�|�[R"U5 UR[R"U5U5 gr)rr	rv�application_uri)r �urirs   r#�checkAppURI�UtilityTests.checkAppURI?s+���#�#�B�'�����-�-�b�1�#�6r%c�|�[R"U5 UR[R"X25U5 gr)rr	rv�request_uri)r r�queryrs    r#�checkReqURI�UtilityTests.checkReqURICs+���#�#�B�'�����)�)�"�3�C�8r%c�D�X4Sjn[XC5 U"5nURURR5 UHnM URURR5 UR	5 URURR5 g)Nc�B�[R"[U5U5$r)r�FileWrapperr)�text�sizes  r#rj�%UtilityTests.checkFW.<locals>.make_itIs���#�#�H�T�N�4�8�8r%)rn�assertFalse�filelike�closedr�r�)r r!r"rkrjrlrms       r#�checkFW�UtilityTests.checkFWGsy���	9�	�W�+�
�Y��������+�+�,��D���	
������+�+�,�
���
�������*�*�+r%c���URSSSSS5 URSSSSS5 URSSSSS5 URSSSSS5 URSS	SSS5 g)
NrVrsz/x�x�/az/x/yz/a/x�/yz/x/�rr;s r#�testSimpleShifts�UtilityTests.testSimpleShiftsYsf������3��C��,�����4��d�B�/�����B��c�2�.�����V�S�&�$�7�����U�S�&�#�6r%c���URSSSSS5 URSSSSS5 URSSSS	S5 URSS
SS	S5 URSSSS	S5 URSS
SS	S5 URSSSSS5 URSSSSS5 URSSSSS5 URSSSSS5 URSSSSS5 g)Nz/a/bz/../yz..r+r,rVz//y�yz/a/b/yz//y/rsz/./yz/./y/z///./..//y/.//z/y/z///z/a/b/z/.//z/x//r*z/a/b/xz/.r-r;s r#�testNormalizedShifts�!UtilityTests.testNormalizedShifts`s���������t�T�:�����G�T�2�t�4������s�H�b�9�������X�s�;�������X�r�:�������h��<����� 0�$��e�D������r�7�B�7�������G�R�8�������X�s�;������d�F�B�7r%c��SSSSSSSSS	S
SS[54S
[54S4HupURX5 M g)N)�SERVER_NAMErX)�SERVER_PORT�80)�SERVER_PROTOCOL�HTTP/1.0)�	HTTP_HOSTrX)�REQUEST_METHODr�)r�rV)rPrs)�wsgi.version�r�r)�
wsgi.run_oncer)�wsgi.multithreadr)�wsgi.multiprocessrr��wsgi.errors)�wsgi.url_schemer�)rrr)r rrs   r#�testDefaults�UtilityTests.testDefaultsmsX��'�!�*�%�$���#� �#�$�
�7�9�%�
�H�J�'�&�
�J�C� 
���c�(�!
r%c���URSSSS9 URSSSS9 URSSSS9 URSSS	S9 URSS
SS9 URSS
SS9 URSSSS9 g)Nr:zfoo.bar�r5rB�https�on��HTTPS�1�yesr��foor6r7�443)rr;s r#�testCrossDefaults�UtilityTests.testCrossDefaults�s������{�9���K����0��t��D����0��s��C����0��u��E����0��e��D����}�T���>����}�U���>r%c��UR[R"05S5 UR[R"SS05S5 UR[R"SS05S5 UR[R"SS05S5 UR[R"SS05S5 g)Nr�rJrMrHrGrLrK)rvr�guess_schemer;s r#�testGuessScheme�UtilityTests.testGuessScheme�s�������*�*�2�.��7�����*�*�G�E�?�;�V�D�����*�*�G�D�>�:�G�D�����*�*�G�E�?�;�W�E�����*�*�G�C�=�9�7�Cr%c��URS5 URSSS9 URSSS9 URSSS	S
9 URSSS
9 URSSSS9 URSSS9 URSSSS9 g)N�http://127.0.0.1/�http://127.0.0.1/spam�/spam�r��http://127.0.0.1/sp%E4m�/spämzhttp://spam.example.com:2071/zspam.example.com:2071�2071)r:r6zhttp://spam.example.com/zspam.example.comrFrX)r:r5zhttps://127.0.0.1/rHrIzhttp://127.0.0.1:8000/�8000)r6r:)rr;s r#�testAppURIs�UtilityTests.testAppURIs�s������,�-����0�g��F����2�
��K����8�-�6�	�	C����3�*�	�	,����,�!�/A�	�	C����-�T��:����1�v��	�	r%c�\�URS5 URSSS9 URSSS9 URSSSS	9 URS
SSS	9 URSSSS	9 URS
SSS	9 URSSSSS9 URSSSSS9 URSSSSSS9 g)NrVrWrXrYrZr[zhttp://127.0.0.1/spammity/spamz	/spammityr�z http://127.0.0.1/spammity/sp%E4mz"http://127.0.0.1/spammity/spam;hamz	/spam;hamz/http://127.0.0.1/spammity/spam;cookie=1234,5678z/spam;cookie=1234,5678z%http://127.0.0.1/spammity/spam?say=nizsay=ni)r�rPrOz'http://127.0.0.1/spammity/spam?s%E4y=nizs%E4y=nir)rr;s r#�testReqURIs�UtilityTests.testReqURIs�s�����,�-����0�g��F����2�
��K����9�#�w�	�	8����;�#�z�	�	;����=�#�{�	�	<����J�#�/G�	�	I����@�#�w�H�	�	N����B�#�w�J�	�	P����9�1�#�w�H�	�	Nr%c�.�URSSSS/5 g)Nږxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz�x�xxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz�xyzxyzxyzxyzxyzxyzxyzxyzxyzxyz)r'r;s r#�testFileWrapper�UtilityTests.testFileWrapper�s�����X�s�X�h�$7�8r%c���SR5H^nXR5UR5UR54H(nUR	[
R"U55 M* M` SR5H^nXR5UR5UR54H(nUR[
R"U55 M* M` g)NzbConnection Keep-Alive Proxy-Authenticate Proxy-Authorization TE Trailers Transfer-Encoding Upgradez4Accept Cache-Control Date Pragma Trailer Via Warning)ru�title�upper�lowerr�r�
is_hop_by_hopr$)r �hopr
s   r#�testHopByHop�UtilityTests.testHopByHop�s���
4�
�%�'��C��I�I�K�����c�i�i�k�A������ 2� 2�3� 7�8�B�	�
C�
�%�'��C��I�I�K�����c�i�i�k�A��� � ��!3�!3�C�!8�9�B�r%r2r)r�)r-r.r/r0rrrrrr'r.r2rCrOrSr^rarhrpr1r2r%r#r�r�!sO���%� (�7�9�,�$7�8�)�&?�D��N�&9�
:r%r�c�,�\rSrSrSrSrSrSrSrg)�HeaderTestsi�c	��S/nUR[[55S5 UR[[/55S5 UR[[USS55S5 UR[USS5R5S/5 UR[USS5R	5S/5 UR[USS5R5U5 UR
[U5R5U5 [5nUS	SUS'URURURUR4H_nURU"S55 URU"S55 URU"S	55 URU"S55 Ma URUSS5 S
US'URUS	S
5 URURS5S
/5 URURSS5S
5 URURSS5S5 URURSS5S
5 URURSS5S5 URUSS
5 URUSS5 g)
N�r*r1rr�r*r1rM�bar�Foo�FOO�baz�whee�zoo)rvr�r
�keys�values�items�assertIsNot�__contains__�get�get_all�__getitem__r�r$�
setdefault)r �test�h�ms    r#�testMappingInterface� HeaderTests.testMappingInterface�s<���{������W�Y���+�����W�R�[�)�!�,�����W�T�!�W�-�.�q�1������a��)�.�.�0�3�%�8������a��)�0�0�2�S�E�:������a��)�/�/�1�4�8�������,�,�.��5��I��
�e�H���%���������	�	�1�=�=�@�A��O�O�A�e�H�%��O�O�A�e�H�%��O�O�A�e�H�%����Q�u�X�&�	A�	
����5��%�(���%������5��%�(�������5�)�5�'�2�������u�V�,�e�4�������u�V�,�f�5�������e�F�3�U�;�������e�F�3�V�<�����5��%�(�����5��&�)r%c�:�UR[[S5 g)NrM)�assertRaises�	TypeErrorr
r;s r#�testRequireList�HeaderTests.testRequireList�s�����)�W�e�4r%c�n�[5nUR[U5S5 URSSSS9 URUSS5 UR[U5S5 URSSSS	9 URUR	S5SS
/5 UR[U5S5 g)Nz
rMrv�spam)ryzbar; baz="spam"zfoo: bar; baz="spam"

rw)�cheesezbar; cheesez*foo: bar; baz="spam"
Foo: bar; cheese

)r
rv�str�
add_headerr��r r�s  r#�
testExtras�HeaderTests.testExtras�s����I������Q���'�	���U�5�V��,�����5��#4�5�����Q�� >�?�	���U�5���-�������5�)�
�
�.�	0�	
����Q��
�	
r%c
�v�[5GHnURU5 [5nUR[UR
SU3S5 UR[URSU3SSS9 US:Xa3SU3US'UR
SSU35 URSSU35 OmUR[UR
SSU35 UR[URSSU3SS9 UR[URSSSU3S9 SSS5 GM g!,(df   GM-=f)Nr�val�param)r��	)rr�r
r��
ValueError�__setitem__r�r�)r �c0�headerss   r#�testRaisesControlCharacters�'HeaderTests.testRaisesControlCharacters�s-��'�)�B����b�!�!�)���!�!�*�g�.A�.A�S���:�u�U��!�!�*�g�.@�.@�C��t�*�e�[b�!�c���:�'*�2�$�Z�G�E�N��&�&�u��B�4�j�9��&�&���R�D�z�:��%�%�j�'�2E�2E�u�PS�TV�SW�j�Y��%�%�j�'�2D�2D�e�s�SU�RV�Z�_f�%�g��%�%�j�'�2D�2D�e�U�\a�bd�ae�Zf�%�g�"�!�*�!�!�s�C:D(�(
D8	r2N)	r-r.r/r0r�r�r�r�r1r2r%r#rsrs�s��*�@5�
�$hr%rsc�Z�\rSrSr\"\RR55rSr	Sr
g)�ErrorHandleri
c
�~�[U5 [R"U[5[5[	5USSS9 g)NT)�multithread�multiprocess)r	rrrr)r rs  r#r�ErrorHandler.__init__s.���r�"�����'�)�W�Y��
�B��4�	
r%r2N)r-r.r/r0�dict�osrIr~�
os_environrr1r2r%r#r�r�
s ���b�j�j�&�&�(�)�J�
r%r�c��\rSrSrSrSrg)�TestHandleric��err2r;s r#�handle_error�TestHandler.handle_errors��
r%r2N)r-r.r/r0r�r1r2r%r#r�r�s��r%r�c�l�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrg)�HandlerTestsi i�c�N�SSSSSS.n[R"[SU5 [SS	S
9nUR5 SSS5 SH2nUR	[WSU-5URS
U-5 M4 0n[U5 UR5HupVXT;dMXdU'M URSS	SSWR5UR5SSSSS[RS.5 URURU5 g!,(df   N�=f)Nz/my/homez/my/pathzfr_FR.UTF-8�test_script_name�test_server_name)�HOME�PATH�LANGr�r5r��Yz/override/home)�Xr�)rtr�r��run_once�file_wrapper�wsgi_zwsgi.rVrXr=Fr�T)r�r�r�r5r�rAr<r>rBr?r@zwsgi.file_wrapper)r�	swap_attrr�r)rv�getattrrIr	r~�update�	get_stdin�
get_stderrrr �assertDictEqual)r r��handler�attr�expectedrrs       r#�testEnviron�HandlerTests.testEnviron$s-����!�.�-�	
�
��
�
�{�L�*�
E�!�C�.>�?�G��!�!�#�F�%�D����W�W�g��n�=�$�_�_�W�t�^�<�
>�%����x�(�%�*�*�,�J�C��"� %��
�-�	����$��&�"�+�+�-�"�-�-�/�"�"�%� $�!%�!%�!1�!1�%
�	�(	
���W�_�_�h�7�QF�
E�s�D�
D$c��[SSS05nUR5 SHnURX!R5 M  g)N)rBr�rA)rr)�assertInrI)r r�rs   r#�testCGIEnviron�HandlerTests.testCGIEnvironZs7���4��T�"�-��	����A�C��M�M�#�y�y�)�Br%c���[SS9oR5 URURSS5 [5oR5 URURSS5 g)NrHrIrBrGr�)r�r)rvrIr�s  r#�
testScheme�HandlerTests.testScheme`sU��
�D�
!��?�?�#4�������#4�5�g�>�
�-����*�������#4�5�f�=r%c��[5nSH"nUR[[X55 M$ UR[URS5 g)N)�_flushr�r��add_cgi_varsr�)rr��NotImplementedErrorr��_write)r r��names   r#�testAbstractMethods� HandlerTests.testAbstractMethodsfsE���M��
�D�
���1�7�1�?�C�
�	
���-�q�x�x��@r%c��SnSnSnSn[5nURU5 URURR	5SRS55 [5nURU5 URURR	5SRS55 [5nURU5 URURR	5S5 [5nURU5 URURR	5S	5 g)
Nc�>�U"S/5 USRS5/$�NrBrBrQr�r�s  r#�trivial_app1�4HandlerTests.testContentLength.<locals>.trivial_app1qs%��
�h�r�N��'�(�/�/��=�>�>r%c�H�U"S/5"USRS55 /$r�r�r�s  r#�trivial_app2�4HandlerTests.testContentLength.<locals>.trivial_app2us&��
�h�r�N�1�.�/�6�6�|�D�E��Ir%c�8�U"S/5 SRS5/$)NrBuтестzutf-8r�r�s  r#�trivial_app3�4HandlerTests.testContentLength.<locals>.trivial_app3ys��
�h�r�N�.�5�5�g�>�?�?r%c��U"SS/5 /$)NrB)zContent-Length�12345r2r�s  r#�trivial_app4�4HandlerTests.testContentLength.<locals>.trivial_app4}s��
�h�3�4�5��Ir%z)Status: 200 OK
Content-Length: 4

httprQzStatus: 200 OK

https-Status: 200 OK
Content-Length: 8

тестs)Status: 200 OK
Content-Length: 12345

)r��runrv�stdoutr\rS)r r�r�r�r�r�s      r#�testContentLength�HandlerTests.testContentLengthns	��	?�	�	@�	�

�M��	���l��������*�*�,���F�<�(�		*�
�M��	���l��������*�*�,���F�<�(�	*�

�M��	���l��������*�*�,�
0�	1�
�M��	���l��������*�*�,�
�	r%c�f�SnSn[5nURU5 URURR	5SRS55 URURR	5S5 [5nURU5 URURR	5SUR[UR54-RS5UR-5 URSURR	55 g)Nc��U"S/5 /$�NrBr2r�s  r#�
non_error_app�8HandlerTests.testBasicErrorOutput.<locals>.non_error_app����
�h�r�N��Ir%c��[S5e)N� This should be caught by handler�rgr�s  r#�	error_app�4HandlerTests.testBasicErrorOutput.<locals>.error_app�s�� �!C�D�Dr%�%Status: 200 OK
Content-Length: 0

rQrVz<Status: %s
Content-Type: text/plain
Content-Length: %d

rg)r�r�rvr�r\rSrZ�error_statusr��
error_bodyr�)r r�r�r�s    r#�testBasicErrorOutput�!HandlerTests.testBasicErrorOutput�s���	�	E�
�N��	���m��������*�*�,���F�<�(�	*�	
������*�*�,�R�0��N��	���i��������*�*�,���n�n�S����%6�7�8�:@���9M��l�l�	
�	�	
�
�
�&����(9�(9�(;�<r%c�^�SmU4Sjn[5nURU5 URURR	5SRS5T-5 UR
SURR	55 g)N�Some output has been sentc�8>�U"S/5"T5 [S5e)NrBr�r�)r�r��MSGs  �r#r��4HandlerTests.testErrorAfterOutput.<locals>.error_app�s���
�h�r�N�3�� �!C�D�Dr%zStatus: 200 OK

rQrg)r�r�rvr�r\rSr�rZ)r r�r�r�s   @r#�testErrorAfterOutput�!HandlerTests.testErrorAfterOutput�st���*��	E�
�N��	���i��������*�*�,���6�,�'��,�	.�	
�
�
�&����(9�(9�(;�<r%c
��SnSnSRS5nSGHenU=(a SU-=(d SnSGHCnS	GH8n[US
9nSUlXhlXHlURU5 UR
X8RR55 [US
9nSUlXhlXHlURU5 US
:Xa,UR
URR5S5 M�UR[R"X&U4-RS5URR55X&U4-RS5URR545 GM; GMF GMh g)Nc��U"S/5 /$r�r2r�s  r#r��5HandlerTests.testHeaderFormats.<locals>.non_error_app�r�r%zfHTTP/%s 200 OK\r\nDate: \w{3}, [ 0123]\d \w{3} \d{4} \d\d:\d\d:\d\d GMT\r\n%sContent-Length: 0\r\n\r\nr�rQ)z
FooBar/1.0NzServer: %s
rV)z1.0z1.1)�HTTP/0.9r9zHTTP/1.1)r8FTrr%)rSr��
origin_server�http_version�server_softwarer�rvr�r\r��rerk)	r r��stdpat�shortpat�ssw�swrt�protor�s	         r#�testHeaderFormats�HandlerTests.testHeaderFormats�sR��	�

3�	�
@�
�&��
�	�&�C��/�)�C�/�5�2�B�'��?�E�#�E�:�A�&+�A�O�%,�N�(+�%��E�E�-�(��$�$�X�h�h�.?�.?�.A�B�#�E�:�A�&*�A�O�%,�N�(+�%��E�E�-�(��j�(��(�(����):�):�)<�S�A�����H�H�f�b�\�&9�%A�%A�,�%O� !��� 1� 1� 3�5�$�b�\�1�9�9�,�G� !��� 1� 1� 3�5��#@�(�&r%c��Sn[5nURU5 URSURR	55 g)Nc��U"SS/5 S/$)NrBr�r�r2r�s  r#r]�'HandlerTests.testBytesData.<locals>.app�s��
�h�=��
��9�r%sRStatus: 200 OK
Content-Type: text/plain; charset=utf-8
Content-Length: 4

data)r�r�rvr�r\)r r]r�s   r#�
testBytesData�HandlerTests.testBytesData�s@��	�
�M��	���c�
�����

�H�H����	!r%c�^^�SS0mSmUU4Sjn[5nURU5 URTSS5 g)N�close_calledFr�c�T>�U"S/5"T5 "U4SjS[5nU"5$)NrBc�(>�\rSrSrSrU4SjrSrg)�HHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterablei	c3�*# �Sv� [S5e7f)Nsblahr�r�r;s r#�__iter__�QHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterable.__iter__
s����%�
�,�-O�P�P�s�c�>�STS'g)NTrr2)r �side_effectss �r#r��NHandlerTests.testCloseOnError.<locals>.error_app.<locals>.CrashyIterable.closes
���37�L��0r%r2N)r-r.r/r0rr�r1)rs�r#�CrashyIterabler	s���Q�8�8r%r)�object)r�r�rr�rs   ��r#r��0HandlerTests.testCloseOnError.<locals>.error_apps(���
�h�r�N�3��
8��
8�"�#�#r%T)r�r�rv)r r�r�r�rs   @@r#�testCloseOnError�HandlerTests.testCloseOnErrorsA���&��.��*��		$�
�N��	���i������n�5�t�<r%c�@^�[5m"U4SjS5nSS0n[[5U"5[RU5nSnUR[U5 UR[5 SSS5 URST5 g!,(df   N!=f)Nc�(>�\rSrSrU4SjrSrSrg)�4HandlerTests.testPartialWrite.<locals>.PartialWriteric�F>�USSnTRU5 [U5$)N�)�extendr�)r �b�partial�writtens   �r#�write�:HandlerTests.testPartialWrite.<locals>.PartialWriter.writes$����B�Q�%�����w�'��7�|�#r%c��grr2r;s r#�flush�:HandlerTests.testPartialWrite.<locals>.PartialWriter.flushs��r%r2N)r-r.r/r0r-r0r1)r,s�r#�
PartialWriterr&s
���
$�

r%r2r8r9zshould not do partial writesssHTTP/1.0 200 OK
Content-Type: text/plain
Date: Mon, 05 Jun 2006 18:49:54 GMT
Content-Length: 13

Hello, world!)
�	bytearrayr
rrYrZ�assertWarnsRegex�DeprecationWarningr�rKrv)r r2rIr��msgr,s     @r#�testPartialWrite�HandlerTests.testPartialWrites�����+��	�	�%�j�1���'�)�]�_�c�j�j�'�J��,��
�
"�
"�#5�s�
;�
�E�E�)��<�����
�
	�<�
;�s�B�
Bc�\^�SS0n[[[4H�mURTS9 "U4SjS5n[	5n[[
5U"5X15nUR[5 URUR55 SSS5 M� g!,(df   M�=f)Nr8r9��	exceptionc�">�\rSrSrU4SjrSrg)�EHandlerTests.testClientConnectionTerminations.<locals>.AbortingWriteri7c�>�Terr2)r r*r;s  �r#r-�KHandlerTests.testClientConnectionTerminations.<locals>.AbortingWriter.write8s���'�r%r2N�r-r.r/r0r-r1r:s�r#�AbortingWriterr=7s
���(�(r%rA)�ConnectionAbortedError�BrokenPipeError�ConnectionResetErrorr�rr
rr�rKr$r\)r rIrArZr�r;s     @r#� testClientConnectionTerminations�-HandlerTests.testClientConnectionTerminations/s����$�j�1��"�� �
�I�
���	��2�(�(�"���!�'�)�^�-=�v�O�����i� �� � ����!2�3�3�2�
�
3�2�s�A&B�
B+	c��^�"SS[5m"U4SjS5n[5nSS0n[[5U"5X#5nUR	[
5 UR
SUR55 URUR5 URUR5 URUR5 URUR5 g)Nc��\rSrSrSrg)�KHandlerTests.testDontResetInternalStateOnException.<locals>.CustomExceptioniBr2Nr�r2r%r#�CustomExceptionrIBr�r%rJc�">�\rSrSrU4SjrSrg)�JHandlerTests.testDontResetInternalStateOnException.<locals>.AbortingWriteriIc�>�Terr2)r r*rJs  �r#r-�PHandlerTests.testDontResetInternalStateOnException.<locals>.AbortingWriter.writeJs	���%�%r%r2Nr@)rJs�r#rArLIs
���
&�
&r%rAr8r9)
r�rr
rr�rKr�r\�assertIsNotNone�resultr�r�rI)r rArZrIr�rJs     @r#�%testDontResetInternalStateOnException�2HandlerTests.testDontResetInternalStateOnExceptionAs����	�j�	�	&�	&����$�j�1���'�)�^�%5�v�G��	���i���
�
�'����):�;�	
���Q�X�X�&����Q�Y�Y�'����Q�X�X�&����Q�Y�Y�'r%c��[5H�nURU5 [5nUR[5 URUS/5 SSS5 [5nUR[5 URSUS4/5 SSS5 [5nUS:wa4UR[5 URSSU4/5 SSS5 OURSSU4/5 SSS5 M� g!,(df   N�=f!,(df   N�=f!,(df   N==f!,(df   GM6=f)NrurBr1r�r*)rr�rr�r�rJ)r r��bases   r#r��(HandlerTests.testRaisesControlCharactersZs���'�)�B����b�!�"�}���&�&�z�2��'�'��Z�L�9�3�#�}���&�&�z�2��'�'��B��9�+�>�3�#�}����:��*�*�:�6��+�+�H��R�y�k�B�7�6��'�'��C��9�+�>�"�!�*�3�2��3�2��7�6��"�!�sR� D1�C>�'D1�:D�-D1�=D �D1�>
D�D1�
D�D1� 
D.�*D1�1
E	r2N)r-r.r/r0�maxDiffr�r�r�r�r�r�r�r
rr"r7rErQr�r1r2r%r#r�r� sQ���G�48�l*�>�A�0�d=�8=�)�V!� =�$�24�$(�2?r%r��__main__)7�unittestrr�r�test.supportrr�test.test_httpserversrr�wsgiref.utilr	�wsgiref.headersr
�wsgiref.handlersrrr
�wsgirefr�wsgiref.validater�wsgiref.simple_serverrrr�http.clientr�iorrr�socketserverr�platformrr�rr�rYr�rr4rKrTrdrnrpr�rsr�r�r�r-�mainr2r%r#�<module>rfs�����=�5��/�#�G�G��&�@�-�&�0�0�#�*�	�	�
�
������
�$�
����"7�*�D�*u@�x�u@�p`:�8�`:�DEh�(�Eh�N

�>�

��,��K?�8�K?�\
�z���M�M�O�r%

Youez - 2016 - github.com/yon3zu
LinuXploit