
    ,h0#                         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
        Zd Zej0                  j3                   eed       d      Z G d d      Z G d d      Zej*                  d        Zd Zd Z ej*                  d        Z!ej0                  jE                  d      d        Z#ej0                  jI                  d      d        Z%d Z&d Z'y)z"Tests for the 'setuptools' package    N)ZipFile)Version)Require)	Extension)DistutilsSetupErrorT)autousec                      y N )
tmpdir_cwds    b/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/setuptools/tests/test_setuptools.pyisolated_dirr      s    
    c                      dt         j                  _        | j                  ddg       	 t	        j
                  di | dt         j                  _        S # dt         j                  _        w xY w)zDReturn distribution from 'setup(**args)', without executing commandscommandlinescript_argsinstallNr   )	distutilscore_setup_stop_after
setdefault
setuptoolssetup)argss    r   	makeSetupr      sQ     (5INN$ 	OOMI;/0'$'+/	(4	(s   A A+get_module_constantzbytecode support not available)reasonc                   H    e Zd Zd Zd Zed        Zed        Zed        Zy)TestDependsc                    t        t        d      sy d }|j                  }t        j                  |dd      J t        j                  |dd      dk(  sJ t        j                  |dd      dk(  sJ t        j                  |dd      J y )	Nextract_constantc                      da t        ay )Ntest)xzyr   r   r   f1z(TestDepends.testExtractConst.<locals>.f15   s    AAr   qr$   r#   r&   r%   )hasattrdep__code__r!   )selfr'   fcs      r   testExtractConstzTestDepends.testExtractConst0   s    s./	
 [[ ##BR088 ##BR0F:: ##BR0B66 ##BR0888r   c                 b   t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        t        j                  d      \  }}}|j                          y # 1 sw Y   jxY w# 1 sw Y   ?xY w)Nzno-such.-thingzsetuptools.non-existentzsetuptools.tests)pytestraisesImportErrorr+   find_moduleclose)r-   f_p_is       r   testFindModulezTestDepends.testFindModuleH   s|    ]];' 	.OO,-	.]];' 	7OO56	7OO$67	2r			. 	.	7 	7s   BB%B"%B.c                     ddl m} t        j                  dd      |k(  sJ t        j                  dd      t        j
                  k(  sJ t        j                  dd      t        k(  sJ y )	Nr   __version__jsonr<   sysversionz setuptools.tests.test_setuptools__doc__)r=   r<   r+   r   r>   r?   r@   )r-   r<   s     r   testModuleExtractzTestDepends.testModuleExtractP   s\    $&&v}=LL&&ui8CKKGG##$F	R	
r   c                 F   t        ddd      }|j                  dk(  sJ |j                  dk(  sJ |j                  t	        d      k(  sJ |j
                  dk(  sJ |j                         dk(  sJ ddlm} t        |j                               |k(  sJ |j                  d      sJ |j                  d	      rJ |j                  d
      rJ |j                         sJ |j                         sJ t        ddd      }|j                         rJ |j                         rJ y )NJsonz1.0.3r=   r<   z
Json-1.0.3r   r;   z1.0.9z0.9.1unknownzDo-what-I-meanz1.0zd-w-i-m)r   namemodulerequested_versionr   	attribute	full_namer=   r<   strget_version
version_ok
is_present
is_current)r-   reqr<   s      r   testRequirezTestDepends.testRequire[   s    fgv.xx6!!zzV##$$(888}}--}},..$3??$%44~~g&&>>'**>>),,~~~~&y9>>##>>###r   c                 |   t        dd dd      }|j                  J |j                  J |j                  J |j	                         dk(  sJ |j
                  dk(  sJ ddlm} |D cg c]!  }t        j                  j                  |      # }}|j                  |      sJ |j                  |      sJ y c c}w )NTeststestszhttp://example.com)homepager   )__path__)r   formatrH   rG   rI   rT   setuptools.testsrU   ospathdirnamerM   rN   )r-   rO   rU   ppathss        r   test_require_presentz TestDepends.test_require_presents   s    
 gtW7KLzz!!}}$$$$,,}}'))||333--56#66~~e$$~~e$$$ 7s   *&B9N)	__name__
__module____qualname__r/   r9   needs_bytecoderA   rP   r]   r   r   r   r   r   /   sH    90 
 
 $ $. % %r   r   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)

TestDistroc                     t        ddg      | _        t        ddg      | _        t        g dddg| j                  | j                  fi       | _        y )	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-   methods     r   setup_methodzTestDistro.setup_method   sK    Iy1EE7+4s|$''*	
	r   c                 d    t        | j                  t        j                  j                        sJ y r
   )
isinstancern   r   Distributionr-   s    r   testDistroTypezTestDistro.testDistroType   s     $))Z__%A%ABBBr   c                    | j                   j                  d       | j                   j                  ddgk(  sJ | j                   j                  d       | j                   j                  dgk(  sJ | j                   j                  dgk(  sJ | j                   j                  | j
                  | j                  gk(  sJ | j                   j                  d       | j                   j                  g k(  sJ | j                   j                  dgk(  sJ | j                   j                  | j
                  gk(  sJ t               j                  d       y )Nre   rf   rg   r$   )rn   exclude_packagerh   ri   rj   rl   rm   r   rt   s    r   testExcludePackagezTestDistro.testExcludePackage   s    		!!#&yy!!c3Z//		!!#&yy!!cU**yy##u,,yy$$$''(:::		!!#&yy!!R''yy##u,,yy$$	11 	##C(r   c                    | j                   j                  | j                  g       | j                   j                  | j                  gk(  sJ | j                   j                  | j                  g       | j                   j                  | j                  | j                  gk(  sJ | j                   j                  | j                  g       | j                   j                  | j                  | j                  gk(  sJ y )Nrj   )rn   excluderl   rj   rm   includert   s    r   testIncludeExcludezTestDistro.testIncludeExclude   s    		twwi0yy$$	11 			twwi0yy$$$''(::: 			twwi0yy$$$''(::::r   c                     | j                   j                  g d       | j                   j                  g k(  sJ | j                   j                  dgk(  sJ | j                   j                  | j
                  gk(  sJ y )N)rg   rf   re   rh   r$   )rn   r{   rh   ri   rj   rl   rt   s    r   testExcludePackageszTestDistro.testExcludePackages   sa    		?3yy!!R''yy##u,,yy$$	111r   c                     t               }|j                  dgdg| j                  g       t               }|j                  dgdg| j                  g       y )Nre   rf   )rh   ri   rj   )r   r|   rm   r{   )r-   rn   s     r   	testEmptyzTestDistro.testEmpty   sH    {seDGG9M{seDGG9Mr   c                    | j                   j                  d      sJ | j                   j                  d       | j                   j                  d      rJ | j                   j                  d      sJ | j                   j                  d       | j                   j                  d      rJ | j                   j                  d      sJ | j                   j                  d       | j                   j                  d      rJ y )Nre   rf   rg   )rn   has_contents_forrw   rt   s    r   testContentszTestDistro.testContents   s    yy))#..		!!#&99--c22yy))#..		!!#&99--c22yy))#..		!!#&99--c222r   c                    t        j                  t              5  | j                  j	                  d       d d d        t        j                  t              5  | j                  j                  d       d d d        t        j                  t              5  | j                  j	                  ddi       d d d        t        j                  t              5  | j                  j                  ddi       d d d        t        j                  t              5  | j                  j	                  ddi       d d d        t        j                  t              5  | j                  j                  ddi       d d d        t        j                  t              5  | j                  j	                  dg       d d d        t        j                  t              5  | j                  j                  dg       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   0xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr$   )nonexistent_optionr&   r   rz   r(   )rk   )r1   r2   r   rn   r|   r{   rt   s    r   testInvalidIncludeExcludez$TestDistro.testInvalidIncludeExclude   s   ]]./ 	6II5	6]]./ 	6II5	6]]./ 	3IISz2	3]]./ 	3IISz2	3]]./ 	6II3*5	6]]./ 	6II3*5	6 ]]./ 	1II3%0	1]]./ 	1II3%0	1 	1	6 	6	6 	6	3 	3	3 	3	6 	6	6 	6	1 	1	1 	1s_   G<H	HH#H0H<II<H	HH #H-0H9<IIIN)r^   r_   r`   rp   ru   rx   r}   r   r   r   r   r   r   r   rc   rc      s,    	
C)";2N31r   rc   c                 x    | j                  d       | dz  j                  d       | dz  j                  d       | S )Nfoo
foo/bar.py 
readme.txt)mkdirwrite)tmpdirs    r   example_sourcer      s9    
LLl!!"%l!!"%Mr   c                     t        t        j                  t        |                   }ddg}|D cg c]  }| j	                  |       }}||k(  sJ y c c}w )Nr   r   )listr   findallrJ   join)r   foundexpectedfns       r   test_findallr      sW    ##C$789El+H2:;B##B';H;H <s   Ac                     | j                         5  t        t        j                               }d d d        dt        j
                  j                  dd      g}|k(  sJ y # 1 sw Y   3xY w)Nr   r   zbar.py)as_cwdr   r   r   rX   rY   r   )r   r   r   s      r   test_findall_curdirr      s]    				  +Z'')*+bggll5(;<HH+ +s   A!!A*c                     d}d}	 t        j                  ||       t        j                  |       y# t        t        t        f$ r t        j                  d       Y Aw xY w)z/
    Skip if cannot create a symbolic link
    linktargetzCannot create symbolic linksN)rX   symlinkOSErrorNotImplementedErrorAttributeErrorr1   skipremove)r   link_fn	target_fns      r   can_symlinkr      sU    
 GI4


9g& IIg (.9 4234s   2 )AAr   c                     | j                         5  t        j                  dd       t        t	        j
                               }|g k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   bar)r   rX   r   r   r   r   )r   r   s     r   test_findall_missing_symlinkr     sM    	 


5% Z'')*{{  s   ;AAz$unable to exclude tests; #4475 #3260c                     t        |       5 }|j                         D cg c]"  }|j                  t        j                  d      $ }}d d d        D ]  }d|vrJ  y c c}w # 1 sw Y   xY w)N/z/tests/)r   namelistreplacerX   sep)setuptools_wheelzipfiler6   contentsmembers        r   )test_its_own_wheel_does_not_contain_testsr     ss    	!	" Hg4;4D4D4FGqAIIbffc*GGH  '&&' HH Hs   A#'AA#A##A,c                     t        |       5 }|j                         D cg c]"  }|j                  t        j                  d      $ }}d d d        t        d D              sJ y c c}w # 1 sw Y   #xY w)Nr   c              3   $   K   | ]  }d |v  
 yw)z
cli-64.exeNr   .0r   s     r   	<genexpr>z2test_wheel_includes_cli_scripts.<locals>.<genexpr>  s     =&|v%=s   r   r   r   rX   r   anyr   r   r6   r   s       r   test_wheel_includes_cli_scriptsr     sm    	!	" Hg4;4D4D4FGqAIIbffc*GGH =H==== HH H   A*'A%A*%A**A3c                     t        |       5 }|j                         D cg c]"  }|j                  t        j                  d      $ }}d d d        t        d D              sJ y c c}w # 1 sw Y   #xY w)Nr   c              3   H   K   | ]  }t        j                  d |        yw)z_vendor/.*\.dist-info/METADATAN)researchr   s     r   r   z8test_wheel_includes_vendored_metadata.<locals>.<genexpr>   s!      AG		3V<s    "r   r   s       r   %test_wheel_includes_vendored_metadatar     sx    	!	" Hg4;4D4D4FGqAIIbffc*GGH  KS    HH Hr   )(r@   rX   r   r>   r   r   r1   packaging.versionr   r   setuptools.dependsdependsr+   setuptools.distr   distutils.cmdr   distutils.corer   distutils.errorsr   fixturer   r   markskipifr*   ra   r   rc   r   r   r   r   usefixturesr   xfailr   r   r   r   r   r   <module>r      s+   ( 	 	 
   %     &   $ 0  0 ##*+++ $ T% T%nW1 W1t   
 
 ' ( @A' B'>r   