File: //usr/local/lib/python3.7/test/__pycache__/test_tempfile.cpython-37.pyc
B
��g � � @ s: d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlmZ d dlZd dl
mZ d dlmZ eed�r�d dlZdZnd Ze je jkZeed�Zej�d�r�d Znd
ZG dd� dej�ZG d
d� dej�ZG dd� de�ZG dd� de�ZG dd� de�Z G dd� de�Z!G dd� de�Z"e j#dd� �Z$dd� Z%G dd� d�Z&G dd � d e&e�Z'G d!d"� d"e�Z(G d#d$� d$e�Z)G d%d&� d&e�Z*G d'd(� d(e&e�Z+G d)d*� d*e�Z,G d+d,� d,e�Z-G d-d.� d.e�Z.e j/e j0k �rG d/d0� d0e�Z1G d1d2� d2�Z2G d3d4� d4e�Z3e4d5k�r6e�5� dS )6� N)�mock)�support)�
script_helper�stat� �spawnlZopenbsd�0 �d c @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd S )
�TestLowLevelInternalsc C s: | � tt�d�� | � tt�d�� | � tt�d �� d S )N� � )�assertIs�str�tempfile�_infer_return_type�bytes)�self� r �./usr/local/lib/python3.7/test/test_tempfile.py�test_infer_return_type_singles) s z4TestLowLevelInternals.test_infer_return_type_singlesc C sp | � tt�dd�� | � tt�dd�� | �t�� t�dd� W d Q R X | �t�� t�dd� W d Q R X d S )Nr r )r
r r r r �assertRaises� TypeError)r r r r � test_infer_return_type_multiples. s z6TestLowLevelInternals.test_infer_return_type_multiplesc C s� | � tt�d d�� | � tt�dd �� | � tt�d d �� | � tt�dd �� | � tt�d d�� | �t�� t�dd d� W d Q R X | �t�� t�dd d� W d Q R X d S )Nr r )r
r r r r r r )r r r r �)test_infer_return_type_multiples_and_none6 s z?TestLowLevelInternals.test_infer_return_type_multiples_and_nonec C s | � tt�t�d��� d S )N�/)r
r r r �pathlib�Path)r r r r �test_infer_return_type_pathlibA s z4TestLowLevelInternals.test_infer_return_type_pathlibN)�__name__�
__module__�__qualname__r r r r r r r r r
( s r
c @ s8 e Zd Ze�d�Ze�d�Zdd� Zdd� Zdd� Z d S )
�BaseTestCasez^[a-z0-9_-]{8}$s ^[a-z0-9_-]{8}$c C s* t �� | _| j�� tjdtdtd� d S )N�ignore�mktemp)�category�message�module)r �check_warnings�_warnings_manager� __enter__�warnings�filterwarnings�RuntimeWarningr )r r r r �setUpL s
zBaseTestCase.setUpc C s | j �d d d � d S )N)r( �__exit__)r r r r �tearDownR s zBaseTestCase.tearDownc
C s� t j�|�\}}|d t|�� }|t|�t|� d � }|d k rn| �t|�t|�tksbt|t j�rftnt d� |d k r�| �t|�t|�tkr�tnt d� |d k r�| �t|�t|�tkr�tnt d� |||fdkr�| �t|�td� | �
t j�|�t j�|�d||f � | �
||d||f � | �
||d||f � |t|�t|�t|� � }t|t��rb| jn| j
} | �| �|�d|| jf � d S )Nzunexpected return type)NNNzdefault return type must be strzfile %r not in directory %rzfile %r does not begin with %rzfile %r does not end with %rz$random characters %r do not match %r)�os�path�split�lenr
�typer �
isinstance�PathLiker �assertEqual�abspath� str_check�b_check�
assertTrue�match�pattern)
r �name�dir�pre�suf�ndir�nbaseZnpreZnsufZcheckr r r � nameCheckU s8 zBaseTestCase.nameCheckN)
r r r �re�compiler9 r: r- r/ rD r r r r r! G s
r! c @ s e Zd Zdd� ZdS )�TestExportsc C st t j}ddddddddddddddd�}g }x*|D ]"}|d dkr2||kr2|�|� q2W | �t|�dkd| � d S )Nr )�NamedTemporaryFile�
TemporaryFile�mkstemp�mkdtempr# �TMP_MAX�
gettempprefix�gettempprefixb�
gettempdir�gettempdirb�tempdir�template�SpooledTemporaryFile�TemporaryDirectoryr �_zunexpected keys: %s)r �__dict__�appendr; r3 )r �dict�expectedZunexp�keyr r r �test_exports{ s*
zTestExports.test_exportsN)r r r r[ r r r r rG z s rG c sR e Zd ZdZ� fdd�Zdd� Zdd� Zdd � Ze� e
ed
�d�dd
� �Z� Z
S )�TestRandomNameSequencez6Test the internal iterator object _RandomNameSequence.c s t �� | _t� �� d S )N)r �_RandomNameSequence�r�superr- )r )� __class__r r r- � s
zTestRandomNameSequence.setUpc C s t | j�}| �|ddd� d S )Nr )�nextr^ rD )r �sr r r �test_get_six_char_str� s
z,TestRandomNameSequence.test_get_six_char_strc C sL i }| j }x<tt�D ]0}t|�}| �|ddd� | �||� d||<