z d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dl Z d dl mZ d dlm Z mZmZ d dlmZmZ d dlmZ dd lmZ d d lmZmZ G d de e ZddZ ddZej dd Zd Z G d d Z G d d Z! G d d Z"ej# Z$ G d d Z%dS ) N)Path)Mockpatch)InvalidRequirement) ConfigHandlerTargetread_configuration)Distribution _Distribution)SetuptoolsDeprecationWarning )DALS)DistutilsFileErrorDistutilsOptionErrorc e Zd ZdZdZdS )ErrConfigHandlerz7Erroneous handler. Fails to implement required methods.z**err**N)__name__ __module____qualname____doc__section_prefix w/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/setuptools/tests/config/test_setupcfg.pyr r s AANNNr r Fc |}| d D ]}| | }d }|s*| d }| d ||fS )N/__init__.py )splitmkdirjoinwrite)namebase_dirnsdir_packagedir_name init_files r make_package_dirr) sr KJJsOO 2 2!''11I $$]33 !!r asciifake_packagec 0 |d}| d | | d }| | | d t || \ }}| 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_pyencodingpackage_pathconfigpackage_dirr( s r fake_envr9 % s < KK !!(+++ [[ % %F LL!!(++$L777-lFCCK OO r Tc # K |pi }| 5 t | }d|_ |o| |V d d d d S # 1 swxY w Y d S )Nr- )as_cwdr script_nameparse_config_files)r2 kwargs_initialparsedists r get_distrA > s #)rN N++% +$))++ s 1AA Ac t j t 5 t d i dt } | j d d d d S # 1 swxY w Y d S )NF)pytestraisesNotImplementedErrorr r parsers)handlers r test_parsers_implementedrH J s * + + "4UDFF;; s &A AAc e Zd Zd Zd Zd ZdS )TestConfigurationReaderc t |d \ }}t t | }|d d dk sJ |d d ddgk sJ |d d d dgk sJ d S )NzX[metadata] version = 10.1.1 keywords = one, two [options] scripts = bin/a.py, bin/b.py metadataversion10.1.1keywordsonetwooptionsscriptszbin/a.pyzbin/b.py)r9 r strselfr2 _r7 config_dicts r test_basicz"TestConfigurationReader.test_basicQ s - 6 )V55:&y1X====:&z2uenDDDD9%i0Z4LLLLLLLr c t j t 5 t t | d d d d d S # 1 swxY w Y d S )Nr. )rC rD r r rT r! rV r2 s r test_no_configz&TestConfigurationReader.test_no_config` s ]- . . > >s6;;{#;#;<<=== > > > > > > > > > > > > > > > > > >s 0AAAc n t |d \ }}t j t 5 t t | d d d n# 1 swxY w Y t t | d }|d d ddgk sJ d|d vsJ | d S ) Nz<[metadata] version = attr: none.VERSION keywords = one, two T)ignore_option_errorsrL rO rP rQ rM )r9 rC rD ImportErrorr rT removerU s r test_ignore_errorsz*TestConfigurationReader.test_ignore_errorsd s M 6 ]; ' ' , ,s6{{+++ , , , , , , , , , , , , , , , )V4PPP:&z2uenDDDDJ 77777 s AAAN)r r r rY r\ ra r r r rJ rJ P sD M M M> > > r rJ c e Zd Zd Zd Zd Zd Zd Zd Zd Z d Z d Zd Zd Z d Zd Zd Zd Zd Zd Zd Zd Zd Zej dd ed ddifd ed ddifg d ZdS ) TestMetadatac t |d | d d ddi}t || 5 }|j }|j dk sJ |j dk sJ |j dk sJ |j dk sJ |j d d gk sJ |j dk sJ |j dk sJ |j dd gk sJ |j dk sJ |j dk sJ d d d d S # 1 swxY w Y d S )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 LicenserN zSome descriptiontext/somethingpackagezpackage.sub fake_namerP rQ http://test.test.com/test/ test@test.com)r9 r! r" rA rL rM descriptionlong_description_content_typelong_descriptionprovidesrg r# rO download_urlmaintainer_email)rV r2 meta_initialr@ rL s r rY zTestMetadata.test_basicu s 1 H##$<=== - fl + + @t}H#x////'+=====9=MMMMM,0HHHHH$M(BBBBB#'======K////$6666(,HHHHH,????? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s BC))C-0C-c t |t d t | 5 }|j }|j dk sJ |j dk sJ |j dk sJ d d d d S # 1 swxY w Y d S )Nzr [metadata] name=foo version=0.0.1 license=Apache 2.0 fooz0.0.1z Apache 2.0)r9 r rA rL r# rM rg rV r2 r@ rL s r test_license_cfgzTestMetadata.test_license_cfg s 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 | d d | d d t | 5 }|j j dk sJ d d d d S # 1 swxY w Y d S )Nz=[metadata] long_description = file: README.rst, CHANGES.rst z README.rstrf zCHANGES.rstzchangelog contents and stuffz2readme contents line2 changelog contents and stuff)r9 r! r" rA rL ro rV r2 r@ s r test_file_mixedzTestMetadata.test_file_mixed s N L!!''(@AAAM""(()HIII f =1G s 0BBBc | d | dd }| d t |d t |d 5 }t j t 5 | d d d n# 1 swxY w Y d d d d S # 1 swxY w Y d S ) Nre depth1depth2T)dirz1[metadata] long_description = file: ../../README Fr? )ensurer! r9 rA rC rD r r= )rV r2 projectr@ s r test_file_sandboxedz TestMetadata.test_file_sandboxed s8 h++h114 OPPP gU + + + *t344 * *''))) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *s6 #B6=BB6B" "B6%B" &B66B:=B:c t |d t | 5 }|j }|j dk sJ |j dk sJ |j dk sJ |j ddgk sJ |j ddgk sJ d d d d S # 1 swxY w Y d S ) 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 rl rk z Short summaryabFramework :: Django%Programming Language :: Python :: 3.5)r9 rA rL author_emailurlrm platformsclassifiersrv s r test_aliaseszTestMetadata.test_aliases s 8 f }H(O;;;;<#?????'?::::%#s3333'%7, s A A;;A?A?c t |d t | 5 }|j }|j ddgk sJ |j ddgk sJ d d d d S # 1 swxY w Y d S )Nz[metadata] name = fake_name keywords = one two classifiers = Framework :: Django Programming Language :: Python :: 3.5 rP rQ r r )r9 rA rL rO r rv s r test_multilinezTestMetadata.test_multiline s 8 f }H$6666'%7, s &AAAc t |d t | 5 }|j }|j dddk sJ d d d d S # 1 swxY w Y d S )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)r9 rA rL project_urlsrv s r test_dictzTestMetadata.test_dict s 6 f }H(66- - s AA A c t |d \ }}| d }| d d | d d | d }| d d | d d t | 5 }|j j d k sJ d d d n# 1 swxY w Y | d t | 5 }|j j dk sJ d d d n# 1 swxY w Y | d t | 5 }|j j d k sJ d d d n# 1 swxY w Y | d t | 5 }|j j dk sJ d d d n# 1 swxY w Y | d t | 5 }|j j dk sJ d d d d S # 1 swxY w Y d S )Nz0[metadata] version = attr: fake_package.VERSION subpkg_ar r zmod.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 )r9 r r! r" rA rL rM )rV r2 r8 r7 sub_asub_br@ s r test_versionzTestMetadata.test_version s &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 IIc t |d | dd d t | 5 }|j j dk sJ d d d n# 1 swxY w Y | dd d t j t 5 t | 5 }|j j d d d n# 1 swxY w Y d d d d S # 1 swxY w Y d S )Nz4[metadata] version = file: fake_package/version.txt r+ zversion.txtz1.2.3 r z1.2.3 4.5.6 ) r9 r! r" rA rL rM rC rD r ry s r test_version_filezTestMetadata.test_version_file# s QRRRNM2288CCC f 4=(G33333 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 NM22889IJJJ ]/ 0 0 &