
    ,h:                     :   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jH                  d      d        Z%d Z& G d dejN                        Z(y)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                   }|j                         |_        t        j                  j                  ddidt        d|j                         t	        j                  |j                        5  d  d d d        y # 1 sw Y   y xY ww)Nz__init__.py#xxx)somecodeREADMEsetup.py)instancemkdtemptmp_dirjaracopathbuildSETUP_PYPath)requestdistutils_managed_tempdirselfs      h/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/setuptools/_distutils/tests/test_sdist.pyproject_dirr%   /   s{     D<<>DL
KK s  	
 		 
4<<	    s   A5B7B<	BB
Bc              #      K   t        j                  |       j                  d      5 }t        d t	        t
        j                  |            E d {    d d d        y 7 # 1 sw Y   y xY ww)Nutf-8encoding)pathlibr    openfiltermapstrstrip)filepathfs     r$   clean_linesr2   A   sZ     	h		$	$g	$	6 3!$CIIq 12223 323 3s.   &A,(A AA 	A,A  A)%A,c                      e Zd ZddZej
                  j                  d      d        Zej
                  j                  d      ej
                  j                  d      ej
                  j                  d      d                      Z	ej
                  j                  d      d        Z
edd	       Zej
                  j                  d      d
        Zd Zd Zd Zd Zd Zej
                  j                  d      d        Zej
                  j                  d      d        Zej
                  j                  d      d        Zej
                  j                  d      d        Zej
                  j                  d      d        Zej
                  j                  d      eeej
                  j                  d      ej
                  j                  d      d                                    Zy)	TestSDistNc                     |dddddd}t        |      }d|_        dg|_        d|_        t	        |      }d|_        ||fS )	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_cmdzTestSDist.get_cmdG   s]    &  %H H%%#$(!DkSy    
needs_zlibc                    t        j                  t        | j                  dd             | j	                  | j                  dddfd       t        j                  t        | j                  dd             | j	                  | j                  dddfd       t        j                  t        | j                  dd             | j	                  | j                  dddfd       | j	                  | j                  ddfd       | j                         \  }}d	g|_        |j                          |j                          t        | j                  d
      }t        j                  |      }|dgk(  sJ t        j                  t        |d            }	 |j                         }|j                          g d}t        |      |D cg c]  }d|z   	 c}k(  sJ y # |j                          w xY wc c}w )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_filerB   formatsensure_finalizedrunlistdirzipfileZipFilenamelistclosesorted)	r#   r;   rA   dist_folderfileszip_filecontentexpectedxs	            r$   test_prune_file_listz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	c g	 4<<0

;'.///??45J#KL	'')GNN
 g8"La#5#9"LLLL NN #Ms   G >G'G$znot shutil.which('tar')znot shutil.which('gzip')c                 .   | j                         \  }}ddg|_        |j                          |j                          t	        | j
                  d      }t        j                  |      }|j                          |ddgk(  sJ t        j                  t	        |d             t        j                  t	        |d             ddg|_        |j                          |j                          t        j                  |      }|j                          |ddgk(  sJ y )Ngztartarr;   zns_fake_pkg-1.0.tarns_fake_pkg-1.0.tar.gz)
rB   rR   rS   rT   r	   r   rO   rU   sortremove)r#   r;   rA   r[   results        r$   test_make_distributionz TestSDist.test_make_distribution   s    
 LLN	c &	 4<<0K(/1IJJJ
		${$9:;
		${$<=> g&	K(/1IJJJJrC   c                    | j                         \  }}ddgdgd|_        | j                  | j                  ddfd       | j                  | j                  ddfd       t	        | j                  d	      }t        j                  |       | j                  |d
fd       t	        | j                  d      }t        j                  |       t	        | j                  d      }t        j                  |       | j                  |dfd       | j                  | j                  dfd       | j                  | j                  dfd       | j                  |dfd       | j                  |dfd       d	g dfddg|_        t	        | j                  d      }t        j                  |       | j                  |dfd       t	        dd      g|_        dg|_	        d|_
        |j                          |j                          t	        | j                  d      }t        j                  |      }|dgk(  sJ t        j                  t	        |d            }		 |	j!                         }
|	j#                          g d}t%        |
      |D cg c]  }d|z   	 c}k(  sJ t'        j(                  | j                  d      j+                  d      }|t,        d t
        j.                  iz  k(  sJ y # |	j#                          w xY wc c}w )!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.dtro   rp   notexistingsome/file.txtsome/other_file.txtscriptsz	script.pyrH   Tr;   rI   )rJ   rK   r   ro   zdata/rq   rp   zscripts/zscripts/script.pyr   zsome/rs   rt   rL   rM   zsomecode/doc.datzsomecode/doc.txtrN   MANIFESTr'   r(   sep)rB   package_datarQ   r   r	   rO   rP   
data_filesru   rR   use_defaultsrS   rT   rU   rV   rW   rX   rY   rZ   r*   r    	read_textrv   rw   )r#   r;   rA   data_dirsome_dirhg_dir
script_dirr[   r\   r]   r^   r_   r`   manifests                 r$   test_add_defaultszTestSDist.test_add_defaults   s    LLN	c #*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"La#5#9"LLL <<j9CCWCU8ubffo55555 NN, #Ms   K! ?K6!K3c                 P    | D cg c]  }|j                  |      s| c}S c c}w N)
startswith)messagesprefixmsgs      r$   warningszTestSDist.warnings   s!    'B3>>&+ABBBs   ##c                    | j                  i       \  }}|j                          |j                          t        | j	                  |j
                  d            dk(  sJ |j                          | j                         \  }}|j                          d|_        |j                          t        | j	                  |j
                  d            dk(  sJ y )N)r@   zwarning: check: r   Fr   )rB   rS   rT   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F!KK 	LLN	c"	4==2DEF!KKKrC   c                 &   t                t        t        j                               }|j	                         j
                  j                  d      D cg c]#  }|j                         j                  d      r|% }}t        |      |k(  sJ y c c}w )N
z
--formats=)	r   r   r   keys
readouterroutsplitr/   r   )r#   capsysnum_formatslineoutputs        r$   test_show_formatszTestSDist.test_show_formats  s     /..01 ))+//55d;
zz|&&|4 
 

 6{k)))
s   (Bc                    | j                         \  }}|j                          |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ d|_        t        j                  t              5  |j                          d d d        dg|_        |j                          d|_        t        j                  t              5  |j                          d d d        y # 1 sw Y   [xY w# 1 sw Y   y xY w)Nrv   MANIFEST.inr;   r   rH   supazipa)	rB   finalize_optionsr   templater?   rR   pytestraisesr   r#   r;   rA   s      r$   test_finalize_optionszTestSDist.test_finalize_options!  s    LLN	c ||z))||},,||v%% ]]/0 	#  "	#g !]]/0 	#  "	# 	#	# 	#	# 	#s   7C"C."C+.C7c                 <   | j                         \  }}t        j                  | j                         | j	                  d|       |j                          t               |_        |j                          t        | j                  |j                              dk(  sJ y )Nr   r   )rB   rO   chdirr   rQ   rS   r   filelistread_templater   r   r   )r#   r^   r   r;   rA   s        r$   _check_templatezTestSDist._check_template:  sp    LLN	c
w/z4==12a777rC   c                 (    | j                  d|       y )Nztaunt knights *r   r#   r   s     r$   %test_invalid_template_unknown_commandz/TestSDist.test_invalid_template_unknown_commandC  s    .7rC   c                 (    | j                  d|       y )Npruner   r   s     r$   %test_invalid_template_wrong_argumentsz/TestSDist.test_invalid_template_wrong_argumentsF  s    Wf-rC   zplatform.system() != 'Windows'c                 (    | j                  d|       y )Nzinclude examples/r   r   s     r$    test_invalid_template_wrong_pathz*TestSDist.test_invalid_template_wrong_pathJ  s     	0&9rC   c                 .   | j                         \  }}ddgi|_        | j                  | j                  ddfd       dg|_        |j                          |j                          t        t        |j                              dk(  sJ | j                  | j                  ddfd       |j                  d      }d	|_        |j                          |j                          t        t        |j                              }t        |      d
k(  sJ d|d   v sJ y )Nr   rk   rl   r   rc      zdoc2.txtbuild_pyF   )rB   rx   rQ   r   rR   rS   rT   r   r2   r   get_command_obj	finalizedlistr   )r#   r;   rA   r   	manifest2s        r$   test_get_file_listzTestSDist.test_get_file_listP  s     LLN	c ('3z9=sCi	K-.!33 	z:>D ''
3"!!#	S\\23	 9~""Yr]***rC   c                     | j                         \  }}|j                          |j                          t        t	        |j
                              dk(  sJ y )Nz*# file GENERATED by distutils, do NOT edit)rB   rS   rT   nextr2   r   r   s      r$   test_manifest_markerzTestSDist.test_manifest_markern  sM     LLN	c	 S\\*+;<	
<rC   c                    t        d      }| j                         \  }}|j                          | j                  | j                  |j
                  f|       | j                  | j                  dfd       | j                  | j                  dfd       | j                  | j                  dfd       |j                          |j                  j                  dgk(  sJ y )NzI            # bad.py
            #bad.py
            good.py
            zgood.pyz
# pick me!zbad.pyz# don't pick me!z#bad.py)	r
   rB   rS   rQ   r   r   rT   r   r\   )r#   contentsr;   rA   s       r$   test_manifest_commentsz TestSDist.test_manifest_commentsz  s     
 LLN	cs||4h?y1<@x02DEy13EF	||!!i[000rC   c                    | j                         \  }}dg|_        |j                          | j                  | j                  |j
                  fd       | j                  | j                  dfd       |j                          |j                  j                  dgk(  sJ t        t        |j
                              dgk(  sJ t        | j                  dd      }t        j                  |      }	 |D cg c]  }|j                   }}|j                          t!        |      g dk(  sJ y c c}w # |j                          w xY w)Nrc   zREADME.manualz0This project maintains its MANIFEST file itself.r;   re   )zns_fake_pkg-1.0zns_fake_pkg-1.0/PKG-INFOzns_fake_pkg-1.0/README.manual)rB   rR   rS   rQ   r   r   rT   r   r\   r   r2   r	   tarfiler+   r6   rY   rZ   )r#   r;   rA   archive_namearchivetarinfo	filenamess          r$   test_manual_manifestzTestSDist.test_manual_manifest  s    LLN	cis||4oF\\?+>	
 		||!!o%666K-.?2CCCDLL&2JK,,|,	5<='=I=MMOi  %
 
 	
 
 >MMOs   /D0 3D+D0 +D0 0Ec                    | j                         \  }}dg|_        t        j                  d      d   |_        t        j                  d      d   |_        |j                          |j                          t        | j                  dd      }t        j                  |      }	 |j                         D ]$  }|j                  dk(  sJ |j                   dk(  r$J  	 |j#                          | j                         \  }}dg|_        |j                          |j                          t        | j                  dd      }t        j                  |      }	 |j                         D ]%  }|j                  t%        j&                         k(  r%J  	 |j#                          y # |j#                          w xY w# |j#                          w xY w)Nrc   r   r;   re   )rB   rR   r   getpwuidownerr   getgrgidgrouprS   rT   r	   r   r   r+   
getmembersuidgidrY   rO   getuid)r#   r;   rA   r   r   members         r$   "test_make_distribution_owner_groupz,TestSDist.test_make_distribution_owner_group  sl    LLN	c iLLOA&	LLOA&		 DLL&2JK,,|,	!,,. 'zzQ&zzQ&' MMO LLN	c i	 DLL&2JK,,|,
	!,,. 1zzRYY[001 MMO+ MMO* MMOs$   #3F F 4F2 F2 F/2Gr   )z	warning: )__name__
__module____qualname__rB   r   markusefixturesra   skipifri   r   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    rC   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   +
(rC   r4   ))__doc__rO   r*   shutilr   rV   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   rv   fixturer%   r2   TempdirManagerr4   r   rC   r$   <module>r      s    ( 	     2 7 ' 1 '        A A   "3
P&& PrC   