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: //usr/lib/python3/dist-packages/twisted/web/test/__pycache__/test_http_headers.cpython-38.pyc
U


W[�O�@s`dZddlmZmZddlmZddlmZmZddl	m
Z
Gdd�de�ZGdd	�d	e�Zd
S)z(
Tests for L{twisted.web.http_headers}.
�)�division�absolute_import)�TestCase)�_PY3�unicode)�Headersc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*S)+�BytesHeadersTestszE
    Tests for L{Headers}, using L{bytes} arguments for methods.
    cCs&tddgi�}|�|�d�dg�dS)zx
        The header values passed to L{Headers.__init__} can be retrieved via
        L{Headers.getRawHeaders}.
        �Foo�bar�fooN�r�assertEqual�
getRawHeaders��self�h�r�D/usr/lib/python3/dist-packages/twisted/web/test/test_http_headers.py�test_initializersz"BytesHeadersTests.test_initializercCsPddg}t�}|�d|�|�|�d��|�|�d��|�|�d�|�dS)z�
        L{Headers.setRawHeaders} sets the header values for the given
        header name to the sequence of byte string values.
        �value1�value2�test�TestN�r�
setRawHeaders�
assertTrue�	hasHeaderr
r)r�rawValuerrrr�test_setRawHeaderssz$BytesHeadersTests.test_setRawHeaderscCs t�}|�t|jdddi�dS)�N
        L{Headers.setRawHeaders} requires values to be of type list.
        �keyr	r
N�r�assertRaises�	TypeErrorrrrrr�test_rawHeadersTypeChecking(sz-BytesHeadersTests.test_rawHeadersTypeCheckingcCsLt�}|�dd�|�|�d�dg�|�dd�|�|�d�ddg�dS)�N
        L{Headers.addRawHeader} adds a new value for a given header.
        r�lemur�pandaN�r�addRawHeaderr
rrrrr�test_addRawHeader0s
z#BytesHeadersTests.test_addRawHeadercCs|�t��d��dS)�z
        L{Headers.getRawHeaders} returns L{None} if the header is not found and
        no default is specified.
        rN�ZassertIsNonerr�rrrr�test_getRawHeadersNoDefault;sz-BytesHeadersTests.test_getRawHeadersNoDefaultcCs$t�}t�}|�|�d|�|�dS)�o
        L{Headers.getRawHeaders} returns the specified default value when no
        header is found.
        rN)r�object�assertIdenticalr�rr�defaultrrr�test_getRawHeadersDefaultValueCsz0BytesHeadersTests.test_getRawHeadersDefaultValuecCsJt�}dg}|�d|�|�|�d|�dt�|�|�d|�dg�dS)z�
        If the object passed as the value list to L{Headers.setRawHeaders}
        is later passed as a default to L{Headers.getRawHeaders}, the
        result nevertheless contains encoded values.
        �valuer r�valueN)rr�assertIsInstancer�bytesr
r2rrr�*test_getRawHeadersWithDefaultMatchingValueMs
z<BytesHeadersTests.test_getRawHeadersWithDefaultMatchingValuecCs@t�}|�ddg�|�|�d�dg�|�|�d�dg�dS)�m
        L{Headers.getRawHeaders} returns the values which have been set for a
        given header.
        rr&rN�rrr
rrrrr�test_getRawHeadersZsz$BytesHeadersTests.test_getRawHeaderscCs8t�}|�ddg�|�|�d��|�|�d��dS)�i
        Check that L{Headers.hasHeader} returns C{True} when the given header
        is found.
        rr&rN�rrrrrrrr�test_hasHeaderTrueesz$BytesHeadersTests.test_hasHeaderTruecCs|�t��d��dS)�c
        L{Headers.hasHeader} returns C{False} when the given header is not
        found.
        rN��assertFalserrr-rrr�test_hasHeaderFalsepsz%BytesHeadersTests.test_hasHeaderFalsecCszt�}|�ddg�|�|�d��|�d�|�|�d��|�ddg�|�|�d��|�d�|�|�d��dS)�N
        Check that L{Headers.removeHeader} removes the given header.
        rr&r
r'sBarN�rrrr�removeHeaderrBrrrr�test_removeHeaderxs

z#BytesHeadersTests.test_removeHeadercCs(t�}|�d�|�t|���g�dS)�k
        L{Headers.removeHeader} is a no-operation when the specified header is
        not found.
        rN�rrFr
�list�getAllRawHeadersrrrr�test_removeHeaderDoesntExist�s
z.BytesHeadersTests.test_removeHeaderDoesntExistcCs�t�}|�|�d�d�|�|�d�d�|�|�d�d�|�|�d�d�|�|�d	�d
�|�|�d�d�|�|�d
�d�|�|�d�d�|�|�d�d�dS)zr
        L{Headers._canonicalNameCaps} returns the canonical capitalization for
        the given header.
        rrs
test-stuffs
Test-Stuffscontent-md5�Content-MD5sdntsDNTsetagsETagsp3psP3PstesTE�www-authenticate�WWW-Authenticatesx-xss-protectionsX-XSS-ProtectionN)rr
Z_canonicalNameCapsrrrr�test_canonicalNameCaps�s��z(BytesHeadersTests.test_canonicalNameCapscCsPt�}|�ddg�|�ddg�tdd�|��D��}|�|tddg��d	S)
��
        L{Headers.getAllRawHeaders} returns an iterable of (k, v) pairs, where
        C{k} is the canonicalized representation of the header name, and C{v}
        is a sequence of values.
        r�lemursrN�basic aksljdlk=cSsg|]\}}|t|�f�qSr��tuple��.0�k�vrrr�
<listcomp>�sz;BytesHeadersTests.test_getAllRawHeaders.<locals>.<listcomp>�rO)rS)r�rRN�rr�setrKr
�rrZ
allHeadersrrr�test_getAllRawHeaders�s��z'BytesHeadersTests.test_getAllRawHeaderscCsft�}|�ddg�t�}|�ddg�t�}|�dddg�|�||�|�||�|�||�dS)��
        A L{Headers} instance compares equal to itself and to another
        L{Headers} instance with the same values.
        rr'r&N�rrr
�assertNotEqual)r�first�second�thirdrrr�test_headersComparison�sz(BytesHeadersTests.test_headersComparisoncCs0t�}|�|d�|�|t��|�|d�dS)�f
        An instance of L{Headers} does not compare equal to other unrelated
        objects.
        rrN�rrcr0rrrr�test_otherComparison�sz&BytesHeadersTests.test_otherComparisoncCs6d}d}d}|�tt|||gi��d|||f�dS)zy
        The L{repr} of a L{Headers} instance shows the names and values of all
        the headers it contains.
        rr
�baz�Headers({%r: [%r, %r]})N�r
�reprr�r�foo�bar�bazrrr�	test_repr�s�zBytesHeadersTests.test_reprcCs6d}d}d}|�tt|||gi��d|||f�dS)z�
        The L{repr} of a L{Headers} instance shows the names and values of all
        the headers it contains, not attempting to decode any raw bytes.
        rsbar�sbaz�rlNrmrorrr�test_reprWithRawBytes�s�z'BytesHeadersTests.test_reprWithRawBytescCsFd}d}d}Gdd�dt�}|�t||||gi��d|||f�dS)��
        The L{repr} of an instance of a subclass of L{Headers} uses the name
        of the subclass instead of the string C{"Headers"}.
        rr
rkc@seZdZdS)z9BytesHeadersTests.test_subclassRepr.<locals>.FunnyHeadersN��__name__�
__module__�__qualname__rrrr�FunnyHeaders�srzzFunnyHeaders({%r: [%r, %r]})N)rr
rn)rrprqrrrzrrr�test_subclassRepr�s�z#BytesHeadersTests.test_subclassReprcCsvt�}|�ddg�|��}|�|�d�dg�|�dd�|�|�d�dg�|�dd�|�|�d�ddg�dS)��
        L{Headers.copy} creates a new independent copy of an existing
        L{Headers} instance, allowing future modifications without impacts
        between the copies.
        rrr
rkN�rr�copyr
rr)�rr�irrr�	test_copy�szBytesHeadersTests.test_copyN)rwrxry�__doc__rrr$r*r.r4r9r<r?rCrGrLrPr`rgrjrsrtr{r�rrrrrs*	




rc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,S)-�UnicodeHeadersTestszG
    Tests for L{Headers}, using L{unicode} arguments for methods.
    cCs:tddgi�}|�|�d�dg�|�|�d�dg�dS)aK
        The header values passed to L{Headers.__init__} can be retrieved via
        L{Headers.getRawHeaders}. If a L{bytes} argument is given, it returns
        L{bytes} values, and if a L{unicode} argument is given, it returns
        L{unicode} values. Both are the same header value, just encoded or
        decoded.
        �Foorqrr
rpNrrrrrrsz$UnicodeHeadersTests.test_initializercCs�ddg}ddg}t�}|�d|�|�|�d��|�|�d��|�|�d��|�|�d��|�|�d�|�|�|�d�|�d	S)
z�
        L{Headers.setRawHeaders} sets the header values for the given
        header name to the sequence of strings, encoded.
        Zvalue1Zvalue2rr�testrrZTestNr)rrZrawEncodedValuerrrrr!sz&UnicodeHeadersTests.test_setRawHeadersc	CsNt�}|�t��|�ddg�W5QRX|�t��|�d�W5QRXdS)z�
        Passing L{unicode} to any function that takes a header name will encode
        said header name as ISO-8859-1, and if it cannot be encoded, it will
        raise a L{UnicodeDecodeError}.
        �☃�valN)rr"�UnicodeEncodeErrorrrrrrr�test_nameNotEncodable2s
z)UnicodeHeadersTests.test_nameNotEncodablecCsLt�}|�ddg�|�|�d��|�|�d�dg�|�|�d��dS)z�
        Passing L{unicode} to any function that takes a header name will encode
        said header name as ISO-8859-1.
        �ár��Nrrrrr�test_nameEncodingBs
z%UnicodeHeadersTests.test_nameEncodingcCs@t�}|�dddg�|�|�d��|�|�d�ddg�dS)z�
        Passing L{unicode} to L{Headers.setRawHeaders} will encode the name as
        ISO-8859-1 and values as UTF-8.
        r�r�rr�s☃Nrrrrr�test_rawHeadersValueEncodingTsz0UnicodeHeadersTests.test_rawHeadersValueEncodingcCs t�}|�t|jdddi�dS)r�keyr�rqNr!rrrrr$_sz/UnicodeHeadersTests.test_rawHeadersTypeCheckingcCsbt�}|�dd�|�|�d�dg�|�dd�|�|�d�ddg�|�|�d�ddg�dS)r%r��lemur�pandarr&r'Nr(rrrrr*gsz%UnicodeHeadersTests.test_addRawHeadercCs|�t��d��dS)r+r�Nr,r-rrrr.ssz/UnicodeHeadersTests.test_getRawHeadersNoDefaultcCsht�}t�}|�|�d|�|�|�|�dd�d�|�|�ddg�dg�|�|�ddg�dg�dS)r/r�Nr�)rr0r1rr
r2rrrr4{s�z2UnicodeHeadersTests.test_getRawHeadersDefaultValuecCsJt�}dg}|�d|�|�|�d|�dt�|�|�d|�dg�dS)z�
        If the object passed as the value list to L{Headers.setRawHeaders}
        is later passed as a default to L{Headers.getRawHeaders}, the
        result nevertheless contains decoded values.
        r6r r�rr5N)rrr7rrr
r2rrrr9�s
z>UnicodeHeadersTests.test_getRawHeadersWithDefaultMatchingValuecCsht�}|�ddg�|�|�d�dg�|�|�d�dg�|�|�d�dg�|�|�d�dg�dS)r:�testár��Testá�test�r&�Test�Nr;rrrrr<�sz&UnicodeHeadersTests.test_getRawHeaderscCsXt�}|�ddg�|�|�d��|�|�d��|�|�d��|�|�d��dS)r=r�r�r�r�r�Nr>rrrrr?�sz&UnicodeHeadersTests.test_hasHeaderTruecCs|�t��d��dS)r@r�NrAr-rrrrC�sz'UnicodeHeadersTests.test_hasHeaderFalsecCs�t�}|�ddg�|�|�d��|�d�|�|�d��|�|�d��|�ddg�|�|�d��|�d�|�|�d��|�|�d��dS)	rDrpr�rrqr�ZBarr
NrErrrrrG�s

z%UnicodeHeadersTests.test_removeHeadercCs(t�}|�d�|�t|���g�dS)rHr�NrIrrrrrL�s
z0UnicodeHeadersTests.test_removeHeaderDoesntExistcCs`t�}|�ddg�|�ddg�|�ddg�tdd�|��D��}|�|td	d
dg��dS)
rQr�Zlemurszwww-authenticatezbasic aksljdlk=zcontent-md5Z
kjdfdfgdfgnsdcSsg|]\}}|t|�f�qSrrTrVrrrrZ�sz=UnicodeHeadersTests.test_getAllRawHeaders.<locals>.<listcomp>r[)rM)s
kjdfdfgdfgnsd)r�r\Nr]r_rrrr`�s��z)UnicodeHeadersTests.test_getAllRawHeaderscCs�t�}|�ddg�t�}|�ddg�t�}|�dddg�|�||�|�||�|�||�t�}|�ddg�t�}|�ddg�t�}|�dddg�|�||�|�||�|�||�dS)ra�fooár�r�sfoo�r'r&Nrb)rrdrerfZ
firstBytesZsecondBytesZ
thirdBytesrrrrg�s$z*UnicodeHeadersTests.test_headersComparisoncCs0t�}|�|d�|�|t��|�|d�dS)rhrrpNrirrrrrjsz(UnicodeHeadersTests.test_otherComparisonc	CsXd}d}d}d}d}tr(d|}d|}|�tt|||gi��d|||�d�f�d	S)
z�
        The L{repr} of a L{Headers} instance shows the names and values of all
        the headers it contains. This shows only reprs of bytes values, as
        undecodable headers may cause an exception.
        r��bar☃rr�	'foo\xe1'�'bar\xe2\x98\x83'�bzHeaders({%s: [%s, %r]})�utf8N)rr
rnr�encode)rrprqrr�
fooEncoded�
barEncodedrrrrss��zUnicodeHeadersTests.test_reprc	Cshd}d}d}d}d}tr(d|}d|}Gdd�dt�}|�t||||gi��d	|||�d
�f�dS)rur�r�rrr�r�r�c@seZdZdS)z;UnicodeHeadersTests.test_subclassRepr.<locals>.FunnyHeadersNrvrrrrrz4srzzFunnyHeaders({%s: [%s, %r]})r�N)rrr
rnr�)rrprqrrr�r�rzrrrr{'s ��z%UnicodeHeadersTests.test_subclassReprcCs�t�}|�ddg�|��}|�|�d�dg�|�|�d�dg�|�dd�|�|�d�dg�|�|�d�dg�|�dd�|�|�d�ddg�|�|�d�ddg�dS)	r|r�ufoo☃r�sfoo☃rqrkr
Nr}rrrrr�=s"��zUnicodeHeadersTests.test_copyN)rwrxryr�rrr�r�r�r$r*r.r4r9r<r?rCrGrLr`rgrjrsr{r�rrrrr�s,




r�N)
r�Z
__future__rrZtwisted.trial.unittestrZtwisted.python.compatrrZtwisted.web.http_headersrrr�rrrr�<module>s