
    YHh|                         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Zddl	m
Z
 ddlmZ  eej                  j                  d      Z G d	 d
      Z G d d      Zd Zd Zy)z$Test .dist-info style distributions.    N)partial)unpack_archive   )DALSutf-8encodingc                   \    e Zd Zd Zd Zej                  j                  dd      d        Zy)TestDistInfoc                 H   d}|dz  j                  |d       t        j                  dt        j                  t        j                  z        }t        d|d      }|j                  sJ |j                  |j                        sJ t        |j                  d	            rJ y
)zA
        Supplying an invalid version crashes dist_info.
        z@[metadata]
name=proj
version=42
[egg_info]
tag_build=invalid!!!
	setup.cfgr   r   zinvalid version	dist_infoF)cwdcheck*.dist-infoN)
write_textrecompileMIrun_command_inner
returncodesearchstdoutlistglob)selftmp_pathconfigmsgprocs        X/var/www/html/planif/env/lib/python3.12/site-packages/setuptools/tests/test_dist_info.pytest_invalid_versionz!TestDistInfo.test_invalid_version   s     Y	K	++FW+Ejj*BDD244K8 (%Hzz$++&&&m45555    c                    d}|dz  j                  |d       t        t        dd|             t        |j	                  d            }|j
                  j                  d	      sJ t        j                  |       t        t        dd
d|             t        |j	                  d            }|j
                  j                  d      sJ y )Nz
        [metadata]
        name=proj
        version=42
        [egg_info]
        tag_date=1
        tag_build=.post
        r   r   r   r   z	--no-dater   r   zproj-42z--tag-buildz.azproj-42a)	r   printrun_commandnextr   name
startswithshutilrmtree)r   r   r   r   s       r"   test_tag_argumentszTestDistInfo.test_tag_arguments    s     
K	++FW+Ek+{AB}56	~~((333i k+}dIJ}56	~~((444r$   keep_egg_info)FTc                    d}|dz  j                  |d       |dz  }|j                          |rdgng }t        dd|g|d	|i t        t	        |j                  d
                  dk(  sJ t        t	        |j                  d
                  dk(  sJ t        |      }t        t	        |j                  d                  |k(  sJ t        t	        |j                  d                  dk(  sJ t        t	        |j                  d                  dk(  sJ t        t	        |j                  d                  dk(  sJ y )Nz [metadata]
name=proj
version=42
r   r   r   __outz--keep-egg-infor   z--output-dirr   r   r   r   z
*.egg-infoz	*.__bkp__)r   mkdirr(   lenr   r   int)r   r   r/   r   outoptsexpected_egg_infos          r"   test_output_dirzTestDistInfo.test_output_dir4   s'   6	K	++FW+E 		&3!"KJtJJ4/01Q6664m456!;;;.4./04EEEE4l345:::4-./14444k234999r$   N)	__name__
__module____qualname__r#   r.   pytestmarkparametrizer8    r$   r"   r   r      s1    
65( [[_m<: =:r$   r   c                      e Zd ZdZ ed      Zg dZej                  j                  ddj                               ej                  j                  ddg      ej                  j                  de      d	                      Zy
)TestWheelCompatibilityzMake sure the .dist-info directory produced with the ``dist_info`` command
    is the same as the one produced by ``bdist_wheel``.
    ae  
    [metadata]
    name = {name}
    version = {version}

    [options]
    install_requires =
        foo>=12; sys_platform != "linux"

    [options.extras_require]
    test = pytest

    [options.entry_points]
    console_scripts =
        executable-name = my_package.module:function
    discover =
        myproj = my_package.other_module:function
    )) rB   ).postz[egg_info]
tag_build = post
)rC   z[egg_info]
tag_build = .post
)rC   z)[egg_info]
tag_build = post
tag_date = 1
).devz[egg_info]
tag_build = .dev
)rD   z)[egg_info]
tag_build = .dev
tag_date = 1
)a1z[egg_info]
tag_build = .a1
)z+localz[egg_info]
tag_build = +local
r*   zmy-proj my_proj my.proj My.Projversionz0.42.13)suffixcfgc                 j   | j                   j                  ||      |z   }dD ].  }||z  j                          ||z  dz  j                  |d       0 t	        d|dz         t        |j                  d	            }t        ||d
z         t        |j                  d            }	t	        d|dz         t        |j                  d            }
|
j                  |	j                  k(  sJ |
j                  j                  d| |       sJ dD ]!  }t        |
|z        t        |	|z        k(  r!J  y )N)r*   rF   )	dir_wheeldir_distr   r   r   bdist_wheelrJ   r&   zdir_wheel/dist/*.whlunpackzunpack/*.dist-infor   rK   zdir_dist/*.dist-infozmy_proj-)METADATAzentry_points.txt)SETUPCFGformatr2   r   r(   r)   r   r   r*   r+   read)r   r*   rF   r   rG   rH   r   iwheelwheel_dist_infor   files               r"   &test_dist_info_is_the_same_as_in_wheelz=TestWheelCompatibility.test_dist_info_is_the_same_as_in_wheelk   s8    %%4%ACG( 	NA\  "\K'33FW3M	N 	Mx+'=>X]]#9:;uh12x}}-ABCKX
%:;'=>?	~~!5!5555~~((8G9VH)EFFF2 	JD	D()T/D2H-IIII	Jr$   N)r9   r:   r;   __doc__r   rO   EGG_INFO_OPTSr<   r=   r>   splitrV   r?   r$   r"   rA   rA   E   s     	H*
M [[V%F%L%L%NO[[Y4[[.>J ? 5 PJr$   rA   c                      t         j                  t         j                  dddd|}t        j                  ddgt        t        |       } t        j                  | fi |S )NTr   )stderrr   textr	   r   z-cz __import__('setuptools').setup())
subprocessSTDOUTPIPEsys
executablemapstrrun)cmdkwargsr6   s      r"   r   r      s^    ##// D >>4!C
Tc#sm
TC>>#&&&r$   c                  ,    t        | i |j                  S )N)r   r   )argsrf   s     r"   r(   r(      s    d-f-444r$   )rW   pathlibr   r,   r]   r`   	functoolsr   r<   setuptools.archive_utilr   textwrapr   Path	read_textrQ   r   rA   r   r(   r?   r$   r"   <module>ro      s[    *  	   
   2 w||%%8/: /:d=J =J@
'5r$   