
    vKg                     `   S SK r S SKrS SKrS SKJr  S SKJrJr  S SKrS SK	J
r
  S SKJrJrJr  S SKJrJr  S SKJr  SS	KJr  S S
KJrJr   " S S\\   5      rSS jr SS jr\R8                  SS j5       rS r " S S5      r " S S5      r  " S S5      r!\RD                  r# " S S5      r$g)    N)Path)Mockpatch)InvalidRequirement)ConfigHandlerTargetread_configuration)Distribution_Distribution)SetuptoolsDeprecationWarning   )DALS)DistutilsFileErrorDistutilsOptionErrorc                       \ rS rSrSrSrSrg)ErrConfigHandler   z7Erroneous handler. Fails to implement required methods.z**err** N)__name__
__module____qualname____firstlineno____doc__section_prefix__static_attributes__r       e/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/setuptools/tests/config/test_setupcfg.pyr   r      s
    ANr   r   c                     UnU R                  S5       H  nUR                  U5      nM     S nU(       d"  UR                  S5      nUR                  S5        X54$ )N/__init__.py )splitmkdirjoinwrite)namebase_dirnsdir_packagedir_name	init_files         r   make_package_dirr,      sV    KJJsO!''1 $I$$]3	!!r   c                     Uc  SnU R                  S5      R                  U5        U R                  S5      nUR                  UR                  U5      SS9  [        X@5      u  pgUR                  S5        Xe4$ )Nz%from setuptools import setup
setup()
setup.py	setup.cfgwb)modezWVERSION = (1, 2, 3)

VERSION_MAJOR = 1
def get_version():
    return [3, 4, 5, "dev"]

)r$   r%   encoder,   )tmpdir	setup_cfgsetup_pyencodingpackage_pathconfigpackage_dirr+   s           r   fake_envr:   $   sx     <
KK
!!(+[[%F
LL!!(+$L7-lCKOO	 r   c              #      #    U=(       d    0 nU R                  5          [        U5      nSUl        U=(       a    UR                  5         Uv   S S S 5        g ! , (       d  f       g = f7f)Nr.   )as_cwdr
   script_nameparse_config_files)r3   kwargs_initialparsedists       r   get_distrB   =   sJ     #)rN	N+%+$))+
 
s   A(0A	A(
A%!A(c                      [         R                  " [        5         [        S 0 S[	        5       5      n U R
                    S S S 5        g ! , (       d  f       g = f)NF)pytestraisesNotImplementedErrorr   r   parsers)handlers    r   test_parsers_implementedrI   I   s4    	*	+"4UDF; 
,	+	+s   #A
Ac                   &    \ rS rSrS rS rS rSrg)TestConfigurationReaderO   c                     [        US5      u  p#[        SU-  5      nUS   S   S:X  d   eUS   S   SS/:X  d   eUS	   S
   SS/:X  d   eg )NzX[metadata]
version = 10.1.1
keywords = one, two

[options]
scripts = bin/a.py, bin/b.py
%smetadataversion10.1.1keywordsonetwooptionsscriptszbin/a.pyzbin/b.py)r:   r	   selfr3   _r8   config_dicts        r   
test_basic"TestConfigurationReader.test_basicP   sw    -
	 )7:&y1X===:&z2uenDDD9%i0Z4LLLLr   c                     [         R                  " [        5         [        SUR	                  S5      -  5        S S S 5        g ! , (       d  f       g = f)NrN   r/   )rD   rE   r   r	   r$   rX   r3   s     r   test_no_config&TestConfigurationReader.test_no_config_   s1    ]]-.tfkk+&>>? /..s   A
Ac                    [        US5      u  p#[        R                  " [        5         [	        SU-  5        S S S 5        [	        SU-  SS9nUS   S   SS/:X  d   eS	US   ;  d   eUR                  5         g ! , (       d  f       NG= f)
Nz<[metadata]
version = attr: none.VERSION
keywords = one, two
rN   T)ignore_option_errorsrO   rR   rS   rT   rP   )r:   rD   rE   ImportErrorr	   removerW   s        r   test_ignore_errors*TestConfigurationReader.test_ignore_errorsc   s    M
	 ]];'tf}- ( )TR:&z2uenDDDJ 7777 ('s   A99
Br   N)r   r   r   r   r[   r_   re   r   r   r   r   rK   rK   O   s    M@r   rK   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestMetadatas   c                 8   [        US5        UR                  S5      R                  S5        SS0n[        X5       nUR                  nUR
                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S	S
/:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  SS/:X  d   eUR                  S:X  d   eUR                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Na-  [metadata]
version = 10.1.1
description = Some description
long_description_content_type = text/something
long_description = file: README
name = fake_name
keywords = one, two
provides = package, package.sub
license = otherlic
download_url = http://test.test.com/test/
maintainer_email = test@test.com
READMEreadme contents
line2licensezBSD 3-Clause LicenserQ   Some descriptiontext/somethingpackagezpackage.sub	fake_namerS   rT   http://test.test.com/test/test@test.com)r:   r$   r%   rB   rO   rP   descriptionlong_description_content_typelong_descriptionprovidesrm   r&   rR   download_urlmaintainer_email)rX   r3   meta_initialrA   rO   s        r   r[   TestMetadata.test_basict   s0   
1	
 	H##$<= -

 f+t}}H##x///''+====99=MMMM,,0HHHH$$M(BBBB##'======K///$$666((,HHHH,,??? ,++s   CD
Dc                     [        U[        S5      5        [        U5       nUR                  nUR                  S:X  d   eUR
                  S:X  d   eUR                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nzr
            [metadata]
            name=foo
            version=0.0.1
            license=Apache 2.0
            fooz0.0.1z
Apache 2.0)r:   r   rB   rO   r&   rP   rm   rX   r3   rA   rO   s       r   test_license_cfgTestMetadata.test_license_cfg   su    
	
 f}}H==E)))##w...##|333 s   AA..
A<c                     [        US5        UR                  S5      R                  S5        UR                  S5      R                  S5        [        U5       nUR                  R
                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nz=[metadata]
long_description = file: README.rst, CHANGES.rst

z
README.rstrl   zCHANGES.rstzchangelog contents
and stuffz2readme contents
line2
changelog contents
and stuff)r:   r$   r%   rB   rO   rv   rX   r3   rA   s      r   test_file_mixedTestMetadata.test_file_mixed   sw    N	

 	L!''(@AM"(()HIf==11G   s   A??
Bc                 P   UR                  S5        UR                  SS5      nUR                  SS9  [        US5        [        USS9 n[        R
                  " [        5         UR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nrk   depth1depth2T)dirz1[metadata]
long_description = file: ../../README
Fr@   )ensurer$   r:   rB   rD   rE   r   r>   )rX   r3   projectrA   s       r   test_file_sandboxed TestMetadata.test_file_sandboxed   sy    h++h14 OPgU+t34'') 5 ,+44 ,+s$   	B$B5B
B	B
B%c                 <   [        US5        [        U5       nUR                  nUR                  S:X  d   eUR                  S:X  d   eUR
                  S:X  d   eUR                  SS/:X  d   eUR                  SS/:X  d   e S S S 5        g ! , (       d  f       g = f)	Nz[metadata]
author_email = test@test.com
home_page = http://test.test.com/test/
summary = Short summary
platform = a, b
classifier =
  Framework :: Django
  Programming Language :: Python :: 3.5
rs   rr   zShort summaryabFramework :: Django%Programming Language :: Python :: 3.5)r:   rB   rO   author_emailurlrt   	platformsclassifiersr~   s       r   test_aliasesTestMetadata.test_aliases   s    8
	
 f}}H((O;;;<<#????''?:::%%#s333''%7,    s   A+B
Bc                     [        US5        [        U5       nUR                  nUR                  SS/:X  d   eUR                  SS/:X  d   e S S S 5        g ! , (       d  f       g = f)Nz[metadata]
name = fake_name
keywords =
  one
  two
classifiers =
  Framework :: Django
  Programming Language :: Python :: 3.5
rS   rT   r   r   )r:   rB   rO   rR   r   r~   s       r   test_multilineTestMetadata.test_multiline   sn    8
	
 f}}H$$666''%7,    s   5A
A%c                     [        US5        [        U5       nUR                  nUR                  SSS.:X  d   e S S S 5        g ! , (       d  f       g = f)Nzf[metadata]
project_urls =
  Link One = https://example.com/one/
  Link Two = https://example.com/two/
https://example.com/one/https://example.com/two/zLink OnezLink Two)r:   rB   rO   project_urlsr~   s       r   	test_dictTestMetadata.test_dict   sV    6	
 f}}H((66-    s   "A
Ac                    [        US5      u  p#UR                  S5      nUR                  S5      R                  S5        UR                  S5      R                  S5        UR                  S5      nUR                  S5      R                  S5        UR                  S5      R                  S5        [	        U5       nUR
                  R                  S	:X  d   e S S S 5        UR                  S
5        [	        U5       nUR
                  R                  S:X  d   e S S S 5        UR                  S5        [	        U5       nUR
                  R                  S:X  d   e S S S 5        UR                  S5        [	        U5       nUR
                  R                  S:X  d   e S S S 5        UR                  S5        [	        U5       nUR
                  R                  S:X  d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nz0[metadata]
version = attr: fake_package.VERSION
subpkg_ar    r!   zmod.pyzVERSION = (2016, 11, 26)subpkg_bz2import third_party_module
VERSION = (2016, 11, 26)1.2.3z4[metadata]
version = attr: fake_package.get_version
z	3.4.5.devz6[metadata]
version = attr: fake_package.VERSION_MAJOR
1z=[metadata]
version = attr: fake_package.subpkg_a.mod.VERSION
z
2016.11.26z=[metadata]
version = attr: fake_package.subpkg_b.mod.VERSION
)r:   r#   r$   r%   rB   rO   rP   )rX   r3   r9   r8   sub_asub_brA   s          r   test_versionTestMetadata.test_version   s   &H
 !!*-

=!''+

8""#=>!!*-

=!''+

8""A	
 f==((G333  	MNf==((K777  	OPf==((C///  	VWf==((L888  	VWf==((L888 !     s<   <G+>G= HHH0+
G:=
H
H
H-0
H>c                    [        US5        UR                  SS5      R                  S5        [        U5       nUR                  R
                  S:X  d   e S S S 5        UR                  SS5      R                  S5        [        R                  " [        5         [        U5       nUR                  R
                    S S S 5        S S S 5        g ! , (       d  f       N}= f! , (       d  f       N(= f! , (       d  f       g = f)Nz4[metadata]
version = file: fake_package/version.txt
fake_packagezversion.txtz1.2.3
r   z1.2.3
4.5.6
)	r:   r$   r%   rB   rO   rP   rD   rE   r   r   s      r   test_version_fileTestMetadata.test_version_file"  s    QRNM288Cf==((G333  	NM2889IJ]]/0&!T%% " 10	 
 "! 10s/   CC0&C=C0
C
C-	)C00
C>c                     [        USSS9  [        U5       nUR                  R                  S:X  d   e S S S 5        g ! , (       d  f       g = f)NzY[metadata]
version = attr: fake_package_simple.VERSION
[options]
package_dir =
    = src
zsrc/fake_package_simpler7   r   r:   rB   rO   rP   r   s      r   $test_version_with_package_dir_simple1TestMetadata.test_version_with_package_dir_simple.  sG    
 3	
 f==((G333 	   >
Ac                     [        USSS9  [        U5       nUR                  R                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nzr[metadata]
version = attr: fake_package_rename.VERSION
[options]
package_dir =
    fake_package_rename = fake_dir
fake_dirr   r   r   r   s      r   $test_version_with_package_dir_rename1TestMetadata.test_version_with_package_dir_rename<  sG    3
 $	
 f==((G333 r   c                     [        USSS9  [        U5       nUR                  R                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nzx[metadata]
version = attr: fake_package_complex.VERSION
[options]
package_dir =
    fake_package_complex = src/fake_dir
zsrc/fake_dirr   r   r   r   s      r   %test_version_with_package_dir_complex2TestMetadata.test_version_with_package_dir_complexJ  sG    8
 (	
 f==((G333 r   c                     [        US5        [        USS9 nUR                  5         S S S 5        g ! , (       d  f       g = f)Nz+[metadata]
name = fake_name
unknown = some
Fr   )r:   rB   r>   r   s      r   test_unknown_meta_item#TestMetadata.test_unknown_meta_itemX  s1    IJfE*d##% +**s   1
?c                     [        US5        [        USS9 n[        R                  " [        5         UR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz[metadata.some]
key = val
Fr   r:   rB   rD   rE   r   r>   r   s      r   test_usupported_section$TestMetadata.test_usupported_section]  sO    78fE*d34'') 5 +*44 +*"   A%AA%
A"	A%%
A3c                    [        / SQ5      n[        US5      u  p4UR                  S5      R                  S5        [	        U5       n[        UR
                  R                  5      U:X  d   e S S S 5        UR                  S5        [	        U5       n[        UR
                  R                  5      U:X  d   e S S S 5        g ! , (       d  f       NZ= f! , (       d  f       g = f)N)r   z#Programming Language :: Python :: 3r   z+[metadata]
classifiers = file: classifiers
r   z^Framework :: Django
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
z[metadata]
classifiers =
    Framework :: Django
    Programming Language :: Python :: 3
    Programming Language :: Python :: 3.5
)setr:   r$   r%   rB   rO   r   )rX   r3   expectedrY   r8   rA   s         r   test_classifiersTestMetadata.test_classifiersc  s     
  V%TU	M"((6	
 ft}}001X===  	:	
 ft}}001X===   s   &C&C
C
C!c                     [        US5        [        R                  " [        R                  5         [        U5          S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz%[metadata]
description = %(message)s
)r:   rD   rE   configparserInterpolationMissingOptionErrorrB   r^   s     r   test_interpolationTestMetadata.test_interpolation  sI    BC]]<GGH&! " IH!! IHs!   A!AA!
A	A!!
A/c                 f    [        USSS9  [        U5          S S S 5        g ! , (       d  f       g = f)Nu$   [metadata]
description = éàïôñ
utf-8r6   r:   rB   r^   s     r   test_non_ascii_1TestMetadata.test_non_ascii_1  s&    AGTf s   "
0c                 h    [        US5        [        U5          S S S 5        g ! , (       d  f       g = f)Nz
# -*- coding: invalid
r   r^   s     r   test_non_ascii_3TestMetadata.test_non_ascii_3  s$    45f s   #
1c                     [        USSS9  [        U5       nUR                  R                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nu8   # -*- coding: utf-8
[metadata]
description = éàïôñ
r   r   u
   éàïôñ)r:   rB   rO   rt   r   s      r   test_non_ascii_4TestMetadata.test_non_ascii_4  sC    I	

 f==,,<<< r   c                     [        USSS9  [        R                  " [        5         [	        U5          SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)z-
Config files encoded not in UTF-8 will fail
uJ   # vim: set fileencoding=iso-8859-15 :
[metadata]
description = éàïôñ
ziso-8859-15r   N)r:   rD   rE   UnicodeDecodeErrorrB   r^   s     r   test_not_utf8TestMetadata.test_not_utf8  sL     	["	

 ]]-.&! " /.!! /.s!   AAA
A	A
A$c                 0   [        US5        Sn[        R                  " [        US9   [	        U5       nUR
                  nS S S 5        S S S 5        WR                  S:X  d   eUR                  S:X  d   eg ! , (       d  f       N;= f! , (       d  f       ND= f)NzG[metadata]
author-email = test@test.com
maintainer_email = foo@foo.com
z<Usage of dash-separated 'author-email' will not be supportedmatchrs   zfoo@foo.com)r:   rD   warnsr   rB   rO   r   ry   rX   r3   msgrA   rO   s        r   test_warn_dash_deprecation'TestMetadata.test_warn_dash_deprecation  s     	/	
 M\\6cB&!T== " C $$777((M999	 "! CB"   BA6B6
B	 B
Bc                 0   [        US5        Sn[        R                  " [        US9   [	        U5       nUR
                  nS S S 5        S S S 5        WR                  S:X  d   eUR                  S:X  d   eg ! , (       d  f       N;= f! , (       d  f       ND= f)Nz5[metadata]
Name = foo
description = Some description
zAUsage of uppercase key 'Name' in 'metadata' will not be supportedr   r}   rn   )r:   rD   r   r   rB   rO   r&   rt   r   s        r   test_make_option_lowercase'TestMetadata.test_make_option_lowercase  s}     	STQ\\6cB&!T== " C }}%%%##'9999	 "! CBr   r   N)r   r   r   r   r[   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   rh   s   ss    #@J4(*0( 9D
&444&
*><

=:"
:r   rh   c                      \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  R                  S
/ SQ5      S 5       r\R                  R                  S
/ SQ5      S 5       r\R                  R                  S
/ SQ5      \R                  R#                  S5      S 5       5       rS rS rS rS rS rS rS rS rS rS rSrg)TestOptionsi  c                    [        US5        [        R                  " [        SS9nU   [	        U5       nUR
                  (       d   eUR                  (       d   eUR                  SSS.:X  d   eUR                  SS/:X  d   eUR                  S	S
/:X  d   eUR                  SS/:X  d   eUR                  SS/:X  d   eUR                  / SQ:X  d   eUR                  / SQ:X  d   eUR                  S:X  d   eUR                  SS/:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Na  [options]
zip_safe = True
include_package_data = yes
package_dir = b=c, =src
packages = pack_a, pack_b.subpack
namespace_packages = pack1, pack2
scripts = bin/one.py, bin/two.py
eager_resources = bin/one.py, bin/two.py
install_requires = docutils>=0.3; pack ==1.1, ==1.3; hey
setup_requires = docutils>=0.3; spack ==1.1, ==1.3; there
dependency_links = http://some.com/here/1, http://some.com/there/2
python_requires = >=1.0, !=2.8
py_modules = module1, module2
namespace_packagesr   srccr!   r   pack_apack_b.subpackpack1pack2
bin/one.py
bin/two.pyhttp://some.com/here/1http://some.com/there/2docutils>=0.3pack==1.1,==1.3heyr   zspack ==1.1, ==1.3therez>=1.0, !=2.8module1module2)r:   rD   r   r   rB   zip_safeinclude_package_datar9   packagesr   rV   dependency_linksinstall_requiressetup_requirespython_requires
py_modulesrX   r3   deprecrA   s       r   r[   TestOptions.test_basic  sQ   .	
" :BVWXf%== =,,,,##E'<<<<==X/?$@@@@**w.@@@@<<L,#????((().    (( .   
 && ,   
 ''>999??y)&<<<<- &VV%%VVs#   D1CD D1 
D.	*D11
D?c                    [        US5        [        R                  " [        SS9nU   [	        U5       nUR
                  SSS.:X  d   eUR                  SS/:X  d   eUR                  S	S
/:X  d   eUR                  SS/:X  d   eUR                  SS/:X  d   eUR                  / SQ:X  d   eUR                  / SQ:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Na  [options]
package_dir = 
  b=c
  =src
packages = 
  pack_a
  pack_b.subpack
namespace_packages = 
  pack1
  pack2
scripts = 
  bin/one.py
  bin/two.py
eager_resources = 
  bin/one.py
  bin/two.py
install_requires = 
  docutils>=0.3
  pack ==1.1, ==1.3
  hey
setup_requires = 
  docutils>=0.3
  spack ==1.1, ==1.3
  there
dependency_links = 
  http://some.com/here/1
  http://some.com/there/2
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r:   rD   r   r   rB   r9   r  r   rV   r  r  r  r
  s       r   r   TestOptions.test_multiline  s	   *	
< :BVWXf%##E'<<<<==X/?$@@@@**w.@@@@<<L,#????((().    (( .   
 && ,    &VV%%VVs#   C%BCC%
C"	C%%
C3c                     [        US5        [        USS9 n[        R                  " [        5         UR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz[options]
package_dir = a b
Fr   r   r   s      r   test_package_dir_fail!TestOptions.test_package_dir_fail%  sO    9:fE*d34'') 5 +*44 +*r   c                     [        US5        [        U5       nUR                  SS/S/S.:X  d   eUR                  SS/S/S.:X  d   e S S S 5        g ! , (       d  f       g = f)	Nz}[options.package_data]
* = *.txt, *.rst
hello = *.msg

[options.exclude_package_data]
* = fake1.txt, fake2.txt
hello = *.dat
z*.txtz*.rstz*.msg)r!   helloz	fake1.txtz	fake2.txtz*.dat)r:   rB   package_dataexclude_package_datar   s      r   test_package_dataTestOptions.test_package_data+  s    		
 f$$g&!)    ,, +.!1       1A
A!c                     [        US5        [        U5       nUR                  S/:X  d   e S S S 5        g ! , (       d  f       g = f)N[options]
packages = find:
r   )r:   rB   r  r   s      r   test_packagesTestOptions.test_packagesA  s8    89f==^$4444 s	   6
Ac                 6   [        US5      u  p#[        SU5        [        SU5        [        U5       n[        UR                  5      [        / SQ5      :X  d   e S S S 5        UR                  S5        [        U5       nUR                  S/:X  d   e S S S 5        UR                  S5        [        U5       n[        UR                  5      [        SS	/5      :X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       g = f)
Nr  sub_onesub_two)r   fake_package.sub_twofake_package.sub_onezi[options]
packages = find:

[options.packages.find]
where = .
include =
    fake_package.sub_one
    two
r!  zW[options]
packages = find:

[options.packages.find]
exclude =
    fake_package.sub_one
r   r   r:   r,   rB   r   r  r%   rX   r3   r)   r8   rA   s        r   test_find_directiveTestOptions.test_find_directiveG  s    &v/NOK0K0ft}}% . *     			
 f==%;$<<<<  	)	
 ft}}%n>T-U)VVVV 9 "  s#   'C(>C97'D
(
C69
D

Dc                    [        US5      u  p#[        SU5        [        SUSS9  [        U5       n[        UR                  5      1 Sk:X  d   e S S S 5        UR                  S5        [        U5       nUR                  S/:X  d   e S S S 5        UR                  S	5        [        U5       n[        UR                  5      S
S1:X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = f)Nz%[options]
packages = find_namespace:
r  r  T)r(   >   r   r!  r   zs[options]
packages = find_namespace:

[options.packages.find]
where = .
include =
    fake_package.sub_one
    two
r!  za[options]
packages = find_namespace:

[options.packages.find]
exclude =
    fake_package.sub_one
r   r   r"  r#  s        r   test_find_namespace_directive)TestOptions.test_find_namespace_directivel  s    &=
 	K0KD9ft}}% *     			
 f==%;$<<<<  	)	
 ft}}%.:P)QQQQ 9 "  s#   C4C&-C7
C#&
C47
Dc                     [        US5        [        U5       nUR                  SS/SS/S.:X  d   e[        UR                  R
                  5      SS1:X  d   e S S S 5        g ! , (       d  f       g = f)	Nz_[options.extras_require]
pdf = ReportLab>=1.2; RXP
rest = 
  docutils>=0.3
  pack ==1.1, ==1.3
zReportLab>=1.2RXPr   r   )pdfrestr+  r,  )r:   rB   extras_requirer   rO   provides_extrasr   s      r   test_extras_requireTestOptions.test_extras_require  s{    $	
 f&&(%0(*;<+    t}}445%HHH s   AA##
A1r8   )z5[options.extras_require]
foo = bar;python_version<'3'z3[options.extras_require]
foo = bar;os_name=='linux'z6[options.extras_require]
foo = bar;python_version<'3'
z4[options.extras_require]
foo = bar;os_name=='linux'
z3[options]
install_requires = bar;python_version<'3'z1[options]
install_requires = bar;os_name=='linux'z4[options]
install_requires = bar;python_version<'3'
z2[options]
install_requires = bar;os_name=='linux'
c                     [        X!5        Sn[        R                  " [        US9   [	        U5       n S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fNzoOne of the parsed requirements in `(install_requires|extras_require.+)` looks like a valid environment marker.*r   )r:   rD   rE   r   rB   rX   r8   r3   r   rY   s        r   +test_raises_accidental_env_marker_misconfig7TestOptions.test_raises_accidental_env_marker_misconfig  sQ     	 6 	 ]]-U;&!Q " <;!! <;!   AAA
A	A
A%)z3[options.extras_require]
foo = bar;python_version<3z4[options.extras_require]
foo = bar;python_version<3
z1[options]
install_requires = bar;python_version<3z2[options]
install_requires = bar;python_version<3
c                     [        X!5        Sn[        R                  " [        US9   [	        U5       n S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fr2  )r:   rD   r   r   rB   r3  s        r   )test_warn_accidental_env_marker_misconfig5TestOptions.test_warn_accidental_env_marker_misconfig  sS     	 6 	 \\6eD&!Q " ED!! EDr6  )
z9[options.extras_require]
foo =
    bar;python_version<'3'z4[options.extras_require]
foo = bar;baz
boo = xxx;yyyz:[options.extras_require]
foo =
    bar;python_version<'3'
z5[options.extras_require]
foo = bar;baz
boo = xxx;yyy
z<[options.extras_require]
foo =
    bar
    python_version<3
z7[options]
install_requires =
    bar;python_version<'3'z2[options]
install_requires = bar;baz
boo = xxx;yyyz8[options]
install_requires =
    bar;python_version<'3'
z3[options]
install_requires = bar;baz
boo = xxx;yyy
z:[options]
install_requires =
    bar
    python_version<3
z.error::setuptools.SetuptoolsDeprecationWarningc                     [        X!5        [        U5      n[        U5       n S S S 5        [        U5      U:X  d   eg ! , (       d  f       N = f)N)r:   lenrB   )rX   r8   r3   recwarnnum_warningsrY   s         r   +test_nowarn_accidental_env_marker_misconfig7TestOptions.test_nowarn_accidental_env_marker_misconfig  sD    " 	 7|f  7||+++ s	   >
Ac                     [        US5        [        U5       nUR                  S/S/S.:X  d   e S S S 5        g ! , (       d  f       g = f)Nz2[options.extras_require]
foo-a = foo
foo_b = test
r}   test)zfoo-afoo_b)r:   rB   r-  r   s      r   "test_dash_preserved_extras_require.TestOptions.test_dash_preserved_extras_require  s@    PQf&&UGvh*OOOO s	   :
Ac                 r   [        US5      u  p#[        U5       nUR                  SS/S/S.:X  d   e S S S 5        SnUR                  S5      R	                  U5        UR	                  S5        [        U5       nUR                  U:X  d   e S S S 5        g ! , (       d  f       Ni= f! , (       d  f       g = f)	Nz[options.entry_points]
group1 = point1 = pack.module:func, .point2 = pack.module2:func_rest [rest]
group2 = point3 = pack.module:func2
point1 = pack.module:func'.point2 = pack.module2:func_rest [rest]point3 = pack.module:func2)group1group2zN[blogtool.parsers]
.rst = some.nested.module:SomeClass.some_classmethod[reST]
entry_pointsz,[options]
entry_points = file: entry_points
)r:   rB   rK  r$   r%   )rX   r3   rY   r8   rA   r   s         r   test_entry_pointsTestOptions.test_entry_points  s    4
	 f$$/= 88)    K 	
 	N#))(3 	EFf$$000 ' & s   B:B(
B%(
B6c                     [        US5        [        U5       nUR                  SS/S/S.:X  d   e S S S 5        g ! , (       d  f       g = f)Nz[options.entry_points]
GROUP1 = point1 = pack.module:func, .point2 = pack.module2:func_rest [rest]
group2 = point3 = pack.module:func2
rF  rG  rH  )GROUP1rJ  )r:   rB   rK  r   s      r    test_case_sensitive_entry_points,TestOptions.test_case_sensitive_entry_points  sZ    4	
 f$$/= 88)    s	   ;
A	c                     [        US5        [        U5       nSSS/4SSS/4/n[        UR                  5      [        U5      :X  d   e S S S 5        g ! , (       d  f       g = f)NzQ[options.data_files]
cfg =
      a/b.conf
      c/d.conf
data = e/f.dat, g/h.dat
cfga/b.confc/d.confdataze/f.datzg/h.dat)r:   rB   sorted
data_filesrX   r3   rA   r   s       r   test_data_filesTestOptions.test_data_files  si    (	
 fZ01)Y/0H $//*fX.>>>> r  c                    [        US5        UR                  S5      R                  S5        UR                  S5      R                  S5        UR                  S5      R                  S5        UR                  S5      R                  S5        UR                  S5      R                  S5        UR                  S5      R                  S5        UR                  S	5      R                  S5        UR                  S
5      R                  S5        UR                  S5      R                  S5        [        U5       nSSS/4S/ SQ4S/ SQ4S/ SQ4/n[	        UR
                  5      [	        U5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nz[options.data_files]
cfg =
      a/b.conf
      c/d.conf
data = *.dat
icons = 
      *.ico
audio = 
      *.wav
      sounds.db
a.datr!   b.datc.data.icob.icoc.icobeep.wavboop.wav	sounds.dbrS  rT  rU  rV  )r]  r^  r_  icons)r`  ra  rb  audio)rc  rd  re  )r:   r$   r%   rB   rW  rX  rY  s       r   test_data_files_globby"TestOptions.test_data_files_globby.  sF   	 	
 	G""2&G""2&G""2&G""2&G""2&G""2&J%%b)J%%b)K &&r*fZ014556?@	H $//*fX.>>>> s   8;E==
Fc                     [        U[        S5      5        [        U5       nUR                  5         S S S 5        g ! , (       d  f       g = f)NzE
            [options]
            python_requires=>=2.7
            r:   r   rB   r>   r   s      r   test_python_requires_simple'TestOptions.test_python_requires_simpleQ  >    	
 f##% 	   ;
A	c                     [        U[        S5      5        [        U5       nUR                  5         S S S 5        g ! , (       d  f       g = f)NzM
            [options]
            python_requires=>=2.7,!=3.0.*
            rk  r   s      r   test_python_requires_compound)TestOptions.test_python_requires_compound^  rn  ro  c                     [        U[        S5      5        [        R                  " [        5         [        U5       nUR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NzG
            [options]
            python_requires=invalid
            )r:   r   rD   rE   	ExceptionrB   r>   r   s      r   test_python_requires_invalid(TestOptions.test_python_requires_invalidk  s[    	
 ]]9%&!T'') " &%!! &%s"   A/AA/
A,	(A//
A=c                    [        US5      nUR                  R                  SSS9  UR                  SSS9  Sn[	        U[
        R                  " U5      5        [        U5       nUR                  S   nUR                  S	:X  d   eUR                  S
:X  d   eUR                  [
        R                  " U5      5      (       d   e S S S 5        g ! , (       d  f       g = f)Nzsrc/custom_build.pyT)parentsexist_okzBfrom distutils.core import Command
class CustomCmd(Command): pass
r   r   zi
            [options]
            cmdclass =
                customcmd = custom_build.CustomCmd
        	customcmd	CustomCmdcustom_build)r   parentr#   
write_textr:   inspectcleandocrB   cmdclassr   r   samefilegetfile)rX   r3   module_pathr4   rA   r  s         r   test_cmdclassTestOptions.test_cmdclassy  s    6#89   =R 	 	

	
 	)))45f}}[1H$$333&&.888''(ABBBB	 s   $A C
Cc                 J   [        U[        S5      5        UR                  S5      R                  S5        UR                  S5      R                  S5        [	        U5       nUR
                  S/:X  d   eUR                  SS/0:X  d   e S S S 5        g ! , (       d  f       g = f)Nz
            [options]
            install_requires = file:requirements.txt
            [options.extras_require]
            colors = file:requirements-extra.txt
            zrequirements.txtz
docutils>=0.3

zrequirements-extra.txtcoloramar   colors)r:   r   r$   r%   rB   r  r-  r   s      r   test_requirements_file"TestOptions.test_requirements_file  s    
	
 	&'--.CD,-33J?f((_,====&&8j\*BBBB s   !)B
B"r   N)r   r   r   r   r[   r   r  r  r  r$  r'  r/  rD   markparametrizer4  r8  filterwarningsr>  rC  rL  rP  rZ  rh  rl  rq  ru  r  r  r   r   r   r   r   r     s   )=V2h*,5#WJ%RNI" [[		
 [[	
 [[	
 [[ PQ, R ,P1>$?"!?F&&*C*Cr   r   c                   J    \ rS rSrS r\R                  " \SSS9S 5       rSr	g)	TestExternalSettersi  c                 d    [        X5        SUR                  l        SSS.UR                  l        g )Nro   r   r   r   )saved_dist_initrO   ru   r   )rX   rA   attrss      r   _fake_distribution_init+TestExternalSetters._fake_distribution_init  s,    $6F3 32&
"r   __init__T)autospecc                     U R                   Ul        [        SSS00S9nUR                  R                  S:X  d   eUR                  R
                  SSS.:X  d   eg )	Nr   will_beignored)r  ro   r   r   r   )r  side_effectr
   rO   ru   r   )rX   mock_parent_initr3   rA   s       r   test_external_setters)TestExternalSetters.test_external_setters  se    '+'C'C$>Iy3I"JK}}::>NNNN}}))22.
 
 	
 
r   r   N)
r   r   r   r   r  r   objectr   r  r   r   r   r   r  r    s(    
 \\-d;	
 <	
r   r  )F)Nasciir   )NT)%r   
contextlibr  pathlibr   unittest.mockr   r   rD   packaging.requirementsr   setuptools.config.setupcfgr   r   r	   setuptools.distr
   r   setuptools.warningsr   textwrapr   distutils.errorsr   r   r   r,   r:   contextmanagerrB   rI   rK   rh   r   r  r  r  r   r   r   <module>r     s        %  5 P P 7 <  E}V, " FT2  ! !HO: O:d
[C [C|  ((
 
r   