
    efB                     t   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	 ddl
mZ ddlmZ 	 ddlZdZn# e$ r dZY nw xY w	 ddlZddlZdZn# e$ r dZY nw xY w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!m"Z" ddl#m$Z$ dZ%dZ& G d de          Z'e(dk    r ej)                     dS dS )z"Tests for distutils.command.sdist.    N)join)dedent)captured_stdout)check_warningsTF)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
c                       e Zd Z fdZ fdZddZ ej        ed          d             Z	 ej        ed           ej
         ed          du d           ej
         ed	          du d
          d                                     Z ej        ed          d             Z ej        ed          d             Zd Zd Zd Zd Zd Zd Z ej
        ej        dk    d          d             Z ej        ed          d             Z ej        ed          d             Z ej        ed          d             Z ej        ed          d             Z ej        ed           ej        ed           ej
         ed          du d           ej
         ed	          du d
          d                                                 Z xZS )SDistTestCasec                    t          t          |                                            t          j                    | _        t          j        t          | j        d                     t          j        t          | j        d                     | 	                    | j        dfd           | 	                    | j        ddfd           | 	                    | j        dft                     t          j        | j                   d S )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__s    ,  /home/conda/feedstock_root/build_artifacts/python-split_1708115622739/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.11/distutils/tests/test_sdist.pyr   zSDistTestCase.setUp:   s     	mT""((***	
dlJ//000
dlF++,,,x0%888z=A3GGGz2H===
    c                     t          j        | j                   t          t          |                                            d S N)r   r"   r   r   r   tearDownr#   s    r&   r*   zSDistTestCase.tearDownH   s7    
mT""++-----r'   Nc                     |dddddd}t          |          }d|_        dg|_        d|_        t	          |          }d	|_        ||fS )
zReturns a cmdNfakez1.0r   )nameversionurlauthorauthor_emailr   r   Tr   )r	   script_namepackagesinclude_package_datar   dist_dir)r$   metadatar   cmds       r&   get_cmdzSDistTestCase.get_cmdM   se     &5$(-/ /H H%%%#$(!DkkSyr'   zNeed zlib support to runc                 &   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           t          j        t          |d                    }	 |                                }|                                 n# |                                 w xY wg d}| 
                    t          |          d |D                        d S )Nr   z.svnzok.pyr   .hgokz.gitz.nfs0001zipr   fake-1.0.zip) PKG-INFOr   r   	somecode/somecode/__init__.pyc                     g | ]}d |z   S z	fake-1.0/ .0xs     r&   
<listcomp>z6SDistTestCase.test_prune_file_list.<locals>.<listcomp>       *M*M*Mq;?*M*M*Mr'   )r   r   r   r   r    r8   formatsensure_finalizedrunlistdirassertEqualzipfileZipFilenamelistclosesorted)r$   r   r7   dist_folderfileszip_filecontentexpecteds           r&   test_prune_file_listz"SDistTestCase.test_prune_file_list[   s    	dlJ77888z67CUKKK
dlJ66777z5 %	' 	' 	' 	dlJ77888z6 %	' 	' 	' 	z:>FFF LLNN	c g			 4<00
;'' 0111?4^#D#DEE	''))GNNHNN9 9 9*M*MH*M*M*MNNNNNs   G GtarzThe tar command is not foundgzipzThe gzip command is not foundc                    |                                  \  }}ddg|_        |                                 |                                 t	          | j        d          }t          j        |          }|                                 | 	                    |ddg           t          j
        t	          |d                     t          j
        t	          |d                     ddg|_        |                                 |                                 t          j        |          }|                                 | 	                    |ddg           d S )NgztarrZ   r   zfake-1.0.tarfake-1.0.tar.gz)r8   rJ   rK   rL   r   r   r   rM   sortrN   remove)r$   r   r7   rT   results        r&   test_make_distributionz$SDistTestCase.test_make_distribution   s-    LLNN	c &			 4<00K((.2C!DEEE
	${N33444
	${$566777 g&			K((.2C!DEEEEEr'   c                    |                                  \  }}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           t          j        t	          |d                    }		 |	                                }
|	                                 n# |	                                 w xY wg d}|                     t'          |
          d |D                        t)          t	          | j        d                    }	 |                                }|                                 n# |                                 w xY w|                     |t,          dt
          j        iz             d S )Nz*.cfgz*.dat*.txt)r>   r   r   doc.txtr   zdoc.datdatazdata.dtsomer:   zlast-message.txtbuildout.cfg
inroot.txtzfile.txtzother_file.txt)data/data.dtrh   ri   notexistingsome/file.txtsome/other_file.txtscriptsz	script.pyr<   Tr   r=   )r>   r?   r   rh   zdata/rj   ri   zscripts/zscripts/script.pyr   zsome/rl   rm   r@   rA   zsomecode/doc.datzsomecode/doc.txtc                     g | ]}d |z   S rC   rD   rE   s     r&   rH   z3SDistTestCase.test_add_defaults.<locals>.<listcomp>   rI   r'   MANIFESTsep)r8   package_datar    r   r   r   r   
data_filesrn   rJ   use_defaultsrK   rL   rM   rN   rO   rP   rQ   rR   rS   openreadrp   rq   )r$   r   r7   data_dirsome_dirhg_dir
script_dirrT   rU   rV   rW   rX   fmanifests                 r&   test_add_defaultszSDistTestCase.test_add_defaults   s\    LLNN	c #*7!3*14 4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:::" %4 %4 %4 5 +02 $,	22

[13777Y445g			 4<00
;'' 0111?4^#D#DEE	''))GNNHNN( ( ( 	*M*MH*M*M*MNNN dlJ//00	vvxxHGGIIIIAGGIIII8ubfo#=>>>>>s   5J J4L4 4M
c                 X   |                      i           \  }}|                                 |                                 d |                     t                    D             }|                     t          |          d           |                                  |                                  \  }}|                                 d|_        |                                 d |                     t                    D             }|                     t          |          d           d S )N)r6   c                 <    g | ]}|                     d           |S zwarning: check:
startswithrF   msgs     r&   rH   z<SDistTestCase.test_metadata_check_option.<locals>.<listcomp>  9     7 7 7CNN#4557C 7 7 7r'      r   c                 <    g | ]}|                     d           |S r   r   r   s     r&   rH   z<SDistTestCase.test_metadata_check_option.<locals>.<listcomp>  r   r'   )	r8   rK   rL   get_logsr   rN   len
clear_logsmetadata_check)r$   r   r7   warningss       r&   test_metadata_check_optionz(SDistTestCase.test_metadata_check_option   s    LL"L--	c 				7 74==#6#6 7 7 7X*** 	LLNN	c			7 74==#6#6 7 7 7X*****r'   c                 "   |                                  \  }}t                      5 }t          j        d           |                                 |                     t          |j                  d           d d d            d S # 1 swxY w Y   d S )Nalways   )r8   r   r   simplefiltercheck_metadatarN   r   )r$   r   r7   ws       r&   test_check_metadata_deprecatedz,SDistTestCase.test_check_metadata_deprecated  s    LLNN	c 	1!(+++   S__a000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   ABBBc                 V   t                      5 }t                       d d d            n# 1 swxY w Y   t          t          j                              }d |                                                    d          D             }|                     t          |          |           d S )Nc                 `    g | ]+}|                                                     d           )|,S )z
--formats=)stripr   rF   lines     r&   rH   z3SDistTestCase.test_show_formats.<locals>.<listcomp>  sB     < < <4ZZ\\,,\::<$ < < <r'   
)r   r   r   r   keysgetvaluesplitrN   )r$   stdoutnum_formatsoutputs       r&   test_show_formatszSDistTestCase.test_show_formats  s     	&NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 /.0011< <6??#4#4#:#:4#@#@ < < <Vk22222s   *..c                    |                                  \  }}|                                 |                     |j        d           |                     |j        d           |                     |j        d           d|_        |                     t          |j                   dg|_        |                                 d|_        |                     t          |j                   d S )Nrp   MANIFEST.inr   r   r<   supazipa)	r8   finalize_optionsrN   r|   templater5   rJ   assertRaisesr   )r$   r   r7   s      r&   test_finalize_optionsz#SDistTestCase.test_finalize_options!  s    LLNN	c 	z222}555v... .0DEEEg !.0DEEEEEr'   c                    |                                  \  }}t          j        | j                   |                     d|           |                                 t                      |_        |                                 | 	                    t                    }|                     t          |          d           d S )Nr   r   )r8   r   r"   r   r    rK   r   filelistread_templater   r   rN   r   )r$   rW   r   r7   r   s        r&   _check_templatezSDistTestCase._check_template8  s    LLNN	c
w///zz==&&X*****r'   c                 0    |                      d           d S )Nztaunt knights *r   r$   s    r&   %test_invalid_template_unknown_commandz3SDistTestCase.test_invalid_template_unknown_commandB  s    ./////r'   c                 0    |                      d           d S )Npruner   r   s    r&   %test_invalid_template_wrong_argumentsz3SDistTestCase.test_invalid_template_wrong_argumentsE  s    W%%%%%r'   ntztest relevant for Windows onlyc                 0    |                      d           d S )Nzinclude examples/r   r   s    r&    test_invalid_template_wrong_pathz.SDistTestCase.test_invalid_template_wrong_pathI  s     	011111r'   c                 <   |                                  \  }}ddgi|_        |                     | j        ddfd           dg|_        |                                 |                                 t          |j                  }	 d |	                                
                    d          D             }|                                 n# |                                 w xY w|                     t          |          d           |                     | j        dd	fd           |                    d
          }d|_        |                                 |                                 t          |j                  }	 d |	                                
                    d          D             }|                                 n# |                                 w xY w|                     t          |          d           |                     d	|d                    d S )Nr   rd   re   r   r]   c                 f    g | ].}|                                 d k    |                                 /S r>   r   r   s     r&   rH   z4SDistTestCase.test_get_file_list.<locals>.<listcomp>]  <     / / /::<<2-- 

---r'   r      zdoc2.txtbuild_pyFc                 f    g | ].}|                                 d k    |                                 /S r   r   r   s     r&   rH   z4SDistTestCase.test_get_file_list.<locals>.<listcomp>p  s<     0 0 0$ JJLLB.. ...r'      )r8   rr   r    r   rJ   rK   rL   ru   r|   rv   r   rR   rN   r   get_command_obj	finalizedassertIn)r$   r   r7   r{   r|   r   	manifest2s          r&   test_get_file_listz SDistTestCase.test_get_file_listO  s    LLNN	c ('3z9=sCCCi				/ /1E1E / / /H GGIIIIAGGIIIIX*** 	z:>DDD ''
33"!!###				0 0!&&((..2F2F 0 0 0I GGIIIIAGGIIII 	Y+++j)B-00000s   1C C!>1G Gc                    |                                  \  }}|                                 |                                 t          |j                  }	 d |                                                    d          D             }|                                 n# |                                 w xY w|                     |d         d           d S )Nc                 f    g | ].}|                                 d k    |                                 /S r   r   r   s     r&   rH   z6SDistTestCase.test_manifest_marker.<locals>.<listcomp>  r   r'   r   r   z*# file GENERATED by distutils, do NOT edit)	r8   rK   rL   ru   r|   rv   r   rR   rN   )r$   r   r7   r{   r|   s        r&   test_manifest_markerz"SDistTestCase.test_manifest_markery  s     LLNN	c				/ /1E1E / / /H GGIIIIAGGIIII!E	G 	G 	G 	G 	Gs   1B B1c                    t          d          }|                                 \  }}|                                 |                     | j        |j        f|           |                     | j        dfd           |                     | j        dfd           |                     | j        dfd           |                                 |                     |j        j	        dg           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   r8   rK   r    r   r|   rL   rN   r   rU   )r$   contentsr   r7   s       r&   test_manifest_commentsz$SDistTestCase.test_manifest_comments  s        
 LLNN	cs|4h???y1<@@@x02DEEEy13EFFF			+i[99999r'   c                 ~   |                                  \  }}dg|_        |                                 |                     | j        |j        fd           |                     | j        dfd           |                                 |                     |j        j	        dg           t          |j                  }	 d |                                                    d          D             }|                                 n# |                                 w xY w|                     |dg           t          | j        dd          }t          j
        |          }	 d |D             }|                                 n# |                                 w xY w|                     t!          |          g d	           d S )
Nr]   zREADME.manualz0This project maintains its MANIFEST file itself.c                 f    g | ].}|                                 d k    |                                 /S r   r   r   s     r&   rH   z6SDistTestCase.test_manual_manifest.<locals>.<listcomp>  r   r'   r   r   r^   c                     g | ]	}|j         
S rD   )r-   )rF   tarinfos     r&   rH   z6SDistTestCase.test_manual_manifest.<locals>.<listcomp>  s    ==='===r'   )zfake-1.0zfake-1.0/PKG-INFOzfake-1.0/README.manual)r8   rJ   rK   r    r   r|   rL   rN   r   rU   ru   rv   r   rR   r   tarfilerS   )r$   r   r7   r{   r|   archive_namearchive	filenamess           r&   test_manual_manifestz"SDistTestCase.test_manual_manifest  s    LLNN	cis|4oFFF7K	M 	M 	M			+o->???	/ /1E1E / / /H GGIIIIAGGIIIIO#4555DL&2CDD,|,,	==W===IMMOOOOGMMOOOO	** -G -G -G 	H 	H 	H 	H 	Hs   =1D DE? ?Fzrequires zlibzRequires grp and pwd supportc                 $   |                                  \  }}dg|_        t          j        d          d         |_        t          j        d          d         |_        |                                 |	                                 t          | j        dd          }t          j        |          }	 |                                D ]8}|                     |j        d           |                     |j        d           9	 |                                 n# |                                 w xY w|                                  \  }}dg|_        |                                 |	                                 t          | j        dd          }t          j        |          }	 |                                D ].}|                     |j        t'          j                               /	 |                                 d S # |                                 w xY w)Nr]   r   r   r^   )r8   rJ   pwdgetpwuidownergrpgetgrgidgrouprK   rL   r   r   r   ru   
getmembersrN   uidgidrR   r   getuid)r$   r   r7   r   r   members         r&   "test_make_distribution_owner_groupz0SDistTestCase.test_make_distribution_owner_group  s    LLNN	c iLOOA&	LOOA&				 DL&2CDD,|,,	!,,.. 0 0  Q///  Q////0 MMOOOOGMMOOOO LLNN	c i			 DL&2CDD,|,,
	!,,.. : :  RY[[9999: MMOOOOOGMMOOOOs   1AD D*AG9 9Hr)   )__name__
__module____qualname__r   r*   r8   unittest
skipUnlessZLIB_SUPPORTrY   skipIfr   rb   r}   r   r   r   r   r   r   r   r   r-   r   r   r   r   r   UID_GID_SUPPORTr   __classcell__)r%   s   @r&   r   r   8   sq           . . . . .
    X'ABB*O *O CB*OX X'ABBX___U++t335 5X___V,,446 6F F6 65 5 CB
F8 X'ABBL? L? CBL?\ X'ABB+ + CB+,1 1 13 3 3F F F.+ + +0 0 0& & & X_RW_&FGG2 2 HG2
 X'ABB'1 '1 CB'1R X'ABBG G CBG  X'ABB: : CB:  X'ABBH H CBH: X77X*HIIX___U++t335 5X___V,,446 6( (6 65 5 JI 87( ( ( ( (r'   r   __main__)*__doc__r   r   r   r   rO   os.pathr   textwrapr   test.supportr   test.support.warnings_helperr   zlibr   ImportErrorr   r   r   distutils.command.sdistr   r   distutils.corer	   distutils.tests.test_configr
   distutils.errorsr   distutils.spawnr   distutils.logr   distutils.filelistr   distutils.archive_utilr   r!   rp   r   r   mainrD   r'   r&   <module>r      s   ( ( 				                 ( ( ( ( ( ( 7 7 7 7 7 7KKKLL   LLLJJJJJJOO   OOO 8 7 7 7 7 7 7 7 ' ' ' ' ' ' A A A A A A 1 1 1 1 1 1 + + + + + +       ' ' ' ' ' ' 2 2 2 2 2 2o o o o o- o o ob zHMOOOOO s!   7 A A
A AA