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/logger/test/__pycache__/test_observer.cpython-38.pyc
U


W[��@sZdZddlmZmZddlmZddlmZddlm	Z	ddlm
Z
Gdd	�d	ej�Zd
S)z-
Test cases for L{twisted.logger._observer}.
�)�verifyObject�BrokenMethodImplementation)�unittest�)�Logger)�ILogObserver)�LogPublisherc@s`eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�LogPublisherTestsz$
    Tests for L{LogPublisher}.
    c
CsFt�}ztt|�Wn,tk
r@}z|�|�W5d}~XYnXdS)z8
        L{LogPublisher} is an L{ILogObserver}.
        N)rrrrZfail)�self�	publisher�e�r
�C/usr/lib/python3/dist-packages/twisted/logger/test/test_observer.py�test_interfaces
z LogPublisherTests.test_interfacecCs8dd�}dd�}t||�}|�t||f�t|j��dS)zB
        L{LogPublisher.observers} returns the observers.
        cSsdS�Nr
�rr
r
r�<lambda>&�z2LogPublisherTests.test_observers.<locals>.<lambda>cSsdSrr
rr
r
rr'rN)r�assertEqual�set�
_observers)r
�o1�o2rr
r
r�test_observers"s
z LogPublisherTests.test_observerscCsLdd�}dd�}dd�}t||�}|�|�|�t|||f�t|j��dS)z?
        L{LogPublisher.addObserver} adds an observer.
        cSsdSrr
rr
r
rr1rz4LogPublisherTests.test_addObserver.<locals>.<lambda>cSsdSrr
rr
r
rr2rcSsdSrr
rr
r
rr3rN)r�addObserverrrr�r
rr�o3rr
r
r�test_addObserver-s

z"LogPublisherTests.test_addObservercCst�}|�t|jt��dS)ze
        L{LogPublisher.addObserver} refuses to add an observer that's
        not callable.
        N)rZassertRaises�	TypeErrorr�object)r
rr
r
r�test_addObserverNotCallable:sz-LogPublisherTests.test_addObserverNotCallablecCsLdd�}dd�}dd�}t|||�}|�|�|�t||f�t|j��dS)zE
        L{LogPublisher.removeObserver} removes an observer.
        cSsdSrr
rr
r
rrGrz7LogPublisherTests.test_removeObserver.<locals>.<lambda>cSsdSrr
rr
r
rrHrcSsdSrr
rr
r
rrIrN�rZremoveObserverrrrrr
r
r�test_removeObserverCs
z%LogPublisherTests.test_removeObservercCsJdd�}dd�}dd�}t||�}|�|�|�t||f�t|j��dS)zd
        L{LogPublisher.removeObserver} removes an observer that is not
        registered.
        cSsdSrr
rr
r
rrUrzDLogPublisherTests.test_removeObserverNotRegistered.<locals>.<lambda>cSsdSrr
rr
r
rrVrcSsdSrr
rr
r
rrWrNr!rr
r
r� test_removeObserverNotRegisteredPs

z2LogPublisherTests.test_removeObserverNotRegisteredcsxtddd�}g�g�g��fdd�}�fdd�}�fdd�}t|||�}||�|�|��|�|��|�|��dS)	z6
        L{LogPublisher} calls its observers.
        �r��foo�barcs
��|�Sr��appendr)�events1r
rrhrz/LogPublisherTests.test_fanOut.<locals>.<lambda>cs
��|�Srr(r)�events2r
rrircs
��|�Srr(r)�events3r
rrjrN)�dictr�assertIn)r
�eventrrrrr
)r*r+r,r�test_fanOut^szLogPublisherTests.test_fanOutcs�tddd�}td��g���fdd�}g}t||j�}||�|�|��dd�|D�}|�t|�d�|�|d	j��|�t��d�d
S)z}
        Observer raises an exception during fan out: a failure is logged, but
        not re-raised.  Life goes on.
        r$rr%�ARGH! EVIL DEATH!cs�}��|�|r��dSrr()r/ZshouldRaise�Zevents�	exceptionr
r�observer}s
z7LogPublisherTests.test_observerRaises.<locals>.observercSsg|]}d|kr|d�qS)Zlog_failurer
)�.0rr
r
r�
<listcomp>�s�z9LogPublisherTests.test_observerRaises.<locals>.<listcomp>rN)	r-�RuntimeErrorrr)r.r�lenZassertIs�value)r
r/r4Z	collectorr�errorsr
r2r�test_observerRaisesss�z%LogPublisherTests.test_observerRaisescsLtddd�}td��dd�}G�fdd�dt�}t|�}|�|_||�d	S)
z�
        Observer raises an exception during fan out and the publisher's Logger
        pukes when the failure is reported.  The exception does not propagate
        back to the caller.
        r$rr%r1cSstd��dS)Nz	Sad panda)r7)r/r
r
rr4�szGLogPublisherTests.test_observerRaisesAndLoggerHatesMe.<locals>.observercseZdZ�fdd�ZdS)zILogPublisherTests.test_observerRaisesAndLoggerHatesMe.<locals>.GurkLoggercs��dSrr
)r
�args�kwargs�r3r
r�failure�szQLogPublisherTests.test_observerRaisesAndLoggerHatesMe.<locals>.GurkLogger.failureN)�__name__�
__module__�__qualname__r?r
r>r
r�
GurkLogger�srCN)r-r7rr�log)r
r/r4rCrr
r>r�#test_observerRaisesAndLoggerHatesMe�sz5LogPublisherTests.test_observerRaisesAndLoggerHatesMecsrtddgd�}i��fdd�}�fdd�}t||�}||�|��d||ff�|��d||f||ff�dS)zA
        Tracing keeps track of forwarding to observers.
        r$r)r&r'�	log_tracecs��dt|d��S)Nr$rF��
setdefault�tupler�Ztracesr
rr�rz.LogPublisherTests.test_trace.<locals>.<lambda>cs��dt|d��S)NrrFrGrrJr
rr�rN)r-rr)r
r/rrrr
rJr�
test_trace�s
zLogPublisherTests.test_traceN)r@rArB�__doc__rrrr r"r#r0r;rErKr
r
r
rr	s
	
#r	N)
rLZzope.interface.verifyrrZ
twisted.trialrZ_loggerrZ	_observerrrZTestCaser	r
r
r
r�<module>s