o
    ―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ZdddZdS )	Ϊ	UtilTestsz
    Utility tests.
    ΪreturnNc                    s’   t  tg d ttdtddfddttdtddf fddttdtddf fd	d
 ‘  ‘  ‘   dS )zJ
        Tracing keeps track of forwarding done by the publisher.
        ©Ϊ	log_traceΪer
   Nc                 S   σ   d S ©N© ©r   r   r   ϊ?/usr/lib/python3/dist-packages/twisted/logger/test/test_util.pyΪo1   σ   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   ΪaddObserver)r   r   r   r   Ϊ
test_trace   s   
 "


zUtilTests.test_tracec                    s   t g d ttdtddfddttdtddfddttdtddfd	d
ttdtddfddttdtddfddd_d_d_d_d_ttdtddf 	
fdd}|ttd_d_t	d	_	  dS )z)
        Format trace as string.
        r   r   r
   Nc                 S   r   r   r   r   r   r   r   r   D   r   z&UtilTests.test_formatTrace.<locals>.o1c                 S   r   r   r   r   r   r   r   r   H   r   z&UtilTests.test_formatTrace.<locals>.o2c                 S   r   r   r   r   r   r   r   r   L   r   z&UtilTests.test_formatTrace.<locals>.o3c                 S   r   r   r   r   r   r   r   Ϊo4P   r   z&UtilTests.test_formatTrace.<locals>.o4c                 S   r   r   r   r   r   r   r   Ϊo5T   r   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   Ϊ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)r
   N)Ϊ__name__Ϊ
__module__Ϊ__qualname__Ϊ__doc__r!   r-   r   r   r   r   r	      s    
)r	   N)r1   Ϊzope.interfacer   Ϊtwisted.trialr   Ϊ_interfacesr   r   Ϊ	_observerr   Ϊ_utilr   ΪTestCaser	   r   r   r   r   Ϊ<module>   s   