ó
    Ö›‘hœ"  ã                   óÚ   • S r SSKrSSKJr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
KJr  SSKJr  SSKJr  \" \5       " S S\5      5       r " S S\
R.                  5      rg)z'
Test cases for L{twisted.logger._io}.
é    N)ÚListÚOptional)Úimplementer)ÚNamedConstant)Úunittesté   )ÚILogObserverÚLogEvent)ÚLoggingFile)ÚLogLevel)ÚLogger)ÚLogPublisherc            	       ót   ^ • \ rS rSrSr\R                  S4S\S\S\	\
   SS4U 4S jjjrS	\SS4S
 jrSrU =r$ )ÚTestLoggingFileé   zM
L{LoggingFile} that is also an observer which captures events and messages.
NÚloggerÚlevelÚencodingÚreturnc                 ó>   >• [         TU ]  XUS9  / U l        / U l        g )N©r   r   r   )ÚsuperÚ__init__ÚeventsÚmessages)Úselfr   r   r   Ú	__class__s       €Ú_C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/logger/test/test_io.pyr   ÚTestLoggingFile.__init__   s%   ø€ ô 	‰Ñ ¸hÐÑGØ&(ˆŒØ#%ˆ�ó    Úeventc                 ó„   • U R                   R                  U5        SU;   a  U R                  R                  US   5        g g )NÚlog_io)r   Úappendr   )r   r!   s     r   Ú__call__ÚTestLoggingFile.__call__'   s7   € Ø�‰×Ñ˜5Ô!Ø�uÓØ�M‰M× Ñ   x¡Õ1ð r    )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úinfor   r   r   Ústrr   r
   r%   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s`   ø† ñð  (Ÿ}™}Ø"&ñ	&àð&ð ð&ð ˜3‘-ð	&ð
 
÷&ð &ð2˜hð 2¨4÷ 2ò 2r    r   c                   ó  • \ 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S
 jr
SS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jr\R4                  S4S\S\\   S\4S jjrSr g)ÚLoggingFileTestsé-   z
Tests for L{LoggingFile}.
r   Nc                 óR   • [        5       U l        [        U R                  S9U l        g)z;
Create a logger for test L{LoggingFile} instances to use.
©ÚobserverN)r   Ú	publisherr   r   )r   s    r   ÚsetUpÚLoggingFileTests.setUp2   s   € ô &›ˆŒÜ d§n¡nÑ5ˆ�r    c                 óB  • U R                  [        U R                  5      R                  S5        U R	                  U R
                  /5      nU R                  [        U5      S5        U R                  US   S   [        5        SnU R                  US   S   SU-  5        g)z 
L{LoggingFile.softspace} is 0.
r   é   Úcategoryz(twisted.logger._io.LoggingFile.softspaceÚmessagez#%s was deprecated in Twisted 21.2.0N)ÚassertEqualr   r   Ú	softspaceÚflushWarningsÚtest_softspaceÚlenÚDeprecationWarning)r   ÚwarningsShownÚdeprecatedClasss      r   r@   ÚLoggingFileTests.test_softspace9   s”   € ð 	×Ñœ T§[¡[Ó1×;Ñ;¸QÔ?à×*Ñ*¨D×,?Ñ,?Ð+@ÓAˆØ×Ñœ˜]Ó+¨QÔ/Ø×Ñ˜ qÑ)¨*Ñ5Ô7IÔJØDˆØ×ÑØ˜!Ñ˜YÑ'Ø1°_ÑEõ	
r    c                 óR  • [        U R                  5      nU R                  [        [        USS5        U R                  [        [        USS5        U R                  [        [        USS5        U R                  [        [        USS/5        U R                  [        [        US	S
5        g)z/
Some L{LoggingFile} attributes are read-only.
ÚclosedTr   úutf-8ÚmodeÚrÚnewlinesÚ
ÚnameÚfooN)r   r   ÚassertRaisesÚAttributeErrorÚsetattr©r   Úfs     r   Útest_readOnlyAttributesÚ(LoggingFileTests.test_readOnlyAttributesH   s‚   € ô ˜Ÿ™Ó$ˆà×Ñœ.¬'°1°hÀÔEØ×Ñœ.¬'°1°jÀ'ÔJØ×Ñœ.¬'°1°f¸cÔBØ×Ñœ.¬'°1°jÀ4À&ÔIØ×Ñœ.¬'°1°f¸eÕDr    c                 ó.  • [        U R                  5      nU R                  [        UR                  5        U R                  [        UR
                  5        U R                  [        UR                  5        U R                  [        UR                  5        U R                  [        UR                  5        U R                  [        UR                  5        U R                  [        UR                  5        U R                  [        UR                  5        g)z.
Some L{LoggingFile} methods are unsupported.
N)r   r   rO   ÚIOErrorÚreadÚnextÚreadlineÚ	readlinesÚ
xreadlinesÚseekÚtellÚtruncaterR   s     r   Útest_unsupportedMethodsÚ(LoggingFileTests.test_unsupportedMethodsT   s²   € ô ˜Ÿ™Ó$ˆà×Ñœ' 1§6¡6Ô*Ø×Ñœ' 1§6¡6Ô*Ø×Ñœ' 1§:¡:Ô.Ø×Ñœ' 1§;¡;Ô/Ø×Ñœ' 1§<¡<Ô0Ø×Ñœ' 1§6¡6Ô*Ø×Ñœ' 1§6¡6Ô*Ø×Ñœ' 1§:¡:Õ.r    c                 ó  • [        U R                  5      nU R                  UR                  [        R
                  5        [        U R                  [        R                  S9nU R                  UR                  [        R                  5        g)z/
Default level is L{LogLevel.info} if not set.
©r   N)r   r   r=   r   r   r,   ÚerrorrR   s     r   Ú
test_levelÚLoggingFileTests.test_levelc   sV   € ô ˜Ÿ™Ó$ˆØ×Ñ˜Ÿ™¤(§-¡-Ô0ä˜Ÿ™¬8¯>©>Ñ:ˆØ×Ñ˜Ÿ™¤(§.¡.Õ1r    c                 óì   • [        U R                  5      nU R                  UR                  [        R
                  " 5       5        [        U R                  SS9nU R                  UR                  S5        g)z=
Default encoding is C{sys.getdefaultencoding()} if not set.
rH   ©r   N)r   r   r=   r   ÚsysÚgetdefaultencodingrR   s     r   Útest_encodingÚLoggingFileTests.test_encodingm   sS   € ô ˜Ÿ™Ó$ˆØ×Ñ˜Ÿ™¤S×%;Ò%;Ó%=Ô>ä˜Ÿ™¨gÑ6ˆØ×Ñ˜Ÿ™ WÕ-r    c                 óf   • [        U R                  5      nU R                  UR                  S5        g)z
Reported mode is C{"w"}.
ÚwN)r   r   r=   rI   rR   s     r   Ú	test_modeÚLoggingFileTests.test_modew   s&   € ô ˜Ÿ™Ó$ˆØ×Ñ˜Ÿ™ Õ%r    c                 ód   • [        U R                  5      nU R                  UR                  5        g)z'
The C{newlines} attribute is L{None}.
N)r   r   ÚassertIsNonerK   rR   s     r   Útest_newlinesÚLoggingFileTests.test_newlines~   s$   € ô ˜Ÿ™Ó$ˆØ×Ñ˜!Ÿ*™*Õ%r    c                 óf   • [        U R                  5      nU R                  UR                  S5        g)z!
The C{name} attribute is fixed.
z.<LoggingFile twisted.logger.test.test_io#info>N)r   r   r=   rM   rR   s     r   Ú	test_nameÚLoggingFileTests.test_name…   s'   € ô ˜Ÿ™Ó$ˆØ×Ñ˜Ÿ™Ð!QÕRr    c                 óÆ   • [        U R                  5      nUR                  5         U R                  UR                  5        U R                  [        UR                  S5        g)z'
L{LoggingFile.close} closes the file.
ÚHelloN)r   r   ÚcloseÚ
assertTruerG   rO   Ú
ValueErrorÚwriterR   s     r   Ú
test_closeÚLoggingFileTests.test_closeŒ   sA   € ô ˜Ÿ™Ó$ˆØ	�‰Œ	à�‰˜Ÿ™Ô!Ø×Ñœ* a§g¡g¨wÕ7r    c                 óN   • [        U R                  5      nUR                  5         g)z$
L{LoggingFile.flush} does nothing.
N)r   r   ÚflushrR   s     r   Ú
test_flushÚLoggingFileTests.test_flush–   s   € ô ˜Ÿ™Ó$ˆØ	�‰�	r    c                 ón   • [        U R                  5      nU R                  UR                  5       S5        g)z&
L{LoggingFile.fileno} returns C{-1}.
éÿÿÿÿN)r   r   r=   ÚfilenorR   s     r   Útest_filenoÚLoggingFileTests.test_fileno�   s(   € ô ˜Ÿ™Ó$ˆØ×Ñ˜Ÿ™› RÕ(r    c                 ól   • [        U R                  5      nU R                  UR                  5       5        g)z)
L{LoggingFile.isatty} returns C{False}.
N)r   r   ÚassertFalseÚisattyrR   s     r   Útest_isattyÚLoggingFileTests.test_isatty¤   s&   € ô ˜Ÿ™Ó$ˆØ×Ñ˜Ÿ™›Õ$r    c                 ó8  • U R                  5       nUR                  S5        U R                  UR                  / 5        UR                  S5        U R                  UR                  S/5        UR                  S5        U R                  UR                  / SQ5        g)z
Writing buffers correctly.
ry   z	, world!
úHello, world!zIt's nice to meet you.

Indeed.©r�   zIt's nice to meet you.Ú N©ÚobservedFiler}   r=   r   rR   s     r   Útest_writeBufferingÚ$LoggingFileTests.test_writeBuffering«   s|   € ð ×ÑÓˆØ	�‰�ÔØ×Ñ˜Ÿ™ RÔ(Ø	�‰�ÔØ×Ñ˜Ÿ™ oÐ%6Ô7Ø	�‰Ð3Ô4Ø×ÑØ�J‰Jòõ	
r    c                 ó~   • U R                  SS9nUR                  S5        U R                  UR                  S/5        g)z
Bytes are decoded to text.
rH   rh   s   Hello, Mr. SÃ¡nchez
õ   Hello, Mr. SÃ¡nchezNr’   rR   s     r   Útest_writeBytesDecodedÚ'LoggingFileTests.test_writeBytesDecoded¾   s<   € ð ×Ñ wÐÐ/ˆØ	�‰Ð.Ô/Ø×Ñ˜Ÿ™Ð&=Ð%>Õ?r    c                 ó~   • U R                  SS9nUR                  S5        U R                  UR                  S/5        g)z
Unicode is unmodified.
rH   rh   u   Hello, Mr. SÃ¡nchez
r—   Nr’   rR   s     r   Útest_writeUnicodeÚ"LoggingFileTests.test_writeUnicodeÆ   s<   € ð ×Ñ wÐÐ/ˆØ	�‰Ð)Ô*Ø×Ñ˜Ÿ™Ð&=Ð%>Õ?r    c                 óö  • U R                  5       nUR                  S5        U R                  [        UR                  5      S5        U R                  UR                  S   S   [
        R                  5        U R                  [
        R                  S9nUR                  S5        U R                  [        UR                  5      S5        U R                  UR                  S   S   [
        R                  5        g)z 
Log level is emitted properly.
úHello
r:   r   Ú	log_levelrc   N)r“   r}   r=   rA   r   r   r,   rd   rR   s     r   Útest_writeLevelÚ LoggingFileTests.test_writeLevelÎ   s³   € ð ×ÑÓˆØ	�‰�	ÔØ×Ñœ˜QŸX™X›¨Ô*Ø×Ñ˜Ÿ™ !™ [Ñ1´8·=±=ÔAà×Ñ¤H§N¡NÐÐ3ˆØ	�‰�	ÔØ×Ñœ˜QŸX™X›¨Ô*Ø×Ñ˜Ÿ™ !™ [Ñ1´8·>±>ÕBr    c                 óÔ   • U R                  5       nUR                  S5        U R                  [        UR                  5      S5        U R                  UR                  S   S   S5        g)z
Log format is C{"{message}"}.
rž   r:   r   Ú
log_formatz{log_io}N)r“   r}   r=   rA   r   rR   s     r   Útest_writeFormatÚ!LoggingFileTests.test_writeFormatÜ   sS   € ð ×ÑÓˆØ	�‰�	ÔØ×Ñœ˜QŸX™X›¨Ô*Ø×Ñ˜Ÿ™ !™ \Ñ2°JÕ?r    c                 ó8  • U R                  5       nUR                  S5        U R                  UR                  / 5        UR                  S5        U R                  UR                  S/5        UR                  S5        U R                  UR                  / SQ5        g)z&
C{writelines} does not add newlines.
)ry   z, r‘   )zworld!
r�   )zIt's nice to meet you.

zIndeed.r�   N)r“   Ú
writelinesr=   r   rR   s     r   Útest_writelinesBufferingÚ)LoggingFileTests.test_writelinesBufferingå   s}   € ð
 ×ÑÓˆØ	�‰Ð(Ô)Ø×Ñ˜Ÿ™ RÔ(Ø	�‰�]Ô#Ø×Ñ˜Ÿ™ oÐ%6Ô7Ø	�‰Ð>Ô?Ø×ÑØ�J‰Jòõ	
r    c                 ó¶   • U R                  5       nU R                  [        SU5        [        SSS9  [        S5        U R	                  UR
                  S/5        g)z+
L{LoggingFile} can replace L{sys.stdout}.
ÚstdoutzHello,Ú )Úendzworld.zHello, world.N)r“   Úpatchri   Úprintr=   r   rR   s     r   Ú
test_printÚLoggingFileTests.test_printù   sJ   € ð ×ÑÓˆØ�
‰
”3˜ !Ô$äˆh˜CÒ ÜˆhŒà×Ñ˜Ÿ™ oÐ%6Õ7r    r   r   c                 óš   ^• / m[        [        5      S[        SS4U4S jj5       n[        US9nTR	                  [        XAUS95        TS   $ )al  
Construct a L{LoggingFile} with a built-in observer.

@param level: C{level} argument to L{LoggingFile}
@param encoding: C{encoding} argument to L{LoggingFile}

@return: a L{TestLoggingFile} with an observer that appends received
    events into the file's C{events} attribute (a L{list}) and
    event messages into the file's C{messages} attribute (a L{list}).
r!   r   Nc                 ó   >• TS   " U 5        g )Nr   © )r!   ÚloggingFiless    €r   r5   Ú/LoggingFileTests.observedFile.<locals>.observer  s   ø€ à˜ŠO˜EÕ"r    r4   r   r   )r   r	   r
   r   r$   r   )r   r   r   r5   Úlogrµ   s        @r   r“   ÚLoggingFileTests.observedFile  sZ   ø€ ð& /1ˆä	”\Ó	"ð	#œHð 	#¨ö 	#ó 
#ð	#ô ˜hÑ'ˆØ×ÑœO°3ÈhÑWÔXà˜A‰Ðr    )r   r6   )r   N)!r'   r(   r)   r*   r+   r7   r@   rT   r`   re   rk   ro   rs   rv   r~   r‚   r‡   rŒ   r”   r˜   r›   r    r¤   r¨   r°   r   r,   r   r   r-   r   r“   r.   r´   r    r   r1   r1   -   s§   † ñô6ô
ô
Eô/ô2ô.ô&ô&ôSô8ôô)ô%ô
ô&@ô@ôCô@ô
ô(
8ð  (Ÿ}™}Ø"&ñàðð ˜3‘-ðð 
÷	ð r    r1   )r+   ri   Útypingr   r   Úzope.interfacer   Ú
constantlyr   Útwisted.trialr   Ú_interfacesr	   r
   Ú_ior   Ú_levelsr   Ú_loggerr   Ú	_observerr   r   ÚTestCaser1   r´   r    r   Ú<module>rÃ      s^   ðñó ß !å &å $å "ß 0Ý Ý Ý Ý $ñ ˆ\Óô2�kó 2ó ð2ô*t�x×(Ñ(õ tr    