
    ϶vg:                     :   d Z 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	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ddlZddlZdd
lmZ ddlmZ ddlmZmZm Z m!Z! dZ"dZ# ej$        d          d             Z%d Z& G d dej'                  Z(dS )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              #     K   | j         }|                                |_        t          j                            ddidt          d|j                   t	          j        |j                  5  d V  d d d            d S # 1 swxY w Y   d S )Nz__init__.py#xxx)somecodeREADMEsetup.py)instancemkdtemptmp_dirjaracopathbuildSETUP_PYPath)requestdistutils_managed_tempdirselfs      c/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/setuptools/_distutils/tests/test_sdist.pyproject_dirr%   /   s      D<<>>DL
K s  	
 	
 		 	 	 
4<	 	                    s   ,A>>BBc              #      K   t          j        |                               d          5 }t          d t	          t
          j        |                    E d {V  d d d            d S # 1 swxY w Y   d S )Nutf-8encoding)pathlibr    openfiltermapstrstrip)filepathfs     r$   clean_linesr2   A   s      	h			$	$g	$	6	6 3!$CIq 1 12222222223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   /A''A+.A+c                   (   e Zd ZddZej                            d          d             Zej                            d          ej                            d          ej                            d          d                                     Z	ej                            d          d             Z
edd
            Zej                            d          d             Zd Zd Zd Zd Zd Zej                            d          d             Zej                            d          d             Zej                            d          d             Zej                            d          d             Zej                            d          d             Zej                            d          eeej                            d          ej                            d          d                                                             ZdS )	TestSDistNc                     |dddddd}t          |          }d|_        dg|_        d|_        t	          |          }d	|_        ||fS )
zReturns a cmdNz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_cmdzTestSDist.get_cmdG   sg    &  % H H%%%#$(!DkkSy    
needs_zlibc                    t          j        t          | j        dd                     |                     | j        dddfd           t          j        t          | j        dd                     |                     | j        dddfd           t          j        t          | j        dd                     |                     | j        dddfd           |                     | j        ddfd           |                                 \  }}d	g|_        |                                 |                                 t          | j        d
          }t          j	        |          }|dgk    sJ t          j        t          |d                    }	 |                                }|                                 n# |                                 w xY wg d}t          |          d |D             k    sJ d S )Nr   z.svnzok.pyr   .hgokz.gitz.nfs0001zipr;   ns_fake_pkg-1.0.zip) PKG-INFOr   r   	somecode/somecode/__init__.pyc                     g | ]}d |z   S zns_fake_pkg-1.0/ .0xs     r$   
<listcomp>z2TestSDist.test_prune_file_list.<locals>.<listcomp>       "L"L"La#5#9"L"L"LrC   )osmkdirr	   r   
write_filerB   formatsensure_finalizedrunlistdirzipfileZipFilenamelistclosesorted)r#   r;   rA   dist_folderfileszip_filecontentexpecteds           r$   test_prune_file_listzTestSDist.test_prune_file_listY   s    	dlJ77888z67CUKKK
dlJ66777z5$?GGG
dlJ77888z64@%HHHz:>FFF LLNN	c g			 4<00
;''./////?45J#K#KLL	''))GNNHNN
 
 
 g"L"L8"L"L"LLLLLLLs   F9 9Gznot shutil.which('tar')znot shutil.which('gzip')c                 r   |                                  \  }}ddg|_        |                                 |                                 t	          | j        d          }t          j        |          }|                                 |ddgk    sJ t          j	        t	          |d                     t          j	        t	          |d                     ddg|_        |                                 |                                 t          j        |          }|                                 |ddgk    sJ d S )Ngztartarr;   zns_fake_pkg-1.0.tarns_fake_pkg-1.0.tar.gz)
rB   rY   rZ   r[   r	   r   rV   r\   sortremove)r#   r;   rA   rb   results        r$   test_make_distributionz TestSDist.test_make_distribution   s&   
 LLNN	c &			 4<00K((/1IJJJJJ
	${$9::;;;
	${$<==>>> g&			K((/1IJJJJJJJrC   c                 0   |                                  \  }}ddgdgd|_        |                     | j        ddfd           |                     | j        ddfd           t	          | j        d	          }t          j        |           |                     |d
fd           t	          | j        d          }t          j        |           t	          | j        d          }t          j        |           |                     |dfd           |                     | j        dfd           |                     | j        dfd           |                     |dfd           |                     |dfd           d	g dfddg|_        t	          | j        d          }t          j        |           |                     |dfd           t	          dd          g|_        dg|_	        d|_
        |                                 |                                 t	          | j        d          }t          j        |          }|dgk    sJ t          j        t	          |d                    }		 |	                                }
|	                                 n# |	                                 w xY wg d}t%          |
          d |D             k    sJ t'          j        | j        d                              d          }|t,          d t
          j        iz  k    sJ d S )!Nz*.cfgz*.dat*.txt)rJ   r   r   doc.txtr   zdoc.datdatazdata.dtsomerF   zlast-message.txtbuildout.cfg
inroot.txtzfile.txtzother_file.txt)data/data.dtru   rv   notexistingsome/file.txtsome/other_file.txtscriptsz	script.pyrH   Tr;   rI   )rJ   rK   r   ru   zdata/rw   rv   zscripts/zscripts/script.pyr   zsome/ry   rz   rL   rM   zsomecode/doc.datzsomecode/doc.txtc                     g | ]}d |z   S rO   rP   rQ   s     r$   rT   z/TestSDist.test_add_defaults.<locals>.<listcomp>   rU   rC   MANIFESTr'   r(   sep)rB   package_datarX   r   r	   rV   rW   
data_filesr{   rY   use_defaultsrZ   r[   r\   r]   r^   r_   r`   ra   r*   r    	read_textr}   r~   )r#   r;   rA   data_dirsome_dirhg_dir
script_dirrb   rc   rd   re   rf   manifests                r$   test_add_defaultszTestSDist.test_add_defaults   s    LLNN	c #*7!3'KKz9=sCCCz9=sCCC f--
9-s333f--
dlE**
!34c:::~6<<<|4c::::.444#34c::: RRRS!
 $,	22

[13777Y445g			 4<00
;''./////?45J#K#KLL	''))GNNHNN
 
 
& g"L"L8"L"L"LLLLL <j99CCWCUU8ubfo5555555s   'J J&	warning: c                      fd| D             S )Nc                 >    g | ]}|                               |S rP   )
startswith)rR   msgprefixs     r$   rT   z&TestSDist.warnings.<locals>.<listcomp>   s*    BBB3>>&+A+ABBBBrC   rP   )messagesr   s    `r$   warningszTestSDist.warnings   s    BBBBxBBBBrC   c                    |                      i           \  }}|                                 |                                 t          |                     |j        d                    dk    sJ |                                 |                                  \  }}|                                 d|_        |                                 t          |                     |j        d                    dk    sJ d S )N)r@   zwarning: check: r   r   )rB   rZ   r[   lenr   r   clearmetadata_check)r#   caplogr;   rA   s       r$   test_metadata_check_optionz$TestSDist.test_metadata_check_option  s     LL"L--	c 				4==2DEEFF!KKKK 	LLNN	c			4==2DEEFF!KKKKKKrC   c                     t                       t          t          j                              }d |                                j                            d          D             }t          |          |k    sJ d S )Nc                 `    g | ]+}|                                                     d           )|,S )z
--formats=)r/   r   )rR   lines     r$   rT   z/TestSDist.test_show_formats.<locals>.<listcomp>  sD     
 
 
zz||&&|44

 
 
rC   
)r   r   r   keys
readouterroutsplit)r#   capsysnum_formatsoutputs       r$   test_show_formatszTestSDist.test_show_formats  s}     /.0011
 
))++/55d;;
 
 

 6{{k))))))rC   c                    |                                  \  }}|                                 |j        dk    sJ |j        dk    sJ |j        dk    sJ d|_        t          j        t                    5  |                                 d d d            n# 1 swxY w Y   dg|_        |                                 d|_        t          j        t                    5  |                                 d d d            d S # 1 swxY w Y   d S )Nr}   MANIFEST.inr;   r   rH   supazipa)	rB   finalize_optionsr   templater?   rY   pytestraisesr   r#   r;   rA   s      r$   test_finalize_optionszTestSDist.test_finalize_options!  s   LLNN	c |z))))|},,,,|v%%%% ]/00 	# 	#  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#g !]/00 	# 	#  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   3BBBC==DDc                 b   |                                  \  }}t          j        | j                   |                     d|           |                                 t                      |_        |                                 t          | 
                    |j                            dk    sJ d S )Nr   r   )rB   rV   chdirr   rX   rZ   r   filelistread_templater   r   r   )r#   re   r   r;   rA   s        r$   _check_templatezTestSDist._check_template:  s    LLNN	c
w///zz4==1122a777777rC   c                 2    |                      d|           d S )Nztaunt knights *r   r#   r   s     r$   %test_invalid_template_unknown_commandz/TestSDist.test_invalid_template_unknown_commandC  s    .77777rC   c                 2    |                      d|           d S )Npruner   r   s     r$   %test_invalid_template_wrong_argumentsz/TestSDist.test_invalid_template_wrong_argumentsF  s    Wf-----rC   zplatform.system() != 'Windows'c                 2    |                      d|           d S )Nzinclude examples/r   r   s     r$    test_invalid_template_wrong_pathz*TestSDist.test_invalid_template_wrong_pathJ  s!     	0&99999rC   c                 z   |                                  \  }}ddgi|_        |                     | j        ddfd           dg|_        |                                 |                                 t          t          |j	                            dk    sJ |                     | j        ddfd           |
                    d          }d	|_        |                                 |                                 t          t          |j	                            }t          |          d
k    sJ d|d         v sJ d S )Nr   rq   rr   r   ri      zdoc2.txtbuild_pyF   )rB   r   rX   r   rY   rZ   r[   r   r2   r   get_command_obj	finalizedlistr   )r#   r;   rA   r   	manifest2s        r$   test_get_file_listzTestSDist.test_get_file_listP  s4    LLNN	c ('3z9=sCCCi			K--..!3333 	z:>DDD ''
33"!!###			S\2233	 9~~""""Yr]******rC   c                     |                                  \  }}|                                 |                                 t          t	          |j                            dk    sJ d S )Nz*# file GENERATED by distutils, do NOT edit)rB   rZ   r[   nextr2   r   r   s      r$   test_manifest_markerzTestSDist.test_manifest_markern  sl     LLNN	c			 S\**++;< < < < < <rC   c                    t          d          }|                                 \  }}|                                 |                     | j        |j        f|           |                     | j        dfd           |                     | j        dfd           |                     | j        dfd           |                                 |j        j        dgk    sJ d S )NzI            # bad.py
            #bad.py
            good.py
            zgood.pyz
# pick me!zbad.pyz# don't pick me!z#bad.py)	r
   rB   rZ   rX   r   r   r[   r   rc   )r#   contentsr;   rA   s       r$   test_manifest_commentsz TestSDist.test_manifest_commentsz  s     
 
 LLNN	cs|4h???y1<@@@x02DEEEy13EFFF			|!i[000000rC   c                    |                                  \  }}dg|_        |                                 |                     | j        |j        fd           |                     | j        dfd           |                                 |j        j        dgk    sJ t          t          |j                            dgk    sJ t          | j        dd          }t          j        |          }	 d |D             }|                                 n# |                                 w xY wt          |          g dk    sJ d S )Nri   zREADME.manualz0This project maintains its MANIFEST file itself.r;   rk   c                     g | ]	}|j         
S rP   )r6   )rR   tarinfos     r$   rT   z2TestSDist.test_manual_manifest.<locals>.<listcomp>  s    ==='===rC   )zns_fake_pkg-1.0zns_fake_pkg-1.0/PKG-INFOzns_fake_pkg-1.0/README.manual)rB   rY   rZ   rX   r   r   r[   r   rc   r   r2   r	   tarfiler+   r`   ra   )r#   r;   rA   archive_namearchive	filenamess         r$   test_manual_manifestzTestSDist.test_manual_manifest  sR    LLNN	cis|4oFFF\?+>	
 	
 	
 				|!o%66666K--..?2CCCCCDL&2JKK,|,,	==W===IMMOOOOGMMOOOOi   %
 %
 %
 
 
 
 
 
 
s   -D D$c                    |                                  \  }}dg|_        t          j        d          d         |_        t          j        d          d         |_        |                                 |	                                 t          | j        dd          }t          j        |          }	 |                                D ]}|j        dk    sJ |j        dk    sJ 	 |                                 n# |                                 w xY w|                                  \  }}dg|_        |                                 |	                                 t          | j        dd          }t          j        |          }	 |                                D ] }|j        t%          j                    k    sJ !	 |                                 d S # |                                 w xY w)Nri   r   r;   rk   )rB   rY   r   getpwuidownerr   getgrgidgrouprZ   r[   r	   r   r   r+   
getmembersuidgidr`   rV   getuid)r#   r;   rA   r   r   members         r$   "test_make_distribution_owner_groupz,TestSDist.test_make_distribution_owner_group  s    LLNN	c iLOOA&	LOOA&				 DL&2JKK,|,,	!,,.. ' 'zQzQ' MMOOOOGMMOOOO LLNN	c i			 DL&2JKK,|,,
	!,,.. 1 1zRY[[000001 MMOOOOOGMMOOOOs   11C8 8D5G G%)N)r   )__name__
__module____qualname__rB   r   markusefixturesrg   skipifro   r   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rP   rC   r$   r4   r4   F   s          $ [\**.M .M +*.M` [\**[122[233K K 43 32 +*K8 [\**R6 R6 +*R6h C C C \C [\**L L +*L$
* 
* 
*# # #28 8 88 8 8. . . [899: : :9:
 [\**+ + +*+: [\**	
 	
 +*	
 [\**1 1 +*1$ [\**
 
 +*
6 [\**[122[233( ( 43 32 ] _ +*
( ( (rC   r4   ))__doc__rV   r*   shutilr   r]   distutils.archive_utilr   distutils.command.sdistr   r   distutils.corer   distutils.errorsr   distutils.filelistr   os.pathr	   textwrapr
   jaraco.pathr   r   r   more_itertoolsr   rJ   r   unix_compatr   r   r   r   r   r}   fixturer%   r2   TempdirManagerr4   rP   rC   r$   <module>r      s   ( ( 				     2 2 2 2 2 2 7 7 7 7 7 7 7 7 ' ' ' ' ' ' 1 1 1 1 1 1 ' ' ' ' ' '                               A A A A A A A A A A A A    "3 3 3
P P P P P& P P P P PrC   