File: //opt/cppython/lib/python3.8/test/test_tools/__pycache__/test_unparse.cpython-38.opt-2.pyc
U
1D�gQ# � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlm Z m
Z
mZ e� ej�
e
d�Zej�e�� d dlZW 5 Q R X dd� ZdZdZdZd Zd
ZdZdZd
ZdZdZdZdZG dd� de j�Z G dd� de �Z!G dd� de �Z"e#dkr�e �$� dS )� N)�basepath�toolsdir�skip_if_missing�parserc C sL t | d��}t�|j�d }W 5 Q R X t | d|d��}|�� }W 5 Q R X |S )N�rbr �r)�encoding)�open�tokenize�detect_encoding�readline�read)�filenameZpyfiler �source� r �;/opt/cppython/lib/python3.8/test/test_tools/test_unparse.py�read_pyfile s
r zQdef f():
for x in range(10):
break
else:
y = 2
z = 3
zIdef g():
while True:
break
else:
y = 2
z = 3
zQfrom . import fred
from .. import barney
from .australia import shrimp as prawns
zzdef f():
x = 1
def g():
nonlocal x
x = 2
y = 7
def h():
nonlocal x, y
zOtry:
1 / 0
except ZeroDivisionError as e:
raise ArithmeticError from e
z@f1(arg)
@f2
class Foo: pass
z=if cond1:
suite1
elif cond2:
suite2
else:
suite3
z,if cond1:
suite1
elif cond2:
suite2
zctry:
suite1
except ex1:
suite2
except ex2:
suite3
else:
suite4
finally:
suite5
zwith f():
suite1
zwith f() as x:
suite1
z$with f() as x, g() as y:
suite1
c @ s e Zd Zdd� Zddd�ZdS )�ASTTestCasec C s | � t�|�t�|�� d S �N)ZassertEqual�ast�dump)�self�ast1�ast2r r r �assertASTEqual{ s zASTTestCase.assertASTEqual�internalc C sL t ||dtj�}t�� }t�||� |�� }t ||dtj�}| �||� d S )N�exec) �compiler Z
PyCF_ONLY_AST�io�StringIO�unparseZUnparser�getvaluer )r �code1r r Zunparse_buffer�code2r r r r �check_roundtrip~ s zASTTestCase.check_roundtripN)r )�__name__�
__module__�__qualname__r r$ r r r r r z s r c @ s e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd3d4� Zd5d6� Zd7d8� Zd9d:� Zd;d<� Z d=d>� Z!d?d@� Z"dAS )B�UnparseTestCasec C s | � d� | � d� d S )Nz
f'{f"{0}"*3}'z
f'{f"{y}"*3}'�r$ �r r r r �
test_fstrings� s
zUnparseTestCase.test_fstringsc C s"