o
    >h)                     @  sX   d dl mZ d dlmZ d dlmZ d dlmZ G dd dejZ	G dd dej
Zd	S )
    )annotations)protocol)rawudp)unittestc                   @  s    e Zd ZdddZdddZdS )
MyProtocol	expectinglist[tuple[bytes, bytes, int]]returnNonec                 C  s   t || _d S )N)listr   )selfr    r   }/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/twisted/pair/test/test_rawudp.py__init__   s   zMyProtocol.__init__databytespeertuple[bytes, int]c                 C  sx   |\}}| j sJ d| j d\}}}||ks J d||||ks,J d||||ks:J d||||f d S )Nz(Got a packet when not expecting anymore.r   zExpected data {!r}, got {!r}zExpected host {!r}, got {!r}z&Expected port %d=0x%04x, got %d=0x%04x)r   popformat)r   r   r   hostport
expectData
expectHost
expectPortr   r   r   datagramReceived   s   zMyProtocol.datagramReceivedN)r   r   r	   r
   )r   r   r   r   r	   r
   )__name__
__module____qualname__r   r   r   r   r   r   r      s    
r   c                   @  sf   e Zd ZdddZdddZdddZdd	d
ZdddZdddZdddZ	dddZ
dddZdS )RawUDPTestsr	   r
   c                 C  s\   t  }tdg}|d| |jddddddddddddddd |jr,J d|j d S 	N   foobar   testHostiC       C ޭfoobarr      dummyr#   partialdestsourcer   versionihltostot_lenfragment_idfragment_offsetdont_fragmentmore_fragmentsttl5Should not expect any more packets, but still want %rr   RawUDPProtocolr   addProtor   r   r   protop1r   r   r   testPacketParsing$   s2   zRawUDPTests.testPacketParsingc                 C  s   t  }tddg}|d| |jddddddddddddddd |jd	ddd
ddddddddddd |jr@J d|j d S )Nr!      quux	   otherHosti3  r$   r%   r   r&   r#   r'      3 ޭquuxr>   r4   r5   r8   r   r   r   testMultiplePacketsF   sT   zRawUDPTests.testMultiplePacketsc                 C  s   t  }tdg}tdg}|d| |d| |jddddddddddddddd |jr7J d|j |jrAJ d|j d S r    r5   r   r9   r:   p2r   r   r   testMultipleSameProtos|   sB   z"RawUDPTests.testMultipleSameProtosc                 C  sF   t  }tg }|d| |jddddddddddddddd d S )N   r%   r   r&   r#   r'   )r   r6   r   r7   r   r8   r   r   r   testWrongProtoNotSeen   s&   
z!RawUDPTests.testWrongProtoNotSeenc                 C  s   t  }tddg}|d| tddg}|d| |jddd	d
d	d	d	d	d	d	d	d	d	d	d |jddd	dd	d	d	d	d	d	d	d	d	d	d |jddd	d
d	d	d	d	d	d	d	d	d	d	d |jddd	dd	d	d	d	d	d	d	d	d	d	d |jrrJ d|j |jr|J d|j d S )Nr!   r<   r$   )r=   r>   i  )r"   r#   i  iP  s   P ޭquuxr   r&   r>   r'   r%   r#   r?   s   P ޭfoobarr4   r5   rA   r   r   r   testDemuxing   s   zRawUDPTests.testDemuxingc              
   C  sT   t  }z|dd W td ty) } z|jdkrn W Y d}~dS d}~ww )z2Adding a wrong level protocol raises an exception.*   	silliness)z6Added protocol must be an instance of DatagramProtocolN2addProto must raise an exception for bad protocols)r   r6   r7   	TypeErrorargsAssertionErrorr   er   r   r   testAddingBadProtos_WrongLevel-  s   
z*RawUDPTests.testAddingBadProtos_WrongLevelc              
   C  X   t  }z|dt  W td ty+ } z|jdkrn W Y d}~dS d}~ww )z=Adding a protocol with a negative number raises an exception.)z'Added protocol must be positive or zeroNrI   r   r6   r7   r   DatagramProtocolrJ   rK   rL   rM   r   r   r   testAddingBadProtos_TooSmall:     
z(RawUDPTests.testAddingBadProtos_TooSmallc              
   C  rP   )<Adding a protocol with a number >=2**16 raises an exception.i   z"Added protocol must fit in 16 bitsNrI   rR   rM   r   r   r   testAddingBadProtos_TooBigG  rU   z&RawUDPTests.testAddingBadProtos_TooBigc              
   C  rP   )rV   i  rW   NrI   rR   rM   r   r   r   testAddingBadProtos_TooBig2T  rU   z'RawUDPTests.testAddingBadProtos_TooBig2N)r	   r
   )r   r   r   r;   r@   rC   rE   rF   rO   rT   rX   rY   r   r   r   r   r   #   s    

"
6
-

j

r   N)
__future__r   twisted.internetr   twisted.pairr   twisted.trialr   rS   r   TestCaser   r   r   r   r   <module>   s   