
     ke2                     x    d dl Z d dlZd dl 	  G d de j                        Zedk(  r e j                          yy)    N)*c                   *    e Zd Zd Zd Zd Zd Zd Zy)ABNFTestc                     t        ddddt         j                        }| j                  |j                  d       | j                  |j                  d       | j                  |j
                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       t        ddddd      }| j                  |j                  d       | j                  |j                  d       y )Nr   opcode	       M   )	ABNFOPCODE_PINGassertEqualfinrsv1rsv2rsv3r   data)selfaa_bads      ;/usr/lib/python3/dist-packages/websocket/tests/test_abnf.pytestInitzABNFTest.testInit   s    Aq!D$4$45"###1%$Q1a+Q'r*    c                    t        ddddt         j                        }| j                  t        j                  j
                  |j                  d       t        ddddt         j                        }| j                  t        j                  j
                  |j                  d       t        ddddd      }| j                  t        j                  j
                  |j                  d       t        ddddt         j                  d      }| j                  t        j                  j
                  |j                  d       t        ddddt         j                  d	      }| j                  t        j                  j
                  |j                  d       t        ddddt         j                  d
      }| j                  t        j                  j
                  |j                  d       y )Nr   r   F)skip_utf8_validationr   r      r   r   s   s   T)	r   r   assertRaisesws_exceptionsWebSocketProtocolExceptionvalidateOPCODE_TEXTOPCODE_CLOSE)r   a_invalid_pinga_bad_rsv_valuea_bad_opcodea_bad_close_framea_bad_close_frame_2a_bad_close_frame_3s          r   testValidatezABNFTest.testValidate)   s   aAq1A1ABNN55##!& 	 	

 q!Q$2B2BCNN55$$!& 	 	

 Aq!Qr2NN55!!!& 	 	

 !Aq!D4E4EGTNN55&&!& 	 	

 #q!Qt007N
 	NN55((!& 	 	

 #q!Qt00{
 	NN55((!% 	 	
r   c           	         t        ddddt         j                  dd       }d}| j                  |j                  |      |       t        ddddt         j                  dd      }| j                  |j                  |      d       y )Nr   r   r   
mask_valuer   s   aaaar   s   aaaa )r   r   r   _get_masked)r   abnf_none_data	bytes_valabnf_str_datas       r   testMaskzABNFTest.testMaskS   s    q!Qt//AD
 	33I>	Jq!Qt//AC
 	229={Kr   c           	         t        ddddt         j                        }| j                  t        |j                         t        ddddd      }| j                  t        |j                         t        ddddt         j                  d      }| j                  d|j	                         d   j                  dd	             | j                  d
|j	                         d   j                  dd	             | j                  d|j                                t        ddddt         j                  d      }| j                  d|j	                         d   j                  dd	             | j                  d|j	                         d   j                  dd	             t        ddddt         j                  dd      }| j                  d|j	                                y )N   r   r      
abcdefghijr   r   r   big   zfin=0 opcode=1 data=abcdefghijabcdefghijabcdefghij      s   r.   s   )	r   r$   r   
ValueErrorformatr   to_bytes__str__OPCODE_BINARY)r   abnf_bad_rsv_bitsabnf_bad_opcodeabnf_length_10abnf_length_20abnf_no_masks         r   
testFormatzABNFTest.testFormat^   s    Aq!D4D4DE*&7&>&>?q!Q!4*o&<&<=aAq1A1AU."7"7"9!"<"E"Ea"OP."7"7"9!"<"E"Ea"OP9>;Q;Q;STq!Qt118N
 	."7"7"9!"<"E"Ea"OP."7"7"9!"<"E"Ea"OPq!Qt//AO
 	0,2E2E2GHr   c                    t        dd      }| j                  |j                  d       | j                  |j                  d       |j                   | j                  |j
                  d        | j                  |j                  d        | j                  |j                  d        | j                  |j                         d       y )Nr   TF)	frame_bufferr   recvr   clearheaderlengthr/   has_mask)r   fbs     r   testFrameBufferzABNFTest.testFrameBufferq   s    !T"!$00$7
D)D)-.r   N)__name__
__module____qualname__r   r,   r4   rH   rQ    r   r   r   r      s    
+(
T	LI&/r   r   __main__)unittest	websocketr    websocket._abnfTestCaser   rR   mainrU   r   r   <module>r\      sD      (]/x   ]/@ zHMMO r   