
    <fh                     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                       e Zd Zd Zd Zd Zy)SSLCompatTestc                 T   ddl m} | j                  |j                         | j	                  |j
                         | j                  t        |d             | j                  t        |d             | j                  t        |d             | j                  t        |d             y)z/Test that SSL is available in normal conditionsr   NSSLErrorSSLEOFErrorSSLWantReadErrorSSLWantWriteError)websocket._ssl_compat_ssl_compat
assertTrueHAVE_SSLassertIsNotNonesslhasattr)self
ssl_compats     R/var/www/zara/venv/lib/python3.12/site-packages/websocket/tests/test_ssl_compat.pytest_ssl_availablez SSLCompatTest.test_ssl_available   s{    2 	
++,Z^^, 	
J78
M:;
,>?@
,?@A    c                    dt         j                  v rt         j                  d= ddl}|j                  fd}t	        d|      5  ddlm} | j                  |j                         | j                  |j                         | j                  t        |j                  t                     | j                  t        |j                  t                     | j                  t        |j                   t                     | j                  t        |j"                  t                     |j                  d      }| j%                  |t               | j'                  t)        |      d       |j                  d      }| j%                  |t               |j!                  d	      }| j%                  |t               |j#                  d
      }| j%                  |t               ddd       y# 1 sw Y   yxY w)z0Test fallback behavior when SSL is not availablewebsocket._ssl_compatr   Nc                 <    | dk(  rt        d       | g|i |S )Nr   zNo module named 'ssl')ImportError)nameargskwargsoriginal_imports      r   mock_importz9SSLCompatTest.test_ssl_not_available.<locals>.mock_import3   s+    u}!"9::"49$9&99r   zbuiltins.__import__)side_effectz
test errorztest eofz	test readz
test write)sysmodulesbuiltins
__import__r   r   r   assertFalser   assertIsNoner   r   
issubclassr   	Exceptionr   r	   r
   assertIsInstanceassertEqualstr)	r   r#   r   r   	ssl_errorssl_eof_errorssl_want_readssl_want_writer   s	           @r   test_ssl_not_availablez$SSLCompatTest.test_ssl_not_available(   s|    #ckk134 	"--	:
 (kB 	=6 Z001jnn- OOJz':':IFGOOJz'='=yIJOOJz'B'BINOOOJz'C'CYOP #++L9I!!)Y7S^\:&22:>M!!-;&77DM!!-;'99,GN!!.)<3	= 	= 	=s   FG((G1c                 L    dt         j                  v rt         j                  d= yy)zClean up after testsr   N)r!   r"   )r   s    r   tearDownzSSLCompatTest.tearDownS   s"     #ckk134 2r   N)__name__
__module____qualname__r   r0   r2    r   r   r   r      s    B)=V5r   r   __main__)r!   unittestunittest.mockr   TestCaser   r3   mainr6   r   r   <module>r<      s@    
  &>5H%% >5B zHMMO r   