zddlZddlZddlZddlZddlmZddlmZmZddl Z ddl m Z ddl m Z mZmZddlmZmZddlmZdd lmZdd lmZmZGd d e eZddZ ddZejddZdZGddZ GddZ!GddZ"ej#Z$GddZ%dS) N)Path)Mockpatch)InvalidRequirement) ConfigHandlerTargetread_configuration) Distribution _Distribution)SetuptoolsDeprecationWarning)DALS)DistutilsFileErrorDistutilsOptionErrorceZdZdZdZdS)ErrConfigHandlerz7Erroneous handler. Fails to implement required methods.z**err**N)__name__ __module__ __qualname____doc__section_prefixw/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/setuptools/tests/config/test_setupcfg.pyrrsAANNNrrFc|}|dD]}||}d}|s*|d}|d||fS)N/ __init__.py)splitmkdirjoinwrite)namebase_dirns dir_packagedir_name init_files rmake_package_dirr)srKJJsOO22!''11 I $$]33   !!rascii fake_packagec0|d}|d||d}|||dt||\}}|d||fS)Nz%from setuptools import setup setup() setup.py setup.cfgwb)modezWVERSION = (1, 2, 3) VERSION_MAJOR = 1 def get_version(): return [3, 4, 5, "dev"] )r!r"encoder))tmpdir setup_cfgsetup_pyencoding package_pathconfig package_dirr(s rfake_envr9%s< KK !!(+++ [[ % %F LL!!(++$L777-lFCCK OO   rTc#K|pi}|5t|}d|_|o||VddddS#1swxYwYdS)Nr-)as_cwdr script_nameparse_config_files)r2kwargs_initialparsedists rget_distrA>s#)rN N++% +$))++ s1AA Actjt5tdidt }|jddddS#1swxYwYdS)NF)pytestraisesNotImplementedErrorrrparsers)handlers rtest_parsers_implementedrHJs * + +"4UDFF;;s&A  AAc eZdZdZdZdZdS)TestConfigurationReaderct|d\}}tt|}|dddksJ|ddddgksJ|dd d d gksJdS) NzX[metadata] version = 10.1.1 keywords = one, two [options] scripts = bin/a.py, bin/b.py metadataversion10.1.1keywordsonetwooptionsscriptszbin/a.pyzbin/b.py)r9r strselfr2_r7 config_dicts r test_basicz"TestConfigurationReader.test_basicQs  -  6)V55 :&y1X====:&z2uenDDDD9%i0Z4LLLLLLLrctjt5tt |dddddS#1swxYwYdS)Nr.)rCrDrr rTr!rVr2s rtest_no_configz&TestConfigurationReader.test_no_config`s ]- . . > > s6;;{#;#;<< = = = > > > > > > > > > > > > > > > > > >s0AAAcnt|d\}}tjt5t t |dddn #1swxYwYt t |d}|ddddgksJd|dvsJ|dS) Nz<[metadata] version = attr: none.VERSION keywords = one, two T)ignore_option_errorsrLrOrPrQrM)r9rCrD ImportErrorr rTremoverUs rtest_ignore_errorsz*TestConfigurationReader.test_ignore_errorsds  M  6]; ' ' , , s6{{ + + + , , , , , , , , , , , , , , ,)V4PPP :&z2uenDDDD J 77777 sAAAN)rrrrYr\rarrrrJrJPsD M M M>>>     rrJc eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZejddedddifdedddifgdZdS) TestMetadatact|d|ddddi}t||5}|j}|jdksJ|jdksJ|jdksJ|jdksJ|j d d gksJ|j dksJ|j d ksJ|j d d gksJ|j dksJ|jdksJ ddddS#1swxYwYdS)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 READMEreadme contents line2licensezBSD 3-Clause LicenserNzSome descriptiontext/somethingpackagez package.sub fake_namerPrQhttp://test.test.com/test/ test@test.com)r9r!r"rArLrM descriptionlong_description_content_typelong_descriptionprovidesrgr#rO download_urlmaintainer_email)rVr2 meta_initialr@rLs rrYzTestMetadata.test_basicus  1   H##$<=== - fl + + @t}H#x////'+=====9=MMMMM,0HHHHH$M(BBBBB#'======K////$6666(,HHHHH,????? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s BC))C-0C-ct|tdt|5}|j}|jdksJ|jdksJ|jdksJ ddddS#1swxYwYdS)Nzr [metadata] name=foo version=0.0.1 license=Apache 2.0 fooz0.0.1z Apache 2.0)r9rrArLr#rMrgrVr2r@rLs rtest_license_cfgzTestMetadata.test_license_cfgs     f   4}H=E))))#w....#|33333  4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s/A**A.1A.c<t|d|dd|ddt|5}|jjdksJ ddddS#1swxYwYdS)Nz=[metadata] long_description = file: README.rst, CHANGES.rst z README.rstrfz CHANGES.rstzchangelog contents and stuffz2readme contents line2 changelog contents and stuff)r9r!r"rArLrorVr2r@s rtest_file_mixedzTestMetadata.test_file_mixeds  N    L!!''(@AAA M""(()HIII f   =1G                  s0BBBc|d|dd}|dt|dt|d5}t jt 5|dddn #1swxYwYddddS#1swxYwYdS) Nredepth1depth2T)dirz1[metadata] long_description = file: ../../README Fr?)ensurer!r9rArCrDrr=)rVr2projectr@s rtest_file_sandboxedz TestMetadata.test_file_sandboxeds8 h++h114   OPPP gU + + + *t344 * *''))) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *s6#B6=B B6B" "B6%B" &B66B:=B:ct|dt|5}|j}|jdksJ|jdksJ|jdksJ|jddgksJ|jddgksJ ddddS#1swxYwYdS) 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 rlrkz Short summaryabFramework :: Django%Programming Language :: Python :: 3.5)r9rArL author_emailurlrm platforms classifiersrvs r test_aliaseszTestMetadata.test_aliasess  8 f   }H(O;;;;<#?????'?::::%#s3333'%7,                  sA A;;A?A?ct|dt|5}|j}|jddgksJ|jddgksJ ddddS#1swxYwYdS)Nz[metadata] name = fake_name keywords = one two classifiers = Framework :: Django Programming Language :: Python :: 3.5 rPrQrr)r9rArLrOrrvs rtest_multilinezTestMetadata.test_multilines  8 f   }H$6666'%7,                  s&AAAct|dt|5}|j}|jdddksJ ddddS#1swxYwYdS)Nzf[metadata] project_urls = Link One = https://example.com/one/ Link Two = https://example.com/two/ https://example.com/one/https://example.com/two/zLink OnezLink Two)r9rArL project_urlsrvs r test_dictzTestMetadata.test_dicts  6   f   }H(66--                  sAA  A ct|d\}}|d}|dd|dd|d}|dd|ddt |5}|jjd ksJ dddn #1swxYwY|d t |5}|jjd ksJ dddn #1swxYwY|d t |5}|jjd ksJ dddn #1swxYwY|dt |5}|jjdksJ dddn #1swxYwY|dt |5}|jjdksJ ddddS#1swxYwYdS)Nz0[metadata] version = attr: fake_package.VERSION subpkg_arrzmod.pyzVERSION = (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 )r9r r!r"rArLrM)rVr2r8r7sub_asub_br@s r test_versionzTestMetadata.test_versions& H   V!!*-- =!!''+++ 8""#=>>>!!*-- =!!''+++ 8"" A   f   4=(G33333 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4  MNNN f   8=(K77777 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8  OPPP f   0=(C///// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  VWWW f   9=(L88888 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9  VWWW f   9=(L88888 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9sZ-D  DD<EE #E  F++F/2F/G::G>G>)I  IIct|d|dddt|5}|jjdksJ dddn #1swxYwY|dddt jt5t|5}|jjdddn #1swxYwYddddS#1swxYwYdS)Nz4[metadata] version = file: fake_package/version.txt r+z version.txtz1.2.3 rz 1.2.3 4.5.6 ) r9r!r"rArLrMrCrDrrys rtest_version_filezTestMetadata.test_version_file#sQRRR NM2288CCC f   4=(G33333 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4  NM22889IJJJ ]/ 0 0 & &&!! &T %% & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &sH A))A-0A-6C7 C C7C# #C7&C# 'C77C;>C;ct|ddt|5}|jjdksJ ddddS#1swxYwYdS)NzY[metadata] version = attr: fake_package_simple.VERSION [options] package_dir = = src zsrc/fake_package_simpler6rr9rArLrMrys r$test_version_with_package_dir_simplez1TestMetadata.test_version_with_package_dir_simple/s   3    f   4=(G33333 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4AA Act|ddt|5}|jjdksJ ddddS#1swxYwYdS)Nzr[metadata] version = attr: fake_package_rename.VERSION [options] package_dir = fake_package_rename = fake_dir fake_dirrrrrys r$test_version_with_package_dir_renamez1TestMetadata.test_version_with_package_dir_rename=s  3 $    f   4=(G33333 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4rct|ddt|5}|jjdksJ ddddS#1swxYwYdS)Nzx[metadata] version = attr: fake_package_complex.VERSION [options] package_dir = fake_package_complex = src/fake_dir z src/fake_dirrrrrys r%test_version_with_package_dir_complexz2TestMetadata.test_version_with_package_dir_complexKs  8 (    f   4=(G33333 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4rct|dt|d5}|ddddS#1swxYwYdS)Nz+[metadata] name = fake_name unknown = some Fr)r9rAr=rys rtest_unknown_meta_itemz#TestMetadata.test_unknown_meta_itemYsIJJJ fE * * * &d  # # % % % & & & & & & & & & & & & & & & & & &sAA Act|dt|d5}tjt5|dddn #1swxYwYddddS#1swxYwYdS)Nz[metadata.some] key = val Frr9rArCrDrr=rys rtest_usupported_sectionz$TestMetadata.test_usupported_section^s7888 fE * * * *d344 * *''))) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *4A5A A5A! !A5$A! %A55A9<A9ctgd}t|d\}}|ddt |5}t|jj|ksJ dddn #1swxYwY|dt |5}t|jj|ksJ ddddS#1swxYwYdS)N)rz#Programming Language :: Python :: 3rz+[metadata] classifiers = file: classifiers rz^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 )setr9r!r"rArLr)rVr2expectedrWr7r@s rtest_classifierszTestMetadata.test_classifiersds     V%TUU 6 M""(( 6   f   >t}011X===== > > > > > > > > > > > > > > >   :   f   >t}011X===== > > > > > > > > > > > > > > > > > >s$ B  B B 8 C&&C*-C*ct|dtjtj5t |5 dddn #1swxYwYddddS#1swxYwYdS)Nz%[metadata] description = %(message)s )r9rCrD configparserInterpolationMissingOptionErrorrAr[s rtest_interpolationzTestMetadata.test_interpolationsBCCC ]<G H H  &!!                                   s4A%A  A% A A%A A%%A),A)c|t|ddt|5 ddddS#1swxYwYdS)Nu$[metadata] description = éàïôñ utf-8r5r9rAr[s rtest_non_ascii_1zTestMetadata.test_non_ascii_1sAGTTTT f                       s 155cxt|dt|5 ddddS#1swxYwYdS)Nz # -*- coding: invalid rr[s rtest_non_ascii_3zTestMetadata.test_non_ascii_3s4555 f                       s /33ct|ddt|5}|jjdksJ ddddS#1swxYwYdS)Nu8# -*- coding: utf-8 [metadata] description = éàïôñ rru éàïôñ)r9rArLrmrys rtest_non_ascii_4zTestMetadata.test_non_ascii_4s  I    f   ==, <<<<< = = = = = = = = = = = = = = = = = =rct|ddtjt5t |5 dddn #1swxYwYddddS#1swxYwYdS)z= Config files encoded not in UTF-8 will fail uJ# vim: set fileencoding=iso-8859-15 : [metadata] description = éàïôñ z iso-8859-15rN)r9rCrDUnicodeDecodeErrorrAr[s r test_not_utf8zTestMetadata.test_not_utf8s   ["    ]- . .  &!!                                   s3A"A  A" A A"A A""A&)A&) error_msgr7invalidzCInvalid dash-separated key 'author-email' in 'metadata' (setup.cfg)z [metadata] author-email = test@test.com maintainer_email = foo@foo.com z author-emailrlz6Invalid uppercase key 'Name' in 'metadata' (setup.cfg)z [metadata] Name = foo description = Some description Nameruct||tjtt j|5t |}dddn #1swxYwY|d | D]H\}}| dd }t|j||ksJIdS)Nmatchr.-rW)r9rCwarnsr reescaperA __enter__r!r`itemsreplacelowergetattrrL) rVr2rr7rr@fieldvalueattrs r*test_invalid_options_previously_deprecatedz7TestMetadata.test_invalid_options_previously_deprecateds'B    \6bi >R>R S S S 0 0F##--//D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  K  '')))#MMOO 9 9LE5==c**0022D4=$//588888 9 9s"A,,A03A0N)rrrrYrwrzrrrrrrrrrrrrrrrrrrCmark parametrizerrrrrrcrcts#@#@#@J444(   ***0(    9 9 9D & & & 4 4 4 4 4 4 4 4 4&&& *** >>><   ===    [*V 1 I  69976999rrcceZdZdZdZdZdZdZdZdZ dZ e j d gd d Ze j d gd d Ze j d gde j ddZdZdZdZdZdZdZdZdZdZdZdS) TestOptionsct|dtjtd}|5t |5}|jsJ|jsJ|jdddksJ|jddgksJ|j d d gksJ|j d d gksJ|j d dgksJ|j gdksJ|j gdksJ|jdksJ|jddgksJ dddn #1swxYwYddddS#1swxYwYdS)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_packagesrsrccrrpack_apack_b.subpackpack1pack2 bin/one.py bin/two.pyhttp://some.com/here/1http://some.com/there/2 docutils>=0.3pack==1.1,==1.3heyrzspack ==1.1, ==1.3therez >=1.0, !=2.8module1module2)r9rCrr rAzip_safeinclude_package_datar8packagesrrSdependency_linksinstall_requiressetup_requirespython_requires py_modulesrVr2deprecr@s rrYzTestOptions.test_basics+  .   ":BVWWW  = =Xf%% == =, , ,,#E'<'<<<<<=X/?$@@@@@*w.@@@@@9999?y)&<<<<<<- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =s5C<BC$ C<$C( (C<+C( ,C<<DDct|dtjtd}|5t |5}|jdddksJ|jddgksJ|jd d gksJ|jd d gksJ|j d dgksJ|j gdksJ|j gdksJ dddn #1swxYwYddddS#1swxYwYdS)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 rrrrrrrrrrrrrrr) r9rCrr rAr8rrrSrrrrs rrzTestOptions.test_multilines  *   <:BVWWW   Xf%% #E'<'<<<<<=X/?$@@@@@*w.@@@@@CCCct|dt|d5}tjt5|dddn #1swxYwYddddS#1swxYwYdS)Nz[options] package_dir = a b Frrrys rtest_package_dir_failz!TestOptions.test_package_dir_fail4s9::: fE * * * *d344 * *''))) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *rct|dt|5}|jddgdgdksJ|jddgdgdksJ ddddS#1swxYwYdS) Nz}[options.package_data] * = *.txt, *.rst hello = *.msg [options.exclude_package_data] * = fake1.txt, fake2.txt hello = *.dat z*.txtz*.rstz*.msg)rhelloz fake1.txtz fake2.txtz*.dat)r9rA package_dataexclude_package_datarys rtest_package_datazTestOptions.test_package_data:s   f   $g&!)), +.!11                   s'AAAct|dt|5}|jdgksJ ddddS#1swxYwYdS)Nptions] packages = find: r+)r9rArrys r test_packageszTestOptions.test_packagesPs8999 f   5=^$444444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s=AAcrt|d\}}td|td|t|5}t|jtgdksJ dddn #1swxYwY|dt|5}|jdgksJ dddn #1swxYwY|dt|5}t|jtdd gksJ ddddS#1swxYwYdS) Nrsub_onesub_two)r+fake_package.sub_twofake_package.sub_onezi[options] packages = find: [options.packages.find] where = . include = fake_package.sub_one two rzW[options] packages = find: [options.packages.find] exclude = fake_package.sub_one r+rr9r)rArrr"rVr2r&r7r@s rtest_find_directivezTestOptions.test_find_directiveVs>&v/NOO VK000K000 f   t}%%...**                   f   ==%;$<<<<<< = = = = = = = = = = = = = = =   )   f   Wt}%%n>T-U)V)VVVVVV W W W W W W W W W W W W W W W W W Ws6*A::A>A>)CC  C 4*D,,D03D0cBt|d\}}td|td|dt|5}t|jhdksJ dddn #1swxYwY|dt|5}|jdgksJ dddn #1swxYwY|d t|5}t|jd d hksJ ddddS#1swxYwYdS) Nz%[options] packages = find_namespace: rrT)r%>r+rrzs[options] packages = find_namespace: [options.packages.find] where = . include = fake_package.sub_one two rza[options] packages = find_namespace: [options.packages.find] exclude = fake_package.sub_one r+rr r s rtest_find_namespace_directivez)TestOptions.test_find_namespace_directive{s6& =   V K000KD9999 f   t}%%***                   f   ==%;$<<<<<< = = = = = = = = = = = = = = =   )   f   Rt}%%.:P)QQQQQQ R R R R R R R R R R R R R R R R R Rs6A//A36A3B::B>B>)DDDct|dt|5}|jddgddgdksJt|jjddhksJ ddddS#1swxYwYdS) Nz_[options.extras_require] pdf = ReportLab>=1.2; RXP rest = docutils>=0.3 pack ==1.1, ==1.3 zReportLab>=1.2RXPrr)pdfrestrr)r9rAextras_requirerrLprovides_extrasrys rtest_extras_requirezTestOptions.test_extras_requires  $   f   I&(%0(*;<++t}455%HHHHH  I I I I I I I I I I I I I I I I I Is6A$$A(+A(r7)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' ct||d}tjt|5t |5} dddn #1swxYwYddddS#1swxYwYdSNzoOne of the parsed requirements in `(install_requires|extras_require.+)` looks like a valid environment marker.*r)r9rCrDrrArVr7r2rrWs r+test_raises_accidental_env_marker_misconfigz7TestOptions.test_raises_accidental_env_marker_misconfigs     6 ]-U ; ; ;  &!! Q                                 4A$A  A$ 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 ct||d}tjt|5t |5} dddn #1swxYwYddddS#1swxYwYdSr)r9rCrr rArs r)test_warn_accidental_env_marker_misconfigz5TestOptions.test_warn_accidental_env_marker_misconfigs     6 \6e D D D  &!! Q                                 r) 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.SetuptoolsDeprecationWarningct||t|}t|5} dddn #1swxYwYt||ksJdS)N)r9lenrA)rVr7r2recwarn num_warningsrWs r+test_nowarn_accidental_env_marker_misconfigz7TestOptions.test_nowarn_accidental_env_marker_misconfigs"    7|| f                   7|||++++++s=AAct|dt|5}|jdgdgdksJ ddddS#1swxYwYdS)Nz2[options.extras_require] foo-a = foo foo_b = test rutest)zfoo-afoo_b)r9rArrys r"test_dash_preserved_extras_requirez.TestOptions.test_dash_preserved_extras_requiresPQQQ f   P&UGvh*O*OOOOOO P P P P P P P P P P P P P P P P P PsAAAct|d\}}t|5}|jddgdgdksJ dddn #1swxYwYd}|d||dt|5}|j|ksJ ddddS#1swxYwYdS) 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)group1group2zN[blogtool.parsers] .rst = some.nested.module:SomeClass.some_classmethod[reST] entry_pointsz,[options] entry_points = file: entry_points )r9rAr+r!r")rVr2rWr7r@rs rtest_entry_pointszTestOptions.test_entry_pointss  4  6f   $/=88 ))                K   N##))(333  EFFF f   1$00000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s#AA AB99B=B=ct|dt|5}|jddgdgdksJ ddddS#1swxYwYdS)Nz[options.entry_points] GROUP1 = point1 = pack.module:func, .point2 = pack.module2:func_rest [rest] group2 = point3 = pack.module:func2 r&r'r()GROUP1r*)r9rAr+rys r test_case_sensitive_entry_pointsz,TestOptions.test_case_sensitive_entry_pointss  4   f   $/=88 ))                  sAA Act|dt|5}dddgfdddgfg}t|jt|ksJ ddddS#1swxYwYdS)NzQ[options.data_files] cfg = a/b.conf c/d.conf data = e/f.dat, g/h.dat cfga/b.confc/d.confdataze/f.datzg/h.dat)r9rAsorted data_filesrVr2r@rs rtest_data_fileszTestOptions.test_data_files,s  (   f   ?Z01)Y/0H$/**fX.>.>>>>>>  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s4A""A&)A&ct|d|dd|dd|dd|dd|dd|dd|d d|d d|d dt|5}d d dgfdgdfdgdfdgdfg}t |jt |ksJ ddddS#1swxYwYdS)Nz[options.data_files] cfg = a/b.conf c/d.conf data = *.dat icons = *.ico audio = *.wav sounds.db a.datrb.datc.data.icob.icoc.icobeep.wavboop.wav sounds.dbr1r2r3r4)r:r;r<icons)r=r>r?audio)r@rArB)r9r!r"rAr5r6r7s rtest_data_files_globbyz"TestOptions.test_data_files_globby=s     G""2&&& G""2&&& G""2&&& G""2&&& G""2&&& G""2&&& J%%b))) J%%b))) K  &&r*** f   ?Z0144455556???@ H $/**fX.>.>>>>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s>GGGct|tdt|5}|ddddS#1swxYwYdS)NzE [options] python_requires=>=2.7 r9rrAr=rys rtest_python_requires_simplez'TestOptions.test_python_requires_simple`       f   &  # # % % % & & & & & & & & & & & & & & & & & &AAAct|tdt|5}|ddddS#1swxYwYdS)NzM [options] python_requires=>=2.7,!=3.0.* rGrys rtest_python_requires_compoundz)TestOptions.test_python_requires_compoundmrIrJct|tdtjt5t |5}|dddn #1swxYwYddddS#1swxYwYdS)NzG [options] python_requires=invalid )r9rrCrD ExceptionrAr=rys rtest_python_requires_invalidz(TestOptions.test_python_requires_invalidzs       ]9 % % * *&!! *T''))) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *s5BA( B(A, ,B/A, 0BBBct|d}|jdd|ddd}t |t j|t|5}|jd}|j d ksJ|j d ksJ| t j |sJ ddddS#1swxYwYdS) Nzsrc/custom_build.pyT)parentsexist_okzBfrom distutils.core import Command class CustomCmd(Command): pass rrzi [options] cmdclass = customcmd = custom_build.CustomCmd customcmd CustomCmd custom_build) rparentr write_textr9inspectcleandocrAcmdclassrrsamefilegetfile)rVr2 module_pathr3r@rZs r test_cmdclasszTestOptions.test_cmdclasssR6#899    === R     ))44555 f   C}[1H$ 3333&.8888''(A(ABB B BB B  C C C C C C C C C C C C C C C C C Cs7ACCCcnt|td|dd|ddt |5}|jdgksJ|jddgiksJ ddddS#1swxYwYdS)Nz [options] install_requires = file:requirements.txt [options.extras_require] colors = file:requirements-extra.txt zrequirements.txtz docutils>=0.3 zrequirements-extra.txtcoloramarcolors)r9rr!r"rArrrys rtest_requirements_filez"TestOptions.test_requirements_files%       &''--.CDDD ,--33J??? f   C(_,=====&8j\*BBBBBB C C C C C C C C C C C C C C C C C Cs=B**B.1B.N)rrrrYrrrrr r rrCrrrrfilterwarningsr r$r,r/r8rErHrLrOr^rbrrrrrs )=)=)=V222h*** ,555 #W#W#WJ%R%R%RNIII" [      [    [  [ PQQ,,RQ ,PPP 111>$???"!?!?!?F & & & & & & * * *CCC*CCCCCrrcLeZdZdZejedddZdS)TestExternalSettersc\t||d|j_ddd|j_dS)Nrhrrr)saved_dist_initrLrnr)rVr@attrss r_fake_distribution_initz+TestExternalSetters._fake_distribution_inits;e$$$6F 332& &  """r__init__T)autospecc|j|_tdddii}|jjdksJ|jjdddksJdS) Nrwill_beignored)rhrhrrr)ri side_effectr rLrnr)rVmock_parent_initr2r@s rtest_external_settersz)TestExternalSetters.test_external_setterssu'+'C$>Iy3I"JKKK}:>NNNNN})22. .       rN)rrrrirobjectr rqrrrreresR   U\-d;;;   <;    rre)F)Nr*r+)NT)&r contextlibrXrpathlibr unittest.mockrrrCpackaging.requirementsrsetuptools.config.setupcfgrrr setuptools.distr r setuptools.warningsr textwraprdistutils.errorsrrrr)r9contextmanagerrArHrJrcrrjrgrerrrr}sF %%%%%%%% 555555PPPPPPPPPP77777777<<<<<<EEEEEEEE}V, """"FT2  !!!!!!!!H]9]9]9]9]9]9]9]9@ [C[C[C[C[C[C[C[C| (          r