U
    2ÜŸ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-4b529toj/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   