File: //usr/local/lib/python3.7/test/__pycache__/test_runpy.cpython-37.pyc
B
��g0| � @ s^ d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlmZm
Z
mZmZmZmZmZ d dlmZmZmZmZ d dlZd dlmZmZmZmZ dZddddddd�Zeeddgejd d d e ed
ddd�d
�Z!e!�"e� G dd� d�Z#G dd� de j$e#�Z%G dd� de j$e#�Z&G dd� de j$e#�Z'e(dk�rZe �)� dS )� N)�forget�make_legacy_pyc�unload�verbose�
no_tracing�create_empty_file�temp_dir)�make_pkg�make_script�make_zip_pkg�make_zip_script)� _run_code�_run_module_code�
run_module�run_patha� # Check basic code execution
result = ['Top level assignment']
def f():
result.append('Lower level reference')
f()
del f
# Check the sys module
import sys
run_argv0 = sys.argv[0]
run_name_in_sys_modules = __name__ in sys.modules
module_in_sys_modules = (run_name_in_sys_modules and
globals() is sys.modules[__name__].__dict__)
# Check nested operation
import runpy
nested = runpy._run_module_code('x=1\n', mod_name='<run>')
)�__name__�__file__�
__cached__�__package__�__doc__�__spec__zTop level assignmentzLower level referenceF� z<run>)�xr �
__loader__)�sys�runpy�result� run_argv0�run_name_in_sys_modules�module_in_sys_modules�nestedc @ s, e Zd ZddddddgZdd� Zd d
� ZdS )�CodeExecutionMixin�name�parent�origin�cached�has_location�submodule_search_locationsc C s8 |� � }|� � }xPt|�D ]D}|�d�r|�d�r||krD|�|� ||d kr|d �|� qW |�d�}|�d�}|dkr�| �|� nb|jdk r�| �t|j�t|j�� x>| j D ]4}d| }|t
||�f}|t
||�f}| �||� q�W | �t|�t|�� x2|D ]*}||| f}||| f}| �||� �qW dS )zbCheck two namespaces match.
Ignores any unspecified interpreter created names
�__r r Nz __spec__.)�copy�list�
startswith�endswith�popZassertIsNone�loader�assertEqual�type�CHECKED_SPEC_ATTRIBUTES�getattr�set) �self� result_ns�expected_ns�kZresult_specZ
expected_spec�attr�actualZexpected� r: �+/usr/local/lib/python3.7/test/test_runpy.py�assertNamespaceMatchesM s2
z)CodeExecutionMixin.assertNamespaceMatchesc
C s� t � }|�� }|d }tjd }tj�||�}|d�}| �||� | �tjd |� | �tj�||�|� d|i} ||d<