
    ;ef&                     B   	 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 )    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dZdS )Inputsc                 "    || _         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__r   r    r   r   r
   r
   +   s:               r   r
   c                   2    e Zd Z	 d Zd ZddZd ZddZdS )	
FakeOpenerc                     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-   r3   r   r   r   r   r   7   sl                 ) ) ) ) ) )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   )superr5   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>   r@   rA   rB   rD   rC   r<   r5   tearDown)r   rF   s    r   rH   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_emailr1   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   )rS   assertFalseospathexistsrcr
   r   register_moduleinputrun
assertTruer*   r-   assertEqualWANTED_PYPIRCcloseshow_responselenrE   r!   dictheadersassertInr(   )r   cmdinputsfcontentrZ   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 r8   )

write_filerb   PYPIRC_NOPASSWORDrS   _set_configfinalize_optionssend_metadatarg   distributionr9   )r   ro   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2rV   tarek@ziade.orgr   r   r\   608   tarekrS   r
   r   rc   rd   re   rg   rk   rE   r!   rl   rm   rn   r(   r   ro   rp   r'   rm   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   rJ   u   éxéxéztitle
==

textrK   rL   rM   r1   rN   long_descriptionztitle
=====

textr   rU   rV   rW   u   Éricu   Something about esszet ßu   More things about esszet ß)rK   rL   rM   r1   rN   descriptionr   )
rS   ensure_finalizedstrictassertRaisesr   re   r
   r   rc   rd   )r   ro   rP   rp   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`rJ   r   Tr   rV   r   rd   )rS   r   r   r
   rc   rd   
addCleanupdelattrr   r   re   )r   r   rP   ro   rp   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   )rS   r   warningssimplefiltercheck_metadatarg   rk   )r   ro   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 checkrJ   )rS   list_classifiersre   get_logsr   rg   )r   ro   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 )NrU   rV   rW   r      z---------------------------------------------------------------------------
xxx
---------------------------------------------------------------------------)
rS   r
   r   rc   rd   rj   re   r   r   rg   )r   ro   rp   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=   rH   rS   ru   r}   r   r   unittest
skipUnlessdocutilsr   r   r   r   r   __classcell__)rF   s   @r   r5   r5   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   r5   c                  X    t          j                                        t                    S r    )r   
TestLoaderloadTestsFromTestCaser5   r   r   r   
test_suiter   @  s       667GHHHr   __main__)r_   r   r>   r@   r   test.supportr   test.support.warnings_helperr   distutils.commandr   rc   distutils.command.registerdistutils.errorsr   distutils.logr   distutils.tests.test_configr   r   ImportErrorrx   rh   objectr
   r   r5   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