a
    ñ»j‹  ã                   @   sB   d dl Z d dlZd dlmZ G dd„ dejƒZedkr>e ¡  dS )é    N)Úpatchc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚSSLCompatTestc                 C   sh   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_SSLZassertIsNotNoneÚsslÚhasattr)ÚselfÚ
ssl_compat© r   úEE:\soccer\ml_env\Lib\site-packages\websocket/tests/test_ssl_compat.pyÚtest_ssl_available   s    z SSLCompatTest.test_ssl_availablec                    s2  dt jv rt jd= ddl}|j‰ ‡ fdd„}td|d��ä 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¡ W d  ƒ n1 �s$0    Y  dS )z0Test fallback behavior when SSL is not availableúwebsocket._ssl_compatr   Nc                    s&   | dkrt dƒ‚ˆ | g|¢R i |¤ŽS )Nr   zNo module named 'ssl')ÚImportError)ÚnameÚargsÚkwargs©Zoriginal_importr   r   Úmock_import3   s    z9SSLCompatTest.test_ssl_not_available.<locals>.mock_importzbuiltins.__import__)Zside_effectz
test errorztest eofz	test readz
test write)ÚsysÚmodulesÚbuiltinsÚ
__import__r   r   r	   ZassertFalser   ZassertIsNoner   r
   Ú
issubclassr   Ú	Exceptionr   r   r   ZassertIsInstanceZassertEqualÚstr)r   r   r   r   Ú	ssl_errorZssl_eof_errorZssl_want_readZssl_want_writer   r   r   Útest_ssl_not_available(   s,    




z$SSLCompatTest.test_ssl_not_availablec                 C   s   dt jv rt jd= dS )zClean up after testsr   N)r   r   )r   r   r   r   ÚtearDownS   s    
zSSLCompatTest.tearDownN)Ú__name__Ú
__module__Ú__qualname__r   r"   r#   r   r   r   r   r      s   +r   Ú__main__)r   ZunittestZunittest.mockr   ZTestCaser   r$   Úmainr   r   r   r   Ú<module>   s
   A