File manager - Edit - /usr/lib/python3/dist-packages/twisted/web/test/__pycache__/injectionhelpers.cpython-310.pyc
Back
o �b� � @ sX d Z ddlZeedd��eeejd�� Zeedd��ZG dd� d�ZG dd � d �Z dS ) zF Helpers for URI and method injection tests. @see: U{CVE-2019-12387} � N� �ascii� c @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd S )�MethodInjectionTestsMixina9 A mixin that runs HTTP method injection tests. Define L{MethodInjectionTestsMixin.attemptRequestWithMaliciousMethod} in a L{twisted.trial.unittest.SynchronousTestCase} subclass to test how HTTP client code behaves when presented with malicious HTTP methods. @see: U{CVE-2019-12387} c C � t � �)z� Attempt to send a request with the given method. This should synchronously raise a L{ValueError} if either is invalid. @param method: the method (e.g. C{GET }) @param uri: the URI @type method: ��NotImplementedError��self�method� r �C/usr/lib/python3/dist-packages/twisted/web/test/injectionhelpers.py�!attemptRequestWithMaliciousMethod s z;MethodInjectionTestsMixin.attemptRequestWithMaliciousMethodc C �N | � t��}d}| �|� W d � n1 sw Y | �t|j�d� dS )z� Issuing a request with a method that contains a carriage return and line feed fails with a L{ValueError}. s GET X-Injected-Header: valueN�^Invalid method)�assertRaises� ValueErrorr �assertRegex�str� exception)r �cmr r r r �test_methodWithCLRFRejected( � �z5MethodInjectionTestsMixin.test_methodWithCLRFRejectedc C �d t D ]-}dt|g�f }| �t�� }| �|� W d � n1 s!w Y | �t|j�d� qdS )z� Issuing a request with a method that contains unprintable ASCII characters fails with a L{ValueError}. � GET%sNr )�UNPRINTABLE_ASCII� bytearrayr r r r r r �r �cr r r r r �'test_methodWithUnprintableASCIIRejected2 � ��zAMethodInjectionTestsMixin.test_methodWithUnprintableASCIIRejectedc C r )zx Issuing a request with a method that contains non-ASCII characters fails with a L{ValueError}. r Nr )�NONASCIIr r r r r r r r r r r �test_methodWithNonASCIIRejected= r z9MethodInjectionTestsMixin.test_methodWithNonASCIIRejectedN)�__name__� __module__�__qualname__�__doc__r r r r"