U
    jĀ  ć                   @   sZ   d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ G dd	 d	ejZd
S )z)
Test cases for L{twisted.logger._util}.
é    )Śimplementer)Śunittesté   )ŚILogObserverŚLogEvent)ŚLogPublisher)ŚformatTracec                   @   s,   e Zd ZdZddddZddddZdS )Ś	UtilTestsz
    Utility tests.
    N)Śreturnc                    s   t  tg d tttddddtttdd fddtttdd fdd	 ”  ”  ”   dS )
zJ
        Tracing keeps track of forwarding done by the publisher.
        ©Ś	log_traceN©Śer
   c                 S   s   d S ©N© ©r   r   r   śA/tmp/pip-unpacked-wheel-j5h_c8_q/twisted/logger/test/test_util.pyŚo1   s    z UtilTests.test_trace.<locals>.o1c                    s,     |  ”  | d ffg” d S ©Nr   ©ŚassertIsŚassertEqualr   )Śeventr   Śo2Ś	publisherŚselfr   r   r   !   s    žžz UtilTests.test_trace.<locals>.o2c                    s2     |  ”  | d fffg” d S r   r   r   ©r   r   r   Śo3r   r   r   r   r   -   s    żžz UtilTests.test_trace.<locals>.o3)r   Śdictr   r   r   ZaddObserver)r   r   r   r   Ś
test_trace   s    
 


zUtilTests.test_tracec                    s$  t g d tttdddd}tttdddd}tttdddd	}tttddd
d}tttdddd}d|_d|_d|_d|_d|_tttdd fdd}|}t|}t|||}	d|_d|	_t||	||}
d|
_d}|j|
||||||	||d	|
  dS )z)
        Format trace as string.
        r   Nr   c                 S   s   d S r   r   r   r   r   r   r   D   s    z&UtilTests.test_formatTrace.<locals>.o1c                 S   s   d S r   r   r   r   r   r   r   H   s    z&UtilTests.test_formatTrace.<locals>.o2c                 S   s   d S r   r   r   r   r   r   r   L   s    z&UtilTests.test_formatTrace.<locals>.o3c                 S   s   d S r   r   r   r   r   r   Śo4P   s    z&UtilTests.test_formatTrace.<locals>.o4c                 S   s   d S r   r   r   r   r   r   Śo5T   s    z&UtilTests.test_formatTrace.<locals>.o5zroot/o1z
root/p1/o2z
root/p1/o3zroot/p1/p2/o4zroot/o5c                    s(     |  ” t| d } |” d S r   )r   r   r   )r   Śtrace©r   ZexpectedTracer   r   r   ŚtestObserver`   s    z0UtilTests.test_formatTrace.<locals>.testObserverzroot/p1/p2/zroot/p1/zroot/zĘ{root} ({root.name})
  -> {o1} ({o1.name})
  -> {p1} ({p1.name})
    -> {o2} ({o2.name})
    -> {o3} ({o3.name})
    -> {p2} ({p2.name})
      -> {o4} ({o4.name})
  -> {o5} ({o5.name})
  -> {oTest}
)	Śrootr   r   r   r    r!   Śp1Śp2ŚoTest)r   r   r   r   Śnamer   Śformat)r   r   r   r   r    r!   r$   r(   r'   r&   r%   ZexpectedTraceTemplater   r#   r   Śtest_formatTrace>   sN    
’÷zUtilTests.test_formatTrace)Ś__name__Ś
__module__Ś__qualname__Ś__doc__r   r+   r   r   r   r   r	      s   )r	   N)r/   Zzope.interfacer   Ztwisted.trialr   Z_interfacesr   r   Z	_observerr   Z_utilr   ZTestCaser	   r   r   r   r   Ś<module>   s   