
    ;ef&                     D   d Z ddlZddlZddlZddlZddlZ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 ddlmZ ddlmZ 	 ddlZn# e$ r dZY nw xY wd	Zd
Z G d de          Z G d de          Z G d de          Zd Zedk    r e e                       dS dS )z%Tests for distutils.command.register.    N)run_unittest)check_warnings)register)DistutilsSetupError)INFO)BasePyPIRCCommandTestCasez@[distutils]

index-servers =
    server1

[server1]
username:me
zN[distutils]
index-servers =
    pypi

[pypi]
username:tarek
password:password
c                        e Zd ZdZd ZddZdS )InputszFakes user inputs.c                 "    || _         d| _        d S )Nr   answersindex)selfr   s     4/usr/lib/python3.11/distutils/tests/test_register.py__init__zInputs.__init__-   s    


     c                 r    	 | j         | j                 | xj        dz  c_        S # | xj        dz  c_        w xY w)N   r   )r   prompts     r   __call__zInputs.__call__1   s;    	<
+JJ!OJJJDJJ!OJJJJJJs   $ 6Nr   )__name__
__module____qualname____doc__r   r    r   r   r
   r
   +   s=               r   r
   c                   4    e Zd ZdZd Zd ZddZd Zd	dZdS )

FakeOpenerzFakes a PyPI serverc                     g | _         d S N)reqsr   s    r   r   zFakeOpener.__init__9   s    			r   c                     | S r!   r   )r   argss     r   r   zFakeOpener.__call__<   s    r   Nc                 :    | j                             |           | S r!   )r"   append)r   reqdatatimeouts       r   openzFakeOpener.open?   s    	r   c                     dS )N   xxxr   r#   s    r   readzFakeOpener.readC   s    vr   c                 V    ddi                     |                                |          S )Nzcontent-typeztext/plain; charset=utf-8)getlower)r   namedefaults      r   	getheaderzFakeOpener.getheaderF   s)    7c$**,,((	)r   )NNr!   )	r   r   r   r   r   r   r+   r.   r4   r   r   r   r   r   7   so                 ) ) ) ) ) )r   r   c                        e Zd Z fdZ fdZddZd Zd Zd Zd Z	 e
j        edud	          d
             Z e
j        edud	          d             Zd Zd Zd Z xZS )RegisterTestCasec                 ,   t          t          |                                            t          j        | _        d }|t          _        d t
          j        _        t
          j        j        | _	        t                      x| _        t
          j        _        d S )Nc                     dS Npasswordr   r   s    r   _getpassz(RegisterTestCase.setUp.<locals>._getpassR   s    :r   )superr6   setUpgetpass_old_getpassurllibrequest_openerbuild_opener
old_openerr   conn)r   r<   	__class__s     r   r>   zRegisterTestCase.setUpN   sq    %%++---#O	 	 	"!% .52<,,>	FN///r   c                     | j         t          _        d t          j        _        | j        t          j        _        t          t          |           	                                 d S r!   )
r@   r?   rA   rB   rC   rE   rD   r=   r6   tearDown)r   rG   s    r   rI   zRegisterTestCase.tearDownY   sF    +!%&*o#%%..00000r   Nc                 T    |dddddd} | j         di |\  }}t          |          S )Nxxx)urlauthorauthor_emailr2   versionr   )create_distr   )r   metadatapkg_infodists       r   _get_cmdzRegisterTestCase._get_cmd_   sK    $(- %%9 9H *)55H55$~~r   c                    |                                  }|                     t          j                            | j                             t          ddd          }|j        t          _	        	 |
                                 t          `	n# t          `	w xY w|                     t          j                            | j                             t          | j                  }	 |                                }|                     |t                     |                                 n# |                                 w xY wdd}|t          _	        d|_        |
                                 |                     t%          | j        j                  d           t+          | j        j        d         j                  }t+          | j        j        d         j                  }|                     |d	         d
           |                     |d	         d
           |                     d| j        j        d         j                   d S )N1tarekyr   c                      t          |           r!   )AssertionErrorr;   s    r   _no_wayz4RegisterTestCase.test_create_pypirc.<locals>._no_way   s     (((r   r      r   Content-length1374r-   r   )rT   assertFalseospathexistsrcr
   r   register_moduleinputrun
assertTruer+   r.   assertEqualWANTED_PYPIRCcloseshow_responselenrF   r"   dictheadersassertInr)   )r   cmdinputsfcontentr[   req1req2s           r   test_create_pypircz#RegisterTestCase.test_create_pypircg   s   
 mmoo 	00111 Wc** &	&GGIII%%%%%%% 	tw//000 MM	ffhhGWm444GGIIIIAGGIIII
	) 	) 	) 	) '			 	TY^,,a000DIN1%-..DIN1%-.../888./888fdinQ/455555s   /B 	B#/D' 'D=c                 &   |                      | j        t                     |                                 }|                                 |                                 |                                 |                     |j        j	        d           d S r9   )

write_filerc   PYPIRC_NOPASSWORDrT   _set_configfinalize_optionssend_metadatarh   distributionr:   )r   rp   s     r   test_password_not_in_filez*RegisterTestCase.test_password_not_in_file   s~    !2333mmoo 	)2J?????r   c                    |                                  }t          ddd          }|j        t          _        	 |                                 t          `n# t          `w xY w|                     t          | j        j	                  d           | j        j	        d         }t          |j                  }|                     |d         d           |                     d|j                   d S )	N2rW   tarek@ziade.orgr   r   r]   608   tarekrT   r
   r   rd   re   rf   rh   rl   rF   r"   rm   rn   ro   r)   r   rp   rq   r(   rn   s        r   test_registeringz!RegisterTestCase.test_registering   s    mmooW&788 &	&GGIII%%%%%%% 	TY^,,a000inQs{##!12E:::h)))))s   A 	Ac                    |                                  }t          dd          }|j        t          _        	 |                                 t          `n# t          `w xY w|                     t          | j        j	                  d           | j        j	        d         }t          |j                  }|                     |d         d           |                     d|j                   d S )N3r   r   r   r]   290r   r   r   s        r   test_password_resetz$RegisterTestCase.test_password_reset   s    mmoo.// &	&GGIII%%%%%%% 	TY^,,a000inQs{##!12E:::h)))))s   A 	Azneeds docutilsc                 F   |                      i           }|                                 d|_        |                     t          |j                   ddddddd}|                      |          }|                                 d|_        |                     t          |j                   d|d<   |                      |          }|                                 d|_        t          dd	d
          }|j        t          _	        	 |                                 t          `	n# t          `	w xY w|                                  }|                                 t          dd	d
          }|j        t          _	        	 |                                 t          `	n# t          `	w xY wdddddddd}|                      |          }|                                 d|_        t          dd	d
          }|j        t          _	        	 |                                 t          `	d S # t          `	w xY w)Nr   rK   u   éxéxéztitle
==

textrL   rM   rN   r2   rO   long_descriptionztitle
=====

textr   rV   rW   rX   u   Éricu   Something about esszet ßu   More things about esszet ß)rL   rM   rN   r2   rO   descriptionr   )
rT   ensure_finalizedstrictassertRaisesr   rf   r
   r   rd   re   )r   rp   rQ   rq   s       r   test_strictzRegisterTestCase.test_strict   s,    mmB
-sw777 !E$.!e(;= =
 mmH%%
-sw777 (>#$mmH%%
Wc** &	&GGIII%%%%%%% mmooWc** &	&GGIII%%%%%%% !K$)5$#B(I	K K mmH%%
Wc** &	&GGIII%%%%%%%%s$   D 	D'5F 	F:H 	H c                 8   d}ddddd|d}|                      |          }|                                 d|_        t          ddd          }|t          _        |                     t          t          d           |                     t          |j
                   d S )	Nz:funkie:`str`rK   r   Tr   rW   r   re   )rT   r   r   r
   rd   re   
addCleanupdelattrr   r   rf   )r   r   rQ   rp   rq   s        r   &test_register_invalid_long_descriptionz7RegisterTestCase.test_register_invalid_long_description  s    % E$)!e(35 5 mmH%%
W&788 &':::-sw77777r   c                    |                                  }t                      5 }t          j        d           |                                 |                     t          |j                  d           d d d            d S # 1 swxY w Y   d S )Nalwaysr   )rT   r   warningssimplefiltercheck_metadatarh   rl   )r   rp   ws      r   test_check_metadata_deprecatedz/RegisterTestCase.test_check_metadata_deprecated"  s    mmoo 	1!(+++   S__a000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   ABBBc                     |                                  }d|_        |                                 |                     t                    }|                     |ddg           d S )Nr   zrunning checkrK   )rT   list_classifiersrf   get_logsr   rh   )r   rp   resultss      r   test_list_classifiersz&RegisterTestCase.test_list_classifiers*  sV    mmoo 			--%%?E":;;;;;r   c                 >   |                                  }t          ddd          }|j        t          _        d|_        	 |                                 t          `n# t          `w xY w|                     t                    }| 	                    |d         d           d S )NrV   rW   rX   r      z---------------------------------------------------------------------------
xxx
---------------------------------------------------------------------------)
rT   r
   r   rd   re   rk   rf   r   r   rh   )r   rp   rq   r   s       r   test_show_responsez#RegisterTestCase.test_show_response1  s    mmooWc** &	&GGIII%%%%%%%--%%%DEEEEEs   A 	A$r!   )r   r   r   r>   rI   rT   rv   r~   r   r   unittest
skipUnlessdocutilsr   r   r   r   r   __classcell__)rG   s   @r   r6   r6   L   s>       	? 	? 	? 	? 	?1 1 1 1 1   76 76 76r
@ 
@ 
@* * *$* * *$ X-/?@@?& ?& A@?&B X-/?@@8 8 A@81 1 1< < <F F F F F F Fr   r6   c                  X    t          j                                        t                    S r!   )r   
TestLoaderloadTestsFromTestCaser6   r   r   r   
test_suiter   @  s       667GHHHr   __main__)r   r`   r   r?   rA   r   test.supportr   test.support.warnings_helperr   distutils.commandr   rd   distutils.command.registerdistutils.errorsr   distutils.logr   distutils.tests.test_configr   r   ImportErrorry   ri   objectr
   r   r6   r   r   r   r   r   <module>r      s   + + 				     % % % % % % 7 7 7 7 7 7 9 9 9 9 9 9 / / / / / / 0 0 0 0 0 0       A A A A A AOOOO   HHH 
 
 
 
 
V 
 
 
) ) ) ) ) ) ) )*qF qF qF qF qF0 qF qF qFhI I I zL s   A AA