a  ze%&@sdZddlZddlZddlZddlZddlZddlmZmZddl m Z ddl m Z ddl mZddlmZddlmZz ddlZWneydZYn0dZd ZGd d d eZGd d d eZGdddeZddZedkreedS)z%Tests for distutils.command.register.N)check_warnings run_unittest)register)DistutilsSetupError)INFO)BasePyPIRCCommandTestCasez@[distutils] index-servers = server1 [server1] username:me zN[distutils] index-servers = pypi [pypi] username:tarek password:password c@s"eZdZdZddZdddZdS) InputszFakes user inputs.cGs||_d|_dS)Nranswersindex)selfr r Q/opt/bitninja-python-dojo/embedded/lib/python3.9/distutils/tests/test_register.py__init__,szInputs.__init__c Cs2z|j|jW|jd7_S|jd7_0dS)Nr )r promptr r r__call__0s  zInputs.__call__N)r)__name__ __module__ __qualname____doc__rrr r r rr*src@s<eZdZdZddZddZd ddZd d Zdd d ZdS) FakeOpenerzFakes a PyPI servercCs g|_dSN)reqsr r r rr8szFakeOpener.__init__cGs|Srr )r argsr r rr;szFakeOpener.__call__NcCs|j||Sr)rappend)r reqdatatimeoutr r ropen>s zFakeOpener.opencCsdS)Nxxxr rr r rreadBszFakeOpener.readcCsddi||S)Nz content-typeztext/plain; charset=utf-8)getlower)r namedefaultr r r getheaderEszFakeOpener.getheader)NN)N) rrrrrrr!r#r(r r r rr6s  rcseZdZfddZfddZdddZdd Zd d Zd d ZddZ e e dudddZ e e dudddZddZddZddZZS)RegisterTestCasecsJtt|tj|_dd}|t_dtj_tjj|_ t |_ tj_dS)NcSsdSNpasswordr rr r r_getpassQsz(RegisterTestCase.setUp.._getpass) superr)setUpgetpass _old_getpassurllibrequest_opener build_opener old_openerrconn)r r- __class__r rr/Ms zRegisterTestCase.setUpcs,|jt_dtj_|jtj_tt| dSr) r1r0r2r3r4r6r5r.r)tearDownrr8r rr:Xs zRegisterTestCase.tearDownNcCs4|durdddddd}|jfi|\}}t|S)Nxxx)urlauthor author_emailr&version)Z create_distr)r metadataZpkg_infodistr r r_get_cmd^szRegisterTestCase._get_cmdcCs"|}|tj|jtddd}|jt_ z| Wt` nt` 0| tj|jt |j}z | }||tW|n |0d dd}|t_ d|_| |t|jjdt|jjd j}t|jjdj}||d d ||d d |d |jjdjdS)N1tarekyrcSs t|dSr)AssertionErrorr,r r r_no_waysz4RegisterTestCase.test_create_pypirc.._no_wayrrContent-lengthZ1374r")r)rBZ assertFalseospathexistsrcrrregister_moduleinputrunZ assertTruer!r# assertEqual WANTED_PYPIRCclose show_responselenr7rdictheadersassertInr)r cmdinputsfZcontentrGZreq1Zreq2r r rtest_create_pypircfs.     z#RegisterTestCase.test_create_pypirccCsB||jt|}|||||jj ddSr*) Z write_filerMPYPIRC_NOPASSWORDrBZ _set_configZfinalize_optionsZ send_metadatarQZ distributionr+)r rYr r rtest_password_not_in_files z*RegisterTestCase.test_password_not_in_filecCs|}tddd}|jt_z|Wt`nt`0|t|jj d|jj d}t |j }||dd| d|j dS) N2rDtarek@ziade.orgrrrIZ608tarekrBrrrNrOrPrQrUr7rrVrWrXrr rYrZrrWr r rtest_registerings     z!RegisterTestCase.test_registeringcCs~|}tdd}|jt_z|Wt`nt`0|t|jj d|jj d}t |j }||dd| d|j dS)N3r`rrrIZ290rarbrcr r rtest_password_resets     z$RegisterTestCase.test_password_resetzneeds docutilscCsB|i}|d|_|t|jddddddd}||}|d|_|t|jd|d<||}|d|_tdd d }|jt_ z|Wt` nt` 0|}|tdd d }|jt_ z|Wt` nt` 0dd dddd d d}||}|d|_tdd d }|jt_ z|Wt` nt` 0dS)Nrr;uéxéxéztitle == textr<r=r>r&r?long_descriptionztitle ===== textrhrCrDrEuÉricuSomething about esszet ßuMore things about esszet ß)r<r=r>r&r? descriptionrh) rBensure_finalizedstrict assertRaisesrrPrrrNrO)r rYr@rZr r r test_strictsV            zRegisterTestCase.test_strictcCs`d}ddddd|d}||}|d|_tddd}|t_|ttd|t |j dS) Nz :funkie:`str`r;rgTr_rDr`rO) rBrjrkrrNrOZ addCleanupdelattrrlrrP)r rir@rYrZr r r&test_register_invalid_long_descriptions  z7RegisterTestCase.test_register_invalid_long_descriptioncCsV|}t4}td||t|jdWdn1sH0YdS)Nalwaysr)rBrwarnings simplefilterZcheck_metadatarQrU)r rYwr r rtest_check_metadata_deprecated!s  z/RegisterTestCase.test_check_metadata_deprecatedcCs4|}d|_||t}||ddgdS)Nrz running checkr;)rBZlist_classifiersrPget_logsrrQ)r rYresultsr r rtest_list_classifiers)s  z&RegisterTestCase.test_list_classifierscCsX|}tddd}|jt_d|_z|Wt`nt`0|t}| |dddS)NrCrDrErz--------------------------------------------------------------------------- xxx ---------------------------------------------------------------------------) rBrrrNrOrTrPrurrQ)r rYrZrvr r rtest_show_response0s    z#RegisterTestCase.test_show_response)N)rrrr/r:rBr\r^rdrfunittestZ skipUnlessdocutilsrmrortrwry __classcell__r r r8rr)Ks  9  A r)cCs ttSr)rzZ makeSuiter)r r r r test_suite?sr}__main__)rrJrzr0r2rqZ test.supportrrZdistutils.commandrrNZdistutils.command.registerZdistutils.errorsrZ distutils.logrZdistutils.tests.test_configrr{ ImportErrorr]rRobjectrrr)r}rr r r rs0           u