a
    )¶(bý  ã                   @   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   ú<lib/python3.9/site-packages/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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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   r    r!   Úp1Úp2ÚoTest)r   r   r   Úformat)r   Ztrace©r   r   r   r   r    r!   r%   r#   r$   r"   r   r   r   ÚtestObserver^   s"    ÿíþz0UtilTests.test_formatTrace.<locals>.testObserverzroot/p1/p2/zroot/p1/zroot/)r   r   r   r   Únamer   )r   r(   r   r'   r   Útest_formatTrace>   s4    
*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   