
    Yf                     p    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d
S )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dS )	UtilTestsz
    Utility tests.
    returnNc                     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                                                                                                                     dS )zJ
        Tracing keeps track of forwarding done by the publisher.
        	log_traceer   Nc                     d S N r   s    O/var/www/html/env/lib/python3.11/site-packages/twisted/logger/test/test_util.pyo1z UtilTests.test_trace.<locals>.o1       D    c                 x                         |                                | d         ffg           d S Nr   assertIsassertEqual)r   eventr   o2	publisherselfs    r   r   z UtilTests.test_trace.<locals>.o2!   sS    MM!U###+OO    r   c                 ~                         |                                | d         fffg           d S r   r   )r   r   r   r   o3r    r!   s    r   r#   z UtilTests.test_trace.<locals>.o3-   sZ    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[    !NN	,,,	\	"	"	( 	t 	 	 	 
#	"	 
\	"	"		( 		t 		 		 		 		 		 		 		 		 		 
#	"		 
\	"	"		( 		t 		 		 		 		 		 		 		 		 		 		 
#	"		 	b!!!b!!!b!!!	%r   c                 6    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}|                    |
||||||	||	  	         |
           dS )z)
        Format trace as string.
        r   r   r   Nc                     d S r   r   r   s    r   r   z&UtilTests.test_formatTrace.<locals>.o1D   r   r   c                     d S r   r   r   s    r   r   z&UtilTests.test_formatTrace.<locals>.o2H   r   r   c                     d S r   r   r   s    r   r#   z&UtilTests.test_formatTrace.<locals>.o3L   r   r   c                     d S r   r   r   s    r   o4z&UtilTests.test_formatTrace.<locals>.o4P   r   r   c                     d S 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                                          |            t          | d                   }                    |           d S r   )r   r	   r   )r   tracer   expectedTracer!   s     r   testObserverz0UtilTests.test_formatTrace.<locals>.testObserver`   sD    MM!U###+//EUM2222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>   s9    ,,,	\	"	"	( 	t 	 	 	 
#	"	 
\	"	"	( 	t 	 	 	 
#	"	 
\	"	"	( 	t 	 	 	 
#	"	 
\	"	"	( 	t 	 	 	 
#	"	 
\	"	"	( 	t 	 	 	 
#	"	 ! 
\	"	"	3H 	3 	3 	3 	3 	3 	3 	3 	3 
#	"	3
 ""b"%%BB..	 	  .44 5 

 

 	Ur   )r   N)__name__
__module____qualname____doc__r&   r:   r   r   r   r   r      sM         ' ' ' 'RM M M M M Mr   r   N)r>   zope.interfacer   twisted.trialr   _interfacesr   r   	_observerr   _utilr	   TestCaser   r   r   r   <module>rE      s     ' & & & & & " " " " " " 0 0 0 0 0 0 0 0 $ $ $ $ $ $      { { { { {! { { { { {r   