
    iA                     |    S SK r S SKrS SKJr    " S S\R                  5      r\S:X  a  \R                  " 5         gg)    N)patchc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
	UtilsTest   c                     SSK Jn  U" 5       nU    SSS5        U R                  UR                  5       5        U R                  UR	                  SSS5      5        g! , (       d  f       NP= f)zTest NoLock context managerr   )NoLockN)websocket._utilsr   assertIsNone	__enter____exit__)selfr   locks      GC:\des-py\RoboSAPF\venv\Lib\site-packages\websocket/tests/test_utils.pytest_nolockUtilsTest.test_nolock   sS    +x   	$..*+$--dD9: Ts   A
A*c                 ~   SSK Jn  U R                  U" SR                  S5      5      5        U R                  U" SR                  S5      5      5        U R                  U" S5      5        U R                  U" SR                  S5      5      5        U R	                  U" S5      5        U R	                  U" S	5      5        g
)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_wsaccel+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                   ^ S[         R                  ;   a  [         R                  S	 SSKnUR                  mU4S jn[	        SUS9   SSKJn  U R                  UR                  SR                  S5      5      5        U R                  UR                  S	5      5        U R                  UR                  S
R                  S5      5      5        U R                  UR                  SR                  S5      5      5        U R                  UR                  SR                  S5      5      5        U R                  UR                  SR                  S5      5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        SSS5        g! , (       d  f       g= f)z<Test UTF-8 validation fallback when wsaccel is not availablewebsocket._utilsr   Nc                 F   > SU ;   a  [        SU  S35      eT" U /UQ70 UD6$ )NwsaccelzNo module named '')ImportError)nameargskwargsoriginal_imports      r   mock_import<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   r1   r+   utilsr*   s       @r   test_utf8_validation_fallback'UtilsTest.test_utf8_validation_fallback7   sb    ,./ 	"--	:
 (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=>% CBBs   E2G
Gc                     SSK Jn  [        S5      nU R                  U" U5      S5        [        SS5      nU R                  U" U5      S5        [        5       nU R	                  U" U5      5        g)z!Test extract_err_message functionr   )extract_err_messagezTest error messagez	First arg
Second argN)r	   r8   	ExceptionassertEqualr
   )r   r8   exc_with_argsexc_multi_argsexc_no_argss        r   test_extract_err_message"UtilsTest.test_extract_err_message^   sj    8 ""67,];=QR #;=,^<kJ  k-k:;r    c                 $   SSK Jn  [        SS5      nU R                  U" U5      S5        [        SS5      nU R	                  U" U5      5        [        S5      nU R	                  U" U5      5        [        5       nU R	                  U" U5      5        g)	z Test extract_error_code functionr   )extract_error_codei  z	Not foundzError messager9   z
Single argN)r	   rB   r:   r;   r
   )r   rB   exc_with_codeexc_with_stringexc_single_argr>   s         r   test_extract_error_code!UtilsTest.test_extract_error_coden   s    7 "#{3+M:C@ $O\B,_=> #<0,^<=  k,[9:r    c                 P    S[         R                  ;   a  [         R                  S	 gg)zClean up after testsr"   N)r/   r0   )r   s    r   tearDownUtilsTest.tearDown   s"     ,./ -r     N)__name__
__module____qualname____firstlineno__r   r   r5   r?   rF   rI   __static_attributes__rK   r    r   r   r      s!    ;5"?N< ;(0r    r   __main__)r/   unittestunittest.mockr   TestCaser   rL   mainrK   r    r   <module>rV      s@    
  &m0!! m0` zMMO r    