
    vKg0                        S SK r S SKr S SKrS SKrS SKrS SKrS SKJrJr  S SK	J
r
JrJrJrJrJrJr    S SKJrJrJr  \ R*                  R-                  SS5      S:H  r\ R*                  R-                  SS5      S:H  r\ R*                  R-                  S	S
5      r\S
:g  r " S S5      r " S S\5      r " S S5      r " S S\R<                  5      r\ S:X  a  \RB                  " 5         gg!   S SK	JrJrJr   N= f)    N)WebSocketProxyExceptionWebSocketException)_get_addrinfo_list_start_proxied_socket_tunnelconnect
proxy_inforead_headersHAVE_PYTHON_SOCKS)ProxyConnectionError
ProxyErrorProxyTimeoutErrorTEST_WITH_INTERNET01TEST_WITH_PROXYLOCAL_WS_SERVER_PORTz-1c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
SockMock5   c                      / U l         / U l        g Ndatasentselfs    Y/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/websocket/tests/test_http.py__init__SockMock.__init__6   s    		    c                 :    U R                   R                  U5        g r   )r   appendr   r   s     r   
add_packetSockMock.add_packet:   s    		r!   c                     g r    r   s    r   
gettimeoutSockMock.gettimeout=   s    r!   c                     U R                   (       ad  U R                   R                  S5      n[        U[        5      (       a  Ue[	        U5      U:  a  U R                   R                  SX!S  5        US U $ g )Nr   )r   pop
isinstance	Exceptionleninsert)r   bufsizees      r   recvSockMock.recv@   sb    99		a A!Y''1v		  AhK0Xg; r!   c                 N    U R                   R                  U5        [        U5      $ r   )r   r#   r/   r$   s     r   sendSockMock.sendI   s    		4yr!   c                     g r   r(   r   s    r   closeSockMock.closeM   s    r!   r   N)__name__
__module____qualname____firstlineno__r   r%   r)   r3   r6   r9   __static_attributes__r(   r!   r   r   r   5   s     r!   r   c                       \ rS rSrS rSrg)HeaderSockMockQ   c                 :   [         R                  U 5        [        R                  R	                  [        R                  R                  [        5      U5      n[        US5       nU R                  UR                  5       5        S S S 5        g ! , (       d  f       g = f)Nrb)
r   r   ospathjoindirname__file__openr%   read)r   fnamerF   fs       r   r   HeaderSockMock.__init__R   s[    $ww||BGGOOH5u=$OOAFFH% s   # B
Br(   Nr;   r<   r=   r>   r   r?   r(   r!   r   rA   rA   Q   s    &r!   rA   c                       \ rS rSrS rSrg)OptsListY   c                 N    SU l         / U l        S[        R                  0U l        g )N   	cert_reqs)timeoutsockoptssl	CERT_NONEssloptr   s    r   r   OptsList.__init__Z   s     "CMM2r!   )rW   rZ   rV   NrO   r(   r!   r   rQ   rQ   Y   s    3r!   rQ   c                      \ rS rSrS rS r\R                  " \S5      S 5       r	\R                  " \S5      \R                  " \
S5      \R                  " \S5      S 5       5       5       r\R                  " \S5      S	 5       rS
 rSrg)HttpTest`   c                     [        [        S5      5      u  pnU R                  US5        U R                  US   S5        U R                  [        [         [        S5      5        g )Ndata/header01.txte   
connectionUpgradedata/header02.txt)r
   rA   assertEqualassertRaisesr   )r   statusheader_s       r   test_read_headerHttpTest.test_read_headera   sW    (8K)LM%-y9n=P.Q	
r!   c                     U R                  [        [        [        S5      SSS5        U R                  [        [        [        S5      SSS5        g )Nr`   example.comP   )usernamepasswordrd   )rf   r   r   rA   r   s    r   test_tunnelHttpTest.test_tunnelj   sP    #./$	
 	#./$	
r!   z%Internet-requiring tests are disabledc                    [         (       Ga  U R                  [        [        4[        S[        5       [        SSSSS95        U R                  [        [        4[        S[        5       [        SSSSS95        U R                  [        [        4[        S[        5       [        SSSSS95        U R                  [        [        4[        S[        5       [        SSS	SS95        U R                  [        [        S[        5       [        S
SSSS9S 5        U R                  [        [        S SS[        S
SSS95        U R                  [        [        S SS[        S
SSS95        U R                  [        R                  [        S[        5       [        SSSSS9S 5        U R                  [        S[        5       [        SSSS9S5      S5        g )Nzwss://example.comrm   8080socks4rT   )http_proxy_hosthttp_proxy_port
proxy_typehttp_proxy_timeoutsocks4asocks5socks5h	127.0.0.1i'  rn   T9999httprv   rw   rx   zwss://google.comz8.8.8.8i  )T)z
google.com  /)r   rf   r   OSErrorr   rQ   r	   r   r   	TypeErrorr   socketrV   re   r   s    r   test_connectHttpTest.test_connect|   s     "G,%#
$1$*''(	 "G,%#
$1$*('(	 "G,%#
$1$*''(	 "G,%#
$1$*('(	 $#
$/$(''(	  	 +VPV		
 	 +VPV		
 	NNJ ) $!#$	 	
 	"
$-tPV  -
	
r!   z:This test requires a HTTP proxy to be running on port 8899z/Tests using local websocket server are disabledc                    [         R                  " 5       nUR                  S[         3SSSS9  UR	                  S5        UR                  5       nU R                  US5        U R                  [        SSS	[        SSSS95      [        R                  " SS
S[        R                  [        R                  5      S	S 45        U R                  [        S[        5       [        SS
SS9S 5      S   S5        g )Nzws://127.0.0.1:r}   8899r   r   zHello, Serverapi.bitfinex.comr   Ti"  r   wss://api.bitfinex.com/ws/2rT   )r   r   z/ws/2)	websocket	WebSocketr   r   r6   r3   re   r   r	   r   getaddrinfoSOCK_STREAMSOL_TCPrQ   )r   wsserver_responses      r   test_proxy_connectHttpTest.test_proxy_connect   s      "


234'"	 	 	
 	 '')/:"$/$*%		 ""q&*<*<fnn 	
& 	-
$/RX   /
	
r!   c                 "   SS[         R                  SSS.n[        R                  " US9nUR	                  S5        UR                  S5        UR                  5         [        R                  " S	S
0S9nUR	                  S5        UR                    g )NF
ServerNamea  TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:                        TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:                        ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:                        ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:                        DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:                        ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:                        ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:                        DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:                        ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:                        ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA
prime256v1)check_hostnameserver_hostnamessl_versionciphers
ecdh_curve)rZ   r   Hellor   T)rX   PROTOCOL_TLS_CLIENTr   r   r   r6   r9   )r   
ssloptionsws_ssl1ws_ssl2s       r   test_ssloptHttpTest.test_sslopt"  s     $+22	E '

  %%Z856W%%.>-EF56r!   c           	         U R                  [        SSSS9R                  S5        U R                  [        [        SSSS9  U R                  [        SSSS9R
                  S5        U R                  [        SSSS9R                  S5        U R                  [        SSSS9R                  S 5        U R                  [        SSSSS9R                  S	   S
5        U R                  [        SSSSS9R                  S   S5        g )Nr}   rt   r   r   badvalrm   )my_username123
my_pass321)rv   rw   rx   http_proxy_authr   r   rT   r   )re   r	   proxy_protocolrf   r   
proxy_host
proxy_portauthr   s    r   test_proxy_infoHttpTest.test_proxy_info=  s2    +VPVn		
 	'" 	 	
 	 -vRXj		
 	 +VPVj		
 	 +VPVd		
 	 + &! @	
 d1 	
 	 + &! @	
 d1 	
r!   r(   N)r;   r<   r=   r>   rj   rq   unittest
skipUnlessr   r   r   TEST_WITH_LOCAL_SERVERr   r   r   r?   r(   r!   r   r]   r]   `   s    

$ +-TUn
 Vn
d +-TUU  Q)
 V)
X +-TU V41
r!   r]   __main__)"rE   os.pathr   rX   r   r   websocket._exceptionsr   r   websocket._httpr   r   r   r   r	   r
   r   python_socks._errorsr   r   r   environgetr   r   r   r   r   rA   rQ   TestCaser]   r;   mainr(   r!   r   <module>r      s    
   
   M  &TXX
 ZZ^^$8#>#E **..!2C8C?zz~~&<dC -5  8&X &3 3N
x   N
b zMMO O
TSSs   
C+ +C9