File: //usr/local/lib/python3.10/lib2to3/tests/__pycache__/test_main.cpython-310.pyc
o
�il � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl m
Z
ej�ej�
e�d�Zej�ed�ZG dd� dej�ZedkrOe�
� dS dS )� N)�main�datazpy2_test_grammar.pyc @ sL e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dS )�TestMainc C s
d | _ d S �N)�temp_dir��self� r �4/usr/local/lib/python3.10/lib2to3/tests/test_main.py�setUp s
zTestMain.setUpc C s( t jjd d �= | jrt�| j� d S d S r )�logging�root�handlersr �shutil�rmtreer r r r
�tearDown s �zTestMain.tearDownc C sZ t j}t j}t j}|t _|t _|t _zt�d|�W |t _|t _|t _S |t _|t _|t _w )Nz
lib2to3.fixes)�sys�stdin�stdout�stderrr )r �argsZ
in_captureZout_captureZerr_captureZ
save_stdinZsave_stdoutZsave_stderrr r r
�run_2to3_capture s �zTestMain.run_2to3_capturec C st t �d�}t �� }t�d�|�}t �� }| �dg|||�}| �|d� |�� �d�}| � d|� | � d|�� � d S )Nu print 'nothing'
print u'über'
�ascii�-r z-print 'nothing'z9WARNING: couldn't encode <stdin>'s diff for your terminal)
�io�StringIO�BytesIO�codecs� getwriterr �assertEqual�getvalue�decode�assertIn)r Zinput_stream�outZout_enc�err�ret�outputr r r
�test_unencodable_diff, s
�zTestMain.test_unencodable_diffc C s� t �� | _tj�| jd�| _tj�| jd�| _t�| j� t�| j� g | _ t
tj�| jd�d��� | j �d� t
�t| j� | j �tj�t�� tj�| jd�| _tj�| jd�| _t
| jd��
}|�d� W d � n1 srw Y | j �d� dS )z5Setup a test source tree and output destination tree.Zpython2_projectZpython3_projectz__init__.py�wz
trivial.pyz#print 'I need a simple conversion.'N)�tempfile�mkdtempr �os�path�join�py2_src_dir�py3_dest_dir�mkdir�setup_files�open�close�appendr �copy�PY2_TEST_MODULE�basename�trivial_py2_file�
init_py2_file�write)r Ztrivialr r r
�setup_test_source_trees8 s
�z TestMain.setup_test_source_treesc
s | � � t�� }t�� }d� | �dd� ddd| j| jgt�d�||�}| �|d� |�� }| �d |� | �d
| j| jf |� | �t � fdd�| j
D ��t t�| j��� | j
D ]}| �d
tj
�| j|�tj
�| j|� �f |� qXt�tj�}| �|d�d|�� | �|d�d|�� dS )z92to3 a single directory with a new output dir and suffix.ZTEST�-nz--add-suffix�--write-unchanged-files�
--no-diffs�--output-dir� r z implies -w.�6Output in %r will mirror the input directory %r layoutc 3 s � | ]}|� V qd S r r ��.0�name��suffixr r
� <genexpr>\ s � zGTestMain.test_filename_changing_on_output_single_dir.<locals>.<genexpr>zWriting converted %s to %szNo changes to .*/__init__\.py�/zNo changes to .*/trivial\.pyN)r; r r r r/ r. r r r"