
     f6E                         d dl Z d dlZd dlmZmZmZmZ d dlmZ 	  G d dej	                  Z
 G d dej	                  Z G d d	ej	                  Zed
k    r ej                     dS dS )    N)_is_address_in_network_is_no_proxy_hostget_proxy_info	parse_url)WebSocketProxyExceptionc                       e Zd Zd Zd ZdS )UrlTestc                     |                      t          dd                     |                      t          dd                     |                     t          dd                     d S )N	127.0.0.1127.0.0.0/8	127.1.0.1127.0.0.0/24)
assertTruer   assertFalseselfs    [/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/websocket/tests/test_url.pytest_address_in_networkzUrlTest.test_address_in_network#   sa    .{MJJKKK.{MJJKKK/^LLMMMMM    c                 .   t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d
          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d           |                     t          t           d           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d	           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d           t          d          }|                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d           d S )Nzws://www.example.com/rr   zwww.example.com   P      z/r   Fzws://www.example.com/r/z/r/zws://www.example.com//zws://www.example.comzws://www.example.com:8080/ri  zws://www.example.com:8080/zws://www.example.com:8080zwss://www.example.com:8080/rTz&wss://www.example.com:8080/r?key=valuez/r?key=valuezhttp://www.example.com/rzws://[2a03:4000:123:83::3]/rz2a03:4000:123:83::3z!ws://[2a03:4000:123:83::3]:8080/rzwss://[2a03:4000:123:83::3]/ri  z"wss://[2a03:4000:123:83::3]:8080/r)r   assertEqualassertRaises
ValueError)r   ps     r   test_parse_urlzUrlTest.test_parse_url(   s,   .//101111r"""1t$$$1u%%%/00101111r"""1u%%%1u%%%-..101111r"""1s###1u%%%,--101111r"""1s###1u%%%344101111t$$$1t$$$1u%%%233101111t$$$1s###1u%%%122101111t$$$1s###1u%%%455101111t$$$1t$$$1t$$$>??101111t$$$1~...1t$$$*i1KLLL455145551r"""1t$$$1u%%%9::145551t$$$1t$$$1u%%%566145551s###1t$$$1t$$$:;;145551t$$$1t$$$1t$$$$$r   N)__name__
__module____qualname__r   r     r   r   r	   r	   "   s:        N N N
O% O% O% O% O%r   r	   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	IsNoProxyHostTestc                     t           j                            dd           | _        dt           j        v rt           j        d= d S d S Nno_proxy)osenvirongetr)   r   s    r   setUpzIsNoProxyHostTest.setUp{   s>    
z488##
:&&& $#r   c                 z    | j         r| j         t          j        d<   d S dt          j        v rt          j        d= d S d S r(   )r)   r*   r+   r   s    r   tearDownzIsNoProxyHostTest.tearDown   sE    = 	'%)]BJz"""2:%%
:&&& &%r   c                 ~   |                      t          ddg                     |                      t          ddg                     |                     t          ddg                     |                     t          ddg                     |                      t          dddg                     dt          j        d<   |                      t          dd                      |                      t          dd                      dt          j        d<   |                      t          dd                      d S )Nany.websocket.org*z192.168.0.1192.168.1.1other.websocket.orgr)   zother.websocket.org, *r   r   r   r*   r+   r   s    r   test_match_allz IsNoProxyHostTest.test_match_all   s1   )*=uEEFFF)-#??@@@*==/JJKKK14I3JKK	
 	
 	
 	14I33OPP	
 	
 	
 "%
:)*=tDDEEE)->>???!9
:)*=tDDEEEEEr   c                 ~   |                      t          ddg                     |                     t          ddg                     |                      t          dddg                     |                     t          dddg                     dt          j        d<   |                      t          dd                      |                     t          dd                      dt          j        d<   |                      t          dd                      |                     t          dd                      d S )Nr   	127.0.0.2r4   r)   zother.websocket.org, 127.0.0.1r5   r   s    r   test_ip_addressz!IsNoProxyHostTest.test_ip_address   s0   )+}EEFFF*;FFGGGk,A;+OPP	
 	
 	
 	k,A;+OPP	
 	
 	
 "-
:)+t<<===*;==>>>!A
:)+t<<===*;==>>>>>r   c                    |                      t          ddg                     |                      t          ddg                     |                     t          ddg                     dt          j        d<   |                      t          dd                      |                      t          dd                      dt          j        d<   |                     t          dd                      d S )Nr   r   r8   r   r   r)   r5   r   s    r   test_ip_address_in_rangez*IsNoProxyHostTest.test_ip_address_in_range   s    )+GGHHH)+GGHHH*;8HIIJJJ!.
:)+t<<===)+t<<===!/
:*;==>>>>>r   c                    |                      t          ddg                     |                      t          dddg                     |                     t          ddg                     dt          j        d<   |                      t          dd                      |                     t          dd                      dt          j        d<   |                      t          dd                      d S )Nmy.websocket.orgr4   r)   z%other.websocket.org, my.websocket.orgr5   r   s    r   test_hostname_matchz%IsNoProxyHostTest.test_hostname_match   s    )*<?Q>RSSTTT"%:<N$O 	
 	
 	

 	*+=@U?VWWXXX!3
:)*<dCCDDD*+@$GGHHH!H
:)*<dCCDDDDDr   c                 |   |                      t          ddg                     |                      t          ddg                     |                      t          dddg                     |                     t          ddg                     dt          j        d<   |                      t          dd                      |                      t          dd                      |                     t          dd                      dt          j        d<   |                      t          dd                      d S )Nr1   z.websocket.orgzmy.other.websocket.orgr=   zany.websocket.comr)   z my.websocket.org, .websocket.orgr5   r   s    r   test_hostname_match_domainz,IsNoProxyHostTest.test_hostname_match_domain   s3   )*=@P?QRRSSS)*BEUDVWWXXX#&8:J%K 	
 	
 	

 	*+>AQ@RSSTTT!1
:)*=tDDEEE)*BDIIJJJ*+>EEFFF!C
:)*=tDDEEEEEr   N)
r!   r"   r#   r-   r/   r6   r9   r;   r>   r@   r$   r   r   r&   r&   z   s        ' ' '
' ' 'F F F ? ? ? ? ? ?E E EF F F F Fr   r&   c                   &    e Zd Zd Zd Zd Zd ZdS )ProxyInfoTestc                    t           j                            dd           | _        t           j                            dd           | _        t           j                            dd           | _        dt           j        v rt           j        d= dt           j        v rt           j        d= dt           j        v rt           j        d= d S d S N
http_proxyhttps_proxyr)   )r*   r+   r,   rE   rF   r)   r   s    r   r-   zProxyInfoTest.setUp   s    *..t<<:>>->>
z4882:%%
<(BJ&&
=)##
:&&& $#r   c                 V   | j         r| j         t          j        d<   ndt          j        v rt          j        d= | j        r| j        t          j        d<   ndt          j        v rt          j        d= | j        r| j        t          j        d<   d S dt          j        v rt          j        d= d S d S rD   )rE   r*   r+   rF   r)   r   s    r   r/   zProxyInfoTest.tearDown   s    ? 	)'+BJ|$$RZ''
<( 	*(,(8BJ}%%bj((
=)= 	'%)]BJz"""2:%%
:&&& &%r   c           
      $   |                      t          t          ddd           |                     t          dddd          d           |                     t          dddd          d           |                     t          dddd	d
          d           |                     t          ddddd
          d           |                     t          ddddd
          d           |                     t          ddddd
          d           |                     t          dddddgd
          d           |                     t          dddddgd
          d           |                     t          dddddg          d           d S )Necho.websocket.eventsF	localhost)
proxy_host8  )rK   
proxy_portrJ   rL   NT)#  ab)rK   rM   
proxy_auth)rJ   rO   rP   rJ   rL   rP   ="  )rJ   rU   rP   zexample.com)rK   rM   r)   rS   Nr   Nz.websocket.events)rK   rM   r)   )r   r   r   r   r   s    r   test_proxy_from_argsz"ProxyInfoTest.test_proxy_from_args   s|   ##" 	 	
 	
 	
 	';SW   &		
 	
 	
 	'+RV   &		
 	
 	
 	'&%   ,		
 		
 		
 	'&%   ,		
 		
 		
 	'&%   ,		
 		
 		
 	'&%   ,		
 		
 		
 	'&'%   ,
	
 
	
 
	
 	'&12%   
	
 
	
 
	
 	'&-.   		
 		
 		
 		
 		
r   c                 B   dt           j        d<   |                     t          dd          d           dt           j        d<   |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           dt           j        d<   d
t           j        d	<   |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           dt           j        d<   d
t           j        d	<   |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           |                     t          dd          d           dt           j        d<   d
t           j        d	<   |                     t          dd          d           |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           |                     t          dd          d           dt           j        d<   |                     t          dd          d           dt           j        d<   |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           dt           j        d<   dt           j        d	<   |                     t          dd          d           dt           j        d<   dt           j        d	<   dt           j        d<   |                     t          dd          d           dt           j        d<   dt           j        d	<   dt           j        d<   |                     t          dd          d           dt           j        d<   dt           j        d	<   dt           j        d<   |                     t          dd          d           dt           j        d<   dt           j        d	<   d t           j        d<   |                     t          d!d          d           |                     t          d"d          d           d S )#Nzhttp://localhost/rE   rI   F)rJ   NNzhttp://localhost:3128/rN   zhttp://localhost2/rF   zhttp://localhost2:3128/T)
localhost2NN)rY   rL   N rV   zhttp://a:b@localhost/)rJ   NrP   zhttp://a:b@localhost:3128/rT   zhttp://a:b@localhost2/zhttp://a:b@localhost2:3128/)rY   NrP   )rY   rL   rP   z4http://john%40example.com:P%40SSWORD@localhost:3128/z5http://john%40example.com:P%40SSWORD@localhost2:3128/)rY   rL   )zjohn@example.comzP@SSWORDzexample1.com,example2.comr)   zexample.1.comz0example1.com,example2.com, echo.websocket.eventsz,example1.com,example2.com, .websocket.eventsz127.0.0.0/8, 192.168.0.0/16r   r3   )r*   r+   r   r   r   s    r   test_proxy_from_envz!ProxyInfoTest.test_proxy_from_envK  s3   #6
< 2E::<U	
 	
 	
 $<
< 2E::<U	
 	
 	
 $7
< $8
=!2E::<U	
 	
 	
 $<
< $=
=!2E::<U	
 	
 	
 $7
< $8
=!2D99;U	
 	
 	
 $<
< $=
=!2D99;U	
 	
 	
 $&
< $8
=!2D99;U	
 	
 	
 	2E::O	
 	
 	
 $&
< $=
=!2D99;U	
 	
 	
 	2E::O	
 	
 	
 $7
< $&
=!(?FFXXX2E::<U	
 	
 	
 $<
< $&
=!(?FFXXX2E::<U	
 	
 	
 $;
< 2E::+	
 	
 	
 $@
< 2E::+	
 	
 	

 $;
< $<
=!2E::+	
 	
 	
 $@
< $A
=!2E::+	
 	
 	

 $;
< $<
=!2D99,	
 	
 	
 $@
< $A
=!2D99,	
 	
 	
 C 	
	

 D 	
	
 	2D99B	
 	
 	

 $;
< $<
=!!<
:?D113S	
 	
 	
 $@
< $A
=!!S
:(?FFXXX#?
< $A
=!!O
:(?FFXXX#?
< $A
=!!>
:U;;_MMMu==OOOOOr   N)r!   r"   r#   r-   r/   rW   r[   r$   r   r   rB   rB      s^        	' 	' 	'' ' ' ^
 ^
 ^
@AP AP AP AP APr   rB   __main__)r*   unittestwebsocket._urlr   r   r   r   websocket._exceptionsr   TestCaser	   r&   rB   r!   mainr$   r   r   <module>rb      sF   
			             : 9 9 9 9 9(U% U% U% U% U%h U% U% U%pRF RF RF RF RF) RF RF RFj}P }P }P }P }PH% }P }P }P@ zHMOOOOO r   