ó
    Ö›‘hË  ã                   óÌ   • S r SSKJr  SSKJr  SSKJrJrJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJr  SSKJr  S	S
KJrJr  S	SKJr   " S S\5      r " S S\5      r " S S5      rg)z)
Test cases for L{twisted.logger._file}.
é    )ÚStringIO)ÚTracebackType)ÚIOÚAnyÚAnyStrÚOptionalÚTypeÚcast)ÚBrokenMethodImplementation)ÚverifyObject)ÚFailure)ÚTestCaseé   )ÚFileLogObserverÚtextFileLogObserver)ÚILogObserverc                   óf   • \ rS rSrSrSS jrSS jrS\\   S\	SS4S	 jr
SS
 jrSS jrSS jrSrg)ÚFileLogObserverTestsé   z
Tests for L{FileLogObserver}.
ÚreturnNc                 óØ   • [        5        n[        US 5      n [        [        U5        SSS5        g! [         a  nU R                  U5         SnAN)SnAff = f! , (       d  f       g= f)z+
L{FileLogObserver} is an L{ILogObserver}.
c                 ó   • [        U 5      $ ©N©Ústr©Úes    ÚaC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/logger/test/test_file.pyÚ<lambda>Ú5FileLogObserverTests.test_interface.<locals>.<lambda>   ó   € ¼SÀ¼Vó    N)r   r   r   r   r   Úfail)ÚselfÚ
fileHandleÚobserverr   s       r   Útest_interfaceÚ#FileLogObserverTests.test_interface   sU   € ô ŒZ˜:Ü& zÑ3CÓDˆHðÜœ\¨8Ô4÷ ˆZøô .ó Ø—	‘	˜!—‘ûðú÷	 �Zús+   ‹Aš3³
A½AÁAÁAÁAÁ
A)c                 óÚ   • [        5        n[        US 5      n[        SS9nU" U5        U R                  UR	                  5       [        U5      5        SSS5        g! , (       d  f       g= f)zF
L{FileLogObserver} writes to the given file when it observes events.
c                 ó   • [        U 5      $ 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%   sO   € ô ŒZ˜:Ü& zÑ3CÓDˆHÜ˜1‘IˆEÙ�UŒOØ×Ñ˜Z×0Ñ0Ó2´C¸³JÔ?÷	 �ZŽZúó   ‹AAÁ
A*ÚwhatÚcountc                 óò   ^• [        5        n[        [        [        [           U5      U4S j5      n[        SS9nU" U5        U R                  UR                  U5        SSS5        g! , (       d  f       g= f)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                 ó   >• T$ r   © )r   r7   s    €r   r   Ú:FileLogObserverTests._test_observeWrites.<locals>.<lambda>8   s   ø€ ÉDr"   r,   r-   N)Ú	DummyFiler   r
   r   r   r/   r0   Úwrites)r$   r7   r8   r%   r&   r3   s    `    r   Ú_test_observeWritesÚ(FileLogObserverTests._test_observeWrites/   sS   ø€ ô Œ[˜JÜ&¤t¬B¬s©G°ZÓ'@Ä.ÓQˆHÜ˜1‘IˆEÙ�UŒOØ×Ñ˜Z×.Ñ.°Ô6÷	 �[Ž[ús   ŒAA(Á(
A6c                 ó(   • U R                  SS5        g)zq
L{FileLogObserver} does not write to the given file when it observes
events and C{formatEvent} returns L{None}.
Nr   ©r?   ©r$   s    r   Útest_observeWritesNoneÚ+FileLogObserverTests.test_observeWritesNone=   s   € ð
 	× Ñ   qÕ)r"   c                 ó(   • U R                  SS5        g)zo
L{FileLogObserver} does not write to the given file when it observes
events and C{formatEvent} returns C{""}.
Ú r   NrB   rC   s    r   Útest_observeWritesEmptyÚ,FileLogObserverTests.test_observeWritesEmptyD   s   € ð
 	× Ñ   QÕ'r"   c                 óê   • [        5        n[        [        [        [           U5      S 5      n[        SS9nU" U5        U R                  UR                  S5        SSS5        g! , (       d  f       g= f)zT
L{FileLogObserver} calles C{flush()} on the output file when it
observes an event.
c                 ó   • [        U 5      $ r   r   r   s    r   r   Ú:FileLogObserverTests.test_observeFlushes.<locals>.<lambda>Q   s	   € ÌCÐPQÌFr"   r,   r-   N)r=   r   r
   r   r   r/   r0   Úflushesr2   s       r   Útest_observeFlushesÚ(FileLogObserverTests.test_observeFlushesK   sS   € ô
 Œ[˜JÜ&¤t¬B¬s©G°ZÓ'@ÑBRÓSˆHÜ˜1‘IˆEÙ�UŒOØ×Ñ˜Z×/Ñ/°Ô3÷	 �[Ž[ús   ‹AA$Á$
A2r;   ©r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r'   r4   r   r   Úintr?   rD   rH   rN   Ú__static_attributes__r;   r"   r   r   r      s?   † ñô	ô@ð7¨°©ð 7¸cð 7Àdô 7ô*ô(÷	4r"   r   c                   óJ   • \ rS rSrSrS
S jrS
S jrS
S jrS
S jrS
S jr	S	r
g)ÚTextFileLogObserverTestséW   z#
Tests for L{textFileLogObserver}.
Nc                 óŽ   • [        5        n[        U5      nU R                  U[        5        SSS5        g! , (       d  f       g= f)z6
L{textFileLogObserver} returns a L{FileLogObserver}.
N)r   r   ÚassertIsInstancer   ©r$   r%   r&   s      r   Útest_returnsFileLogObserverÚ4TextFileLogObserverTests.test_returnsFileLogObserver\   s/   € ô ŒZ˜:Ü*¨:Ó6ˆHØ×!Ñ! (¬OÔ<÷ �ZŽZús	   ‹"6¶
Ac                 óš   • [        5        n[        U5      nU R                  UR                  U5        SSS5        g! , (       d  f       g= f)ú6
Returned L{FileLogObserver} has the correct outFile.
N)r   r   ÚassertIsÚ_outFiler]   s      r   Útest_outFileÚ%TextFileLogObserverTests.test_outFiled   s3   € ô ŒZ˜:Ü*¨:Ó6ˆHØ�M‰M˜(×+Ñ+¨ZÔ8÷ �ZŽZús	   ‹(<¼
A
c                 óÀ   • [        5        n[        USS9nU" [        SSS95        U R                  UR	                  5       S5        SSS5        g! , (       d  f       g= f)ra   z%f)Ú
timeFormatÚXYZZYgš™™™™mû@)Ú
log_formatÚlog_timez600000 [-#-] XYZZY
N)r   r   r/   r0   r1   r]   s      r   Útest_timeFormatÚ(TextFileLogObserverTests.test_timeFormatl   sJ   € ô ŒZ˜:Ü*¨:À$ÑGˆHÙ”T W°xÑ@ÔAØ×Ñ˜Z×0Ñ0Ó2Ð4JÔK÷ �ZŽZús   ‹;AÁ
Ac                 óX  • [        5        n[        U5      n SS-    [	        WS9nU" U5        UR                  5       nU R                  UR                  S5      S   R                  S5      [        U5      S9  SSS5        g! [         a    [        5       n Nzf = f! , (       d  f       g= f)zm
If the C{"log_failure"} key exists in an event, the observer appends
the failure's traceback to the output.
r,   r   ©Úlog_failureÚ
z	Traceback )ÚmsgN)
r   r   ÚZeroDivisionErrorr   r/   r1   Ú
assertTrueÚsplitÚ
startswithÚrepr)r$   r%   r&   Úfailurer3   Úoutputs         r   Útest_observeFailureÚ,TextFileLogObserverTests.test_observeFailureu   sœ   € ô
 ŒZ˜:Ü*¨:Ó6ˆHð$Ø�A’ô  WÑ-ˆEÙ�UŒOØ×(Ñ(Ó*ˆFØ�O‰OØ—‘˜TÓ" 1Ñ%×0Ñ0°Ó@ÄdÈ6Ãlð ñ ÷ ˆZøô
 %ó $Ü!›)’ð$ú÷ �Zús.   ‹B˜B�ABÂBÂBÂBÂBÂ
B)c                 óÚ   • [        5        n[        U5      n[        [        5       S9nU" U5        UR	                  5       nSnU R                  XT5        SSS5        g! , (       d  f       g= f)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.
rn   z'(UNABLE TO OBTAIN TRACEBACK FROM EVENT)N)r   r   r/   Úobjectr1   ÚassertIn)r$   r%   r&   r3   rx   Úexpecteds         r   Ú+test_observeFailureThatRaisesInGetTracebackÚDTextFileLogObserverTests.test_observeFailureThatRaisesInGetTraceback‰   sQ   € ô ŒZ˜:Ü*¨:Ó6ˆHÜ¤V£XÑ.ˆEÙ�UŒOØ×(Ñ(Ó*ˆFØ@ˆHØ�M‰M˜(Ô+÷ �ZŽZúr6   r;   rP   )rQ   rR   rS   rT   rU   r^   rd   rk   ry   r   rW   r;   r"   r   rY   rY   W   s!   † ñô=ô9ôLô÷(,r"   rY   c            	       ó€   • \ rS rSrSrSS jrS\SS4S jrSS jrSS	 jr	S
\
\\      S\
\   S\
\   S\
\   4S jrSrg)r=   é˜   z&
File that counts writes and flushes.
r   Nc                 ó    • SU l         SU l        g )Nr   )r>   rM   rC   s    r   Ú__init__ÚDummyFile.__init__�   s   € ØˆŒØˆ�r"   Údatac                 ó.   • U =R                   S-  sl         g)z 
Write data.

@param data: data
r,   N)r>   )r$   r†   s     r   ÚwriteÚDummyFile.write¡   s   € ð 	�Š�qÑŽr"   c                 ó.   • U =R                   S-  sl         g)z
Flush buffers.
r,   N)rM   rC   s    r   ÚflushÚDummyFile.flush©   s   € ð 	�Š˜ÑŽr"   c                 ó   • U $ r   r;   rC   s    r   Ú	__enter__ÚDummyFile.__enter__¯   s   € Øˆr"   Úexc_typeÚ	exc_valueÚ	tracebackc                 ó   • g r   r;   )r$   r�   r‘   r’   s       r   Ú__exit__ÚDummyFile.__exit__²   s   € ð 	r"   )rM   r>   rP   )r   r=   )rQ   rR   rS   rT   rU   r„   r   rˆ   r‹   rŽ   r   r	   ÚBaseExceptionr   Úboolr”   rW   r;   r"   r   r=   r=   ˜   sl   † ñôð˜&ð  Tô ôôðà˜4 Ñ.Ñ/ðð ˜MÑ*ðð ˜MÑ*ð	ð
 
�$‰÷r"   r=   N)rU   Úior   Útypesr   Útypingr   r   r   r   r	   r
   Úzope.interface.exceptionsr   Úzope.interface.verifyr   Útwisted.python.failurer   Útwisted.trial.unittestr   Ú_filer   r   Ú_interfacesr   r   rY   r=   r;   r"   r   Ú<module>r¡      sN   ðñõ Ý ß 8× 8å @Ý .å *Ý +ß 8Ý &ô?4˜8ô ?4ôD>,˜xô >,÷B ò  r"   