
    Vh                     r    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	ej                        Zy
)z)
Test cases for L{twisted.logger._util}.
    )implementer)unittest   )ILogObserverLogEvent)LogPublisher)formatTracec                        e Zd ZdZddZddZy)	UtilTestsz
    Utility tests.
    Nc                     t               t        g       t        t              dt        ddfd       t        t              dt        ddf fd       t        t              dt        ddf fd       j                         j                         j                                 y)zJ
        Tracing keeps track of forwarding done by the publisher.
        	log_traceereturnNc                      y N r   s    M/home/dcms/DCMS/lib/python3.12/site-packages/twisted/logger/test/test_util.pyo1z UtilTests.test_trace.<locals>.o1           c                 `    j                  |        j                  | d   ffg       y Nr   assertIsassertEqual)r   eventr   o2	publisherselfs    r   r   z UtilTests.test_trace.<locals>.o2!   s9    MM!U#+OOr   c                 f    j                  |        j                  | d   fffg       y r   r   )r   r   r   r   o3r    r!   s    r   r#   z UtilTests.test_trace.<locals>.o3-   s@    MM!U#+OOOr   )r   dictr   r   r   addObserver)r!   r   r   r   r#   r    s   `@@@@@r   
test_tracezUtilTests.test_trace   s     !N	,	\	"	( 	t 	 
#	 
\	"		( 		t 		 		 
#		 
\	"		( 		t 		 		 
#		 	b!b!b!%r   c                     t        g       t        t              dt        ddfd       }t        t              dt        ddfd       }t        t              dt        ddfd       }t        t              dt        ddfd       }t        t              dt        ddfd	       }d
|_        d|_        d|_        d|_        d|_        t        t              dt        ddf fd       }|}t        |      }t        |||      }	d|_        d|	_        t        ||	||      }
d|
_        d}|j                  |
||||||	||	       |
       y)z)
        Format trace as string.
        r   r   r   Nc                      y r   r   r   s    r   r   z&UtilTests.test_formatTrace.<locals>.o1D   r   r   c                      y r   r   r   s    r   r   z&UtilTests.test_formatTrace.<locals>.o2H   r   r   c                      y r   r   r   s    r   r#   z&UtilTests.test_formatTrace.<locals>.o3L   r   r   c                      y r   r   r   s    r   o4z&UtilTests.test_formatTrace.<locals>.o4P   r   r   c                      y r   r   r   s    r   o5z&UtilTests.test_formatTrace.<locals>.o5T   r   r   zroot/o1z
root/p1/o2z
root/p1/o3zroot/p1/p2/o4zroot/o5c                 j    j                  |        t        | d         }j                  |       y r   )r   r	   r   )r   tracer   expectedTracer!   s     r   testObserverz0UtilTests.test_formatTrace.<locals>.testObserver`   s/    MM!U#+/EUM2r   z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.   r2   r6   r5   r4   r3   expectedTraceTemplater   r1   s   `           @@r   test_formatTracezUtilTests.test_formatTrace>   s    ,	\	"	( 	t 	 
#	 
\	"	( 	t 	 
#	 
\	"	( 	t 	 
#	 
\	"	( 	t 	 
#	 
\	"	( 	t 	 
#	 ! 
\	"	3H 	3 	3 
#	3
 ""b"%BB.	 	  .44 5 

 	Ur   )r   N)__name__
__module____qualname____doc__r&   r:   r   r   r   r   r      s    'RMr   r   N)r>   zope.interfacer   twisted.trialr   _interfacesr   r   	_observerr   _utilr	   TestCaser   r   r   r   <module>rE      s/    ' " 0 $ {!! {r   