§
    JŠtj­0  ã                   ó  — d dl Z d dlZ d dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z
mZmZmZmZmZmZ 	 	 d dlmZmZmZ n#  d dl	mZmZmZ Y nxY we j                             dd¦  «        dk    Ze j                             dd¦  «        dk    Ze j                             d	d
¦  «        Zed
k    Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ dej        ¦  «        Ze dk    r ej!        ¦   «          dS dS )é    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                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚSockMockc                 ó"   — g | _         g | _        d S ©N)ÚdataÚsent©Úselfs    úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/websocket/tests/test_http.pyÚ__init__zSockMock.__init__6   s   € ØˆŒ	ØˆŒ	ˆ	ˆ	ó    c                 ó:   — | j                              |¦  «         d S r   )r   Úappend©r   r   s     r   Ú
add_packetzSockMock.add_packet:   s   € ØŒ	×Ò˜ÑÔÐÐÐr   c                 ó   — d S r   © r   s    r   Ú
gettimeoutzSockMock.gettimeout=   s   € Øˆtr   c                 óö   — | j         rq| j                              d¦  «        }t          |t          ¦  «        r|‚t	          |¦  «        |k    r#| j                              d||d …         ¦  «         |d |…         S d S )Nr   )r   ÚpopÚ
isinstanceÚ	ExceptionÚlenÚinsert)r   ÚbufsizeÚes      r   ÚrecvzSockMock.recv@   s   € ØŒ9ð 	Ø”	—’˜aÑ Ô ˆAÝ˜!�YÑ'Ô'ð Ø�Ý�1‰vŒv˜ÒÐØ”	× Ò   A g h h¤KÑ0Ô0Ð0Ø�X�g�X”;Ðð	ð 	r   c                 óT   — | j                              |¦  «         t          |¦  «        S r   )r   r    r*   r!   s     r   ÚsendzSockMock.sendI   s$   € ØŒ	×Ò˜ÑÔÐÝ�4‰yŒyÐr   c                 ó   — d S r   r$   r   s    r   ÚclosezSockMock.closeM   s   € Øˆr   N)	Ú__name__Ú
__module__Ú__qualname__r   r"   r%   r.   r0   r2   r$   r   r   r   r   5   sn   € € € € € ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð r   r   c                   ó   — e Zd Zd„ ZdS )ÚHeaderSockMockc                 ó^  — t                                | ¦  «         t          j                             t          j                             t          ¦  «        |¦  «        }t          |d¦  «        5 }|                      | 	                    ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚrb)
r   r   ÚosÚpathÚjoinÚdirnameÚ__file__Úopenr"   Úread)r   Úfnamer;   Úfs       r   r   zHeaderSockMock.__init__R   sÄ   € Ý×Ò˜$ÑÔÐÝŒw�|Š|�BœGŸOšO­HÑ5Ô5°uÑ=Ô=ˆÝ�$˜ÑÔð 	& Ø�OŠO˜AŸFšF™HœHÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   Á-(B"Â"B&Â)B&N©r3   r4   r5   r   r$   r   r   r7   r7   Q   s#   € € € € € ð&ð &ð &ð &ð &r   r7   c                   ó   — e Zd Zd„ ZdS )ÚOptsListc                 óH   — d| _         g | _        dt          j        i| _        d S )Né   Ú	cert_reqs)ÚtimeoutÚsockoptÚsslÚ	CERT_NONEÚssloptr   s    r   r   zOptsList.__init__Z   s"   € ØˆŒØˆŒØ"¥C¤MÐ2ˆŒˆˆr   NrC   r$   r   r   rE   rE   Y   s#   € € € € € ð3ð 3ð 3ð 3ð 3r   rE   c                   ó  — e Zd Zd„ Zd„ Z ej        ed¦  «        d„ ¦   «         Z ej        ed¦  «         ej        e	d¦  «         ej        e
d¦  «        d„ ¦   «         ¦   «         ¦   «         Z ej        ed¦  «        d„ ¦   «         Zd	„ Zd
S )ÚHttpTestc                 ó  — t          t          d¦  «        ¦  «        \  }}}|                      |d¦  «         |                      |d         d¦  «         |                      t          t           t          d¦  «        ¦  «         d S )Núdata/header01.txtée   Ú
connectionÚUpgradeúdata/header02.txt)r
   r7   ÚassertEqualÚassertRaisesr   )r   ÚstatusÚheaderÚ_s       r   Útest_read_headerzHttpTest.test_read_headera   s‚   € Ý(­Ð8KÑ)LÔ)LÑMÔMÑˆ�˜Ø×Ò˜ Ñ%Ô%Ð%Ø×Ò˜ Ô-¨yÑ9Ô9Ð9à×ÒÝ¥­nÐ=PÑ.QÔ.Qñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óÊ   — |                       t          t          t          d¦  «        ddd¦  «         |                       t          t          t          d¦  «        ddd¦  «         d S )NrQ   úexample.coméP   )ÚusernameÚpasswordrU   )rW   r   r   r7   r   s    r   Útest_tunnelzHttpTest.test_tunnelj   st   € Ø×ÒÝ#ÝÝÐ.Ñ/Ô/ØØØ$ñ	
ô 	
ð 	
ð 	×ÒÝ#ÝÝÐ.Ñ/Ô/ØØØ$ñ	
ô 	
ð 	
ð 	
ð 	
r   z%Internet-requiring tests are disabledc                 ó°  — t           �r]|                      t          t          ft          dt          ¦   «         t          dddd¬¦  «        ¦  «         |                      t          t          ft          dt          ¦   «         t          dddd¬¦  «        ¦  «         |                      t          t          ft          dt          ¦   «         t          dddd¬¦  «        ¦  «         |                      t          t          ft          dt          ¦   «         t          ddd	d¬¦  «        ¦  «         |                      t          t          dt          ¦   «         t          d
ddd¬¦  «        d ¦  «         |                      t          t          d ddt          d
dd¬¦  «        ¦  «         |                      t          t          d ddt          d
dd¬¦  «        ¦  «         |                      t          j        t          dt          ¦   «         t          dddd¬¦  «        d ¦  «         |                      t          dt          ¦   «         t          ddd¬¦  «        d¦  «        d¦  «         d S )Nzwss://example.comr]   Ú8080Úsocks4rG   )Úhttp_proxy_hostÚhttp_proxy_portÚ
proxy_typeÚhttp_proxy_timeoutÚsocks4aÚsocks5Úsocks5hú	127.0.0.1i'  r^   TÚ9999Úhttp©re   rf   rg   zwss://google.comz8.8.8.8i�  )T)z
google.comé»  ú/)r   rW   r   ÚOSErrorr   rE   r	   r   r   Ú	TypeErrorr   ÚsocketrI   rV   r   s    r   Útest_connectzHttpTest.test_connect|   sÁ  € õ ñ ?	ð ×ÒÝ"¥GÐ,Ý%Ø#Ý‘
”
ÝØ$1Ø$*Ø'Ø'(ð	ñ ô ñô ð ð ×ÒÝ"¥GÐ,Ý%Ø#Ý‘
”
ÝØ$1Ø$*Ø(Ø'(ð	ñ ô ñô ð ð ×ÒÝ"¥GÐ,Ý%Ø#Ý‘
”
ÝØ$1Ø$*Ø'Ø'(ð	ñ ô ñô ð ð ×ÒÝ"¥GÐ,Ý%Ø#Ý‘
”
ÝØ$1Ø$*Ø(Ø'(ð	ñ ô ñô ð ð ×ÒÝ$ÝØ#Ý‘
”
ÝØ$/Ø$(Ø'Ø'(ð	ñ ô ð ñô ð ð 	×ÒÝÝØØØÝØ +¸VÐPVðñ ô ñ		
ô 		
ð 		
ð 	×ÒÝÝØØØÝØ +¸VÐPVðñ ô ñ		
ô 		
ð 		
ð 	×ÒÝŒNÝØÝ‰JŒJÝØ )Ø $Ø!Ø#$ð	ñ ô ð ñ	
ô 	
ð 	
ð 	×ÒÝØ"Ý‘
”
ÝØ$-¸tÐPVðñ ô ð ñô ð -ñ
	
ô 
	
ð 
	
ð 
	
ð 
	
r   z:This test requires a HTTP proxy to be running on port 8899z/Tests using local websocket server are disabledc                 óB  — t          j        ¦   «         }|                     dt          › �ddd¬¦  «         |                     d¦  «         |                     ¦   «         }|                      |d¦  «         |                      t          ddd	t          ddd¬¦  «        ¦  «        t          j
        dd
dt          j        t          j        ¦  «        d	d f¦  «         |                      t          dt          ¦   «         t          dd
d¬¦  «        d ¦  «        d         d¦  «         d S )Nzws://127.0.0.1:rl   Ú8899rn   ro   zHello, Serverúapi.bitfinex.comrp   TiÃ"  r   úwss://api.bitfinex.com/ws/2rG   )rx   rp   z/ws/2)Ú	websocketÚ	WebSocketr   r   r0   r.   rV   r   r	   rt   ÚgetaddrinfoÚSOCK_STREAMÚSOL_TCPrE   )r   ÚwsÚserver_responses      r   Útest_proxy_connectzHttpTest.test_proxy_connectï   sZ  € õ Ô Ñ"Ô"ˆØ
�
Š
Ø4Õ2Ð4Ð4Ø'Ø"Øð	 	ñ 	
ô 	
ð 	
ð 	�Š�Ñ Ô Ð ØŸ'š'™)œ)ˆØ×Ò˜¨/Ñ:Ô:Ð:à×ÒÝØ"ØØÝØ$/Ø$*Ø%ðñ ô ñ		ô 	õ Ô"Ø  q­&Ô*<½f¼nñô ð Øðñ	
ô 	
ð 	
ð& 	×ÒÝØ-Ý‘
”
ÝØ$/ÀÐRXðñ ô ð ñô ð ôð /ñ
	
ô 
	
ð 
	
ð 
	
ð 
	
r   c                 ó6  — ddt           j        dddœ}t          j        |¬¦  «        }|                     d¦  «         |                     d¦  «         |                     ¦   «          t          j        d	d
i¬¦  «        }|                     d¦  «         |j         d S )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)rM   ry   ÚHellor…   T)rK   ÚPROTOCOL_TLS_CLIENTrz   r{   r   r0   r2   )r   Ú
ssloptionsÚws_ssl1Úws_ssl2s       r   Útest_ssloptzHttpTest.test_sslopt"  s¥   € ð $Ø+ÝÔ2ð	Eð 'ð
ð 
ˆ
õ  Ô%¨ZÐ8Ñ8Ô8ˆØ�ŠÐ5Ñ6Ô6Ð6Ø�Š�WÑÔÐØ�Š‰ŒˆåÔ%Ð.>ÀÐ-EÐFÑFÔFˆØ�ŠÐ5Ñ6Ô6Ð6ØŒˆˆˆr   c                 ón  — |                       t          ddd¬¦  «        j        d¦  «         |                      t          t          ddd¬¦  «         |                       t          ddd¬¦  «        j        d¦  «         |                       t          ddd¬¦  «        j        d¦  «         |                       t          ddd¬¦  «        j        d ¦  «         |                       t          dddd¬¦  «        j        d	         d
¦  «         |                       t          dddd¬¦  «        j        d         d¦  «         d S )Nrl   rc   rn   ro   Úbadvalr]   )Úmy_username123Ú
my_pass321)re   rf   rg   Úhttp_proxy_authr   r’   rG   r“   )rV   r	   Úproxy_protocolrW   r   Ú
proxy_hostÚ
proxy_portÚauthr   s    r   Útest_proxy_infozHttpTest.test_proxy_info=  s²  € Ø×ÒÝØ +¸VÐPVðñ ô äØñ		
ô 	
ð 	
ð 	×ÒÝÝØ'Ø"Øð 	ñ 	
ô 	
ð 	
ð 	×ÒÝØ -¸vÐRXðñ ô äØñ		
ô 	
ð 	
ð 	×ÒÝØ +¸VÐPVðñ ô äØñ		
ô 	
ð 	
ð 	×ÒÝØ +¸VÐPVðñ ô äØñ		
ô 	
ð 	
ð 	×ÒÝØ +Ø &Ø!Ø @ð	ñ ô ô
 �1ôð ñ	
ô 	
ð 	
ð 	×ÒÝØ +Ø &Ø!Ø @ð	ñ ô ô
 �1ôð ñ	
ô 	
ð 	
ð 	
ð 	
r   N)r3   r4   r5   r[   ra   ÚunittestÚ
skipUnlessr   ru   r   ÚTEST_WITH_LOCAL_SERVERr�   r�   r™   r$   r   r   rO   rO   `   s  € € € € € ð
ð 
ð 
ð
ð 
ð 
ð$ €XÔÐ+Ð-TÑUÔUðn
ð n
ñ VÔUðn
ðd €XÔÐ+Ð-TÑUÔUØ€XÔØÐUñô ð €XÔØÐ Qñô ð)
ð )
ñô ñô ñ VÔUð)
ðX €XÔÐ+Ð-TÑUÔUðð ñ VÔUðð41
ð 1
ð 1
ð 1
ð 1
r   rO   Ú__main__)"r:   Úos.pathrt   rK   rš   rz   Úwebsocket._exceptionsr   r   Úwebsocket._httpr   r   r   r   r	   r
   r   Úpython_socks._errorsr   r   r   ÚenvironÚgetr   r   r   rœ   r   r7   rE   ÚTestCaserO   r3   Úmainr$   r   r   ú<module>r¦      s=  ðð 
€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø €€€à Ð Ð Ð Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð&TØXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXøðTØSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSøøøð ”Z—^’^Ð$8¸#Ñ>Ô>À#ÒEÐ Ø”*—.’.Ð!2°CÑ8Ô8¸CÒ?€à”z—~’~Ð&<¸dÑCÔCÐ Ø-°Ò5Ð ðð ð ð ð ñ ô ð ð8&ð &ð &ð &ð &�Xñ &ô &ð &ð3ð 3ð 3ð 3ð 3ñ 3ô 3ð 3ðN
ð N
ð N
ð N
ð N
ˆxÔ ñ N
ô N
ð N
ðb ˆzÒÐØ€H„M�O„O€O€O€Oð Ðs   µ
A  Á A