o
    M,öhA  ã                   @   sH   d dl Z d dlZd dlmZ 	 G dd„ dejƒZedkr"e ¡  dS dS )é    N)Úpatchc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )Ú	UtilsTestc                 C   s\   ddl m} |ƒ }| W d  ƒ n1 sw   Y  |  | ¡ ¡ |  | ddd¡¡ dS )zTest NoLock context managerr   )ÚNoLockN)Úwebsocket._utilsr   ÚassertIsNoneÚ	__enter__Ú__exit__)Úselfr   Úlock© r   úf/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/websocket/tests/test_utils.pyÚtest_nolock   s   ÿzUtilsTest.test_nolockc                 C   sv   ddl m} |  |d d¡ƒ¡ |  |d d¡ƒ¡ |  |dƒ¡ |  |d d¡ƒ¡ |  |dƒ¡ |  |d	ƒ¡ d
S )z/Test UTF-8 validation when wsaccel is availabler   )Úvalidate_utf8úHello, World!úutf-8õ   ðŸŒŸ Unicode testó   Hello, bytesõ   HÃ©llo with accÃ©ntsó   ÿþó   €€N)r   r   Ú
assertTrueÚencodeÚassertFalse)r	   r   r   r   r   Ú!test_utf8_validation_with_wsaccel(   s   z+UtilsTest.test_utf8_validation_with_wsaccelc                    s  dt jv r	t jd= ddl}|j‰ ‡ fdd„}td|df ddlm} |  | d 	d	¡¡¡ |  | d
¡¡ |  | d 	d	¡¡¡ |  | d 	d	¡¡¡ |  | d 	d	¡¡¡ |  | d 	d	¡¡¡ |  | d¡¡ |  
| d¡¡ |  
| d¡¡ W d  ƒ dS 1 s…w   Y  dS )z<Test UTF-8 validation fallback when wsaccel is not availableúwebsocket._utilsr   Nc                    s.   d| v rt d| › dƒ‚ˆ | g|¢R i |¤ŽS )NÚwsaccelzNo module named 'ú')ÚImportError)ÚnameÚargsÚkwargs©Úoriginal_importr   r   Úmock_importB   s   z<UtilsTest.test_utf8_validation_fallback.<locals>.mock_importzbuiltins.__import__)Úside_effectr   r   r   z
ASCII textr   r   Ú ó    r   r   )ÚsysÚmodulesÚbuiltinsÚ
__import__r   r   Ú_utilsr   r   r   r   )r	   r)   r#   Úutilsr   r!   r   Útest_utf8_validation_fallback7   s"   
"îz'UtilsTest.test_utf8_validation_fallbackc                 C   sV   ddl m} tdƒ}|  ||ƒd¡ tddƒ}|  ||ƒd¡ tƒ }|  ||ƒ¡ dS )z!Test extract_err_message functionr   )Úextract_err_messagezTest error messagez	First argú
Second argN)r   r.   Ú	ExceptionÚassertEqualr   )r	   r.   Úexc_with_argsÚexc_multi_argsÚexc_no_argsr   r   r   Útest_extract_err_message^   s   
z"UtilsTest.test_extract_err_messagec                 C   sl   ddl m} tddƒ}|  ||ƒd¡ tddƒ}|  ||ƒ¡ tdƒ}|  ||ƒ¡ tƒ }|  ||ƒ¡ dS )	z Test extract_error_code functionr   )Úextract_error_codei”  z	Not foundzError messager/   z
Single argN)r   r6   r0   r1   r   )r	   r6   Úexc_with_codeÚexc_with_stringÚexc_single_argr4   r   r   r   Útest_extract_error_coden   s   

z!UtilsTest.test_extract_error_codec                 C   s   dt jv rt jd= dS dS )zClean up after testsr   N)r'   r(   )r	   r   r   r   ÚtearDown‚   s   
ÿzUtilsTest.tearDownN)	Ú__name__Ú
__module__Ú__qualname__r   r   r-   r5   r:   r;   r   r   r   r   r      s    'r   Ú__main__)r'   ÚunittestÚunittest.mockr   ÚTestCaser   r<   Úmainr   r   r   r   Ú<module>   s   pÿ