HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/test_importlib/__pycache__/test_main.cpython-38.pyc
U

/D�g��@shddlZddlZddlZddlZddlZddlZzddlmZ	Wn e
k
r`ddlmZ	YnXddlm
Z
ddlmZmZmZmZmZmZmZGdd�de
jej�ZGdd	�d	e
jej�ZGd
d�de
je
jej�ZGdd
�d
e
je
jej�ZGdd�de
je
jej�ZGdd�de
je
jej�ZGdd�de
jej�Z Gdd�de
je	j�Z!Gdd�dej�Z"dS)�N�)�fake_filesystem_unittest)�fixtures)�Distribution�
EntryPoint�PackageNotFoundError�
distributions�entry_points�metadata�versionc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
BasicTestsz\d+\.\d+(\.\d)?cCs2t�d�}t|jt�st�t�|j|j�s.t�dS)N�distinfo-pkg)	r�	from_name�
isinstancer�str�AssertionError�re�match�version_pattern)�self�dist�r�</opt/cppython/lib/python3.8/test/test_importlib/test_main.py�test_retrieves_version_of_selfs
z)BasicTests.test_retrieves_version_of_selfc	Cs$|�t��t�d�W5QRXdS)Nzdoes-not-exist)�assertRaisesrrr�rrrr�test_for_name_does_not_existsz'BasicTests.test_for_name_does_not_existcCs|�tt�dS�N)ZassertIsInstancer�typerrrr�test_new_style_classes#sz!BasicTests.test_new_style_classesN)�__name__�
__module__�__qualname__rrrrrrrrrsrc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ImportTestsc	Cs$|�t��t�d�W5QRXdS)NZdoes_not_exist)r�ImportError�	importlib�
import_modulerrrr�test_import_nonexistent_module(sz*ImportTests.test_import_nonexistent_modulecCs,tt�d�}|d}|�|��jd�dS)N�entries�main)�dictr	�assertEqual�loadr �rr(�eprrr�test_resolve.szImportTests.test_resolvecCs(tt�d�}|d}|�|jd�dS)Nr(zns:subzmod:main)r*r	r+�valuer-rrr�"test_entrypoint_with_colon_in_name3sz.ImportTests.test_entrypoint_with_colon_in_namecCs$tdddd�}|��tjks t�dS)Nr.zimportlib.metadata�grp)�namer0�group)rr,r%r
r)rr.rrr�test_resolve_without_attr8s�z%ImportTests.test_resolve_without_attrN)r r!r"r'r/r1r5rrrrr#'sr#c@s4eZdZedd��Zdd�Zedd��Zdd�Zd	S)
�NameNormalizationTestsc	Cs<|d}|��|d}|�d��}|�d�W5QRXdS)z
        Create minimal metadata for a package with dashes
        in the name (and thus underscores in the filename).
        zmy_pkg.dist-info�METADATA�w�
Version: 1.0
zmy-pkg��mkdir�open�write��site_dir�metadata_dirr
Zstrmrrr�pkg_with_dashesCsz&NameNormalizationTests.pkg_with_dashescCs |�|j�}t|�dkst�dS)z�
        For a package with a dash in the name, the dist-info metadata
        uses underscores in the name. Ensure the metadata loads.
        �1.0N)rAr?rr�r�pkg_namerrr�-test_dashes_in_dist_name_found_as_underscoresPszDNameNormalizationTests.test_dashes_in_dist_name_found_as_underscoresc	Cs<|d}|��|d}|�d��}|�d�W5QRXdS)z\
        Create minimal metadata for a package with mixed case
        in the name.
        zCherryPy.dist-infor7r8r9ZCherryPyr:r>rrr�pkg_with_mixed_caseXsz*NameNormalizationTests.pkg_with_mixed_casecCsH|�|j�}t|�dkst�t|���dks0t�t|���dksDt�dS)zG
        Ensure the metadata loads when queried with any case.
        rBN)rFr?rr�lower�upperrCrrr� test_dist_name_found_as_any_caseesz7NameNormalizationTests.test_dist_name_found_as_any_caseN)r r!r"�staticmethodrArErFrIrrrrr6As

r6c@s4eZdZedd��Zedd��Zdd�Zdd�Zd	S)
�
NonASCIITestsc	Cs@|d}|��|d}|jddd��}|�d�W5QRXdS)zb
        Create minimal metadata for a package with non-ASCII in
        the description.
        �portend.dist-infor7r8�utf-8��encodinguDescription: pôrˈtend
�portendr:�r?r@r
�fprrr�pkg_with_non_ascii_descriptionpsz,NonASCIITests.pkg_with_non_ascii_descriptionc	CsJ|d}|��|d}|jddd��}|�t�d����W5QRXdS)zl
        Create minimal metadata for an egg-info package with
        non-ASCII in the description.
        rLr7r8rMrNuK
                Name: portend

                pôrˈtend
                rP)r;r<r=�textwrap�dedent�lstriprQrrr�'pkg_with_non_ascii_description_egg_info}sz5NonASCIITests.pkg_with_non_ascii_description_egg_infocCs(|�|j�}t|�}|ddks$t�dS)NZDescriptionu
pôrˈtend)rSr?r
r�rrD�metarrr�test_metadata_loads�sz!NonASCIITests.test_metadata_loadscCs(|�|j�}t|�}|��dks$t�dS)Nupôrˈtend
)rWr?r
Zget_payloadrrXrrr�test_metadata_loads_egg_info�sz*NonASCIITests.test_metadata_loads_egg_infoN)r r!r"rJrSrWrZr[rrrrrKos

rKc@seZdZdd�Zdd�ZdS)�DiscoveryTestscCsPtt��}tdd�|D��s t�tdd�|D��s6t�tdd�|D��sLt�dS)Ncss|]}t|t�VqdSr)rr��.0rrrr�	<genexpr>�s�z8DiscoveryTests.test_package_discovery.<locals>.<genexpr>css|]}|jddkVqdS)�Namezegginfo-pkgN�r
r]rrrr_�s�css|]}|jddkVqdS)r`r
Nrar]rrrr_�s�)�listr�allr�any)rZdistsrrr�test_package_discovery�s
���z%DiscoveryTests.test_package_discoveryc	Cs*|�t��ttddd��W5QRXdS)NZ	something�else)�contextr3)r�
ValueErrorrbrrrrr�test_invalid_usage�sz!DiscoveryTests.test_invalid_usageN)r r!r"rerirrrrr\�sr\c@seZdZdd�Zdd�ZdS)�
DirectoryTestc	Cs2|j�d���|�t��td�W5QRXdS)NzEGG-INFOzunknown-package)r?�joinpathr;rrrrrrr�
test_egg_info�szDirectoryTest.test_egg_infoc
CsL|j�d�}|��|�|��$|�t��td�W5QRXW5QRXdS)Nzfoo-3.6.eggZfoo)r?rkr;Zadd_sys_pathrrr)rZeggrrr�test_egg�s
zDirectoryTest.test_eggN)r r!r"rlrmrrrrrj�srjc@seZdZdZdd�ZdS)�MissingSysPathz/does-not-existcCstj��dS�zp
        Discovering distributions should succeed even if
        there is an invalid path on sys.path.
        N)r%r
rrrrr�test_discovery�szMissingSysPath.test_discoveryN)r r!r"r?rprrrrrn�srncs(eZdZdZ�fdd�Zdd�Z�ZS)�InaccessibleSysPathz/access-deniedcs,tt|���|��|jj|jdd�dS)Nr)Z	perm_bits)�superrq�setUpZ
setUpPyfakefs�fsZ
create_dirr?r��	__class__rrrs�szInaccessibleSysPath.setUpcCsttj���dSro)rbr%r
rrrrrrp�sz"InaccessibleSysPath.test_discovery)r r!r"r?rsrp�
__classcell__rrrurrq�srqcsDeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Z�Z	S)
�TestEntryPointscs&tt|�j|�tj�ddd�|_dS)Nr3r0r4)rrrx�__init__r%r
rr.)r�argsrurrry�szTestEntryPoints.__init__cCs$t�t�|j��}||jks t�dSr)�pickle�loads�dumpsr.r)rZrevivedrrr�test_entry_point_pickleable�sz+TestEntryPoints.test_entry_point_pickleablec	Cs"|�t��d|j_W5QRXdS)zEntryPoints should be immutableZbadactorN)r�AttributeErrorr.r3rrrr�test_immutable�szTestEntryPoints.test_immutablecCs:dt|j�kst�dt|j�ks$t�dt|j�ks6t�dS)Nrzname=z'name')�reprr.rrrrr�	test_repr�szTestEntryPoints.test_reprcCst|j�dS)zEntryPoints should be hashableN)�hashr.rrrr�
test_hashable�szTestEntryPoints.test_hashablec	Cs&|�t��t�|j�W5QRXdS)zI
        json should not expect to be able to dump an EntryPoint
        N)r�	Exception�jsonr}r.rrrr�test_json_dump�szTestEntryPoints.test_json_dump)
r r!r"ryr~r�r�r�r�rwrrrurrx�srx)#rr�r{rTZunittest�importlib.metadatar%Z!pyfakefs.fake_filesystem_unittestrZffsr$Zstubs�rrrrrr	r
rZDistInfoPkgZTestCaserr#Z	OnSysPathZSiteDirr6rKZ
EggInfoPkgr\rjrnrqrxrrrr�<module>s6$
�.*�