U
    
W[o
  ã                   @   s>   d Z ddl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}.
é    )Úunittesté   )ÚLogPublisher)ÚformatTracec                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú	UtilTestsz
    Utility tests.
    c                    sl   t ƒ ‰tg d‰ dd„ ‰‡ ‡‡‡‡fdd„‰‡ ‡‡‡‡‡fdd„‰ˆ ˆ¡ ˆ ˆ¡ ˆ ˆ¡ ˆˆ ƒ dS )	zJ
        Tracing keeps track of forwarding done by the publisher.
        ©Ú	log_tracec                 S   s   d S ©N© ©Úer
   r
   ú?/usr/lib/python3/dist-packages/twisted/logger/test/test_util.pyÚ<lambda>   ó    z&UtilTests.test_trace.<locals>.<lambda>c                    s,   ˆ  | ˆ ¡ ˆ | d ˆˆfˆˆfg¡ d S ©Nr   ©ÚassertIsÚassertEqualr   )ÚeventÚo1Ú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>.o3N)r   ÚdictZaddObserver)r   r
   r   r   Ú
test_trace   s    



zUtilTests.test_tracec                    s¬   t g d‰ dd„ }|||||f\‰‰‰‰‰dˆ_dˆ_dˆ_dˆ_dˆ_‡ ‡‡‡‡‡‡‡‡‡	‡
fd	d
„}|‰tˆƒ‰tˆˆˆƒ‰dˆ_dˆ_tˆˆˆˆƒ‰	dˆ	_ˆ	ˆ ƒ dS )z)
        Format trace as string.
        r   c                 S   s   d S r	   r
   r   r
   r
   r   ÚnoOp@   s    z(UtilTests.test_formatTrace.<locals>.noOpzroot/o1z
root/p1/o2z
root/p1/o3zroot/p1/p2/o4zroot/o5c                    s@   ˆ
  | ˆ ¡ t| d ƒ}ˆ
 |djˆ	ˆˆˆˆˆˆˆˆd	¡ d S )Nr   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   Úo4Úo5Úp1Úp2ÚoTest)r   r   r   Úformat)r   Ztrace©r   r   r   r   r   r    r#   r!   r"   r   r   r
   r   ÚtestObserverK   s"    ÿ     òþz0UtilTests.test_formatTrace.<locals>.testObserverzroot/p1/p2/zroot/p1/zroot/N)r   Únamer   )r   r   r&   r
   r%   r   Útest_formatTrace:   s"    
 zUtilTests.test_formatTraceN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r(   r
   r
   r
   r   r      s   &r   N)	r,   Ztwisted.trialr   Z	_observerr   Z_utilr   ZTestCaser   r
   r
   r
   r   Ú<module>   s   