ó
    ×›‘h<  ã                   ó’  • S r SSKrSSK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   " S	 S
\R                   5      r " S S\R$                  5      r " S S\R$                  5      r " S S\5      r " S S\R                   5      r\R0                  " SS5      SS S:X  a  SrSrOSrSr " S S\R                   5      rg)z0
Test cases for twisted.protocols.ident module.
é    N)ÚStringIO)ÚdeferÚerror)ÚStringTransport)Úident)Úfailure)Úunittestc                   ó<   • \ rS rSrSrS rS rS rS rS r	S r
S	rg
)ÚClassParserTestsé   z"
Test parsing of ident responses.
c                 ó8   • [         R                  " 5       U l        g)z'
Create an ident client used in tests.
N)r   ÚIdentClientÚclient©Úselfs    Ú[C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/test/test_ident.pyÚsetUpÚClassParserTests.setUp   s   € ô ×'Ò'Ó)ˆ�ó    c                 óò   • [         R                  " 5       nU R                  R                  R	                  USS45        U R                  R                  S5        U R                  U[        R                  5      $ )zH
'UNKNOWN-ERROR' error should map to the L{ident.IdentError} exception.
é{   éÈ  z 123, 456 : ERROR : UNKNOWN-ERROR)	r   ÚDeferredr   ÚqueriesÚappendÚlineReceivedÚassertFailurer   Ú
IdentError©r   Úds     r   Útest_indentErrorÚ!ClassParserTests.test_indentError   sZ   € ô �NŠNÓˆØ�‰×Ñ×"Ñ" A s¨C =Ô1Ø�‰× Ñ Ð!CÔDØ×!Ñ! !¤U×%5Ñ%5Ó6Ð6r   c                 óò   • [         R                  " 5       nU R                  R                  R	                  USS45        U R                  R                  S5        U R                  U[        R                  5      $ )z>
'NO-USER' error should map to the L{ident.NoUser} exception.
éê   r   z234, 456 : ERROR : NO-USER)	r   r   r   r   r   r   r   r   ÚNoUserr   s     r   Útest_noUSerErrorÚ!ClassParserTests.test_noUSerError(   sX   € ô �NŠNÓˆØ�‰×Ñ×"Ñ" A s¨C =Ô1Ø�‰× Ñ Ð!=Ô>Ø×!Ñ! !¤U§\¡\Ó2Ð2r   c                 óò   • [         R                  " 5       nU R                  R                  R	                  USS45        U R                  R                  S5        U R                  U[        R                  5      $ )zH
'INVALID-PORT' error should map to the L{ident.InvalidPort} exception.
iY  é7  z 345, 567 :  ERROR : INVALID-PORT)	r   r   r   r   r   r   r   r   ÚInvalidPortr   s     r   Útest_invalidPortErrorÚ&ClassParserTests.test_invalidPortError1   sZ   € ô �NŠNÓˆØ�‰×Ñ×"Ñ" A s¨C =Ô1Ø�‰× Ñ Ð!CÔDØ×!Ñ! !¤U×%6Ñ%6Ó7Ð7r   c                 óò   • [         R                  " 5       nU R                  R                  R	                  USS45        U R                  R                  S5        U R                  U[        R                  5      $ )zF
'HIDDEN-USER' error should map to the L{ident.HiddenUser} exception.
r)   i  z567, 789 : ERROR : HIDDEN-USER)	r   r   r   r   r   r   r   r   Ú
HiddenUserr   s     r   Útest_hiddenUserErrorÚ%ClassParserTests.test_hiddenUserError:   sZ   € ô �NŠNÓˆØ�‰×Ñ×"Ñ" A s¨C =Ô1Ø�‰× Ñ Ð!AÔBØ×!Ñ! !¤U×%5Ñ%5Ó6Ð6r   c                 ó@  • [         R                  " 5       nU R                  R                  R	                  USS45        U R                  R                  [        R                  " [        R                  " 5       5      5        U R                  U[        R                  5      $ )za
A pending query which failed because of a ConnectionLost should
receive an L{ident.IdentError}.
iý  i°  )r   r   r   r   r   ÚconnectionLostr   ÚFailurer   ÚConnectionLostr   r   r   r   s     r   Útest_lostConnectionÚ$ClassParserTests.test_lostConnectionC   sk   € ô
 �NŠNÓˆØ�‰×Ñ×"Ñ" A s¨C =Ô1Ø�‰×"Ñ"¤7§?¢?´5×3GÒ3GÓ3IÓ#JÔKØ×!Ñ! !¤U×%5Ñ%5Ó6Ð6r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r!   r&   r+   r/   r5   Ú__static_attributes__© r   r   r   r      s%   † ñò*ò7ò3ò8ò7õ7r   r   c                   ó   • \ rS rSrS rSrg)ÚTestIdentServeréN   c                 ó   • U R                   $ ©N)ÚresultValue©r   ÚserverAddressÚclientAddresss      r   ÚlookupÚTestIdentServer.lookupO   s   € Ø×ÑÐr   r=   N©r7   r8   r9   r:   rG   r<   r=   r   r   r?   r?   N   s   † õ r   r?   c                   ó   • \ rS rSrS rSrg)ÚTestErrorIdentServeréS   c                 ó"   • U R                  5       erB   )ÚexceptionTyperD   s      r   rG   ÚTestErrorIdentServer.lookupT   s   € Ø× Ñ Ó"Ð"r   r=   NrI   r=   r   r   rK   rK   S   s   † õ#r   rK   c                   ó   • \ rS rSrSrg)ÚNewExceptionéX   r=   N)r7   r8   r9   r:   r<   r=   r   r   rQ   rQ   X   s   † Úr   rQ   c                   ó    • \ rS rSrS rS rSrg)ÚServerParserTestsé\   c                 ó²  • [        5       nUR                  [        5       5        / nUR                  Ul        [
        R                  Ul        UR                  S5        U R                  US   S5        [
        R                  Ul        UR                  S5        U R                  US   S5        [
        R                  Ul        UR                  S5        U R                  US   S	5        [
        R                  Ul        UR                  S
5        U R                  US   S5        [        Ul        UR                  S5        U R                  US   S5        U R                  [        5      nU R                  [        U5      S5        S HN  nUS S 2	 UR                  SU4-  5        UR                  SU4-  5        U R                  USU4-  SU4-  /5        MP     g )Nz123, 345r   z 123, 345 : ERROR : UNKNOWN-ERRORz432, 210é   z432, 210 : ERROR : NO-USERz987, 654é   z987, 654 : ERROR : INVALID-PORTz756, 827é   z756, 827 : ERROR : HIDDEN-USERz987, 789é   z 987, 789 : ERROR : UNKNOWN-ERROR)éÿÿÿÿr   i   i  z%d, 5z5, %dz%d, 5 : ERROR : INVALID-PORTz5, %d : ERROR : INVALID-PORT)rK   ÚmakeConnectionr   r   ÚsendLiner   r   rN   r   ÚassertEqualr%   r*   r.   rQ   ÚflushLoggedErrorsÚlen)r   ÚpÚLÚerrsÚports        r   Ú
testErrorsÚServerParserTests.testErrors]   sŽ  € Ü Ó"ˆØ	×ÑœÓ*Ô+ØˆØ—X‘XˆŒ
ä×*Ñ*ˆŒØ	�‰�zÔ"Ø×Ñ˜˜1™ÐAÔBäŸ,™,ˆŒØ	�‰�zÔ"Ø×Ñ˜˜1™Ð;Ô<ä×+Ñ+ˆŒØ	�‰�zÔ"Ø×Ñ˜˜1™Ð@ÔAä×*Ñ*ˆŒØ	�‰�zÔ"Ø×Ñ˜˜1™Ð?Ô@ä&ˆŒØ	�‰�zÔ"Ø×Ñ˜˜1™ÐAÔBØ×%Ñ%¤lÓ3ˆØ×Ñœ˜T› AÔ&ã'ˆDØ’!�Ø�N‰N˜7 d WÑ,Ô-Ø�N‰N˜7 d WÑ,Ô-Ø×ÑØà2°d°WÑ<Ø2°d°WÑ<ðöò	 (r   c                 óÊ   • [        5       nUR                  [        5       5        / nUR                  Ul        SUl        UR                  S5        U R                  US   S5        g )N)ÚSYSÚUSERz123, 456r   z123, 456 : USERID : SYS : USER)r?   r\   r   r   r]   rC   r   r^   )r   ra   rb   s      r   ÚtestSuccessÚServerParserTests.testSuccess…   sS   € ÜÓˆØ	×ÑœÓ*Ô+ØˆØ—X‘XˆŒ
à'ˆŒØ	�‰�zÔ"Ø×Ñ˜˜1™Ð?Õ@r   r=   N)r7   r8   r9   r:   re   rj   r<   r=   r   r   rT   rT   \   s   † ò&õPAr   rT   z=LrW   ó   Ú0100007FÚ04030201Ú7F000001Ú01020304c                   óX   • \ rS rSrS\< S\< S3rS\-   rS rS r	S r
S	 rS
 rS rSrg)ÚProcMixinTestsé˜   z4: z:0019 z]:02FA 0A 00000000:00000000 00:00000000 00000000     0        0 10927 1 f72a5b80 3000 0 0 2 -1zd  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
   c                 óx   • [         R                  " 5       nU R                  UR                  [        5      S5        g )Nú	127.0.0.1)r   ÚProcServerMixinr^   ÚdottedQuadFromHexStringÚ_addr1©r   ra   s     r   ÚtestDottedQuadFromHexStringÚ*ProcMixinTests.testDottedQuadFromHexString£   s+   € Ü×!Ò!Ó#ˆØ×Ñ˜×2Ñ2´6Ó:¸KÕHr   c                 ó~   • [         R                  " 5       nU R                  UR                  [        S-   5      S5        g )Nz:0277)ru   iw  )r   rv   r^   ÚunpackAddressrx   ry   s     r   ÚtestUnpackAddressÚ ProcMixinTests.testUnpackAddress§   s/   € Ü×!Ò!Ó#ˆØ×Ñ˜Ÿ™¬°'Ñ)9Ó:Ð<NÕOr   c                 ó„   • [         R                  " 5       nU R                  UR                  U R                  5      S5        g )N)©ru   é   ©ú1.2.3.4éú  r   )r   rv   r^   Ú	parseLineÚlinery   s     r   ÚtestLineParserÚProcMixinTests.testLineParser«   s1   € Ü×!Ò!Ó#ˆØ×ÑØ�K‰K˜Ÿ	™	Ó"Ð$Lõ	
r   c                 óä   ^ ^• / m[         R                  " 5       nU 4S jUl        U4S jUl        T R	                  UR                  SS5      UR                  S45        T R	                  TS/5        g )Nc                  ó0   >• [        T R                  /5      $ rB   ©Úiterr‡   r   s   €r   Ú<lambda>Ú4ProcMixinTests.testExistingAddress.<locals>.<lambda>´   ó   ø€ œD $§)¡) Ô-r   c                 ó0   >• TR                  U 5      S4S   $ )NÚrootrW   )r   )ÚuidÚusernames    €r   rŽ   r�   µ   s   ø€  X§_¡_°SÓ%9¸6Ð$BÀ1Ò$Er   r�   rƒ   r’   r   )r   rv   ÚentriesÚgetUsernamer^   rG   ÚSYSTEM_NAME)r   ra   r”   s   ` @r   ÚtestExistingAddressÚ"ProcMixinTests.testExistingAddress±   sa   ù€ ØˆÜ×!Ò!Ó#ˆÜ-ˆŒ	ÜEˆŒØ×ÑØ�H‰HÐ&Ð(8Ó9¸A¿M¹MÈ6Ð;Rô	
ð 	×Ñ˜ A 3Õ'r   c                 óN  ^ • [         R                  " 5       nU 4S jUl        T R                  [         R                  UR
                  SS5        T R                  [         R                  UR
                  SS5        T R                  [         R                  UR
                  SS5        g )Nc                  ó0   >• [        T R                  /5      $ rB   rŒ   r   s   €r   rŽ   Ú7ProcMixinTests.testNonExistingAddress.<locals>.<lambda>½   r�   r   ©ru   é   rƒ   r�   )z1.2.3.5r…   )r„   iû  )r   rv   r•   ÚassertRaisesr%   rG   ry   s   ` r   ÚtestNonExistingAddressÚ%ProcMixinTests.testNonExistingAddress»   sr   ø€ Ü×!Ò!Ó#ˆÜ-ˆŒ	Ø×Ñœ%Ÿ,™,¨¯©Ð2CÐEUÔVØ×Ñœ%Ÿ,™,¨¯©Ð2CÐEUÔVØ×Ñœ%Ÿ,™,¨¯©Ð2CÐEUÕVr   c                 óô   ^ ^• / mUU 4S jnT R                  [        SU5        [        R                  " 5       nT R	                  [        R
                  UR                  SS5        T R                  S0 4/T5        g)zC
L{ident.ProcServerMixin.lookup} uses the Linux TCP process table.
c                  óR   >• TR                  X45        [        TR                  5      $ )zC
Mock for the open call to prevent actually opening /proc/net/tcp.
)r   r   Ú
sampleFile)ÚargsÚkwargsÚ
open_callsr   s     €€r   Úmocked_openÚ8ProcMixinTests.testLookupProcNetTcp.<locals>.mocked_openÈ   s$   ø€ ð ×Ñ˜t˜nÔ-Ü˜DŸO™OÓ,Ð,r   Úopenr�   rƒ   )z/proc/net/tcpN)ÚpatchÚbuiltinsr   rv   rŸ   r%   rG   r^   )r   r¨   ra   r§   s   `  @r   ÚtestLookupProcNetTcpÚ#ProcMixinTests.testLookupProcNetTcpÂ   sf   ù€ ð ˆ
ö	-ð 	�
‰
”8˜V [Ô1ä×!Ò!Ó#ˆØ×Ñœ%Ÿ,™,¨¯©Ð2CÐEUÔVØ×ÑÐ-¨rÐ2Ð3°ZÕ@r   r=   N)r7   r8   r9   r:   rx   Ú_addr2r‡   r¤   rz   r~   rˆ   r˜   r    r­   r<   r=   r   r   rr   rr   ˜   sD   ‡ ó
 
“ð	€Dð	6Ø8<ñ	=ð ò
IòPò
ò(òWõAr   rr   )r;   r¬   ÚstructÚior   Útwisted.internetr   r   Útwisted.internet.testingr   Útwisted.protocolsr   Útwisted.pythonr   Útwisted.trialr	   ÚTestCaser   ÚIdentServerr?   rK   ÚRuntimeErrorrQ   rT   Úpackrx   r¯   rr   r=   r   r   Ú<module>r»      sÀ   ðñ
ó Û Ý ç )Ý 4Ý #Ý "Ý "ô77�x×(Ñ(ô 77ôt �e×'Ñ'ô  ô
#˜5×,Ñ,ô #ô
	�<ô 	ô1A˜×)Ñ)ô 1Aðh 
‡;‚;ˆt�QÓ˜˜!Ð Ó'Ø€FØ�Fà€FØ€Fô;A�X×&Ñ&õ ;Ar   