a :êdg—Bã@sLdZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z m Z m Z zddlZdZWney~dZYn0zddlZddlZdZWney®dZYn0ddlmZmZdd lmZdd lmZdd lmZdd lmZdd lm Z ddl!m"Z"ddl#m$Z$dZ%dZ&Gdd„deƒZ'dd„Z(e)dkrHe e(ƒƒdS)z"Tests for distutils.command.sdist.éN)Újoin)Údedent)Úcaptured_stdoutÚcheck_warningsÚ run_unittestTF)ÚsdistÚ show_formats)Ú Distribution)ÚBasePyPIRCCommandTestCase)ÚDistutilsOptionError)Úfind_executable)ÚWARN)ÚFileList)ÚARCHIVE_FORMATSzF from distutils.core import setup import somecode setup(name='fake') zõ# file GENERATED by distutils, do NOT edit README buildout.cfg inroot.txt setup.py data%(sep)sdata.dt scripts%(sep)sscript.py some%(sep)sfile.txt some%(sep)sother_file.txt somecode%(sep)s__init__.py somecode%(sep)sdoc.dat somecode%(sep)sdoc.txt csŒeZdZ‡fdd„Z‡fdd„Zd1dd„Ze ed¡d d „ƒZ e ed¡e  e d ƒdud ¡e  e d ƒdud¡dd„ƒƒƒZ e ed¡dd„ƒZ e ed¡dd„ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd „Ze  ejd!kd"¡d#d$„ƒZe ed¡d%d&„ƒZe ed¡d'd(„ƒZe ed¡d)d*„ƒZe ed¡d+d,„ƒZe ed-¡e ed.¡e  e d ƒdud ¡e  e d ƒdud¡d/d0„ƒƒƒƒZ‡ZS)2Ú SDistTestCasecs„tt|ƒ ¡t ¡|_t t|jdƒ¡t t|jdƒ¡|  |jdfd¡|  |jddfd¡|  |jdft ¡t  |j¡dS)NÚsomecodeÚdistÚREADMEÚxxxz __init__.pyú#úsetup.py) ÚsuperrÚsetUpÚosÚgetcwdÚold_pathÚmkdirrÚtmp_dirÚ write_fileÚSETUP_PYÚchdir©Úself©Ú __class__©ú6/usr/local/lib/python3.9/distutils/tests/test_sdist.pyr9s zSDistTestCase.setUpcst |j¡tt|ƒ ¡dS©N)rr rrrÚtearDownr!r#r%r&r(Gs zSDistTestCase.tearDownNcCsJ|durddddddœ}t|ƒ}d|_dg|_d|_t|ƒ}d |_||fS) z Returns a cmdNZfakez1.0r)ÚnameÚversionÚurlZauthorZ author_emailrrTr)r Z script_nameZpackagesZinclude_package_datarÚdist_dir)r"ÚmetadatarÚcmdr%r%r&Úget_cmdLsþzSDistTestCase.get_cmdzNeed zlib support to runcCs0t t|jddƒ¡| |jdddfd¡t t|jddƒ¡| |jdddfd¡t t|jddƒ¡| |jdddfd¡| |jddfd¡| ¡\}}d g|_| ¡| ¡t|jd ƒ}t  |¡}|  |d g¡t   t|d ƒ¡}z|  ¡}W| ¡n | ¡0gd ¢}|  t|ƒd d„|Dƒ¡dS)Nrz.svnzok.pyrú.hgÚokz.gitz.nfs0001Úziprú fake-1.0.zip)ÚúPKG-INFOrrú somecode/úsomecode/__init__.pycSsg|] }d|‘qS©z fake-1.0/r%©Ú.0Úxr%r%r&Ú …óz6SDistTestCase.test_prune_file_list..)rrrrrr/ÚformatsÚensure_finalizedÚrunÚlistdirÚ assertEqualÚzipfileÚZipFileÚnamelistÚcloseÚsorted)r"rr.Ú dist_folderÚfilesÚzip_fileÚcontentÚexpectedr%r%r&Útest_prune_file_listZs8 ÿÿ ÿÿ    z"SDistTestCase.test_prune_file_listÚtarzThe tar command is not foundÚgzipzThe gzip command is not foundcCs´| ¡\}}ddg|_| ¡| ¡t|jdƒ}t |¡}| ¡|  |ddg¡t  t|dƒ¡t  t|dƒ¡ddg|_| ¡| ¡t |¡}| ¡|  |ddg¡dS)NÚgztarrNrz fake-1.0.tarúfake-1.0.tar.gz) r/r>r?r@rrrrAÚsortrBÚremove)r"rr.rHÚresultr%r%r&Útest_make_distribution‡s       z$SDistTestCase.test_make_distributioncCs| ¡\}}ddgdgdœ|_| |jddfd¡| |jddfd¡t|jd ƒ}t |¡| |d fd¡t|jd ƒ}t |¡t|jd ƒ}t |¡| |d fd¡| |jdfd¡| |jdfd¡| |dfd¡| |dfd¡d gd¢fddg|_t|jdƒ}t |¡| |dfd¡tddƒg|_dg|_ d|_ |  ¡|  ¡t|jdƒ}t  |¡}| |dg¡t t|dƒ¡} z|  ¡} W|  ¡n |  ¡0gd¢} | t| ƒdd„| Dƒ¡tt|jdƒƒ} z|  ¡} W|  ¡n |  ¡0| | tdtji¡dS) Nz*.cfgz*.datú*.txt)r4rrúdoc.txtrzdoc.datÚdatazdata.dtZsomer0zlast-message.txtú buildout.cfgú inroot.txtzfile.txtzother_file.txt)ú data/data.dtrYrZZ notexistingú some/file.txtúsome/other_file.txtÚscriptsz script.pyr2Trr3)r4r5rrYzdata/r[rZzscripts/zscripts/script.pyrzsome/r\r]r6r7zsomecode/doc.datzsomecode/doc.txtcSsg|] }d|‘qSr8r%r9r%r%r&r<ír=z3SDistTestCase.test_add_defaults..ÚMANIFESTÚsep)r/Ú package_datarrrrrZ data_filesr^r>Z use_defaultsr?r@rArBrCrDrErFrGÚopenÚreadr_r`)r"rr.Zdata_dirZsome_dirZhg_dirZ script_dirrHrIrJrKrLÚfÚmanifestr%r%r&Útest_add_defaults¨sX ÿ       û      zSDistTestCase.test_add_defaultscCs–|jid\}}| ¡| ¡dd„| t¡Dƒ}| t|ƒd¡| ¡| ¡\}}| ¡d|_| ¡dd„| t¡Dƒ}| t|ƒd¡dS)N)r-cSsg|]}| d¡r|‘qS©zwarning: check:©Ú startswith©r:Úmsgr%r%r&r<s ÿz.ércSsg|]}| d¡r|‘qSrgrhrjr%r%r&r< s ÿ) r/r?r@Úget_logsr rBÚlenZ clear_logsZmetadata_check)r"rr.Úwarningsr%r%r&Útest_metadata_check_option÷s z(SDistTestCase.test_metadata_check_optioncCsZ| ¡\}}tƒ4}t d¡| ¡| t|jƒd¡Wdƒn1sL0YdS)NÚalwaysé)r/rroÚ simplefilterZcheck_metadatarBrn)r"rr.Úwr%r%r&Útest_check_metadata_deprecateds   z,SDistTestCase.test_check_metadata_deprecatedcCsdtƒ}tƒWdƒn1s"0Ytt ¡ƒ}dd„| ¡ d¡Dƒ}| t|ƒ|¡dS)NcSsg|]}| ¡ d¡r|‘qS)z --formats=)Ústripri©r:Úliner%r%r&r<sÿz3SDistTestCase.test_show_formats..Ú )rrrnrÚkeysÚgetvalueÚsplitrB)r"ÚstdoutZ num_formatsÚoutputr%r%r&Útest_show_formatss $ zSDistTestCase.test_show_formatscCsz| ¡\}}| ¡| |jd¡| |jd¡| |jd¡d|_| t|j¡dg|_| ¡d|_| t|j¡dS)Nr_ú MANIFEST.inrrrr2Zsupazipa) r/Zfinalize_optionsrBreÚtemplater,r>Z assertRaisesr )r"rr.r%r%r&Útest_finalize_options s z#SDistTestCase.test_finalize_optionscCsZ| ¡\}}t |j¡| d|¡| ¡tƒ|_| ¡|  t ¡}|  t |ƒd¡dS)Nr€rr) r/rr rrr?rÚfilelistZ read_templatermr rBrn)r"rKrr.ror%r%r&Ú_check_template7s    zSDistTestCase._check_templatecCs| d¡dS)Nztaunt knights *©r„r!r%r%r&Ú%test_invalid_template_unknown_commandAsz3SDistTestCase.test_invalid_template_unknown_commandcCs| d¡dS)NZpruner…r!r%r%r&Ú%test_invalid_template_wrong_argumentsDsz3SDistTestCase.test_invalid_template_wrong_argumentsÚntztest relevant for Windows onlycCs| d¡dS)Nzinclude examples/r…r!r%r%r&Ú test_invalid_template_wrong_pathHsz.SDistTestCase.test_invalid_template_wrong_pathcCs | ¡\}}ddgi|_| |jddfd¡dg|_| ¡| ¡t|jƒ}z$dd„|  ¡  d¡Dƒ}W|  ¡n |  ¡0|  t |ƒd ¡| |jdd fd¡| d ¡}d |_| ¡| ¡t|jƒ}z$d d„|  ¡  d¡Dƒ}W|  ¡n |  ¡0|  t |ƒd¡| d |d¡dS)NrrVrWrrPcSs g|]}| ¡dkr| ¡‘qS©r4©rvrwr%r%r&r<\s ÿz4SDistTestCase.test_get_file_list..ryézdoc2.txtÚbuild_pyFcSs g|]}| ¡dkr| ¡‘qSrŠr‹rwr%r%r&r<os ÿééÿÿÿÿ)r/rarrr>r?r@rbrercr|rFrBrnZget_command_objZ finalizedZassertIn)r"rr.rdrerZ manifest2r%r%r&Útest_get_file_listNs,     z SDistTestCase.test_get_file_listcCsj| ¡\}}| ¡| ¡t|jƒ}z$dd„| ¡ d¡Dƒ}W| ¡n | ¡0| |dd¡dS)NcSs g|]}| ¡dkr| ¡‘qSrŠr‹rwr%r%r&r<s ÿz6SDistTestCase.test_manifest_marker..ryrz*# file GENERATED by distutils, do NOT edit) r/r?r@rbrercr|rFrB)r"rr.rdrer%r%r&Útest_manifest_markerxs   ÿz"SDistTestCase.test_manifest_markercCs„tdƒ}| ¡\}}| ¡| |j|jf|¡| |jdfd¡| |jdfd¡| |jdfd¡| ¡| |jj dg¡dS)NzI # bad.py #bad.py good.py zgood.pyz # pick me!zbad.pyz# don't pick me!z#bad.py) rr/r?rrrer@rBrƒrI)r"Úcontentsrr.r%r%r&Útest_manifest_comments‰s z$SDistTestCase.test_manifest_commentscCsú| ¡\}}dg|_| ¡| |j|jfd¡| |jdfd¡| ¡| |jj dg¡t |jƒ}z$dd„|  ¡  d¡Dƒ}W|  ¡n |  ¡0| |dg¡t|jddƒ}t  |¡}zd d„|Dƒ}W|  ¡n |  ¡0| t|ƒgd ¢¡dS) NrPz README.manualz0This project maintains its MANIFEST file itself.cSs g|]}| ¡dkr| ¡‘qSrŠr‹rwr%r%r&r<¨s ÿz6SDistTestCase.test_manual_manifest..ryrrQcSsg|] }|j‘qSr%)r))r:Útarinfor%r%r&r<²r=)zfake-1.0zfake-1.0/PKG-INFOzfake-1.0/README.manual)r/r>r?rrrer@rBrƒrIrbrcr|rFrÚtarfilerG)r"rr.rdreÚ archive_nameÚarchiveÚ filenamesr%r%r&Útest_manual_manifestšs(  ÿ  z"SDistTestCase.test_manual_manifestz requires zlibzRequires grp and pwd supportcCs| ¡\}}dg|_t d¡d|_t d¡d|_| ¡|  ¡t |j ddƒ}t   |¡}z6| ¡D] }| |jd¡| |jd¡qfW| ¡n | ¡0| ¡\}}dg|_| ¡|  ¡t |j ddƒ}t   |¡}z,| ¡D]}| |jt ¡¡qäW| ¡n | ¡0dS)NrPrrrQ)r/r>ÚpwdÚgetpwuidÚownerÚgrpÚgetgrgidÚgroupr?r@rrr•rbZ getmembersrBÚuidÚgidrFrÚgetuid)r"rr.r–r—Úmemberr%r%r&Ú"test_make_distribution_owner_group¸s.      z0SDistTestCase.test_make_distribution_owner_group)N)Ú__name__Ú __module__Ú __qualname__rr(r/ÚunittestZ skipUnlessÚ ZLIB_SUPPORTrMZskipIfr rUrfrprurr‚r„r†r‡rr)r‰rr‘r“r™ÚUID_GID_SUPPORTr¤Ú __classcell__r%r%r#r&r7sT     , ÿÿ  N       )        ÿÿrcCs t t¡Sr')r¨Z makeSuiterr%r%r%r&Ú test_suiteèsr¬Ú__main__)*Ú__doc__rr•r¨rorCZos.pathrÚtextwraprZ test.supportrrrÚzlibr©Ú ImportErrorrršrªZdistutils.command.sdistrrZdistutils.corer Zdistutils.tests.test_configr Zdistutils.errorsr Zdistutils.spawnr Z distutils.logr Zdistutils.filelistrZdistutils.archive_utilrrr_rr¬r¥r%r%r%r&ÚsH             4