
    Zi                     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                        e Zd Zd Zd Zd ZdS )SSLCompatTestc                    ddl m} |                     |j                   |                     |j                   |                     t          |d                     |                     t          |d                     |                     t          |d                     |                     t          |d                     dS )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     Z/root/projects/butler/venv/lib/python3.11/site-packages/websocket/tests/test_ssl_compat.pytest_ssl_availablez SSLCompatTest.test_ssl_available   s    222222 	
+,,,Z^,,, 	
J77888
M::;;;
,>??@@@
,?@@AAAAA    c                 T   dt           j        v rt           j        d= ddl}|j        fd}t	          d|          5  ddlm} |                     |j                   | 	                    |j
                   |                     t          |j        t                               |                     t          |j        t                               |                     t          |j        t                               |                     t          |j        t                               |                    d          }|                     |t                     |                     t)          |          d           |                    d          }|                     |t                     |                    d	          }|                     |t                     |                    d
          }|                     |t                     ddd           dS # 1 swxY w Y   dS )z0Test fallback behavior when SSL is not availablewebsocket._ssl_compatr   Nc                 F    | dk    rt          d           | g|R 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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(   sD    #ck1134 	"-	: 	: 	: 	: 	:
 (kBBB 	= 	=666666 Z0111jn--- OOJz':IFFGGGOOJz'=yIIJJJOOJz'BINNOOOOOJz'CYOOPPP #++L99I!!)Y777S^^\:::&22:>>M!!-;;;&77DDM!!-;;;'99,GGN!!.)<<<3	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   GHH!$H!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SSLCompatTest.tearDownS   s*     #ck113444 21r   N)__name__
__module____qualname__r   r0   r2    r   r   r   r      sE        B B B)= )= )=V5 5 5 5 5r   r   __main__)r!   unittestunittest.mockr   TestCaser   r3   mainr6   r   r   <module>r<      s    



       &>5 >5 >5 >5 >5H% >5 >5 >5B zHMOOOOO r   