
    Tf                     f    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d
S )    )unicode_literals)cast   )_url   )HyperlinkTestCase)register_schemeURL
DecodedURLc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestSchemeRegistrationc                 ~    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selfs    Y/var/www/html/env/lib/python3.11/site-packages/hyperlink/test/test_scheme_registration.pysetUpzTestSchemeRegistration.setUp   s.    %)$*>%?%?"'*4+A'B'B$$$    c                 J    | j         t          _        | j        t          _        d S r   )r   r   r   r   r   r   s    r   tearDownzTestSchemeRegistration.tearDown   s    #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          }|                    d          }|                                dk    sJ t          j        d	          }|                                dk    sJ t          d
d           t          d
          }|                    d          }|                                dk    sJ d S )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GGG]233yI%%%%w$~%%%% ]:&&ZZ]Z++zz||66666 ]788zz||66666
6666
###ZZ]Z++zz||7777777r   c                     t          dd           t          d          }|                    d          }|                                dk    sJ d S )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-   sY    7777$$$ZZ0Z11zz||7777777r   c                     |                      t                    5  t          ddd           d d d            d S # 1 swxY w Y   d S )NbadnetloclessF   r   )assertRaises
ValueErrorr	   r   s    r   !test_register_no_netloc_with_portz8TestSchemeRegistration.test_register_no_netloc_with_port4   s    z** 	P 	POQOOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   ;??c           	      x   |                      t                    5  t          dt          t          d                      d d d            n# 1 swxY w Y   |                      t                    5  t          dt          t          t                                           d d d            d S # 1 swxY w Y   d S )N	badnetlocr2   r9   r:   r	   r   boolobjectr   s    r   test_invalid_uses_netlocz/TestSchemeRegistration.test_invalid_uses_netloc9   sF   z** 	G 	GKT$5E5EFFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gz** 	K 	KKT$5I5IJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks#   %AAA11B//B36B3c           	          |                      t                    5  t          dt          t          t                                           d d d            d S # 1 swxY w Y   d S )Nlolr2   r>   r   s    r   !test_register_invalid_uses_netlocz8TestSchemeRegistration.test_register_invalid_uses_netloc@   s    z** 	E 	EEtD&((/C/CDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E   1AA Ac           	          |                      t                    5  t          dt          t          t                                           d d d            d S # 1 swxY w Y   d S )Nnoper$   r>   r   s    r   test_register_invalid_portz1TestSchemeRegistration.test_register_invalid_portE   s    z** 	G 	GFdFHH1E1EFFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	GrE   c                     t          dd           t          j        d          }t          j        d          }|                    d          dgk    sJ |                    d          dgk    sJ d S )	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   s    
>>>>&0+
 
 #,-IJJ $$S))eW4444  %%%000000r   N)__name__
__module____qualname__r   r   r/   r5   r;   rA   rD   rH   rP    r   r   r   r      s        C C C
> > >
8 8 8.8 8 8P P P
K K KE E E
G G G
1 1 1 1 1r   r   N)
__future__r   typingr    r   commonr   r	   r
   r   r   rT   r   r   <module>rY      s    ' ' ' ' ' '             % % % % % % 3 3 3 3 3 3 3 3 3 3G1 G1 G1 G1 G1. G1 G1 G1 G1 G1r   