ϪfrdZddlmZddlmZddlmZmZddlm Z ddl m Z Gdd ejZ y ) z) Test cases for L{twisted.logger._util}. ) implementer)unittest) ILogObserverLogEvent) LogPublisher) formatTracec eZdZdZddZddZy) UtilTestsz Utility tests. Ncttgttdtddfdttdtddffd ttdtddffd j j j y)zJ Tracing keeps track of forwarding done by the publisher.  log_traceereturnNcyNrs ?/usr/lib/python3/dist-packages/twisted/logger/test/test_util.pyo1z UtilTests.test_trace..o1 c`j|j|dffgyNrassertIs assertEqual)reventro2 publisherselfs rrz UtilTests.test_trace..o2!s9 MM!U #   +OO rcfj|j|dfffgyrr)rrrro3r r!s rr#z UtilTests.test_trace..o3-s@ MM!U #   +OOO r)rdictrrr addObserver)r!rrrr#r s`@@@@@r test_tracezUtilTests.test_traces!N , \ " ( t  #  \ " ( t   #  \ " ( t   #  b!b!b!%rc  tg ttdtddfd}ttdtddfd}ttdtddfd}ttdtddfd}ttdtddfd }d |_d |_d |_d |_d|_ttdtddf fd }|}t |}t |||} d|_d| _t || ||} d| _d} | j | |||||| || | y)z) Format trace as string. r rrNcyrrrs rrz&UtilTests.test_formatTrace..o1Drrcyrrrs rrz&UtilTests.test_formatTrace..o2Hrrcyrrrs rr#z&UtilTests.test_formatTrace..o3Lrrcyrrrs ro4z&UtilTests.test_formatTrace..o4Prrcyrrrs ro5z&UtilTests.test_formatTrace..o5Trrzroot/o1z root/p1/o2z root/p1/o3z root/p1/p2/o4zroot/o5cjj|t|d}j|yr)rr r)rtracer expectedTracer!s r testObserverz0UtilTests.test_formatTrace..testObserver`s/ MM!U #+/E   UM 2rz root/p1/p2/zroot/p1/zroot/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} ) rootrrr#r,r.p1p2oTest)r$rrrnamerformat)r!rrr#r,r.r2r6r5r4r3expectedTraceTemplaterr1s` @@rtest_formatTracezUtilTests.test_formatTrace>s, \ " ( t  #  \ " ( t  #  \ " ( t  #  \ " ( t  #  \ " ( t  # ! \ " 3H 3 3 # 3  "  "b" %BB.    .445   U r)rN)__name__ __module__ __qualname____doc__r&r:rrrr r s'RMrr N)r>zope.interfacer twisted.trialr _interfacesrr _observerr_utilr TestCaser rrrrEs/'"0${!!{r