
    Yf                         d dl mZ d dlmZmZ d dlmZ d dlmZ  eej	                   G d d                      Z
 G d dej                  Zd	S )
    )implementer)ethernetraw)
components)unittestc                        e Zd Zd Zd Zd ZdS )
MyProtocolc                 .    t          |          | _        d S )N)list	expecting)selfr   s     Q/var/www/html/env/lib/python3.11/site-packages/twisted/pair/test/test_ethernet.py__init__zMyProtocol.__init__   s    i    c                     dS )z!
        Not implemented
        N )r   numprotos      r   addProtozMyProtocol.addProto   s      r   c                     | j         s
J d            | j                             d          }t                      }||||d}|||fk    s J d                    |||f                      d S )Nz(Got a packet when not expecting anymore.r   partialdestsourceprotocolzExpected {!r}, got {!r})r   poplocalsformat)	r   datar   r   r   r   expectlocalVariablesparamss	            r   datagramReceivedzMyProtocol.datagramReceived   s    ~IIIII~##A&& 	
 
 $''')B)I)IT6N*
 *
'''''r   N)__name__
__module____qualname__r   r   r#   r   r   r   r	   r	   
   sA        ) ) )  

 
 
 
 
r   r	   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )EthernetTestsc                     t          j                    }t          ddddddfg          }|                    d|           |                    dd           |j        rJ d	|j        z              d S )
N   foobarr      123456   987654   r      123456987654 foobarr   5Should not expect any more packets, but still want %rr   EthernetProtocolr	   r   r#   r   r   r   p1s      r   testPacketParsingzEthernetTests.testPacketParsing$   s    )++ #$ )"+$*	 

 
 	vr"""<aHHH< 	
 	
CblR	
 	
 	
 	
r   c           	      $   t          j                    }t          ddddddfddd	d
ddfg          }|                    d|           |                    dd           |                    dd           |j        rJ d|j        z              d S )Nr*   r   r+   r,   r-   r      quux      012345   abcdefr.   r/      012345abcdef quuxr0   r1   r3   s      r   testMultiplePacketsz!EthernetTests.testMultiplePackets;   s    )++ #$ )"+$*	  #$ )"+$*	 
 
, 	vr"""<aHHH:AFFF< 	
 	
CblR	
 	
 	
 	
r   c                    t          j                    }t          ddddddfg          }t          ddddddfg          }|                    d|           |                    d|           |                    dd           |j        r"J d	                    |j                              |j        r"J d	                    |j                              d S )
Nr*   r   r+   r,   r-   r   r.   r/   z7Should not expect any more packets, but still want {!r})r   r2   r	   r   r#   r   r   r   r   r4   p2s       r   testMultipleSameProtosz$EthernetTests.testMultipleSameProtos\   s4   )++ #$ )"+$*	 

 
  #$ )"+$*	 

 
 	vr"""vr"""<aHHH 	
 	
GNNL
 
	
 	

 	
 	
GNNL
 
	
 	
	
 	
r   c                     t          j                    }t          g           }|                    d|           |                    dd           |                    dd           d S )Ni  r.   r   r/   r;   r8   )r   r2   r	   r   r#   r3   s      r   testWrongProtoNotSeenz#EthernetTests.testWrongProtoNotSeen   si    )++^^vr"""<aHHH:AFFFFFr   c           	         t          j                    }t          ddddddfddd	d
ddfg          }|                    d|           t          ddd	d
ddfddddddfg          }|                    d|           |                    dd           |                    dd           |                    dd           |                    dd           |j        rJ d|j        z              |j        rJ d|j        z              d S )Nr*   r   r+   r,   r-   r   r7   r8   r9   r:   i  r.   r/   s   012345abcdefquuxs   123456987654foobarr;   r0   r1   r>   s       r   testDemuxingzEthernetTests.testDemuxing   s   )++ #$ )"+$*	  #$ )"+$*	 
 
, 	vr""" #$ )"+$*	  #$ )"+$*	 
 
, 	vr"""<aHHH:AFFF<aHHH:AFFF< 	
 	
CblR	
 	
 < 	
 	
CblR	
 	
 	
 	
r   c                     t          j                    }	 |                    dd           t          d          # t          j        $ r Y dS w xY w)z2Adding a wrong level protocol raises an exception.*   	silliness2addProto must raise an exception for bad protocolsN)r   r2   r   AssertionErrorr   CannotAdaptr   es     r   testAddingBadProtos_WrongLevelz,EthernetTests.testAddingBadProtos_WrongLevel   sb    %''	WJJr;''' !!UVVV % 	 	 	DD	s   : AAc                     t          j                    }	 |                    dt          g                      t	          d          # t
          $ r}|j        dk    rn Y d}~dS d}~ww xY w)z=Adding a protocol with a negative number raises an exception.rH   )z'Added protocol must be positive or zeroNr   r2   r   r	   rI   	TypeErrorargsrK   s     r   testAddingBadProtos_TooSmallz*EthernetTests.testAddingBadProtos_TooSmall   s    %''	WJJr:b>>*** !!UVVV  	 	 	vEEE 	   #A 
A)A$$A)c                     t          j                    }	 |                    dt          g                      t	          d          # t
          $ r}|j        dk    rn Y d}~dS d}~ww xY w)<Adding a protocol with a number >=2**16 raises an exception.i   rH   z"Added protocol must fit in 16 bitsNrP   rK   s     r   testAddingBadProtos_TooBigz(EthernetTests.testAddingBadProtos_TooBig   s    %''	WJJujnn--- !!UVVV  	 	 	v@@@ 	rT   c                     t          j                    }	 |                    dt          g                      t	          d          # t
          $ r}|j        dk    rn Y d}~dS d}~ww xY w)rV   i  rH   rW   NrP   rK   s     r   testAddingBadProtos_TooBig2z)EthernetTests.testAddingBadProtos_TooBig2   s    %''	WJJy*R..111 !!UVVV  	 	 	v@@@ 	rT   N)r$   r%   r&   r5   r<   r@   rB   rD   rM   rS   rX   rZ   r   r   r   r(   r(   #   s        
 
 
.
 
 
B,
 ,
 ,
\G G G<
 <
 <
|W W WW W WW W WW W W W Wr   r(   N)zope.interfacer   twisted.pairr   r   twisted.pythonr   twisted.trialr   IRawPacketProtocolr	   TestCaser(   r   r   r   <module>ra      s    ' & & & & & & & & & & & & & % % % % % % " " " " " " S#$$
 
 
 
 
 
 
 %$
0\W \W \W \W \WH% \W \W \W \W \Wr   