File: //opt/cppython/lib/python3.8/test/test_importlib/extension/__pycache__/test_loader.cpython-38.pyc
U
/D�gy. � @ s� d dl mZ d dl mZ e�d�ZddlZddlZddlZddl Z ddl
ZddlZddlm
Z
G dd� dej�Zejeed �\ZZG d
d� dej�Zejeed �\ZZedkr�e �� dS )
� )�abc)�utilzimportlib.machinery� N��assert_python_failurec @ sd e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dZ
dZdd� ZdZ
dd� Zdd� ZdS )�LoaderTestsz)Test load_module() for extension modules.c C s | j �tjjtjj�| _d S �N)� machinery�ExtensionFileLoaderr �
EXTENSIONS�name� file_path�loader��self� r �H/opt/cppython/lib/python3.8/test/test_importlib/extension/test_loader.py�setUp s �zLoaderTests.setUpc C s | j �|�S r )r �load_module)r �fullnamer r r r s zLoaderTests.load_modulec C s: | j �� | j �d � | �t�� | �d� W 5 Q R X d S )NZXXX)r r �assertRaises�ImportErrorr r r r �test_load_module_API s
z LoaderTests.test_load_module_APIc C s( | j �tjjtjj�}| �| j|� d S r )r r
r r r r
�assertEqualr �r �otherr r r �
test_equality s �zLoaderTests.test_equalityc C s, | j �dtjj tjj�}| �| j|� d S )N�_)r r
r r r r
�assertNotEqualr r r r r �test_inequality% s �zLoaderTests.test_inequalityc C s� t �t jj��n | �t jj�}dt jjfdt jjfdfD ]\}}| �t||�|� q8| �t jjt j
� | �|j| j
j� W 5 Q R X d S )N�__name__�__file__��__package__� )r �uncacher r r r
r �getattrZassertIn�sys�modules�assertIsInstance�
__loader__r r
�r �module�attr�valuer r r �test_module* s
��zLoaderTests.test_moduleNc C sF t �t jj��. | �t jj�}| �t jj�}| �||� W 5 Q R X d S r )r r% r r r �assertIs�r Zmodule1Zmodule2r r r �test_module_reuse; s zLoaderTests.test_module_reusec C s8 d}| � t��}| �|� W 5 Q R X | �|jj|� d S )N�asdfjkl;)r r r r � exceptionr �r r �cmr r r �test_unloadableD s zLoaderTests.test_unloadablec C s\ | � | j�tjj�� | jjD ]8}tj �
dddd| �}| j�d|�}| �|�d�� qd S )NZsome�pathZpkg�__init__)
ZassertFalser �
is_packager r r r �EXTENSION_SUFFIXES�osr8 �joinr
Z
assertTrue)r �suffixr8 r r r r �test_is_packageJ s
zLoaderTests.test_is_package)r �
__module__�__qualname__�__doc__r r r r r r/ �test_package�test_lacking_parentr2 �test_state_after_failurer7 r? r r r r r s r )r c @ s� e Zd ZdZdd� ZdZdZdZdd� Zdd� Z d d
� Z
dd� Zd
d� Zdd� 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)
c C sF d| _ | j�d �}tj�| j �| _| js,t�| j�| j | jj �| _
d S )NZ_testmultiphase)r r �
FileFinder� importlibr � find_spec�spec�AssertionErrorr
�originr )r �finderr r r r Y s
�z$MultiPhaseExtensionModuleTests.setUpNc
C s� t �| j��� | �� }d| jfd| jjfdfD ]\}}| �t||�|� q.| �t �� |j
W 5 Q R X | �|tj
| j � | �|j| jj� W 5 Q R X dS )z Test loading an extension moduler r! r"