U
    [e                     @   sX   d dl mZ d dlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
 G dd	 d	eZd
S )    )unicode_literals)cast   )_url   )HyperlinkTestCase)register_schemeURL
DecodedURLc                   @   sT   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d Z
dd ZdS )TestSchemeRegistrationc                 C   s   t tj| _ttj| _d S N)dictr   SCHEME_PORT_MAP_orig_scheme_port_mapsetNO_NETLOC_SCHEMES_orig_no_netloc_schemesself r   i/var/www/html/services/stratfitenv/lib/python3.8/site-packages/hyperlink/test/test_scheme_registration.pysetUp   s    zTestSchemeRegistration.setUpc                 C   s   | j t_| jt_d S r   )r   r   r   r   r   r   r   r   r   tearDown   s    zTestSchemeRegistration.tearDownc                 C   s   t dddd td}|jdks&t|jdks4t|jdksBttd}|jdd}| dkshttd	}| dkstt d
dd td
d}|jdd}| dkstd S )NZdeltronTi  uses_netlocdefault_portzdeltron://example.comzdeltron:zexample.com)hostzdeltron://example.com:3030Znonetroni  r   schemeznonetron://example.com)	r   r	   	from_textr   AssertionErrorportr   replaceto_text)r   u1u2u3u4r   r   r   test_register_scheme_basic   s    



z1TestSchemeRegistration.test_register_scheme_basicc                 C   s6   t ddd tdd}|jdd}| dks2td S )NZ	noloctronFr   r   )Zexamplepath)r+   znoloctron:example/path)r   r	   r#   r$   r!   )r   r(   r   r   r   test_register_no_netloc_scheme-   s    
z5TestSchemeRegistration.test_register_no_netloc_schemec              	   C   s(   |  t tdddd W 5 Q R X d S )NZbadnetloclessF   r   )assertRaises
ValueErrorr   r   r   r   r   !test_register_no_netloc_with_port4   s    z8TestSchemeRegistration.test_register_no_netloc_with_portc              	   C   sV   |  t tdttd d W 5 Q R X |  t tdttt d W 5 Q R X d S )NZ	badnetlocr*   r.   r/   r   r   boolobjectr   r   r   r   test_invalid_uses_netloc9   s    z/TestSchemeRegistration.test_invalid_uses_netlocc              	   C   s.   |  t tdttt d W 5 Q R X d S )NZlolr*   r1   r   r   r   r   !test_register_invalid_uses_netloc@   s    z8TestSchemeRegistration.test_register_invalid_uses_netlocc              	   C   s.   |  t tdttt d W 5 Q R X d S )NZnoper   r1   r   r   r   r   test_register_invalid_portE   s    z1TestSchemeRegistration.test_register_invalid_portc                 C   sL   t ddd td}td}|ddgks4t|ddgksHtd S )	NZkeepplusF)Zquery_plus_is_spacezkeepplus://example.com/?q=a+bzhttps://example.com/?q=a+bqza+bza b)r   r
   r    getr!   )r   Zplus_is_not_spaceZplus_is_spacer   r   r   "test_register_no_quote_plus_schemeJ   s    
z9TestSchemeRegistration.test_register_no_quote_plus_schemeN)__name__
__module____qualname__r   r   r)   r,   r0   r4   r5   r6   r9   r   r   r   r   r      s   r   N)
__future__r   typingr    r   commonr   r   r	   r
   r   r   r   r   r   <module>   s
   