+
    Dfj                         R t ^ RIHt ^ RIHt ^ RIHtHtHtH	t	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^RIHtHt ^R	IHt  ! R
 R]4      t ! R R]4      t ! R R4      tR# )z)
Test cases for L{twisted.logger._file}.
)StringIO)TracebackType)IOAnyAnyStrOptionalTypecast)BrokenMethodImplementation)verifyObject)Failure)TestCase)FileLogObservertextFileLogObserver)ILogObserverc                      a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
RtV tR# )FileLogObserverTestsz
Tests for L{FileLogObserver}.
c                   < V ^8  d   QhRR/#    returnN )format__classdict__s   "?/usr/lib/python3/dist-packages/twisted/logger/test/test_file.py__annotate__!FileLogObserverTests.__annotate__   s     	 	 	    c                    \        4       ;_uu_ 4       p\        VR 4      p \        \        V4       RRR4       R#   \         d   pT P                  T4        Rp?L+Rp?ii ; i  + '       g   i     R# ; i)z+
L{FileLogObserver} is an L{ILogObserver}.
c                     \        V 4      # Nstres   &r   <lambda>5FileLogObserverTests.test_interface.<locals>.<lambda>       SVr   N)r   r   r   r   r
   fail)self
fileHandleobserverr$   s   &   r   test_interface#FileLogObserverTests.test_interface   sY     ZZ:&z3CDH\84 Z . 		!	 ZZs,   A%<A"AA%A""A%%A6	c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   r   %   s     @ @D @r   c                    \        4       ;_uu_ 4       p\        VR 4      p\        ^R7      pV! V4       V P                  VP	                  4       \        V4      4       RRR4       R#   + '       g   i     R# ; i)zF
L{FileLogObserver} writes to the given file when it observes events.
c                     \        V 4      # r    r!   r#   s   &r   r%   9FileLogObserverTests.test_observeWrites.<locals>.<lambda>*   r'   r   xN)r   r   dictassertEqualgetvaluer"   r)   r*   r+   events   &   r   test_observeWrites'FileLogObserverTests.test_observeWrites%   sS     ZZ:&z3CDH1IEUOZ002CJ?	 ZZZ   AA((A9	c                :   < V ^8  d   QhRS[ S[,          RS[RR/# )r   whatcountr   N)r   r"   int)r   r   s   "r   r   r   /   s&     7 7 7c 7d 7r   c                  a \        4       ;_uu_ 4       p\        \        \        \        ,          V4      V3R l4      p\        ^R7      pV! V4       V P                  VP                  V4       RRR4       R#   + '       g   i     R# ; i)z
Verify that observer performs an expected number of writes when the
formatter returns a given value.

@param what: the value for the formatter to return.
@param count: the expected number of writes.
c                    < S# r    r   )r$   r=   s   &r   r%   :FileLogObserverTests._test_observeWrites.<locals>.<lambda>8   s    Dr   r2   N)	DummyFiler   r	   r   r   r4   r5   writes)r)   r=   r>   r*   r+   r8   s   &f&   r   _test_observeWrites(FileLogObserverTests._test_observeWrites/   sW     [[J&tBsGZ'@.QH1IEUOZ..6	 [[[s   AA88B		c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   r   =   s     * * *r   c                *    V P                  R^ 4       R# )zq
L{FileLogObserver} does not write to the given file when it observes
events and C{formatEvent} returns L{None}.
NrE   r)   s   &r   test_observeWritesNone+FileLogObserverTests.test_observeWritesNone=   s    
 	  q)r   c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   r   D   s     ( ( (r   c                *    V P                  R^ 4       R# )zo
L{FileLogObserver} does not write to the given file when it observes
events and C{formatEvent} returns C{""}.
 NrI   rJ   s   &r   test_observeWritesEmpty,FileLogObserverTests.test_observeWritesEmptyD   s    
 	  Q'r   c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   r   K   s     	4 	4T 	4r   c                   \        4       ;_uu_ 4       p\        \        \        \        ,          V4      R 4      p\        ^R7      pV! V4       V P                  VP                  ^4       RRR4       R#   + '       g   i     R# ; i)zT
L{FileLogObserver} calles C{flush()} on the output file when it
observes an event.
c                     \        V 4      # r    r!   r#   s   &r   r%   :FileLogObserverTests.test_observeFlushes.<locals>.<lambda>Q   s	    CPQFr   r2   N)rC   r   r	   r   r   r4   r5   flushesr7   s   &   r   test_observeFlushes(FileLogObserverTests.test_observeFlushesK   sW    
 [[J&tBsGZ'@BRSH1IEUOZ//3	 [[[s   AA44B	r   N)__name__
__module____qualname____firstlineno____doc__r,   r9   rE   rK   rP   rW   __static_attributes____classdictcell__r   s   @r   r   r      sH     	 	@ @7 7* *( (	4 	4r   r   c                   ~   a  ] tR t^Wt o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	Rt
V tR# )TextFileLogObserverTestsz#
Tests for L{textFileLogObserver}.
c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   %TextFileLogObserverTests.__annotate__\   s     = =T =r   c                    \        4       ;_uu_ 4       p\        V4      pV P                  V\        4       RRR4       R#   + '       g   i     R# ; i)z6
L{textFileLogObserver} returns a L{FileLogObserver}.
N)r   r   assertIsInstancer   r)   r*   r+   s   &  r   test_returnsFileLogObserver4TextFileLogObserverTests.test_returnsFileLogObserver\   s3     ZZ:*:6H!!(O< ZZZs	   "?A	c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   rd   d   s     9 9d 9r   c                    \        4       ;_uu_ 4       p\        V4      pV P                  VP                  V4       RRR4       R#   + '       g   i     R# ; i)6
Returned L{FileLogObserver} has the correct outFile.
N)r   r   assertIs_outFilerg   s   &  r   test_outFile%TextFileLogObserverTests.test_outFiled   s7     ZZ:*:6HMM(++Z8 ZZZs   (AA	c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   rd   l   s     L L Lr   c           	         \        4       ;_uu_ 4       p\        VRR7      pV! \        RRR7      4       V P                  VP	                  4       R4       RRR4       R#   + '       g   i     R# ; i)rl   z%f)
timeFormatXYZZYgm@)
log_formatlog_timez600000 [-#-] XYZZY
N)r   r   r4   r5   r6   rg   s   &  r   test_timeFormat(TextFileLogObserverTests.test_timeFormatl   sN     ZZ:*:$GHTWx@AZ0024JK ZZZs   AAA/	c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   rd   u   s      T r   c                   \        4       ;_uu_ 4       p\        V4      p ^^ ,           \	        XR7      pV! V4       VP                  4       pV P                  VP                  R4      ^,          P                  R4      \        V4      R7       RRR4       R#   \         d    \        4       p Li ; i  + '       g   i     R# ; i)zm
If the C{"log_failure"} key exists in an event, the observer appends
the failure's traceback to the output.
log_failure
z	Traceback )msgN)
r   r   ZeroDivisionErrorr   r4   r6   
assertTruesplit
startswithrepr)r)   r*   r+   failurer8   outputs   &     r   test_observeFailure,TextFileLogObserverTests.test_observeFailureu   s    
 ZZ:*:6H$A W-EUO((*FOOT"1%00@d6l   Z
 % $!)$ ZZs.   B3	BA%B3B0-B3/B00B33C	c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   rd      s     , ,T ,r   c                    \        4       ;_uu_ 4       p\        V4      p\        \        4       R7      pV! V4       VP	                  4       pRpV P                  WT4       RRR4       R#   + '       g   i     R# ; i)z
If the C{"log_failure"} key exists in an event, and contains an object
that raises when you call its C{getTraceback()}, then the observer
appends a message noting the problem, instead of raising.
r{   z'(UNABLE TO OBTAIN TRACEBACK FROM EVENT)N)r   r   r4   objectr6   assertIn)r)   r*   r+   r8   r   expecteds   &     r   +test_observeFailureThatRaisesInGetTracebackDTextFileLogObserverTests.test_observeFailureThatRaisesInGetTraceback   sU     ZZ:*:6HVX.EUO((*F@HMM(+ ZZZr;   r   N)rY   rZ   r[   r\   r]   rh   ro   rw   r   r   r^   r_   r`   s   @r   rb   rb   W   s>     = =9 9L L (, ,r   rb   c                   ~   a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	Rt
V tR# )rC   z&
File that counts writes and flushes.
c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   DummyFile.__annotate__   s      $ r   c                "    ^ V n         ^ V n        R# )    N)rD   rV   rJ   s   &r   __init__DummyFile.__init__   s    r   c                $   < V ^8  d   QhRS[ RR/# )r   datar   N)r   )r   r   s   "r   r   r      s      & T r   c                8    V ;P                   ^,          un         R# )z 
Write data.

@param data: data
N)rD   )r)   r   s   &&r   writeDummyFile.write   s     	qr   c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   r      s      t r   c                8    V ;P                   ^,          un         R# )z
Flush buffers.
N)rV   rJ   s   &r   flushDummyFile.flush   s     	r   c                   < V ^8  d   QhRR/# )r   r   rC   r   )r   r   s   "r   r   r      s      ; r   c                    V # r    r   rJ   s   &r   	__enter__DummyFile.__enter__   s    r   c          	         < V ^8  d   QhRS[ S[S[,          ,          RS[ S[,          RS[ S[,          RS[ S[,          /# )r   exc_type	exc_value	tracebackr   )r   r   BaseExceptionr   bool)r   r   s   "r   r   r      sK      4./ M* M*	
 
$r   c                    R # r    r   )r)   r   r   r   s   &&&&r   __exit__DummyFile.__exit__   s     	r   )rV   rD   N)rY   rZ   r[   r\   r]   r   r   r   r   r   r^   r_   r`   s   @r   rC   rC      s<          r   rC   N)r]   ior   typesr   typingr   r   r   r   r   r	   zope.interface.exceptionsr
   zope.interface.verifyr   twisted.python.failurer   twisted.trial.unittestr   _filer   r   _interfacesr   r   rb   rC   r   r   r   <module>r      sN      8 8 @ . * + 8 &?48 ?4D>,x >,B   r   