a
    ñ»j\G  ã                   @   s~   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„ dej	ƒZ
G dd„ dej	ƒZG dd	„ d	ej	ƒZed
krze ¡  dS )é    N)Ú_is_address_in_networkÚ_is_no_proxy_hostÚget_proxy_infoÚ	parse_url)ÚWebSocketProxyExceptionc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚUrlTestc                 C   sT   |   tddƒ¡ |   tddƒ¡ |  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ú2001:db8::1ú2001:db8::/64ú2001:db8:1::1)Ú
assertTruer   ÚassertFalse©Úself© r   ú>E:\soccer\ml_env\Lib\site-packages\websocket/tests/test_url.pyÚtest_address_in_network#   s
    zUrlTest.test_address_in_networkc                 C   sº  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   Úpr   r   r   Útest_parse_url*   s„    zUrlTest.test_parse_urlN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   "   s   r   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚIsNoProxyHostTestc                 C   s&   t j dd ¡| _dt jv r"t jd= d S ©NÚno_proxy)ÚosÚenvironÚgetr%   r   r   r   r   ÚsetUp}   s    
zIsNoProxyHostTest.setUpc                 C   s*   | j r| j tjd< ndtjv r&tjd= d S r$   )r%   r&   r'   r   r   r   r   ÚtearDown‚   s    
zIsNoProxyHostTest.tearDownc                 C   s¤   |   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   r   r   r   Útest_match_allˆ   s    
ÿÿ

z IsNoProxyHostTest.test_match_allc                 C   s¤   |   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.2r.   r%   zother.websocket.org, 127.0.0.1r/   r   r   r   r   Útest_ip_address˜   s    ÿÿ

z!IsNoProxyHostTest.test_ip_addressc                 C   sÒ   |   tddgƒ¡ |   tddgƒ¡ |  tddgƒ¡ |   tddgƒ¡ |  tddgƒ¡ d	tjd
< |   tdd ƒ¡ |   tdd ƒ¡ |   tdd ƒ¡ |  tdd ƒ¡ dtjd
< |  tdd ƒ¡ |  tdd ƒ¡ d S )Nr   r	   r1   r
   r   r   r   r   z127.0.0.0/8,2001:db8::/64r%   z127.0.0.0/24,2001:db8::/64r/   r   r   r   r   Útest_ip_address_in_range¨   s    

z*IsNoProxyHostTest.test_ip_address_in_rangec                 C   s€   |   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.orgr.   r%   z%other.websocket.org, my.websocket.orgr/   r   r   r   r   Útest_hostname_match·   s    ÿÿ

z%IsNoProxyHostTest.test_hostname_matchc                 C   s¢   |   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 )Nr+   z.websocket.orgzmy.other.websocket.orgr4   zany.websocket.comr%   z my.websocket.org, .websocket.orgr/   r   r   r   r   Útest_hostname_match_domainÅ   s    ÿÿ

z,IsNoProxyHostTest.test_hostname_match_domainN)
r    r!   r"   r)   r*   r0   r2   r3   r5   r6   r   r   r   r   r#   |   s   r#   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚProxyInfoTestc                 C   sj   t j dd ¡| _t j dd ¡| _t j dd ¡| _dt jv rBt jd= dt jv rTt jd= dt jv rft jd= d S ©NÚ
http_proxyÚhttps_proxyr%   )r&   r'   r(   r9   r:   r%   r   r   r   r   r)   ×   s    


zProxyInfoTest.setUpc                 C   sv   | 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 rLtjd= | jr`| jtjd< ndtjv rrtjd= d S r8   )r9   r&   r'   r:   r%   r   r   r   r   r*   â   s    


zProxyInfoTest.tearDownc              
   C   s  | j tt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�d¡ |  tddddd
d�d¡ |  tddddd
d�d¡ |  tddddd
d�d¡ |  tdddddgd
d�d¡ |  tdddddgd
d�d¡ |  tdddddgd�d¡ d S )Núecho.websocket.eventsFÚ	localhost)Ú
proxy_hosté8  )r=   Ú
proxy_port©r<   r>   NTé)#  ©ÚaÚb)r=   r?   Ú
proxy_auth)r<   rA   rB   ©r<   r>   rB   é="  )r<   rG   rB   zexample.com)r=   r?   r%   rE   ©Nr   Nz.websocket.events)r=   r?   r%   )r   r   r   r   r   r   r   r   Útest_proxy_from_argsò   s¶    ûÿüÿüûø
ûø
ûø
ûøú÷ú÷ûøz"ProxyInfoTest.test_proxy_from_argsc                 C   s|  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/r9   r;   F)r<   NNzhttp://localhost:3128/r@   zhttp://localhost2/r:   zhttp://localhost2:3128/T)Ú
localhost2NN)rJ   r>   NÚ rH   zhttp://a:b@localhost/)r<   NrB   zhttp://a:b@localhost:3128/rF   zhttp://a:b@localhost2/zhttp://a:b@localhost2:3128/)rJ   NrB   )rJ   r>   rB   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-   )r&   r'   r   r   r   r   r   r   Útest_proxy_from_envR  sê    

ÿ

ÿ


ÿ


ÿ


ÿ


ÿ


ÿ
ÿ


ÿ
ÿ


ÿ


ÿ
þ
þ

þ

þ

þ

þÿÿþ



ÿ








z!ProxyInfoTest.test_proxy_from_envN)r    r!   r"   r)   r*   rI   rL   r   r   r   r   r7   Ö   s   `r7   Ú__main__)r&   ZunittestZwebsocket._urlr   r   r   r   Zwebsocket._exceptionsr   ZTestCaser   r#   r7   r    Úmainr   r   r   r   Ú<module>   s   ZZ  