o
    jk$                     @   sF  d Z ddlZddlZddlZddlmZ ddlZddlmZ ddl	Z	ddl
mZ ddlZ	ddl
mZ ddlZddlZddlmZ ddlmZ ejdd	d
d Zdd Zejjeed ddZG dd dZG dd dZejdd Zdd Zdd Z ejdd Z!ej"ddd Z#ejj$ddd d! Z%d"d# Z&d$d% Z'dS )&z"Tests for the 'setuptools' package    N)ZipFile)Version)Require)	Extension)DistutilsSetupErrorT)Zautousec                 C   s   d S N )Z
tmpdir_cwdr   r   a/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/setuptools/tests/test_setuptools.pyisolated_dir   s   r
   c                  K   s<   dt j_| ddg ztjdi | W dt j_S dt j_w )zDReturn distribution from 'setup(**args)', without executing commandsZcommandlineZscript_argsinstallNr   )	distutilscoreZ_setup_stop_after
setdefault
setuptoolssetup)argsr   r   r	   	makeSetup   s
   r   get_module_constantzbytecode support not available)reasonc                   @   sN   e Zd Zdd Zdd Zejdd Zedd Z	ed	d
 Z
edd ZdS )TestDependsc                 C   sx   t tdsd S dd }|j}t|ddd u sJ t|dddks$J t|dddks/J t|d	dd u s:J d S )
Nextract_constantc                   S   s   da tad S )Ntest)xzyr   r   r   r	   f15   s   z(TestDepends.testExtractConst.<locals>.f1qr   r   r   r   )hasattrdep__code__r   )selfr   Zfcr   r   r	   testExtractConst0   s   
zTestDepends.testExtractConstc                 C   s   t t td W d    n1 sw   Y  t t td W d    n1 s/w   Y  td\}}}|  d S )Nzno-such.-thingzsetuptools.non-existentzsetuptools.tests)pytestraisesImportErrorr   find_moduleclose)r!   f_pZ_ir   r   r	   testFindModuleH   s   zTestDepends.testFindModulec                 C   s@   | t| d}d}|| d }|jd|dd ||fS )NZmod_with_versionz2.0.9z.pyz__version__ = zutf-8)encoding)Zsyspath_prependstr
write_text)r!   ZmonkeypatchZtmp_pathmoduleversionfiler   r   r	   sample_moduleP   s   zTestDepends.sample_modulec                 C   sJ   |\}}t |d|ksJ t ddtjksJ t tdtks#J d S )N__version__sysr/   __doc__)r   r   r3   r/   __name__r4   )r!   r1   r.   r/   r   r   r	   testModuleExtractY   s   zTestDepends.testModuleExtractc                 C   s   |\}}t dd|}|jdksJ |j|ksJ |jtdks!J |jdks(J | dks0J t| |ks:J |	dsAJ |	drHJ |	drOJ |
 sUJ | s[J t dd	d
}|
 rgJ | rmJ d S )NZ	GivenNamez1.0.3r2   zGivenName-1.0.3z1.0.9z0.9.1unknownzDo-what-I-meanz1.0zd-w-i-m)r   namer.   requested_versionr   	attribute	full_namer,   get_versionZ
version_ok
is_present
is_current)r!   r1   r.   r/   reqr   r   r	   testRequire`   s    zTestDepends.testRequirec                 C   s   t dd ddd}|jd u sJ |jd u sJ |jd u sJ | dks%J |jdks,J ddlm} dd |D }||s@J |	|sGJ d S )	NZTeststestszhttp://example.com)homepager   )__path__c                 S   s   g | ]}t j|qS r   )ospathdirname).0pr   r   r	   
<listcomp>   s    z4TestDepends.test_require_present.<locals>.<listcomp>)
r   formatr:   r9   r;   rB   Zsetuptools.testsrC   r=   r>   )r!   r?   rC   pathsr   r   r	   test_require_presentw   s   z TestDepends.test_require_presentN)r5   
__module____qualname__r"   r*   r#   fixturer1   needs_bytecoder6   r@   rL   r   r   r   r	   r   /   s    


r   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )
TestDistroc                 C   sB   t ddg| _t ddg| _tg dddg| j| jfi d| _d S )	Nzbar.extzbar.czc.yzy.c)aza.bza.b.cbczb.dr   )packages
py_modulesext_modulespackage_dir)r   e1e2r   dist)r!   methodr   r   r	   setup_method   s   
zTestDistro.setup_methodc                 C   s   t | jtjjs
J d S r   )
isinstancer[   r   Distributionr!   r   r   r	   testDistroType   s   zTestDistro.testDistroTypec                 C   s   | j d | j jddgksJ | j d | j jdgksJ | j jdgks(J | j j| j| jgks4J | j d | j jg ksBJ | j jdgksKJ | j j| jgksUJ t d d S )NrR   rS   rT   r   )r[   exclude_packagerU   rV   rW   rY   rZ   r   r`   r   r   r	   testExcludePackage   s   zTestDistro.testExcludePackagec                 C   s~   | j j| jgd | j j| jgksJ | j j| jgd | j j| j| jgks(J | j j| jgd | j j| j| jgks=J d S )NrW   )r[   excluderY   rW   rZ   includer`   r   r   r	   testIncludeExclude   s   zTestDistro.testIncludeExcludec                 C   sL   | j jg dd | j jg ksJ | j jdgksJ | j j| jgks$J d S )N)rT   rS   rR   rU   r   )r[   re   rU   rV   rW   rY   r`   r   r   r	   testExcludePackages   s   zTestDistro.testExcludePackagesc                 C   s@   t  }|jdgdg| jgd t  }|jdgdg| jgd d S )NrR   rS   )rU   rV   rW   )r   rf   rZ   re   )r!   r[   r   r   r	   	testEmpty   s   zTestDistro.testEmptyc                 C   s   | j dsJ | j d | j drJ | j dsJ | j d | j dr,J | j ds4J | j d | j drBJ d S )NrR   rS   rT   )r[   Zhas_contents_forrb   r`   r   r   r	   testContents   s   zTestDistro.testContentsc                 C   s  t t | jjdd W d    n1 sw   Y  t t | jjdd W d    n1 s3w   Y  t t | jjddid W d    n1 sQw   Y  t t | jjddid W d    n1 sow   Y  t t | jjddid W d    n1 sw   Y  t t | jjddid W d    n1 sw   Y  t t | jjdgd W d    n1 sw   Y  t t | jjdgd W d    d S 1 sw   Y  d S )Nr   )Znonexistent_optionr   rh   rd   r   )rX   )r#   r$   r   r[   rf   re   r`   r   r   r	   testInvalidIncludeExclude   s0   "z$TestDistro.testInvalidIncludeExcludeN)r5   rM   rN   r]   ra   rc   rg   ri   rj   rk   rl   r   r   r   r	   rQ      s    rQ   c                 C   s*   |  d | d d | d d | S )Nfoo
foo/bar.py 
readme.txt)mkdirwrite)tmpdirr   r   r	   example_source   s   
rt   c                    s<   t tt }ddg} fdd|D }||ksJ d S )Nrp   rn   c                    s   g | ]}  |qS r   )join)rG   fnrt   r   r	   rI      s    z test_findall.<locals>.<listcomp>)listr   findallr,   rt   foundexpectedr   rw   r	   test_findall   s   r}   c                 C   sV   |    tt }W d    n1 sw   Y  dtjddg}||ks)J d S )Nrp   rm   zbar.py)as_cwdrx   r   ry   rD   rE   ru   rz   r   r   r	   test_findall_curdir   s
   
r   c              
   C   sJ   d}d}zt || W n tttfy   td Y nw t | dS )z/
    Skip if cannot create a symbolic link
    linktargetzCannot create symbolic linksN)rD   symlinkOSErrorNotImplementedErrorAttributeErrorr#   skipremove)rs   Zlink_fnZ	target_fnr   r   r	   can_symlink   s   r   c                 C   sR   |    tdd tt }|g ksJ W d    d S 1 s"w   Y  d S )Nrm   bar)r~   rD   r   rx   r   ry   )rs   r{   r   r   r	   test_findall_missing_symlink  s
   
"r   z$unable to exclude tests; #4475 #3260c                 C   sT   t | }dd | D }W d    n1 sw   Y  |D ]}d|vs'J qd S )Nc                 S      g | ]	}| tjd qS /replacerD   seprG   r(   r   r   r	   rI         z=test_its_own_wheel_does_not_contain_tests.<locals>.<listcomp>z/tests/)r   namelist)setuptools_wheelzipfilecontentsmemberr   r   r	   )test_its_own_wheel_does_not_contain_tests  s   
r   c                 C   T   t | }dd | D }W d    n1 sw   Y  tdd |D s(J d S )Nc                 S   r   r   r   r   r   r   r	   rI     r   z3test_wheel_includes_cli_scripts.<locals>.<listcomp>c                 s   s    | ]}d |v V  qdS )z
cli-64.exeNr   rG   r   r   r   r	   	<genexpr>  s    z2test_wheel_includes_cli_scripts.<locals>.<genexpr>r   r   anyr   r   r   r   r   r	   test_wheel_includes_cli_scripts  s   
r   c                 C   r   )Nc                 S   r   r   r   r   r   r   r	   rI   "  r   z9test_wheel_includes_vendored_metadata.<locals>.<listcomp>c                 s   s    | ]	}t d |V  qdS )z_vendor/.*\.dist-info/METADATAN)researchr   r   r   r	   r   $  s    
z8test_wheel_includes_vendored_metadata.<locals>.<genexpr>r   r   r   r   r	   %test_wheel_includes_vendored_metadata   s   
r   )(r4   rD   r   r3   r   r   r#   Zpackaging.versionr   r   Zsetuptools.dependsZdependsr   Zsetuptools.distr   Zdistutils.cmdr   Zdistutils.corer   Zdistutils.errorsr   rO   r
   r   markZskipifr   rP   r   rQ   rt   r}   r   r   Zusefixturesr   Zxfailr   r   r   r   r   r   r	   <module>   sH    


[Z




