U
     UY	                     @   sH   d dl mZ ddlmZ ddlmZ ddlmZmZ G dd deZd	S )
    )unicode_literals   )_url   )HyperlinkTestCase)register_schemeURLc                   @   sL   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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/usr/lib/python3/dist-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)Zhostzdeltron://example.com:3030Znonetroni  r   schemeznonetron://example.com)	r   r   Z	from_textr   AssertionErrorZportr   replaceto_text)r   Zu1Zu2Z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_port0   s    z8TestSchemeRegistration.test_register_no_netloc_with_portc              	   C   sJ   |  t tdd d W 5 Q R X |  t tdt d W 5 Q R X d S )NZ	badnetlocr"   )r'   r(   r   objectr   r   r   r   test_invalid_uses_netloc4   s    z/TestSchemeRegistration.test_invalid_uses_netlocc              	   C   s*   |  t tddd d W 5 Q R X d S )Nlolc                   S   s   dS )Nnoper   r   r   r   r   <lambda><       zJTestSchemeRegistration.test_register_invalid_uses_netloc.<locals>.<lambda>r"   r&   r   r   r   r   !test_register_invalid_uses_netloc:   s    z8TestSchemeRegistration.test_register_invalid_uses_netlocc              	   C   s*   |  t tddd d W 5 Q R X d S )Nr-   c                   S   s   dS )Nr,   r   r   r   r   r   r.   @   r/   zCTestSchemeRegistration.test_register_invalid_port.<locals>.<lambda>r   r&   r   r   r   r   test_register_invalid_port>   s    z1TestSchemeRegistration.test_register_invalid_portN)__name__
__module____qualname__r   r   r!   r$   r)   r+   r0   r1   r   r   r   r   r	   
   s   r	   N)	Z
__future__r    r   commonr   r   r   r	   r   r   r   r   <module>   s   