
    vKg6E                         S SK r S SKrS SKJrJrJrJr  S SKJr    " S S\R                  5      r
 " S S\R                  5      r " S S	\R                  5      r\S
:X  a  \R                  " 5         gg)    N)_is_address_in_network_is_no_proxy_hostget_proxy_info	parse_url)WebSocketProxyExceptionc                        \ rS rSrS rS rSrg)UrlTest"   c                     U R                  [        SS5      5        U R                  [        SS5      5        U R                  [        SS5      5        g )N	127.0.0.1127.0.0.0/8	127.1.0.1127.0.0.0/24)
assertTruer   assertFalseselfs    X/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/websocket/tests/test_url.pytest_address_in_networkUrlTest.test_address_in_network#   s@    .{MJK.{MJK/^LM    c                 	   [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S
5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  [        [         S5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S	5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S5        [        S5      nU R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US   S5        g )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_urlUrlTest.test_parse_url(   s   ./1011r"1t$1u%/01011r"1u%1u%-.1011r"1s#1u%,-1011r"1s#1u%341011t$1t$1u%231011t$1s#1u%121011t$1s#1u%451011t$1t$1t$>?1011t$1~.1t$*i1KL451451r"1t$1u%9:1451t$1t$1u%561451s#1t$1t$:;1451t$1t$1t$r    N)__name__
__module____qualname____firstlineno__r   r"   __static_attributes__r$   r   r   r	   r	   "   s    N
O%r   r	   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)IsNoProxyHostTestz   c                     [         R                  R                  SS 5      U l        S[         R                  ;   a  [         R                  S	 g g Nno_proxy)osenvirongetr/   r   s    r   setUpIsNoProxyHostTest.setUp{   s5    

z48#

:& $r   c                     U R                   (       a  U R                   [        R                  S'   g S[        R                  ;   a  [        R                  S	 g g r.   )r/   r0   r1   r   s    r   tearDownIsNoProxyHostTest.tearDown   s8    ==%)]]BJJz"2::%

:& &r   c                    U R                  [        SS/5      5        U R                  [        SS/5      5        U R                  [        SS/5      5        U R                  [        SS/5      5        U R                  [        SSS/5      5        S[        R                  S'   U R                  [        SS 5      5        U R                  [        SS 5      5        S[        R                  S'   U R                  [        SS 5      5        g )Nany.websocket.org*z192.168.0.1192.168.1.1other.websocket.orgr/   zother.websocket.org, *r   r   r   r0   r1   r   s    r   test_match_all IsNoProxyHostTest.test_match_all   s    )*=uEF)-#?@*==/JK14I3JK	
 	14I33OP	
 "%

:)*=tDE)->?!9

:)*=tDEr   c                    U R                  [        SS/5      5        U R                  [        SS/5      5        U R                  [        SSS/5      5        U R                  [        SSS/5      5        S[        R                  S'   U R                  [        SS 5      5        U R                  [        SS 5      5        S[        R                  S'   U R                  [        SS 5      5        U R                  [        SS 5      5        g )Nr   	127.0.0.2r<   r/   zother.websocket.org, 127.0.0.1r=   r   s    r   test_ip_address!IsNoProxyHostTest.test_ip_address   s    )+}EF*;FGk,A;+OP	
 	k,A;+OP	
 "-

:)+t<=*;=>!A

:)+t<=*;=>r   c                    U R                  [        SS/5      5        U R                  [        SS/5      5        U R                  [        SS/5      5        S[        R                  S'   U R                  [        SS 5      5        U R                  [        SS 5      5        S[        R                  S'   U R                  [        SS 5      5        g )Nr   r   rA   r   r   r/   r=   r   s    r   test_ip_address_in_range*IsNoProxyHostTest.test_ip_address_in_range   s    )+GH)+GH*;8HIJ!.

:)+t<=)+t<=!/

:*;=>r   c                    U R                  [        SS/5      5        U R                  [        SSS/5      5        U R                  [        SS/5      5        S[        R                  S'   U R                  [        SS 5      5        U R                  [        SS 5      5        S[        R                  S'   U R                  [        SS 5      5        g )Nmy.websocket.orgr<   r/   z%other.websocket.org, my.websocket.orgr=   r   s    r   test_hostname_match%IsNoProxyHostTest.test_hostname_match   s    )*<?Q>RST"%:<N$O	

 	*+=@U?VWX!3

:)*<dCD*+@$GH!H

:)*<dCDr   c                 
   U R                  [        SS/5      5        U R                  [        SS/5      5        U R                  [        SSS/5      5        U R                  [        SS/5      5        S[        R                  S'   U R                  [        SS 5      5        U R                  [        SS 5      5        U R                  [        SS 5      5        S[        R                  S'   U R                  [        SS 5      5        g )Nr9   z.websocket.orgzmy.other.websocket.orgrH   zany.websocket.comr/   z my.websocket.org, .websocket.orgr=   r   s    r   test_hostname_match_domain,IsNoProxyHostTest.test_hostname_match_domain   s    )*=@P?QRS)*BEUDVWX#&8:J%K	

 	*+>AQ@RST!1

:)*=tDE)*BDIJ*+>EF!C

:)*=tDEr   )r/   N)r%   r&   r'   r(   r3   r6   r>   rB   rE   rI   rL   r)   r$   r   r   r+   r+   z   s(    '
'F ? ?EFr   r+   c                   ,    \ rS rSrS rS rS rS rSrg)ProxyInfoTest   c                    [         R                  R                  SS 5      U l        [         R                  R                  SS 5      U l        [         R                  R                  SS 5      U l        S[         R                  ;   a  [         R                  S	 S[         R                  ;   a  [         R                  S	 S[         R                  ;   a  [         R                  S	 g g N
http_proxyhttps_proxyr/   )r0   r1   r2   rS   rT   r/   r   s    r   r3   ProxyInfoTest.setUp   s    **..t<::>>->

z482::%

<(BJJ&

=)#

:& $r   c                    U R                   (       a  U R                   [        R                  S'   O%S[        R                  ;   a  [        R                  S	 U R                  (       a  U R                  [        R                  S'   O%S[        R                  ;   a  [        R                  S	 U R                  (       a  U R                  [        R                  S'   g S[        R                  ;   a  [        R                  S	 g g rR   )rS   r0   r1   rT   r/   r   s    r   r6   ProxyInfoTest.tearDown   s    ??'+BJJ|$RZZ'

<((,(8(8BJJ}%bjj(

=)==%)]]BJJz"2::%

:& &r   c                 J   U R                  [        [        SSSS9  U R                  [        SSSSS9S5        U R                  [        SSSSS9S5        U R                  [        SSSS	S
S9S5        U R                  [        SSSSS
S9S5        U R                  [        SSSSS
S9S5        U R                  [        SSSSS
S9S5        U R                  [        SSSSS/S
S9S5        U R                  [        SSSSS/S
S9S5        U R                  [        SSSSS/S9S5        g )Necho.websocket.eventsF	localhost)
proxy_host8  )r[   
proxy_portrZ   r\   NT)#  ab)r[   r]   
proxy_auth)rZ   r_   r`   rZ   r\   r`   ="  )rZ   re   r`   zexample.com)r[   r]   r/   rc   Nr   Nz.websocket.events)r[   r]   r/   )r   r   r   r   r   s    r   test_proxy_from_args"ProxyInfoTest.test_proxy_from_args   s   ##" 	 	
 	';SW &		
 	'+RV &		
 	'&% ,		
 	'&% ,		
 	'&% ,		
 	'&% ,		
 	'&'% ,
	
 	'&12% 
	
 	'&-. 		
r   c                    S[         R                  S'   U R                  [        SS5      S5        S[         R                  S'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S
[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S
[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        U R                  [        SS5      S5        S[         R                  S'   S
[         R                  S	'   U R                  [        SS5      S5        U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        U R                  [        SS5      S5        S[         R                  S'   U R                  [        SS5      S5        S[         R                  S'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   S[         R                  S'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   S[         R                  S'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   S[         R                  S'   U R                  [        SS5      S5        S[         R                  S'   S[         R                  S	'   S [         R                  S'   U R                  [        S!S5      S5        U R                  [        S"S5      S5        g )#Nzhttp://localhost/rS   rY   F)rZ   NNzhttp://localhost:3128/r^   zhttp://localhost2/rT   zhttp://localhost2:3128/T)
localhost2NN)rj   r\   N rf   zhttp://a:b@localhost/)rZ   Nr`   zhttp://a:b@localhost:3128/rd   zhttp://a:b@localhost2/zhttp://a:b@localhost2:3128/)rj   Nr`   )rj   r\   r`   z4http://john%40example.com:P%40SSWORD@localhost:3128/z5http://john%40example.com:P%40SSWORD@localhost2:3128/)rj   r\   )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   r;   )r0   r1   r   r   r   s    r   test_proxy_from_env!ProxyInfoTest.test_proxy_from_envK  sG   #6

< 2E:<U	
 $<

< 2E:<U	
 $7

< $8

=!2E:<U	
 $<

< $=

=!2E:<U	
 $7

< $8

=!2D9;U	
 $<

< $=

=!2D9;U	
 $&

< $8

=!2D9;U	
 	2E:O	
 $&

< $=

=!2D9;U	
 	2E:O	
 $7

< $&

=!(?FX2E:<U	
 $<

< $&

=!(?FX2E:<U	
 $;

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

< 2E:+	

 $;

< $<

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

< $A

=!2E:+	

 $;

< $<

=!2D9,	
 $@

< $A

=!2D9,	
 C 	

	

 D 	

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

 $;

< $<

=!!<

:?D13S	
 $@

< $A

=!!S

:(?FX#?

< $A

=!!O

:(?FX#?

< $A

=!!>

:U;_Mu=Or   )rS   rT   r/   N)	r%   r&   r'   r(   r3   r6   rg   rl   r)   r$   r   r   rO   rO      s    	'' ^
@APr   rO   __main__)r0   unittestwebsocket._urlr   r   r   r   websocket._exceptionsr   TestCaser	   r+   rO   r%   mainr$   r   r   <module>rt      s|    
   :(U%h U%pRF)) RFj}PH%% }P@ zMMO r   