ó
    Ö›‘h^<  ã                  óÀ   • 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
  \R                  " \R                  5       " S S5      5       r " S S	\
R                  5      rg
)é    )Úannotations)Ú	interface)ÚipÚraw)Ú
components)Úunittestc                  ón   • \ rS rSrSS jr                              SS jrS	S jrSrg)
Ú
MyProtocolé   c                ó$   • [        U5      U l        g ©N)ÚlistÚ	expecting)Úselfr   s     Ú]C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/pair/test/test_ip.pyÚ__init__ÚMyProtocol.__init__   s   € Ü˜i›ˆ�ó    c           	     óJ  • U R                   (       d   S5       eU R                   R                  S5      u  nn[        [        UR	                  5       5      5      n[        5       nU H'  nUU   UU   :X  a  M   SU SUU   < SUU   < 35       e   Xñ:X  d   SU< SU< 35       eg )Nz(Got a packet when not expecting anymore.r   z	Expected Ú=z, got )r   Úpopr   ÚsortedÚkeysÚlocals)r   ÚdataÚpartialÚsourceÚdestÚprotocolÚversionÚihlÚtosÚtot_lenÚfragment_idÚfragment_offsetÚdont_fragmentÚmore_fragmentsÚttlÚ
expectDataÚexpectKwÚexpectKwKeysÚlocalVariablesÚks                       r   ÚdatagramReceivedÚMyProtocol.datagramReceived   sµ   € ð" �~�~ÐIÐIÓIˆ~Ø#Ÿ~™~×1Ñ1°!Ó4Ñˆ
�HäœF 8§=¡=£?Ó3Ó4ˆÜ›ˆãˆAà˜‘˜~¨aÑ0Õ0ðJà˜1˜#˜Q˜x¨™{™o¨V°NÀ1Ñ4EÑ3HÐIóJØ0ñ ð Ó!ÐK Y¨z©n¸FÀ4Á(Ð#KÓKÑ!r   c                ó   • g r   © )r   ÚnumÚprotos      r   ÚaddProtoÚMyProtocol.addProto.   s   € àr   )r   N)r   z(list[tuple[bytes, dict[str, str | int]]]ÚreturnÚNone)r   Úbytesr   Úintr   Ústrr   r:   r   r9   r    r9   r!   r9   r"   r9   r#   r9   r$   r9   r%   r9   r&   r9   r'   r9   r(   r9   r6   r7   )r2   Úobjectr3   r;   r6   r7   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r.   r4   Ú__static_attributes__r1   r   r   r
   r
      sµ   † ô)ðLàðLð ðLð ð	Lð
 ðLð ðLð ðLð ðLð ðLð ðLð ðLð ðLð ðLð ðLð ðLð  
ô!L÷:r   r
   c                  ón   • \ 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rg)ÚIPTestsé3   c                óú   • [         R                  " 5       n[        SSSSSSSSS	S
SSSSS.4/5      nUR                  SU5        UR	                  SSSSSS9  UR
                  (       a   SUR
                  -  5       eg ©Nó   foobarr   ú1.2.3.4ú5.6.7.8é   é   é   é   é   é­Þ  éï  é   éÀ   ©r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   ó   T Þ­¾ïÀFEfoobarÚdummy©r   r   r   r   ú5Should not expect any more packets, but still want %r©r   Ú
IPProtocolr
   r4   r.   r   ©r   r3   Úp1s      r   ÚtestPacketParsingÚIPTests.testPacketParsing4   s¬   € Ü—’“ˆÜð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñððó
ˆð, 	�‰�t˜RÔ à×Ñð
ð ØØØð 	ñ 	
ð$ —<—<ð 	
ØCÀbÇlÁlÑRó	
Ð�<r   c                óB  • [         R                  " 5       n[        SSSSSSSSS	S
SSSSS.4SSSSSSSSS	S
SSSSS.4/5      nUR                  SU5        UR	                  SSSSSS9  UR	                  SSSSSS9  UR
                  (       a   SUR
                  -  5       eg )NrF   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   ó   quuxú5.4.3.2ú6.7.8.9rS   rT   rU   ó   T Þ­¾ïÀFE	quuxrV   rW   rY   s      r   ÚtestMultiplePacketsÚIPTests.testMultiplePacketsd   s  € Ü—’“ˆÜð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñðð& à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñðð'%ó'
ˆðP 	�‰�t˜RÔ Ø×Ñð
ð ØØØð 	ñ 	
ð" 	×Ñð
ð ØØØð 	ñ 	
ð$ —<—<ð 	
ØCÀbÇlÁlÑRó	
Ð�<r   c                ó   • [         R                  " 5       n[        SSSSSSSSS	S
SSSSS.4/5      n[        SSSSSSSSS	S
SSSSS.4/5      nUR                  SU5        UR                  SU5        UR	                  SSSSSS9  UR
                  (       a   SUR
                  -  5       eUR
                  (       a   SUR
                  -  5       eg rE   rW   ©r   r3   rZ   Úp2s       r   ÚtestMultipleSameProtosÚIPTests.testMultipleSameProtos¶   s#  € Ü—’“ˆÜð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñððó
ˆô. ð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñððó
ˆð. 	�‰�t˜RÔ Ø�‰�t˜RÔ à×Ñð
ð ØØØð 	ñ 	
ð$ —<—<ð 	
ØCÀbÇlÁlÑRó	
Ðð —<—<ð 	
ØCÀbÇlÁlÑRó	
Ð�<r   c                óŽ   • [         R                  " 5       n[        / 5      nUR                  SU5        UR	                  SSSSSS9  g )NrP   rS   r   rT   rU   )r   rX   r
   r4   r.   rY   s      r   ÚtestWrongProtoNotSeenÚIPTests.testWrongProtoNotSeen  sJ   € Ü—’“ˆÜ˜‹^ˆØ�‰�q˜"Ôà×Ñð
ð ØØØð 	ò 	
r   c                óV  • [         R                  " 5       n[        SSSSSSSSS	S
SSSSS.4SSSSSSSSS	S
SSSSS.4/5      nUR                  SU5        [        SSSSSSSSS	S
SSSSS.4SSSSSSSSS	S
SSSSS.4/5      nUR                  SU5        UR	                  SSSSSS9  UR	                  SSSSSS9  UR	                  SSSSSS9  UR	                  SSSSSS9  UR
                  (       a   SUR
                  -  5       eUR
                  (       a   SUR
                  -  5       eg )NrF   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   r^   r_   r`   é
   s   T Þ­¾ïÀ
FE	quuxrT   rU   rS   ra   s   T Þ­¾ïÀ
FEfoobarrV   rW   re   s       r   ÚtestDemuxingÚIPTests.testDemuxing  s	  € Ü—’“ˆÜð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñðð& à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñðð'%ó'
ˆðP 	�‰�t˜RÔ äð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñðð& à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ñðð'%ó'
ˆðP 	�‰�t˜RÔ à×Ñð
ð ØØØð 	ñ 	
ð" 	×Ñð
ð ØØØð 	ñ 	
ð" 	×Ñð
ð ØØØð 	ñ 	
ð" 	×Ñð
ð ØØØð 	ñ 	
ð$ —<—<ð 	
ØCÀbÇlÁlÑRó	
Ðð —<—<ð 	
ØCÀbÇlÁlÑRó	
Ð�<r   c                óœ   • [         R                  " 5       n UR                  SS5        [        S5      e! [        R
                   a     gf = f)z2Adding a wrong level protocol raises an exception.é*   Ú	sillinessú2addProto must raise an exception for bad protocolsN)r   rX   r4   ÚAssertionErrorr   ÚCannotAdapt©r   Úes     r   ÚtestAddingBadProtos_WrongLevelÚ&IPTests.testAddingBadProtos_WrongLevel»  sI   € ä�MŠM‹Oˆð	WØ�J‰J�r˜;Ô'ô !Ð!UÓVÐVøô ×%Ñ%ó 	Ùð	ús   —4 ´AÁ
Ac                óÊ   • [         R                  " 5       n UR                  S[        / 5      5        [	        S5      e! [
         a  nUR                  S:X  a   SnAge SnAff = f)z=Adding a protocol with a negative number raises an exception.éÿÿÿÿrs   )z'Added protocol must be positive or zeroN©r   rX   r4   r
   rt   Ú	TypeErrorÚargsrv   s     r   ÚtestAddingBadProtos_TooSmallÚ$IPTests.testAddingBadProtos_TooSmallÅ  sX   € ä�MŠM‹Oˆð	WØ�J‰J�rœ: b›>Ô*ô !Ð!UÓVÐVøô ó 	Ø�v‰vÐEÓEÜàûð		úó   —= ½
A"ÁAÁAÁA"c                óÊ   • [         R                  " 5       n UR                  S[        / 5      5        [	        S5      e! [
         a  nUR                  S:X  a   SnAge SnAff = f)ú<Adding a protocol with a number >=2**32 raises an exception.l        rs   ©z"Added protocol must fit in 32 bitsNr|   rv   s     r   ÚtestAddingBadProtos_TooBigÚ"IPTests.testAddingBadProtos_TooBigÒ  sX   € ä�MŠM‹Oˆð	WØ�J‰J�uœj¨›nÔ-ô !Ð!UÓVÐVøô ó 	Ø�v‰vÐ@Ó@Üàûð		úr�   c                óÊ   • [         R                  " 5       n UR                  S[        / 5      5        [	        S5      e! [
         a  nUR                  S:X  a   SnAge SnAff = f)rƒ   l       rs   r„   Nr|   rv   s     r   ÚtestAddingBadProtos_TooBig2Ú#IPTests.testAddingBadProtos_TooBig2ß  sX   € ä�MŠM‹Oˆð	WØ�J‰J�y¤*¨R£.Ô1ô !Ð!UÓVÐVøô ó 	Ø�v‰vÐ@Ó@Üàûð		úr�   r1   N)r6   r7   )r<   r=   r>   r?   r[   rb   rg   rj   rn   rx   r   r…   rˆ   r@   r1   r   r   rB   rB   3   s:   † ô.
ô`P
ôdJ
ôX
ô.`
ôDWôWôW÷Wr   rB   N)Ú
__future__r   Úzoper   Útwisted.pairr   r   Útwisted.pythonr   Útwisted.trialr   ÚimplementerÚIRawDatagramProtocolr
   ÚTestCaserB   r1   r   r   Ú<module>r’      sW   ðõ #å ç  Ý %Ý "ð ×Ò�s×/Ñ/Ó0÷#ð #ó 1ð#ôLwWˆh×Ñõ wWr   