
    vKg                         S SK r S SKJrJr  S SKJr    " S S\ R                  5      r\S:X  a  \ R                  " 5         gg)    N)ABNFframe_buffer)WebSocketProtocolExceptionc                   2    \ rS rSrS rS rS rS rS rSr	g)	ABNFTest   c                    [        SSSS[         R                  S9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        [        SSSSSS9nU R                  UR                  S5        U R                  UR                  S5        g )Nr   opcode	       M   )	r   OPCODE_PINGassertEqualfinrsv1rsv2rsv3r   data)selfaa_bads      Y/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/websocket/tests/test_abnf.py	test_initABNFTest.test_init   s    Aq!D$4$45"###1%$Q1a+Q'r*    c           	         [        SSSS[         R                  S9nU R                  [        UR                  SS9  [        SSSS[         R
                  S9nU R                  [        UR                  SS9  [        SSSSSS9nU R                  [        UR                  SS9  [        SSSS[         R                  SS9nU R                  [        UR                  SS9  [        SSSS[         R                  S	S9nU R                  [        UR                  SS9  [        SSSS[         R                  S
S9nU R                  [        UR                  SS9  g )Nr   r
   F)skip_utf8_validationr   r      r   r   s   s   T)r   r   assertRaisesr   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   test_validateABNFTest.test_validate)   sv   aAq1A1AB&##!& 	 	

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

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

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

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

 #q!Qt00{
 	&((!% 	 	
r   c           
          [        SSSS[         R                  SS S9nSnU R                  UR                  U5      U5        [        SSSS[         R                  SSS9nU R                  UR                  U5      S5        g )Nr   r   r   
mask_valuer   s   aaaar   s   aaaa )r   r   r   _get_masked)r   abnf_none_data	bytes_valabnf_str_datas       r   	test_maskABNFTest.test_maskS   s    q!Qt//AD
 	33I>	Jq!Qt//AC
 	229={Kr   c           
         [        SSSS[         R                  S9nU R                  [        UR                  5        [        SSSSSS9nU R                  [        UR                  5        [        SSSS[         R                  SS9nU R                  SUR	                  5       S   R                  SS	5      5        U R                  S
UR	                  5       S   R                  SS	5      5        U R                  SUR                  5       5        [        SSSS[         R                  SS9nU R                  SUR	                  5       S   R                  SS	5      5        U R                  SUR	                  5       S   R                  SS	5      5        [        SSSS[         R                  SSS9nU R                  SUR	                  5       5        g )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   test_formatABNFTest.test_format^   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                    [        SS5      nU R                  UR                  S5        U R                  UR                  S5        UR                    U R                  UR
                  S 5        U R                  UR                  S 5        U R                  UR                  S 5        U R                  UR                  5       S5        g )Nr   TF)	r   r   recvr   clearheaderlengthr0   has_mask)r   fbs     r   test_frame_bufferABNFTest.test_frame_bufferq   s    !T"!$00$7
D)D)-.r    N)
__name__
__module____qualname____firstlineno__r   r,   r5   rJ   rS   __static_attributes__rU   r   r   r   r      s    
+(
T	LI&/r   r   __main__)
unittestwebsocket._abnfr   r   websocket._exceptionsr   TestCaser   rV   mainrU   r   r   <module>ra      sB     . <(]/x   ]/@ zMMO r   