HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/test_importlib/extension/__pycache__/test_loader.cpython-37.pyc
B

��gy.�@s�ddlmZddlmZe�d�ZddlZddlZddlZddl	Z	ddl
ZddlZddlm
Z
Gdd�dej�Zejeed	�\ZZGd
d�dej�Zejeed	�\ZZedkr�e	��dS)
�)�abc)�utilzimportlib.machinery�N)�assert_python_failurec@sdeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dZ
dZdd�ZdZ
dd�Zdd�ZdS)�LoaderTestsz)Test load_module() for extension modules.cCs|j�tjjtjj�|_dS)N)�	machinery�ExtensionFileLoaderr�
EXTENSIONS�name�	file_path�loader)�self�r�E/usr/local/lib/python3.7/test/test_importlib/extension/test_loader.py�setUpszLoaderTests.setUpcCs|j�|�S)N)r�load_module)r
�fullnamerrrrszLoaderTests.load_modulec	Cs:|j��|j�d�|�t��|�d�WdQRXdS)NZXXX)rr�assertRaises�ImportError)r
rrr�test_load_module_APIs
z LoaderTests.test_load_module_APIcCs(|j�tjjtjj�}|�|j|�dS)N)rrrr	r
r�assertEqualr)r
�otherrrr�
test_equality s
zLoaderTests.test_equalitycCs,|j�dtjjtjj�}|�|j|�dS)N�_)rrrr	r
r�assertNotEqualr)r
rrrr�test_inequality%s
zLoaderTests.test_inequalityc	Cs�t�tjj��r|�tjj�}x8dtjjfdtjjfdgD]\}}|�t||�|�q:W|�tjjt	j
�|�|j|j
j�WdQRXdS)N�__name__�__file__)�__package__�)r�uncacher	r
rrr�getattrZassertIn�sys�modules�assertIsInstance�
__loader__rr)r
�module�attr�valuerrr�test_module*s
zLoaderTests.test_moduleNc	CsFt�tjj��.|�tjj�}|�tjj�}|�||�WdQRXdS)N)rr r	r
r�assertIs)r
�module1�module2rrr�test_module_reuse;szLoaderTests.test_module_reusec	Cs8d}|�t��}|�|�WdQRX|�|jj|�dS)Nzasdfjkl;)rrrr�	exceptionr
)r
r
�cmrrr�test_unloadableDszLoaderTests.test_unloadablecCs`|�|j�tjj��xD|jjD]8}tj	�
dddd|�}|j�d|�}|�|�d��q WdS)NZsome�pathZpkg�__init__)
ZassertFalser�
is_packagerr	r
r�EXTENSION_SUFFIXES�osr1�joinrZ
assertTrue)r
�suffixr1rrrr�test_is_packageJs
zLoaderTests.test_is_package)r�
__module__�__qualname__�__doc__rrrrrr)�test_package�test_lacking_parentr-�test_state_after_failurer0r8rrrrrsr)rc@s�eZdZdZdd�ZdZdZdZdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Ze�eed%�d&�d'd(��ZdS))�MultiPhaseExtensionModuleTestszMTest loading extension modules with multi-phase initialization (PEP 489)
    cCsFd|_|j�d�}tj�|j�|_|js,t�|j�|j|jj	�|_
dS)NZ_testmultiphase)r
r�
FileFinder�	importlibr�	find_spec�spec�AssertionErrorr�originr)r
�finderrrrrYs
z$MultiPhaseExtensionModuleTests.setUpNc
Cs�t�|j���|��}x6d|jfd|jjfdgD]\}}|�t||�|�q0W|�t	��|j
WdQRX|�|tj
|j�|�|j|jj�WdQRXdS)z Test loading an extension modulerr)rrN)rr r
rrCrErr!r�AttributeError�__path__r*r"r#r$r%rr)r
r&r'r(rrrr)js

z*MultiPhaseExtensionModuleTests.test_modulec
Cst�|j���|��}|�|tj�|��}|�|�	d�d�|�|�	�d�|�
t��|jWdQRXd|_|�|jd�|�|�
dd�d�|�|��t�|�|�d�dd�|�
|j��|���WdQRX|�|jd	�|�|jd
�WdQRXdS)z@Test basic functionality of stuff defined in an extension moduleZabcdNr�	��Z23Z123i�zsomething different)rr r
rr$�types�
ModuleType�ExamplerZdemorrGrZfooZStr�str�errorZ	int_const�	str_const)r
r&Zexrrr�test_functionalityxs"z1MultiPhaseExtensionModuleTests.test_functionalityc	CsBt�|j��,|��}|j}t�|�|�||j�WdQRXdS)z6Test that reload didn't re-set the module's attributesN)rr r
rrNrA�reloadr*)r
r&Zex_classrrr�test_reload�s

z*MultiPhaseExtensionModuleTests.test_reloadc
Cs�|��}|�d��|�|�d�d�WdQRX|�d��&|�t��|�d�WdQRXWdQRX|�d��&|�t��|�d�WdQRXWdQRXdS)zBAssert that the PyState_{Find,Add,Remove}Module C API doesn't workZPyState_FindModulerNZPyState_AddModulerKZPyState_RemoveModuler)r�subTestrZcall_state_registration_funcr�SystemError)r
r&rrr�test_try_registration�sz4MultiPhaseExtensionModuleTests.test_try_registrationcCs|j�|j�S)z'Load the module from the test extension)rrr
)r
rrrr�sz*MultiPhaseExtensionModuleTests.load_modulecCs>|jj}|j�||�}tj�||�}tj�|�}|�|�|S)z-Load a module from the test extension by name)	rCrErrrAr�spec_from_loader�module_from_spec�exec_module)r
rrErrCr&rrr�load_module_by_name�s
z2MultiPhaseExtensionModuleTests.load_module_by_namecCsD|�d|j�}|�|tj�|�|jd|j�|�|jd�dS)z"Test loading a simulated submodulezpkg.zsomething differentN)r[r
r$rLrMrrrQ)r
r&rrr�test_load_submodule�sz2MultiPhaseExtensionModuleTests.test_load_submodulecCsF|�d�}|�|tj�|�|jd�|�|jd�|�dtj	�dS)z-Test loading module with a one-character name�xzsomething differentN)
r[r$rLrMrrrQZassertNotInr"r#)r
r&rrr�test_load_short_name�s

z3MultiPhaseExtensionModuleTests.test_load_short_namecCs(|�|j�}|�|j�}|�||�dS)z,Test that 2 loads result in 2 module objectsN)r[r
ZassertIsNot)r
r+r,rrr�test_load_twice�sz.MultiPhaseExtensionModuleTests.test_load_twicec	Cs8d}|�t��}|�|�WdQRX|�|jj|�dS)zTest nonexistent modulezasdfjkl;N)rrr[rr.r
)r
r
r/rrrr0�sz.MultiPhaseExtensionModuleTests.test_unloadablec	Cs8d}|�t��}|�|�WdQRX|�|jj|�dS)z9Test behavior with nonexistent module with non-ASCII nameufoóN)rrr[rr.r
)r
r
r/rrr�test_unloadable_nonascii�sz7MultiPhaseExtensionModuleTests.test_unloadable_nonasciicCs:|jd}|�|�}|�t|�tt��|�|jd�dS)z4Test returning a non-module object from create worksZ
_nonmodule�N)r
r[r�type�unittestr�three)r
r
�modrrr�test_nonmodule�s

z-MultiPhaseExtensionModuleTests.test_nonmodulecCsN|jd}|�|�}|�t|�tt��|�|jd�|�|�dd�d�dS)z6Test creating a non-module object with methods definedZ_nonmodule_with_methodsra�
rKrIN)r
r[rrbrcrrdZbar)r
r
rerrr�test_nonmodule_with_methods�s


z:MultiPhaseExtensionModuleTests.test_nonmodule_with_methodscCs4|jd}|�|�}|�|tj�|�|j|�dS)z%Test that NULL slots aren't a problemZ_null_slotsN)r
r[r$rLrMrr)r
r
r&rrr�test_null_slots�s

z.MultiPhaseExtensionModuleTests.test_null_slotscCsVxPdD]H}|�|��4|jd|}|�t��|�|�WdQRXWdQRXqWdS)z5Test SystemError is raised for misbehaving extensions)Zbad_slot_largeZbad_slot_negativeZcreate_int_with_stateZ
negative_sizeZexport_nullZexport_uninitializedZexport_raiseZexport_unreported_exceptionZcreate_nullZcreate_raiseZcreate_unreported_exceptionZnonmodule_with_exec_slotsZexec_errZ
exec_raiseZexec_unreported_exceptionrN)rUr
rrVr[)r
Z	name_baser
rrr�test_bad_modules�s

z/MultiPhaseExtensionModuleTests.test_bad_modulesc
Csh|jddfdg}xP|D]H\}}|�|��0|�|�}|�|j|�|�|jd|�WdQRXqWdS)z4Test that modules with non-ASCII names can be loadedu_zkouška_načteníZCzech)u_インポートテストZJapanesezModule named in %sN)r
rUr[rrr;)r
Zcasesr
�langr&rrr�
test_nonascii�s
z,MultiPhaseExtensionModuleTests.test_nonasciiZgettotalrefcountz.--with-pydebug has to be enabled for this testcCsd}td|�dS)z� Issue #32374: Test that traverse fails when accessing per-module
            state before Py_mod_exec was executed.
            (Multiphase initialization modules only)
        aYif True:
                try:
                    from test import support
                    import importlib.util as util
                    spec = util.find_spec('_testmultiphase')
                    spec.name = '_testmultiphase_with_bad_traverse'

                    with support.SuppressCrashReport():
                        m = spec.loader.create_module(spec)
                except:
                    # Prevent Python-level exceptions from
                    # ending the process with non-zero status
                    # (We are testing for a crash in C-code)
                    passz-cN)r)r
Zscriptrrr�test_bad_traversesz0MultiPhaseExtensionModuleTests.test_bad_traverse)rr9r:r;rr<r=r>r)rRrTrWrr[r\r^r_r0r`rfrhrirjrlrcZskipIf�hasattrr"rmrrrrr?Us.		r?�__main__)rrrZimport_importlibrZos.pathr5r"rLrc�importlib.utilrAZtest.support.script_helperrrZ	test_bothZFrozen_LoaderTestsZSource_LoaderTestsr?Z%Frozen_MultiPhaseExtensionModuleTestsZ%Source_MultiPhaseExtensionModuleTestsr�mainrrrr�<module>s 
ET