
    <fhA                     z    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                          yy)    N)patchc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)	UtilsTestc                     ddl m}  |       }|5  	 ddd       | j                  |j                                | j                  |j	                  ddd             y# 1 sw Y   KxY w)zTest NoLock context managerr   )NoLockN)websocket._utilsr   assertIsNone	__enter____exit__)selfr   locks      M/var/www/zara/venv/lib/python3.12/site-packages/websocket/tests/test_utils.pytest_nolockzUtilsTest.test_nolock   s[    +x  		 	$..*+$--dD9:	 	s   AA%c                 ~   ddl m} | j                   |dj                  d                   | j                   |dj                  d                   | j                   |d             | j                   |dj                  d                   | j	                   |d             | j	                   |d	             y
)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 	o&<&<W&EFG&9&@&@&IJKo67&<&C&CG&LMN 	{34{34    c                    dt         j                  v rt         j                  d= ddl}|j                  fd}t	        d|      5  ddlm} | j                  |j                  dj                  d                   | j                  |j                  d	             | j                  |j                  d
j                  d                   | j                  |j                  dj                  d                   | j                  |j                  dj                  d                   | j                  |j                  dj                  d                   | j                  |j                  d             | j                  |j                  d             | j                  |j                  d             ddd       y# 1 sw Y   yxY w)z<Test UTF-8 validation fallback when wsaccel is not availablewebsocket._utilsr   Nc                 B    d| v rt        d|  d       | g|i |S )NwsaccelzNo module named '')ImportError)nameargskwargsoriginal_imports      r   mock_importz<UtilsTest.test_utf8_validation_fallback.<locals>.mock_importB   s5    D !$5dV1"=>>"4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   sj    ,./ 	"--	:
 (kB 	?, OOE//0F0Fw0OPQOOE//@AOOE//0C0CG0LMN OOE//0C0J0J70STUOOE//0F0M0Mg0VWX OOE//		'0BCDOOE//45 U00=>U00=>%	? 	? 	?s   E2GGc                     ddl m} t        d      }| j                   ||      d       t        dd      }| j                   ||      d       t               }| j	                   ||             y)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^   sj    8 ""67,];=QR #;=,^<kJ  k-k:;r   c                 $   ddl m} t        dd      }| j                   ||      d       t        dd      }| j	                   ||             t        d      }| j	                   ||             t               }| j	                   ||             y)	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 "#{3+M:C@ $O\B,_=> #<0,^<=  k,[9:r   c                 L    dt         j                  v rt         j                  d= yy)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      s!    ;5"?N< ;(0r   r   __main__)r+   unittestunittest.mockr   TestCaser   rC   mainrF   r   r   <module>rL      sB    
  &m0!! m0` zHMMO r   