o
    ʷ6i                     @   sP   d dl Z d dlmZmZ d dlmZ 	 G dd de jZedkr&e 	  dS dS )    N)ABNFframe_buffer)WebSocketProtocolExceptionc                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )ABNFTestc                 C   s   t ddddt jd}| |jd | |jd | |jd | |jd | |jd | |jd t dddddd}| |jd | |jd d S )Nr   opcode	       M   )	r   OPCODE_PINGassertEqualfinrsv1rsv2rsv3r   data)selfaa_bad r   ^/var/www/hoanhtaovolam_webdjango/env/lib/python3.10/site-packages/websocket/tests/test_abnf.py	test_init   s   zABNFTest.test_initc                 C   s   t ddddt jd}| jt|jdd t ddddt jd}| jt|jdd t dddddd}| jt|jdd t ddddt jdd}| jt|jdd t ddddt jd	d}| jt|jdd t ddddt jd
d}| jt|jdd d S )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_3r   r   r   test_validate)   sP   
zABNFTest.test_validatec              	   C   s\   t ddddt jdd d}d}| ||| t ddddt jddd}| ||d d S )Nr   r
   r   
mask_valuer   s   aaaar   s   aaaa )r   r   r   _get_masked)r   abnf_none_data	bytes_valabnf_str_datar   r   r   	test_maskS   s   zABNFTest.test_maskc              	   C   s  t ddddt jd}| t|j t dddddd}| t|j t ddddt jdd}| d| d dd	 | d
| d dd	 | d|  t ddddt jdd}| d| d dd	 | d| d dd	 t ddddt jddd}| d|  d S )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_maskr   r   r   test_format^   s"   zABNFTest.test_formatc                 C   sj   t dd}| |jd | |jd |j | |jd  | |jd  | |jd  | | d d S )Nr   TF)	r   r   recvr   clearheaderlengthr(   has_mask)r   fbr   r   r   test_frame_bufferq   s   
zABNFTest.test_frame_bufferN)__name__
__module____qualname__r   r&   r-   r@   rG   r   r   r   r   r      s    *r   __main__)
unittestwebsocket._abnfr   r   websocket._exceptionsr   TestCaser   rH   mainr   r   r   r   <module>   s   `