o
    >h                     @   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   }/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-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                    s0  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}|j|
||||||	||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 S r   )r   r   r   )r   tracer   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(   expectedTraceTemplater   r%   r   test_formatTrace>   sN   
zUtilTests.test_formatTrace)r
   N)__name__
__module____qualname____doc__r!   r/   r   r   r   r   r	      s    
)r	   N)r3   zope.interfacer   twisted.trialr   _interfacesr   r   	_observerr   _utilr   TestCaser	   r   r   r   r   <module>   s   