
    Vh                     ^    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	e      Zy
)    )unicode_literals)cast   )_url   )HyperlinkTestCase)register_schemeURL
DecodedURLc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestSchemeRegistrationc                 |    t        t        j                        | _        t	        t        j
                        | _        y N)dictr   SCHEME_PORT_MAP_orig_scheme_port_mapsetNO_NETLOC_SCHEMES_orig_no_netloc_schemesselfs    W/home/dcms/DCMS/lib/python3.12/site-packages/hyperlink/test/test_scheme_registration.pysetUpzTestSchemeRegistration.setUp   s(    %)$*>*>%?"'*4+A+A'B$    c                 X    | j                   t        _        | j                  t        _        y r   )r   r   r   r   r   r   s    r   tearDownzTestSchemeRegistration.tearDown   s    #99!%!=!=r   c                    t        ddd       t        j                  d      }|j                  dk(  sJ |j                  dk(  sJ |j
                  du sJ t        j                  d      }|j                  d      }|j                         dk(  sJ t        j                  d	      }|j                         dk(  sJ t        d
d       t        d
      }|j                  d      }|j                         dk(  sJ y )NdeltronTi  uses_netlocdefault_portzdeltron://example.comzdeltron:zexample.com)hostzdeltron://example.com:3030nonetroni  r!   schemeznonetron://example.com)r	   r
   	from_textr&   portr    replaceto_text)r   u1u2u3u4s        r   test_register_scheme_basicz1TestSchemeRegistration.test_register_scheme_basic   s    	t$G]]23yyI%%%ww$~~%%% ]]:&ZZ]Z+zz|6666 ]]78zz|6666
6
#ZZ]Z+zz|7777r   c                     t        dd       t        d      }|j                  d      }|j                         dk(  sJ y )N	noloctronFr    r%   )examplepath)r4   znoloctron:example/path)r	   r
   r)   r*   )r   r.   s     r   test_register_no_netloc_schemez5TestSchemeRegistration.test_register_no_netloc_scheme-   s<    7$ZZ0Z1zz|7777r   c                 t    | j                  t              5  t        ddd       d d d        y # 1 sw Y   y xY w)NbadnetloclessF   r   )assertRaises
ValueErrorr	   r   s    r   !test_register_no_netloc_with_portz8TestSchemeRegistration.test_register_no_netloc_with_port4   s5    z* 	POQO	P 	P 	Ps   .7c           	      (   | j                  t              5  t        dt        t        d              d d d        | j                  t              5  t        dt        t        t                            d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY w)N	badnetlocr2   r9   r:   r	   r   boolobjectr   s    r   test_invalid_uses_netlocz/TestSchemeRegistration.test_invalid_uses_netloc9   sz    z* 	GKT$5EF	Gz* 	KKT$5IJ	K 	K	G 	G	K 	Ks   A<$B<BBc           	          | j                  t              5  t        dt        t        t                            d d d        y # 1 sw Y   y xY w)Nlolr2   r>   r   s    r   !test_register_invalid_uses_netlocz8TestSchemeRegistration.test_register_invalid_uses_netloc@   s<    z* 	EEtD&(/CD	E 	E 	E   $AAc           	          | j                  t              5  t        dt        t        t                            d d d        y # 1 sw Y   y xY w)Nnoper$   r>   r   s    r   test_register_invalid_portz1TestSchemeRegistration.test_register_invalid_portE   s<    z* 	GFdFH1EF	G 	G 	GrE   c                     t        dd       t        j                  d      }t        j                  d      }|j                  d      dgk(  sJ |j                  d      dgk(  sJ y )	NkeepplusF)query_plus_is_spacezkeepplus://example.com/?q=a+bzhttps://example.com/?q=a+bqza+bza b)r	   r   r'   get)r   plus_is_not_spaceplus_is_spaces      r   "test_register_no_quote_plus_schemez9TestSchemeRegistration.test_register_no_quote_plus_schemeJ   si    
>&00+
 #,,-IJ $$S)eW444  %%000r   N)__name__
__module____qualname__r   r   r/   r5   r;   rA   rD   rH   rP    r   r   r   r      s4    C
>
8.8P
KE
G
1r   r   N)
__future__r   typingr    r   commonr   r	   r
   r   r   rT   r   r   <module>rY      s(    '   % 3 3G1. G1r   