HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/twisted/protocols/haproxy/test/__pycache__/test_v1parser.cpython-38.pyc
U


W[V�@sRdZddlmZddlmZddlmZmZmZddl	m
Z
Gdd�dej�Zd	S)
z7
Test cases for L{twisted.protocols.haproxy.V1Parser}.
�)�unittest)�address�)�InvalidProxyHeader�InvalidNetworkProtocol�MissingAddressData)�	_v1parserc@s`eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�
V1ParserTestsz?
    Test L{twisted.protocols.haproxy.V1Parser} behaviour.
    cCs|�ttjjd�dS)zT
        Test that an exception is raised when the PROXY header is missing.
        s	NOTPROXY N)�assertRaisesrr�V1Parser�parse��self�r�N/usr/lib/python3/dist-packages/twisted/protocols/haproxy/test/test_v1parser.py�test_missingPROXYHeaderValues
�z*V1ParserTests.test_missingPROXYHeaderValuecCs|�ttjjd�dS)zX
        Test that an exception is raised when the proto is not TCP or UNKNOWN.
        sPROXY WUTPROTO N)r
rrrrr
rrr�test_invalidNetworkProtocol!s
�z)V1ParserTests.test_invalidNetworkProtocolcCs|�ttjjd�dS)zU
        Test that an exception is raised when the proto has no source data.
        sPROXY TCP4 N�r
rrrrr
rrr�test_missingSourceData,s
�z$V1ParserTests.test_missingSourceDatacCs|�ttjjd�dS)zU
        Test that an exception is raised when the proto has no destination.
        sPROXY TCP4 127.0.0.1 8080 8888Nrr
rrr�test_missingDestData7s
�z"V1ParserTests.test_missingDestDatacCs`tj�d�}|�|jtj�|�|jjd�|�|jj	d�|�|j
jd�|�|j
j	d�dS)zE
        Test that parsing is successful for a PROXY header.
        s(PROXY TCP4 127.0.0.1 127.0.0.1 8080 8888�	127.0.0.1��"N)rrr�assertIsInstance�sourcer�IPv4Address�assertEqual�host�port�destination�r�inforrr�test_fullParsingSuccessBs�z%V1ParserTests.test_fullParsingSuccesscCs`tj�d�}|�|jtj�|�|jjd�|�|jj	d�|�|j
jd�|�|j
j	d�dS)zK
        Test that parsing is successful for an IPv6 PROXY header.
        sPROXY TCP6 ::1 ::1 8080 8888s::1rrN)rrrrrrZIPv6Addressrrrrr rrr�test_fullParsingSuccess_IPv6Ps�z*V1ParserTests.test_fullParsingSuccess_IPv6cCs(tj�d�}|�|j�|�|j�dS)zM
        Test that parsing is successful for a UNKNOWN PROXY header.
        s$PROXY UNKNOWN anything could go hereN)rrrZassertIsNonerrr rrr�test_fullParsingSuccess_UNKNOWN^s
�z-V1ParserTests.test_fullParsingSuccess_UNKNOWNcCs�t��}|�d�\}}|�|�|�|�|�d�\}}|�|�|�|�|�d�\}}|�|�|�|jtj�|�|jj	d�|�|jj
d�|�|jj	d�|�|jj
d�dS)zE
        Test that parsing happens when fed a complete line.
        �PROXY TCP4 127.0.0.1 127.0.0.1 �	8080 8888s
rrrN)rr�feed�assertFalserrrrrrrr�r�parserr!Z	remainingrrr�test_feedParsingis




zV1ParserTests.test_feedParsingcCs`t��}|�d�\}}|�|�|�|�|�d�\}}|�|�|�|�|�t|jd�dS)zN
        Test that parsing fails if no newline is found in 108 bytes.
        r%r&sd                                                                                                    N)rrr'r(r
rr)rrr�test_feedParsingTooLong}s



�z%V1ParserTests.test_feedParsingTooLongcCs<t��}|�d�\}}|�|�|�|d�|�|j�dS)zH
        Test that parsing leaves overflow bytes in the buffer.
        s:PROXY TCP4 127.0.0.1 127.0.0.1 8080 8888
HTTP/1.1 GET /
sHTTP/1.1 GET /
N)rrr'Z
assertTruerr(�bufferr)rrr�test_feedParsingOverflow�s�
z&V1ParserTests.test_feedParsingOverflowN)�__name__�
__module__�__qualname__�__doc__rrrrr"r#r$r+r,r.rrrrr	sr	N)
r2Z
twisted.trialrZtwisted.internetr�_exceptionsrrr�rZTestCaser	rrrr�<module>s