
    ,h6E                         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                          yy)    N)_is_address_in_network_is_no_proxy_hostget_proxy_info	parse_url)WebSocketProxyExceptionc                       e Zd Zd Zd Zy)UrlTestc                     | j                  t        dd             | j                  t        dd             | j                  t        dd             y )N	127.0.0.1127.0.0.0/8	127.1.0.1127.0.0.0/24)
assertTruer   assertFalseselfs    Z/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/websocket/tests/test_url.pytest_address_in_networkzUrlTest.test_address_in_network#   s@    .{MJK.{MJK/^LM    c                 	   t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d
      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  t        t         d       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d	       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       t        d      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       y )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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__r   r     r   r   r	   r	   "   s    N
O%r   r	   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	IsNoProxyHostTestc                     t         j                  j                  dd       | _        dt         j                  v rt         j                  d= y y Nno_proxy)osenvirongetr)   r   s    r   setUpzIsNoProxyHostTest.setUp{   s5    

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

:& $r   c                     | j                   r| j                   t        j                  d<   y dt        j                  v rt        j                  d= y y r(   )r)   r*   r+   r   s    r   tearDownzIsNoProxyHostTest.tearDown   s8    ==%)]]BJJz"2::%

:& &r   c                    | j                  t        ddg             | j                  t        ddg             | j                  t        ddg             | j                  t        ddg             | j                  t        dddg             dt        j                  d<   | j                  t        dd              | j                  t        dd              dt        j                  d<   | j                  t        dd              y )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   s    )*=uEF)-#?@*==/JK14I3JK	
 	14I33OP	
 "%

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

:)*=tDEr   c                    | j                  t        ddg             | j                  t        ddg             | j                  t        dddg             | j                  t        dddg             dt        j                  d<   | j                  t        dd              | j                  t        dd              dt        j                  d<   | j                  t        dd              | j                  t        dd              y )Nr   	127.0.0.2r4   r)   zother.websocket.org, 127.0.0.1r5   r   s    r   test_ip_addressz!IsNoProxyHostTest.test_ip_address   s    )+}EF*;FGk,A;+OP	
 	k,A;+OP	
 "-

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

:)+t<=*;=>r   c                    | j                  t        ddg             | j                  t        ddg             | j                  t        ddg             dt        j                  d<   | j                  t        dd              | j                  t        dd              dt        j                  d<   | j                  t        dd              y )Nr   r   r8   r   r   r)   r5   r   s    r   test_ip_address_in_rangez*IsNoProxyHostTest.test_ip_address_in_range   s    )+GH)+GH*;8HIJ!.

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

:*;=>r   c                    | j                  t        ddg             | j                  t        dddg             | j                  t        ddg             dt        j                  d<   | j                  t        dd              | j                  t        dd              dt        j                  d<   | j                  t        dd              y )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T"%:<N$O	

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

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

:)*<dCDr   c                 
   | j                  t        ddg             | j                  t        ddg             | j                  t        dddg             | j                  t        ddg             dt        j                  d<   | j                  t        dd              | j                  t        dd              | j                  t        dd              dt        j                  d<   | j                  t        dd              y )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   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   N)
r!   r"   r#   r-   r/   r6   r9   r;   r>   r@   r$   r   r   r&   r&   z   s(    '
'F ? ?EFr   r&   c                   $    e Zd Zd Zd Zd Zd Zy)ProxyInfoTestc                    t         j                  j                  dd       | _        t         j                  j                  dd       | _        t         j                  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= y y N
http_proxyhttps_proxyr)   )r*   r+   r,   rE   rF   r)   r   s    r   r-   zProxyInfoTest.setUp   s    **..t<::>>->

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

<(BJJ&

=)#

:& $r   c                    | 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<   y dt        j                  v rt        j                  d= y y rD   )rE   r*   r+   rF   r)   r   s    r   r/   zProxyInfoTest.tearDown   s    ??'+BJJ|$RZZ'

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

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

:& &r   c           
         | j                  t        t        ddd       | j                  t        dddd      d       | j                  t        dddd      d       | j                  t        dddd	d
      d       | j                  t        ddddd
      d       | j                  t        ddddd
      d       | j                  t        ddddd
      d       | j                  t        dddddgd
      d       | j                  t        dddddgd
      d       | j                  t        dddddg      d       y )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                    dt         j                  d<   | j                  t        dd      d       dt         j                  d<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       dt         j                  d<   d
t         j                  d	<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       dt         j                  d<   d
t         j                  d	<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       | j                  t        dd      d       dt         j                  d<   d
t         j                  d	<   | j                  t        dd      d       | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       | j                  t        dd      d       dt         j                  d<   | j                  t        dd      d       dt         j                  d<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   dt         j                  d<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   dt         j                  d<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   dt         j                  d<   | j                  t        dd      d       dt         j                  d<   dt         j                  d	<   d t         j                  d<   | j                  t        d!d      d       | j                  t        d"d      d       y )#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  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   N)r!   r"   r#   r-   r/   rW   r[   r$   r   r   rB   rB      s    	'' ^
@APr   rB   __main__)r*   unittestwebsocket._urlr   r   r   r   websocket._exceptionsr   TestCaser	   r&   rB   r!   mainr$   r   r   <module>rb      s~    
   :(U%h U%pRF)) RFj}PH%% }P@ zHMMO r   