a :êdg%&ã@sòdZddlZddlZddlZddlZddlZddlmZmZddl m Z ddl m Z ddl mZddlmZddlmZz ddlZWneyšdZYn0dZd ZGd d „d eƒZGd d „d eƒZGdd„deƒZdd„ZedkrîeeƒƒdS)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"eZdZdZdd„Zddd„ZdS) ÚInputszFakes user inputs.cGs||_d|_dS)Nr©ÚanswersÚindex)Úselfr ©r ú9/usr/local/lib/python3.9/distutils/tests/test_register.pyÚ__init__,szInputs.__init__Úc Cs2z|j|jW|jd7_S|jd7_0dS)Nér )r Úpromptr r rÚ__call__0s  þzInputs.__call__N)r)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrr r r rr*src@s<eZdZdZdd„Zdd„Zd dd„Zd d „Zdd d „ZdS)Ú FakeOpenerzFakes a PyPI servercCs g|_dS©N)Úreqs©r r r rr8szFakeOpener.__init__cGs|Srr )r Úargsr r rr;szFakeOpener.__call__NcCs|j |¡|Sr)rÚappend)r ÚreqÚdataÚtimeoutr r rÚopen>s zFakeOpener.opencCsdS)Nóxxxr rr r rÚreadBszFakeOpener.readcCsddi | ¡|¡S)Nz content-typeztext/plain; charset=utf-8)ÚgetÚlower)r ÚnameÚdefaultr r rÚ getheaderEsÿþzFakeOpener.getheader)NN)N) rrrrrrr!r#r(r r r rr6s  rcsšeZdZ‡fdd„Z‡fdd„Zddd„Zdd „Zd d „Zd d „Zdd„Z e   e dud¡dd„ƒZ e   e dud¡dd„ƒZdd„Zdd„Zdd„Z‡ZS)ÚRegisterTestCasecsJtt|ƒ ¡tj|_dd„}|t_dtj_tjj|_ t ƒ|_ tj_dS)NcSsdS©NÚpasswordr ©rr r rÚ_getpassQsz(RegisterTestCase.setUp.._getpass) Úsuperr)ÚsetUpÚgetpassÚ _old_getpassÚurllibÚrequestÚ_openerÚ build_openerÚ old_openerrÚconn)r r-©Ú __class__r rr/Ms zRegisterTestCase.setUpcs,|jt_dtj_|jtj_tt|ƒ  ¡dSr) r1r0r2r3r4r6r5r.r)ÚtearDownrr8r rr:Xs zRegisterTestCase.tearDownNcCs4|durddddddœ}|jfi|¤Ž\}}t|ƒS)NÚxxx)ÚurlÚauthorÚ author_emailr&Úversion)Z create_distr)r ÚmetadataZpkg_infoÚdistr r rÚ_get_cmd^sþzRegisterTestCase._get_cmdcCs"| ¡}| tj |j¡¡tdddƒ}|jt_ z|  ¡Wt` nt` 0|  tj |j¡¡t |jƒ}z |  ¡}| |t¡W| ¡n | ¡0d dd„}|t_ d|_|  ¡| t|jjƒd¡t|jjd jƒ}t|jjdjƒ}| |d d ¡| |d d ¡| d |jjdj¡dS)NÚ1ÚtarekÚyrcSs t|ƒ‚dSr)ÚAssertionErrorr,r r rÚ_no_wayŽsz4RegisterTestCase.test_create_pypirc.._no_wayrérúContent-lengthZ1374r")r)rBZ assertFalseÚosÚpathÚexistsÚrcrrÚregister_moduleÚinputÚrunZ assertTruer!r#Ú assertEqualÚ WANTED_PYPIRCÚcloseÚ show_responseÚlenr7rÚdictÚheadersÚassertInr)r ÚcmdÚinputsÚfZcontentrGZreq1Zreq2r r rÚtest_create_pypircfs.     z#RegisterTestCase.test_create_pypirccCsB| |jt¡| ¡}| ¡| ¡| ¡| |jj d¡dSr*) Z write_filerMÚPYPIRC_NOPASSWORDrBZ _set_configZfinalize_optionsZ send_metadatarQZ distributionr+)r rYr r rÚtest_password_not_in_fileŸs z*RegisterTestCase.test_password_not_in_filecCs€| ¡}tdddƒ}|jt_z| ¡Wt`nt`0| t|jj ƒd¡|jj d}t |j ƒ}| |dd¡|  d|j ¡dS) NÚ2rDútarek@ziade.orgrrrIZ608ótarek©rBrrrNrOrPrQrUr7rrVrWrXr©r rYrZrrWr r rÚtest_registering«s     z!RegisterTestCase.test_registeringcCs~| ¡}tddƒ}|jt_z| ¡Wt`nt`0| t|jj ƒd¡|jj d}t |j ƒ}| |dd¡|  d|j ¡dS)NÚ3r`rrrIZ290rarbrcr r rÚtest_password_reset½s     z$RegisterTestCase.test_password_resetzneeds docutilscCsB| i¡}| ¡d|_| t|j¡dddddddœ}| |¡}| ¡d|_| t|j¡d|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 == text©r<r=r>r&r?Úlong_descriptionztitle ===== textrhrCrDrEuÉricuSomething about esszet ßuMore things about esszet ß)r<r=r>r&r?Ú descriptionrh) rBÚensure_finalizedÚstrictÚ assertRaisesrrPrrrNrO)r rYr@rZr r rÚ test_strictÏsV ý        ü   zRegisterTestCase.test_strictcCs`d}ddddd|dœ}| |¡}| ¡d|_tdddƒ}|t_| ttd¡| t |j ¡dS) Nz :funkie:`str`r;rgTr_rDr`rO) rBrjrkrrNrOZ addCleanupÚdelattrrlrrP)r rir@rYrZr r rÚ&test_register_invalid_long_descriptionsý  z7RegisterTestCase.test_register_invalid_long_descriptioncCsV| ¡}tƒ4}t d¡| ¡| t|jƒd¡Wdƒn1sH0YdS)NÚalwaysr)rBrÚwarningsÚ simplefilterZcheck_metadatarQrU)r rYÚwr r rÚtest_check_metadata_deprecated!s  z/RegisterTestCase.test_check_metadata_deprecatedcCs4| ¡}d|_| ¡| t¡}| |ddg¡dS)Nrz running checkr;)rBZlist_classifiersrPÚget_logsrrQ)r rYÚresultsr r rÚtest_list_classifiers)s  z&RegisterTestCase.test_list_classifierscCsX| ¡}tdddƒ}|jt_d|_z| ¡Wt`nt`0| t¡}|  |dd¡dS)NrCrDrEréz›--------------------------------------------------------------------------- xxx ---------------------------------------------------------------------------) rBrrrNrOrTrPrurrQ)r rYrZrvr r rÚtest_show_response0s    z#RegisterTestCase.test_show_response)N)rrrr/r:rBr\r^rdrfÚunittestZ skipUnlessÚdocutilsrmrortrwryÚ __classcell__r r r8rr)Ks  9  A r)cCs t t¡Sr)rzZ makeSuiter)r r r rÚ test_suite?sr}Ú__main__)rrJrzr0r2rqZ test.supportrrZdistutils.commandrrNZdistutils.command.registerZdistutils.errorsrZ distutils.logrZdistutils.tests.test_configrr{Ú ImportErrorr]rRÚobjectrrr)r}rr r r rÚs0           u