
    i\G                         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        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2001:db8::12001:db8::/642001:db8:1::1)
assertTruer   assertFalseselfs    EC:\des-py\RoboSAPF\venv\Lib\site-packages\websocket/tests/test_url.pytest_address_in_networkUrlTest.test_address_in_network#   sj    .{MJK.{MJK/^LM.}oNO/QR    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    S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
)IsNoProxyHostTest|   c                     [         R                  R                  SS 5      U l        S[         R                  ;   a  [         R                  S	 g g Nno_proxy)osenvirongetr2   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 r1   )r2   r3   r4   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.orgr2   zother.websocket.org, *r   r   r   r3   r4   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?   r2   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        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        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   r   rD   r   r   r   r   r   z127.0.0.0/8,2001:db8::/64r2   z127.0.0.0/24,2001:db8::/64r@   r   s    r   test_ip_address_in_range*IsNoProxyHostTest.test_ip_address_in_range   s   )+GH)+GH*;8HIJ)-/9JKL*?_<MNO!<

:)+t<=)+t<=)->?*?DAB!=

:*;=>*?DABr   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?   r2   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 )Nr<   z.websocket.orgzmy.other.websocket.orgrK   zany.websocket.comr2   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   )r2   N)r(   r)   r*   r+   r6   r9   rA   rE   rH   rL   rO   r,   r'   r   r   r.   r.   |   s)    '
'F ? C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_proxyr2   )r3   r4   r5   rV   rW   r2   r   s    r   r6   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 rU   )rV   r3   r4   rW   r2   r   s    r   r9   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r]   r_   NT)#  ab)r^   r`   
proxy_auth)r]   rb   rc   r]   r_   rc   ="  )r]   rh   rc   zexample.com)r^   r`   r2   rf   Nr   Nz.websocket.events)r^   r`   r2   )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/rV   r\   F)r]   NNzhttp://localhost:3128/ra   zhttp://localhost2/rW   zhttp://localhost2:3128/T)
localhost2NN)rm   r_   N ri   zhttp://a:b@localhost/)r]   Nrc   zhttp://a:b@localhost:3128/rg   zhttp://a:b@localhost2/zhttp://a:b@localhost2:3128/)rm   Nrc   )rm   r_   rc   z4http://john%40example.com:P%40SSWORD@localhost:3128/z5http://john%40example.com:P%40SSWORD@localhost2:3128/)rm   r_   )zjohn@example.comzP@SSWORDzexample1.com,example2.comr2   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>   )r3   r4   r!   r   r   s    r   test_proxy_from_env!ProxyInfoTest.test_proxy_from_envR  sA   #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   )rV   rW   r2   N)	r(   r)   r*   r+   r6   r9   rj   ro   r,   r'   r   r   rR   rR      s    	'' ^
@APr   rR   __main__)r3   unittestwebsocket._urlr   r   r   r   websocket._exceptionsr   TestCaser	   r.   rR   r(   mainr'   r   r   <module>rw      s|    
   :(W%h W%tWF)) WFt}PH%% }P@ zMMO r   