
    n&ph:                     4   S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	J
r
  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SSKrSSKrSSKrSS
KJr  SSKJr  SSKJrJrJ r J!r!  Sr"Sr#\RH                  " SS9S 5       r%S r& " S S\RN                  5      r(g)z"Tests for distutils.command.sdist.    N)ARCHIVE_FORMATS)sdistshow_formats)Distribution)DistutilsOptionError)FileList)join)dedent)ilen   )support)grppwdrequire_uid_0require_unix_idzF
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
T)autousec              #   2  #    U R                   nUR                  5       Ul        [        R                  R                  SS0S[        S.UR                  5        [        R                  " UR                  5         S v   S S S 5        g ! , (       d  f       g = f7f)Nz__init__.py#xxx)somecodeREADMEsetup.py)instancemkdtemptmp_dirjaracopathbuildSETUP_PYPath)requestdistutils_managed_tempdirselfs      Y/var/www/html/venv/lib/python3.13/site-packages/setuptools/_distutils/tests/test_sdist.pyproject_dirr%   /   sq     D<<>DL
KK s  	
 		 
4<<	  
!	 	 s   A6B8B=	B
BBc              #      #    [         R                  " U 5      R                  SS9 n[        S [	        [
        R                  U5      5       S h  vN   S S S 5        g  N! , (       d  f       g = f7f)Nutf-8encoding)pathlibr    openfiltermapstrstrip)filepathfs     r$   clean_linesr2   A   sO     	h		$	$g	$	6!$CIIq 1222 
7	62 
7	6s.   $A/(AAA	A/A
A,(A/c                      \ rS rSrSS jr\R                  R                  S5      S 5       r\R                  R                  S5      \R                  R                  S5      \R                  R                  S5      S 5       5       5       r
\R                  R                  S5      S	 5       r\SS
 j5       r\R                  R                  S5      S 5       rS rS rS rS rS r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R                  S5      \\\R                  R                  S5      \R                  R                  S5      S 5       5       5       5       5       rSrg)	TestSDistF   Nc                     Uc  SSSSSS.n[        U5      nSUl        S/Ul        SUl        [	        U5      nSUl        X#4$ )	zReturns a cmdzns.fake--pkgz1.0r   )nameversionurlauthorauthor_emailr   r   Tdist)r   script_namepackagesinclude_package_datar   dist_dir)r#   metadatar<   cmds       r$   get_cmdTestSDist.get_cmdG   s[    &  %H H%%#$(!Dky    
needs_zlibc                    [         R                  " [        U R                  SS5      5        U R	                  U R                  SSS4S5        [         R                  " [        U R                  SS5      5        U R	                  U R                  SSS4S5        [         R                  " [        U R                  SS5      5        U R	                  U R                  SSS4S5        U R	                  U R                  SS4S5        U R                  5       u  pS	/Ul        UR                  5         UR                  5         [        U R                  S
5      n[         R                  " U5      nUS/:X  d   e[        R                  " [        US5      5      n UR                  5       nUR                  5         / SQn[        U5      U Vs/ s H  nSU-   PM
     sn:X  d   eg ! UR                  5         f = fs  snf )Nr   z.svnzok.pyr   .hgokz.gitz.nfs0001zipr<   ns_fake_pkg-1.0.zip) PKG-INFOr   r   	somecode/somecode/__init__.pyns_fake_pkg-1.0/)osmkdirr	   r   
write_filerC   formatsensure_finalizedrunlistdirzipfileZipFilenamelistclosesorted)	r#   r<   rB   dist_folderfileszip_filecontentexpectedxs	            r$   test_prune_file_listTestSDist.test_prune_file_listY   s    	dllJ78z67CUK
dllJ67z5$?G
dllJ78z64@%Hz:>F LLN	 g	 4<<0

;'.////??45J#KL	'')GNN
 g8"L8a#5#98"LLLL NN #Ms   G G0G-znot shutil.which('tar')znot shutil.which('gzip')c                 8   U R                  5       u  pSS/Ul        UR                  5         UR                  5         [	        U R
                  S5      n[        R                  " U5      nUR                  5         USS/:X  d   e[        R                  " [	        US5      5        [        R                  " [	        US5      5        SS/Ul        UR                  5         UR                  5         [        R                  " U5      nUR                  5         USS/:X  d   eg )Ngztartarr<   zns_fake_pkg-1.0.tarns_fake_pkg-1.0.tar.gz)
rC   rT   rU   rV   r	   r   rQ   rW   sortremove)r#   r<   rB   r]   results        r$   test_make_distribution TestSDist.test_make_distribution   s    
 LLN	 &	 4<<0K(/1IJJJJ
		${$9:;
		${$<=> g&	K(/1IJJJJrE   c                    U R                  5       u  pSS/S/S.Ul        U R                  U R                  SS4S5        U R                  U R                  SS4S5        [	        U R                  S	5      n[
        R                  " U5        U R                  US
4S5        [	        U R                  S5      n[
        R                  " U5        [	        U R                  S5      n[
        R                  " U5        U R                  US4S5        U R                  U R                  S4S5        U R                  U R                  S4S5        U R                  US4S5        U R                  US4S5        S	/ SQ4SS/Ul        [	        U R                  S5      n[
        R                  " U5        U R                  US4S5        [	        SS5      /Ul        S/Ul	        SUl
        UR                  5         UR                  5         [	        U R                  S5      n[
        R                  " U5      nUS/:X  d   e[        R                  " [	        US5      5      n	 U	R!                  5       n
U	R#                  5         / SQn[%        U
5      U Vs/ s H  nSU-   PM
     sn:X  d   e[&        R(                  " U R                  S5      R+                  SS9nU[,        S [
        R.                  0-  :X  d   eg ! U	R#                  5         f = fs  snf )!Nz*.cfgz*.dat*.txt)rL   r   r   doc.txtr   zdoc.datdatazdata.dtsomerH   zlast-message.txtbuildout.cfg
inroot.txtzfile.txtzother_file.txt)data/data.dtrs   rt   notexistingsome/file.txtsome/other_file.txtscriptsz	script.pyrJ   Tr<   rK   )rL   rM   r   rs   zdata/ru   rt   zscripts/zscripts/script.pyr   zsome/rw   rx   rN   rO   zsomecode/doc.datzsomecode/doc.txtrP   MANIFESTr'   r(   sep)rC   package_datarS   r   r	   rQ   rR   
data_filesry   rT   use_defaultsrU   rV   rW   rX   rY   rZ   r[   r\   r*   r    	read_textrz   r{   )r#   r<   rB   data_dirsome_dirhg_dir
script_dirr]   r^   r_   r`   ra   rb   manifests                 r$   test_add_defaultsTestSDist.test_add_defaults   s    LLN	 #*7!3'Kz9=sCz9=sC f-
9-s3f-
dllE*
!34c:~6<|4c::.4#34c: RS!
 $,,	2

[137Y45g	 4<<0

;'.////??45J#KL	'')GNN
& g8"L8a#5#98"LLLL <<j9CCWCU8ubffo55555 NN, #Ms   K* K?*K<c                 `    U  Vs/ s H  o"R                  U5      (       d  M  UPM     sn$ s  snf N)
startswith)messagesprefixmsgs      r$   warningsTestSDist.warnings   s#    'Bx>>&+AxBBBs   ++c                    U R                  0 S9u  p#UR                  5         UR                  5         [        U R	                  UR
                  S5      5      S:X  d   eUR                  5         U R                  5       u  p#UR                  5         SUl        UR                  5         [        U R	                  UR
                  S5      5      S:X  d   eg )N)rA   zwarning: check: r   Fr   )rC   rU   rV   lenr   r   clearmetadata_check)r#   caplogr<   rB   s       r$   test_metadata_check_option$TestSDist.test_metadata_check_option  s     LL"L-	 		4==2DEF!KKK 	LLN	"	4==2DEF!KKKrE   c                 >   [        5         [        [        R                  " 5       5      nUR	                  5       R
                  R                  S5       Vs/ s H+  nUR                  5       R                  S5      (       d  M)  UPM-     nn[        U5      U:X  d   eg s  snf )N
z
--formats=)	r   r   r   keys
readouterroutsplitr/   r   )r#   capsysnum_formatslineoutputs        r$   test_show_formatsTestSDist.test_show_formats  s     /..01 ))+//55d;
;zz|&&|4 ; 	 

 6{k)))
s   (B Bc                    U R                  5       u  pUR                  5         UR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eSUl        [        R                  " [        5         UR                  5         S S S 5        S/Ul        UR                  5         SUl        [        R                  " [        5         UR                  5         S S S 5        g ! , (       d  f       Na= f! , (       d  f       g = f)Nrz   MANIFEST.inr<   r   rJ   supazipa)	rC   finalize_optionsr   templater@   rT   pytestraisesr   r#   r<   rB   s      r$   test_finalize_optionsTestSDist.test_finalize_options!  s    LLN	 ||z)))||},,,||v%%% ]]/0  " 1g !]]/0  " 10 10 10s   :C&C7&
C47
Dc                 >   U R                  5       u  p4[        R                  " U R                  5        U R	                  SU5        UR                  5         [        5       Ul        UR                  5         [        U R                  UR                  5      5      S:X  d   eg )Nr   r   )rC   rQ   chdirr   rS   rU   r   filelistread_templater   r   r   )r#   r`   r   r<   rB   s        r$   _check_templateTestSDist._check_template:  sn    LLN	
w/z4==12a777rE   c                 (    U R                  SU5        g )Nztaunt knights *r   r#   r   s     r$   %test_invalid_template_unknown_command/TestSDist.test_invalid_template_unknown_commandC  s    .7rE   c                 (    U R                  SU5        g )Npruner   r   s     r$   %test_invalid_template_wrong_arguments/TestSDist.test_invalid_template_wrong_argumentsF  s    Wf-rE   zplatform.system() != 'Windows'c                 (    U R                  SU5        g )Nzinclude examples/r   r   s     r$    test_invalid_template_wrong_path*TestSDist.test_invalid_template_wrong_pathJ  s     	0&9rE   c                 4   U R                  5       u  pSS/0Ul        U R                  U R                  SS4S5        S/Ul        UR                  5         UR                  5         [        [        UR                  5      5      S:X  d   eU R                  U R                  SS4S5        UR                  S5      nS	Ul        UR                  5         UR                  5         [        [        UR                  5      5      n[        U5      S
:X  d   eSUS   ;   d   eg )Nr   ro   rp   r   rf      zdoc2.txtbuild_pyF   )rC   r|   rS   r   rT   rU   rV   r   r2   r   get_command_obj	finalizedlistr   )r#   r<   rB   r   	manifest2s        r$   test_get_file_listTestSDist.test_get_file_listP  s     LLN	 ('3z9=sCi	K-.!333 	z:>D ''
3"!!#	S\\23	 9~"""Yr]***rE   c                     U R                  5       u  pUR                  5         UR                  5         [        [	        UR
                  5      5      S:X  d   eg )Nz*# file GENERATED by distutils, do NOT edit)rC   rU   rV   nextr2   r   r   s      r$   test_manifest_markerTestSDist.test_manifest_markern  sK     LLN		 S\\*+;<	
<rE   c                    [        S5      nU R                  5       u  p#UR                  5         U R                  U R                  UR
                  4U5        U R                  U R                  S4S5        U R                  U R                  S4S5        U R                  U R                  S4S5        UR                  5         UR                  R                  S/:X  d   eg )NzI            # bad.py
            #bad.py
            good.py
            zgood.pyz
# pick me!zbad.pyz# don't pick me!z#bad.py)	r
   rC   rU   rS   r   r   rV   r   r^   )r#   contentsr<   rB   s       r$   test_manifest_comments TestSDist.test_manifest_commentsz  s     
 LLN	s||4h?y1<@x02DEy13EF	||!!i[000rE   c                    U R                  5       u  pS/Ul        UR                  5         U R                  U R                  UR
                  4S5        U R                  U R                  S4S5        UR                  5         UR                  R                  S/:X  d   e[        [        UR
                  5      5      S/:X  d   e[        U R                  SS5      n[        R                  " U5      n U Vs/ s H  oUR                  PM     nnUR                  5         [!        U5      / SQ:X  d   eg s  snf ! UR                  5         f = f)Nrf   zREADME.manualz0This project maintains its MANIFEST file itself.r<   rh   )zns_fake_pkg-1.0zns_fake_pkg-1.0/PKG-INFOzns_fake_pkg-1.0/README.manual)rC   rT   rU   rS   r   r   rV   r   r^   r   r2   r	   tarfiler+   r7   r[   r\   )r#   r<   rB   archive_namearchivetarinfo	filenamess          r$   test_manual_manifestTestSDist.test_manual_manifest  s    LLN	is||4oF\\?+>	
 		||!!o%6666K-.?2CCCCDLL&2JK,,|,	5<=W'WI=MMOi  %
 
 	
 
 >MMOs   1D5 5D0
D5 0D5 5Ec                    U R                  5       u  pS/Ul        [        R                  " S5      S   Ul        [
        R                  " S5      S   Ul        UR                  5         UR                  5         [        U R                  SS5      n[        R                  " U5      n UR                  5        H'  nUR                  S:X  d   eUR                   S:X  a  M'   e   UR#                  5         U R                  5       u  pS/Ul        UR                  5         UR                  5         [        U R                  SS5      n[        R                  " U5      n UR                  5        H(  nUR                  [$        R&                  " 5       :X  a  M(   e   UR#                  5         g ! UR#                  5         f = f! UR#                  5         f = f)Nrf   r   r<   rh   )rC   rT   r   getpwuidownerr   getgrgidgrouprU   rV   r	   r   r   r+   
getmembersuidgidr[   rQ   getuid)r#   r<   rB   r   r   members         r$   "test_make_distribution_owner_group,TestSDist.test_make_distribution_owner_group  se    LLN	 iLLOA&	LLOA&		 DLL&2JK,,|,	!,,.zzQ&zzQ& / MMO LLN	 i	 DLL&2JK,,|,
	!,,.zzRYY[000 / MMO+ MMO* MMOs$   %3F% F% 4F: F: %F7:G r   )z	warning: )__name__
__module____qualname____firstlineno__rC   r   markusefixturesrc   skipifrl   r   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   rE   r$   r4   r4   F   s   $ [[\*.M +.M` [[\*[[12[[23K 4 3 +K8 [[\*R6 +R6h C C [[\*L +L$
*#288. [[89: ::
 [[\*+ ++: [[\*	
 +	
 [[\*1 +1$ [[\*
 +
6 [[\*[[12[[23( 4 3   +
(rE   r4   ))__doc__rQ   r*   shutilr   rX   distutils.archive_utilr   distutils.command.sdistr   r   distutils.corer   distutils.errorsr   distutils.filelistr   os.pathr	   textwrapr
   jaraco.pathr   r   r   more_itertoolsr   rL   r   unix_compatr   r   r   r   r   rz   fixturer%   r2   TempdirManagerr4   r   rE   r$   <module>r      s    ( 	     2 7 ' 1 '        A A   "3
P&& PrE   