
    ZiA                     x    d dl Z d dlZd dlmZ 	  G d dej                  Zedk    r ej                     dS dS )    N)patchc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )	UtilsTestc                     ddl m}  |            }|5  	 ddd           n# 1 swxY w Y   |                     |                                           |                     |                    ddd                     dS )zTest NoLock context managerr   )NoLockN)websocket._utilsr   assertIsNone	__enter____exit__)selfr   locks      U/root/projects/butler/venv/lib/python3.11/site-packages/websocket/tests/test_utils.pytest_nolockzUtilsTest.test_nolock   s    ++++++vxx  	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	$..**+++$--dD99:::::s   !%%c                    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   s     r   !test_utf8_validation_with_wsaccelz+UtilsTest.test_utf8_validation_with_wsaccel(   s     	322222 	o&<&<W&E&EFFGGG&9&@&@&I&IJJKKKo66777&<&C&CG&L&LMMNNN 	{33444{3344444    c                 L   dt           j        v rt           j        d= ddl}|j        fd}t	          d|          5  ddlm} |                     |                    d	                    d                               |                     |                    d	                     |                     |                    d
	                    d                               |                     |                    d	                    d                               |                     |                    d	                    d                               |                     |                    d	                    d                               |                     |                    d                     | 
                    |                    d                     | 
                    |                    d                     ddd           dS # 1 swxY w Y   dS )z<Test UTF-8 validation fallback when wsaccel is not availablewebsocket._utilsr   Nc                 J    d| v rt          d|  d           | g|R i |S )NwsaccelzNo module named '')ImportError)nameargskwargsoriginal_imports      r   mock_importz<UtilsTest.test_utf8_validation_fallback.<locals>.mock_importB   sH    D  !"=d"="="=>>>"?49$999&999r   zbuiltins.__import__)side_effectr   r   r   z
ASCII textr   r    r   r   r   )sysmodulesbuiltins
__import__r   r   _utilsr   r   r   r   )r   r-   r(   utilsr'   s       @r   test_utf8_validation_fallbackz'UtilsTest.test_utf8_validation_fallback7   sG    ,,./ 	"-	: 	: 	: 	: 	:
 (kBBB 	? 	?,,,,,, OOE//0F0Fw0O0OPPQQQOOE//@@AAAOOE//0C0CG0L0LMMNNN OOE//0C0J0J70S0STTUUUOOE//0F0M0Mg0V0VWWXXX OOE//		'0B0BCCDDDOOE//44555 U00==>>>U00==>>>%	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   GHH Hc                 $   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   r3   	ExceptionassertEqualr	   )r   r3   exc_with_argsexc_multi_argsexc_no_argss        r   test_extract_err_messagez"UtilsTest.test_extract_err_message^   s    888888 ""677,,];;=QRRR #;==,,^<<kJJJ  kk--k::;;;;;r   c                 ~   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 messager4   z
Single argN)r   r<   r5   r6   r	   )r   r<   exc_with_codeexc_with_stringexc_single_argr9   s         r   test_extract_error_codez!UtilsTest.test_extract_error_coden   s    777777 "#{33++M::C@@@ $O\BB,,_==>>> #<00,,^<<===  kk,,[99:::::r   c                 @    dt           j        v rt           j        d= dS dS )zClean up after testsr   N)r+   r,   )r   s    r   tearDownzUtilsTest.tearDown   s*     ,,./// -,r   N)	__name__
__module____qualname__r   r   r1   r:   r@   rB    r   r   r   r      so        ; ; ;5 5 5"? "? "?N< < < ; ; ;(0 0 0 0 0r   r   __main__)r+   unittestunittest.mockr   TestCaser   rC   mainrF   r   r   <module>rL      s    



       &m0 m0 m0 m0 m0! m0 m0 m0` zHMOOOOO r   