File: //usr/lib/python3/dist-packages/twisted/internet/test/__pycache__/test_baseprocess.cpython-310.pyc
o
�b
� @ s@ d Z ddlmZ ddlmZmZ ddlmZ G dd� de�ZdS )z�
Tests for L{twisted.internet._baseprocess} which implements process-related
functionality that is useful in all platforms supporting L{IReactorProcess}.
� )�BaseProcess)�getWarningMethod�setWarningMethod)�TestCasec @ s e Zd ZdZdd� Zdd� ZdS )�BaseProcessTestsz�
Tests for L{BaseProcess}, a parent class for other classes which represent
processes which implements functionality common to many different process
implementations.
c C sN G dd� d�}t d�}t|� �}|�|� |jj�t � | �||jjj� dS )z�
L{BaseProcess._callProcessExited} calls the C{processExited} method of
its C{proto} attribute and passes it a L{Failure} wrapping the given
exception.
c @ s e Zd ZdZdd� ZdS )z:BaseProcessTests.test_callProcessExited.<locals>.FakeProtoNc S s
|| _ d S �N)�reason)�selfr � r
�H/usr/lib/python3/dist-packages/twisted/internet/test/test_baseprocess.py�
processExited s
zHBaseProcessTests.test_callProcessExited.<locals>.FakeProto.processExited)�__name__�
__module__�__qualname__r r r
r
r
r � FakeProto s r zfake reasonN)�RuntimeErrorr �_callProcessExited�protor �trap�assertIs�value)r r r �processr
r
r �test_callProcessExited s
z'BaseProcessTests.test_callProcessExitedc s� G dd� d�}t � }t|� �}| �tt� � g � � fdd�}t|� |�|� � \\}}}| �|d|j|jf � | � |t
� | �|d� dS )z�
L{BaseProcess._callProcessExited} emits a L{DeprecationWarning} if the
object referred to by its C{proto} attribute has no C{processExited}
method.
c @ s e Zd ZdS )zABaseProcessTests.test_callProcessExitedMissing.<locals>.FakeProtoN)r
r r r
r
r
r r / s r c s � � | ||f� d S r )�append)�message�category�
stacklevel��warningsr
r �collect8 s z?BaseProcessTests.test_callProcessExitedMissing.<locals>.collectzXSince Twisted 8.2, IProcessProtocol.processExited is required. %s.%s must implement it.r N)�objectr �
addCleanupr r r �assertEqualr r
r �DeprecationWarning)r r r r r r r r r
r r �test_callProcessExitedMissing( s"