Ë
    _§1h6E  ã                   óæ   — 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    úV/var/www/skyplay_api_hub/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Ô$à×Ñœ*¤iÐ1KÔ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   € ÜŸ
™
Ÿ™ z°4Ó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   € Ø�=Š=Ø%)§]¡]ŒB�J‰J�zÒ"Øœ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Ø×ÑÜÐ1Ð4IÐ3JÓKô	
ð 	�‰ÜÐ1Ð4IÈ3Ð3OÓ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Ø�‰Ô)Ð*BÐEUÐDVÓWÔXØ�‰ÜØ#Ð&8Ð:JÐ%Kóô	
ð
 	×ÑÔ*Ð+>ÐAQÐ@RÓSÔTØ!1Œ�
‰
�:ÑØ�‰Ô)Ð*=¸tÓDÔEØ�‰Ô)Ð*BÀDÓ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Ó<ˆŒÜŸ:™:Ÿ>™>¨-¸Ó>ˆÔÜŸ
™
Ÿ™ z°4Ó8ˆŒØœ2Ÿ:™:Ñ%Ü—
‘
˜<Ð(ØœBŸJ™JÑ&Ü—
‘
˜=Ð)ØœŸ™Ñ#Ü—
‘
˜:Ñ&ð $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ž   € Ø�?Š?Ø'+§¡ŒB�J‰J�|Ò$ØœRŸZ™ZÑ'Ü—
‘
˜<Ð(à×ÒØ(,×(8Ñ(8ŒB�J‰J�}Ò%ØœbŸj™jÑ(Ü—
‘
˜=Ð)à�=Š=Ø%)§]¡]ŒB�J‰J�zÒ"Øœ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_hosté8  )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Œ�
‰
�<Ñ Ø×ÑÜÐ2°EÓ:Ð<Uô	
ð $<Œ�
‰
�<Ñ Ø×ÑÜÐ2°EÓ:Ð<Uô	
ð $7Œ�
‰
�<Ñ Ø$8Œ�
‰
�=Ñ!Ø×ÑÜÐ2°EÓ:Ð<Uô	
ð $<Œ�
‰
�<Ñ Ø$=Œ�
‰
�=Ñ!Ø×ÑÜÐ2°EÓ:Ð<Uô	
ð $7Œ�
‰
�<Ñ Ø$8Œ�
‰
�=Ñ!Ø×ÑÜÐ2°DÓ9Ð;Uô	
ð $<Œ�
‰
�<Ñ Ø$=Œ�
‰
�=Ñ!Ø×ÑÜÐ2°DÓ9Ð;Uô	
ð $&Œ�
‰
�<Ñ Ø$8Œ�
‰
�=Ñ!Ø×ÑÜÐ2°DÓ9Ð;Uô	
ð 	×ÑÜÐ2°EÓ:¸Oô	
ð $&Œ�
‰
�<Ñ Ø$=Œ�
‰
�=Ñ!Ø×ÑÜÐ2°DÓ9Ð;Uô	
ð 	×ÑÜÐ2°EÓ:¸Oô	
ð $7Œ�
‰
�<Ñ Ø$&Œ�
‰
�=Ñ!Ø×ÑœÐ(?ÀÓFÈÔXØ×ÑÜÐ2°EÓ:Ð<Uô	
ð $<Œ�
‰
�<Ñ Ø$&Œ�
‰
�=Ñ!Ø×ÑœÐ(?ÀÓFÈÔXØ×ÑÜÐ2°EÓ:Ð<Uô	
ð $;Œ�
‰
�<Ñ Ø×ÑÜÐ2°EÓ:Ø+ô	
ð $@Œ�
‰
�<Ñ Ø×ÑÜÐ2°EÓ:Ø+ô	
ð
 $;Œ�
‰
�<Ñ Ø$<Œ�
‰
�=Ñ!Ø×ÑÜÐ2°EÓ:Ø+ô	
ð $@Œ�
‰
�<Ñ Ø$AŒ�
‰
�=Ñ!Ø×ÑÜÐ2°EÓ:Ø+ô	
ð
 $;Œ�
‰
�<Ñ Ø$<Œ�
‰
�=Ñ!Ø×ÑÜÐ2°DÓ9Ø,ô	
ð $@Œ�
‰
�<Ñ Ø$AŒ�
‰
�=Ñ!Ø×ÑÜÐ2°DÓ9Ø,ô	
ð Cô 	�
‰
Øñ	
ð
 Dô 	�
‰
Øñ	
ð 	×ÑÜÐ2°DÓ9ØBô	
ð
 $;Œ�
‰
�<Ñ Ø$<Œ�
‰
�=Ñ!Ø!<Œ�
‰
�:ÑØ×ÑÜ˜?¨DÓ1Ð3Sô	
ð $@Œ�
‰
�<Ñ Ø$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ÒØ€H‡M�M…Oð r   