
    ik$                     4   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j                             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j        "                    d          d             Z#ej        $                    d          d             Z%d Z&d Z'dS )z"Tests for the 'setuptools' package    N)ZipFile)Version)Require)	Extension)DistutilsSetupErrorT)autousec                     d S N )
tmpdir_cwds    j   C:\Users\student\Desktop\ПрогаАДМБД3\myenv\Lib\site-packages\setuptools/tests/test_setuptools.pyisolated_dirr      s    
F    c                      dt           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      sb     (5IN$ 	OOMI;///0''$''+/	((4	(////s   A Aget_module_constantzbytecode support not available)reasonc                   |    e Zd Zd Zd Zej        d             Zed             Z	ed             Z
ed             ZdS )TestDependsc                    t          t          d          sd S 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 d S )	Nextract_constantc                      da t          ad S )Ntest)xzyr   r   r   f1z(TestDepends.testExtractConst.<locals>.f15   s    AAAAr   qr$   r#   r&   r%   )hasattrdep__code__r!   )selfr'   fcs      r   testExtractConstzTestDepends.testExtractConst0   s    s.// 	F	 	 	
 [ #BR00888 #BR00F:::: #BR00B6666 #BR0088888r   c                 r   t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        d          \  }}}|                                 d S )Nzno-such.-thingzsetuptools.non-existentzsetuptools.tests)pytestraisesImportErrorr+   find_moduleclose)r-   f_p_is       r   testFindModulezTestDepends.testFindModuleH   s   ];'' 	. 	.O,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.];'' 	7 	7O5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7O$677	2r						s   ;??B  BBc                     |                     t          |                     d}d}|| dz  }|                    d|d           ||fS )Nmod_with_versionz2.0.9z.pyz__version__ = zutf-8)encoding)syspath_prependstr
write_text)r-   monkeypatchtmp_pathmoduleversionfiles         r   sample_modulezTestDepends.sample_moduleP   s`    ##CMM222#V...(444wGGG  r   c                     |\  }}t          j        |d          |k    sJ t          j        dd          t          j        k    sJ t          j        t          d          t
          k    sJ d S )N__version__sysrC   __doc__)r+   r   rH   rC   __name__rI   )r-   rE   rB   rC   s       r   testModuleExtractzTestDepends.testModuleExtractY   sn    )&v}==HHHH&ui88CKGGGG&x;;wFFFFFFr   c                    |\  }}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    sJ t          |                                          |k    sJ |	                    d          sJ |	                    d          rJ |	                    d          rJ |
                                sJ |                                sJ t          dd	d
          }|
                                rJ |                                rJ d S )N	GivenNamez1.0.3rG   zGivenName-1.0.3z1.0.9z0.9.1unknownzDo-what-I-meanz1.0zd-w-i-m)r   namerB   requested_versionr   	attribute	full_namer>   get_version
version_ok
is_present
is_current)r-   rE   rB   rC   reqs        r   testRequirezTestDepends.testRequire`   sg   )k7F33x;&&&&zV####$(8(88888}----}}"333333??$$%%0000~~g&&&&&>>'*****>>),,,,,~~~~&y99>>#####>>#######r   c                 0   t          dd dd          }|j        J |j        J |j        J |                                dk    sJ |j        dk    sJ ddlm} d |D             }|                    |          sJ |	                    |          sJ d S )NTeststestszhttp://example.com)homepager   )__path__c                 L    g | ]!}t           j                            |          "S r   )ospathdirname).0ps     r   
<listcomp>z4TestDepends.test_require_present.<locals>.<listcomp>   s&    666##666r   )
r   formatrQ   rP   rR   r\   setuptools.testsr]   rU   rV   )r-   rW   r]   pathss       r   test_require_presentz TestDepends.test_require_presentw   s    
 gtW7KLLLz!!!}$$$$,,,}}'))))|33333------66X666~~e$$$$$~~e$$$$$$$r   N)rJ   
__module____qualname__r/   r9   r1   fixturerE   needs_bytecoderK   rX   rh   r   r   r   r   r   /   s        9 9 90   ^! ! ^! G G ^G $ $ ^$, % % ^% % %r   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )

TestDistroc                     t          ddg          | _        t          ddg          | _        t          g dddg| j        | j        fi           | _        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-   methods     r   setup_methodzTestDistro.setup_method   sa    Iy11EE7++444s|$'*	
 
 
			r   c                 R    t          | j        t          j        j                  sJ d S r
   )
isinstancery   r   Distributionr-   s    r   testDistroTypezTestDistro.testDistroType   s%    $)Z_%ABBBBBBBr   c                    | 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    sJ | j                             d           | j         j        g k    sJ | j         j        dgk    sJ | j         j        | j        gk    sJ t                                          d           d S )Nrp   rq   rr   r$   )ry   exclude_packagers   rt   ru   rw   rx   r   r   s    r   testExcludePackagezTestDistro.testExcludePackage   s   	!!#&&&y!c3Z////	!!#&&&y!cU****y#u,,,,y$$'(:::::	!!#&&&y!R''''y#u,,,,y$	1111 	##C(((((r   c                 t   | j                             | j        g           | j         j        | j        gk    sJ | j                             | j        g           | j         j        | j        | j        gk    sJ | j                             | j        g           | j         j        | j        | j        gk    sJ d S )Nru   )ry   excluderw   ru   rx   includer   s    r   testIncludeExcludezTestDistro.testIncludeExclude   s    	twi000y$	1111 		twi000y$$'(::::: 		twi000y$$'(:::::::r   c                     | j                             g d           | j         j        g k    sJ | j         j        dgk    sJ | j         j        | j        gk    sJ d S )N)rr   rq   rp   rs   r$   )ry   r   rs   rt   ru   rw   r   s    r   testExcludePackageszTestDistro.testExcludePackages   sm    	???333y!R''''y#u,,,,y$	111111r   c                     t                      }|                    dgdg| j        g           t                      }|                    dgdg| j        g           d S )Nrp   rq   )rs   rt   ru   )r   r   rx   r   )r-   ry   s     r   	testEmptyzTestDistro.testEmpty   sZ    {{seDG9MMM{{seDG9MMMMMr   c                    | j                             d          sJ | j                             d           | j                             d          rJ | j                             d          sJ | j                             d           | j                             d          rJ | j                             d          sJ | j                             d           | j                             d          rJ d S )Nrp   rq   rr   )ry   has_contents_forr   r   s    r   testContentszTestDistro.testContents   s    y))#.....	!!#&&&9--c22222y))#.....	!!#&&&9--c22222y))#.....	!!#&&&9--c2222222r   c                    t          j        t                    5  | j                            d           d d d            n# 1 swxY w Y   t          j        t                    5  | j                            d           d d d            n# 1 swxY w Y   t          j        t                    5  | j                            ddi           d d d            n# 1 swxY w Y   t          j        t                    5  | j                            ddi           d d d            n# 1 swxY w Y   t          j        t                    5  | j                            ddi           d d d            n# 1 swxY w Y   t          j        t                    5  | j                            ddi           d d d            n# 1 swxY w Y   t          j        t                    5  | j                            dg           d d d            n# 1 swxY w Y   t          j        t                    5  | j                            dg           d d d            d S # 1 swxY w Y   d S )Nr$   )nonexistent_optionr&   r   r   r(   )rv   )r1   r2   r   ry   r   r   r   s    r   testInvalidIncludeExcludez$TestDistro.testInvalidIncludeExclude   s   ].// 	6 	6I555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6].// 	6 	6I555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6].// 	3 	3ISz222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3].// 	3 	3ISz222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3].// 	6 	6I3*555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6].// 	6 	6I3*555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 ].// 	1 	1I3%000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1].// 	1 	1I3%000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   AA	A&BBB2CC #C  D**D.1D.E88E<?E<GG
G
*HHH7I!!I%(I%N)rJ   ri   rj   r{   r   r   r   r   r   r   r   r   r   r   rn   rn      s        	
 	
 	
C C C) ) )"; ; ;2 2 2N N N3 3 31 1 1 1 1r   rn   c                     |                      d           | dz                      d           | dz                      d           | S )Nfoo
foo/bar.py 
readme.txt)mkdirwrite)tmpdirs    r   example_sourcer      sK    
LLl!!"%%%l!!"%%%Mr   c                      t          t          j        t                                         }ddg} fd|D             }||k    sJ d S )Nr   r   c                 :    g | ]}                     |          S r   )join)rb   fnr   s     r   rd   z test_findall.<locals>.<listcomp>   s'    ;;;B##B'';;;r   )listr   findallr>   r   foundexpecteds   `  r   test_findallr      s]    #C$7$78899El+H;;;;(;;;HHr   c                     |                                  5  t          t          j                              }d d d            n# 1 swxY w Y   dt          j                            dd          g}||k    sJ d S )Nr   r   zbar.py)as_cwdr   r   r   r_   r`   r   r   s      r   test_findall_curdirr      s    				 	  + +Z'))**+ + + + + + + + + + + + + + +bgll5(;;<HHs   !AA	Ac                     d}d}	 t          j        ||           n1# t          t          t          f$ r t          j        d           Y nw xY wt          j        |           dS )z/
    Skip if cannot create a symbolic link
    linktargetzCannot create symbolic linksN)r_   symlinkOSErrorNotImplementedErrorAttributeErrorr1   skipremove)r   link_fn	target_fns      r   can_symlinkr      sx    
 GI4

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

5%   Z'))**{{{{{                 s   >A!!A%(A%z$unable to exclude tests; #4475 #3260c                     t          |           5 }d |                                D             }d d d            n# 1 swxY w Y   |D ]}d|vsJ 	d S )Nc                 N    g | ]"}|                     t          j        d           #S /replacer_   seprb   r6   s     r   rd   z=test_its_own_wheel_does_not_contain_tests.<locals>.<listcomp>  (    GGGqAIIbfc**GGGr   z/tests/)r   namelist)setuptools_wheelzipfilecontentsmembers       r   )test_its_own_wheel_does_not_contain_testsr     s    	!	"	" HgGGG4D4D4F4FGGGH H H H H H H H H H H H H H H  ' '&&&&&' '   ;??c                     t          |           5 }d |                                D             }d d d            n# 1 swxY w Y   t          d |D                       sJ d S )Nc                 N    g | ]"}|                     t          j        d           #S r   r   r   s     r   rd   z3test_wheel_includes_cli_scripts.<locals>.<listcomp>  r   r   c              3      K   | ]}d |v V  	dS )z
cli-64.exeNr   rb   r   s     r   	<genexpr>z2test_wheel_includes_cli_scripts.<locals>.<genexpr>  s'      ==&|v%======r   r   r   anyr   r   r   s      r   test_wheel_includes_cli_scriptsr     s    	!	"	" HgGGG4D4D4F4FGGGH H H H H H H H H H H H H H H ==H==========r   c                     t          |           5 }d |                                D             }d d d            n# 1 swxY w Y   t          d |D                       sJ d S )Nc                 N    g | ]"}|                     t          j        d           #S r   r   r   s     r   rd   z9test_wheel_includes_vendored_metadata.<locals>.<listcomp>"  r   r   c              3   @   K   | ]}t          j        d |          V  dS )z_vendor/.*\.dist-info/METADATAN)researchr   s     r   r   z8test_wheel_includes_vendored_metadata.<locals>.<genexpr>$  s@        AG	3V<<     r   r   r   s      r   %test_wheel_includes_vendored_metadatar      s    	!	"	" HgGGG4D4D4F4FGGGH H H H H H H H H H H H H H H   KS         r   )(rI   r_   r   rH   r   r   r1   packaging.versionr   r   setuptools.dependsdependsr+   setuptools.distr   distutils.cmdr   distutils.corer   distutils.errorsr   rk   r   r   markskipifr*   rl   r   rn   r   r   r   r   usefixturesr   xfailr   r   r   r   r   r   <module>r      sx   ( ( 				 				 



        % % % % % %                     & & & & & &         $ $ $ $ $ $ 0 0 0 0 0 0   0 0 0 ##*++++ $  X% X% X% X% X% X% X% X%vW1 W1 W1 W1 W1 W1 W1 W1t        
 
 
 ''  (' @AA' ' BA'> > >    r   