
    |gk"                        d dl 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	 Z ed
dddddddg      Zd Zddgdgddfdddgfddgffdfdddgidfddidfdd dD        id ffZej2                  j5                  d!e      d"        Zd# Zd$ Zej2                  j5                  d%g d&      d'        Zej2                  j5                  d(d)dd*d+gd,gfd-dd*d+gd,gfd,dd*d+gd,gfd)dd.gd/d)gfd,dd0d1gd,d2gfd,d3d4d5g d6g d7fg      d8        Zej2                  j5                  d9d:dd;gfd)dd.d<gfd,dd=gfd,dd*d>gfd,dd0d?gfd,d3d4d@g d6fdAddBdCgfdAddDdEgfg      dF        Z y)G    N)Distribution)check_package_datacheck_specifier   )make_nspkg_sdist)ensure_files)DALS)DistutilsSetupErrorc                    | j                  d      t        j                  j                  dt        j                  j                  t                          }fd} |dd        |dd       | j                  d      j                  d	      5 }|j                  t        d
      j                  |             ddd       dj                         }| j                         5  t               }|j                          |D cg c]  }|j!                  |       }}ddd       D cg c]  }|s|j"                   c}|k(  sJ y# 1 sw Y   xY wc c}w # 1 sw Y   =xY wc c}w )zR
    Check multiple calls to `Distribution.fetch_build_egg` work as expected.
    indexzfile://c                 @   j                  |       }| d|d}t        t        |j                  |            | |       |j                  d      j	                  d      5 }|j                  t        d      j                  |             d d d        y # 1 sw Y   y xY w)N-z.tar.gzz
index.htmlwz
                <!DOCTYPE html><html><body>
                <a href="{dist_sdist}" rel="internal">{dist_sdist}</a><br/>
                </body></html>
                )
dist_sdist)mkdirr   strjoinopenwriter	   format)distnameversiondist_dirr   fpr   s        W/var/www/html/pythonbot/venv/lib/python3.12/site-packages/setuptools/tests/test_dist.pysdist_with_indexz3test_dist_fetch_build_egg.<locals>.sdist_with_index   s    ;;x('/9
X]]:677K]]<(--c2 		bHH &J&/		 		 		s    +BB
barbazquuxz3.2.0zbarbazquux-runnerz2.11.1z	setup.cfgr   zL
            [easy_install]
            index_url = {index_url}
            )	index_urlNz*
    barbazquux-runner
    barbazquux
    )r   urllibparseurljoinrequestpathname2urlr   r   r   r   r	   r   splitas_cwdr   parse_config_filesfetch_build_eggkey)	tmpdirr   r   r   reqsdistrresolved_distsr   s	           @r   test_dist_fetch_build_eggr.      s@    LL!E$$Y0K0KCPUJ0WXI \7+((3	[	!	&	&s	+ 
r

 fyf)	

 	 	 
 A~!;?@a$..q1@@A "084DHH8D@@@#
 
  AA A 9s6   +E#EEE(E$0E$EEE!packagez0.0.1zFoo Barzfoo@bar.netzLong
descriptionzShort descriptiononetwo)namer   authorauthor_emaillong_descriptiondescriptionkeywordsc                     t        j                         } dg| d<   dg| d<   t        |       }t        |      }t	        |j
                  j                        ddgk(  sJ t        j                  t        t	        |d   j                                           |d<   t        |      }t	        |j
                  j                        ddgk(  sJ y )Nfooabarb)extras_requirer=   )	collectionsOrderedDictdictr   listmetadataprovides_extrasreverseditems)extrasattrsr+   s      r   (test_provides_extras_deterministic_orderrH   J   s    $$&F'F3K'F3K'ED--.3*<<<)55e,-33567E
 D--.3*<<<    z*.txtz*.rstz*.msg) hellorJ   rK   z^'package_data' must be a dictionary mapping package names to lists of string wildcard patternsi  z5keys of 'package_data' dict must be strings (got 400)zG"values of 'package_data' dict" must be a list of strings (got '*.msg')c              #       K   | ]  }|  y w)N ).0xs     r   	<genexpr>rP      s     -Aa-s   	generatorzP"values of 'package_data' dict" must be a list of strings (got <generator objectzpackage_data, expected_messagec                     |t        d d|       J y t        j                  t        t	        j
                  |            5  t        d d|        d d d        y # 1 sw Y   y xY w)Npackage_datamatch)r   pytestraisesr
   reescape)rS   expected_messages     r   test_check_package_datar[      s[    !$EMMM]].bii@P6QR 	Ct^\B	C 	C 	Cs   AA!c                      ddd} t        |       }t        || | d          dddgd} t        j                  t              5  t        |       }d d d        y # 1 sw Y   y xY w)Nr9   z>=3.0, !=3.1)r2   python_requiresr]   z>=3.0z!=3.1)r   r   rV   rW   r
   )rG   r+   s     r   test_check_specifierr^      se    ~>EDD%'8!9: /ABE	*	+ #E"# # #s   AAc                      t        j                  t        d      5  t               j	                          d d d        y # 1 sw Y   y xY w)Nzmissing.*namerT   )rV   rW   r
   r   _validate_metadatarM   rI   r   test_metadata_namera      s4    	*/	B ,))+, , ,s	   >Azdist_name, py_module))my.pkgmy_pkg)my-pkgrc   )rc   rc   )pkgre   c                    | | dz  j                          | dz  j                          | dz  j                          i t        |t        |       d}t        |      }|j	                          |j
                  |gk(  sJ t        i |ddgi      }|j	                          |j
                  dgk(  sJ t        i |ddgi      }|j	                          |j
                  rJ y )	Nz.pysetup.py
noxfile.py)r2   src_root
py_modulesexplicity_py_modulepackagesexplicity_package)touchEXAMPLE_BASE_INFOr   r   set_defaultsrj   )tmp_path	dist_name	py_modulerG   r+   s        r   test_dist_default_py_modulesrt      s     9+S!!((*
!!###% P O)XOED??yk)))H5H,1F0GHID??45555D5D*/B.CDEDrI   z/dist_name, package_dir, package_files, packagesrb   zmy_pkg/__init__.pyzmy_pkg/mod.pyrc   rd   zmy/pkg/__init__.pymyzsrc/my_pkg/__init__.pyzsrc/my_pkg2/__init__.pymy_pkg2liblib2)re   pkg2)zlib/__init__.pyzlib/nested/__init__.pytzlib2/__init__.py)re   z
pkg.nestedry   c                 v   t        | |       | dz  j                          | dz  j                          i t        |t        |       |d}t	        |      }|j                          |j                  rJ |j                  rJ t        |j                        t        |      k(  sJ t	        i |ddgi      }|j                          |j                  rJ t        |j                        dhk(  sJ t	        i |ddgi      }|j                          |j                  rJ t        |j                        dhk(  sJ y )Nrg   rh   )r2   ri   package_dirrj   explicit_py_modulerl   explicit_package)	r   rn   ro   r   r   rp   rj   setrl   )rq   rr   r{   package_filesrl   rG   r+   s          r   test_dist_default_packagesr      s<   0 =)
!!###%
M"	E Dt}}X...G5G,1E0FGHD}}t$8#9999C5C*/A.BCDDt}}"4!5555rI   z%dist_name, package_dir, package_fileszmy.pkg.nestedzmy/pkg/nested/__init__.pyzmy/pkg/file.pyz	my_pkg.pyzmy_pkg/nested/__init__.pyzsrc/my_pkg/nested/__init__.py)rc   zmy_pkg.lib2UNKNOWNzsrc/mod1.pyzsrc/mod2.pyzsrc/pkg1/__ini__.pyzsrc/pkg2/__init__.pyc                 (   t        | |       i t        dj                  t        j                  j                  |             |d}|d= t        |      }|j                          |j                  s|j                  sJ |j                         |k(  sJ y)z:Make sure dist.name is discovered from packages/py_modules/)ri   r{   r2   N)r   ro   r   ospathr$   r   rp   rj   rl   get_name)rq   rr   r{   r   rG   r+   s         r   test_dist_default_namer      s    ( =)
HHRWW]]845"E
 	fD??dmm++==?i'''rI   )!r>   r   rX   urllib.parser   urllib.requestrV   
setuptoolsr   setuptools.distr   r   test_easy_installr   test_find_packagesr   textwrapr	   distutils.errorsr
   r.   r@   ro   rH   CHECK_PACKAGE_DATA_TESTSmarkparametrizer[   r^   ra   rt   r   r   rM   rI   r   <module>r      s    	 	    # ? / ,  0)AX 	(#U^ =$ '"Y	
 	 '7#$wi 	

:	 '7#	
 
A	 W	
6 --	
%M/ d 9;STC UC	#,
 , 5	4.@8*M	4.@8*M	4.@8*M	4./$1AB%'@Ay!		
 6*N)		
*6+*6B +	$!< =>	4.0@AB	4+'	4.0KLM	424STUV4N	
 
D=-89	D02HIJ$(%$(rI   