File: //usr/local/lib/python3.7/test/__pycache__/test_coroutines.cpython-37.pyc
B
��g� � @ sF d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl m
Z
d dlmZ G dd� d�Z
G dd� d�Zdd � Zd
d� Ze jdd
� �ZG dd� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�Ze
jG dd� dej��Zedk�rBe�� dS )� N)�support)�assert_python_okc @ s e Zd Zdd� Zdd� ZdS )�AsyncYieldFromc C s
|| _ d S )N)�obj)�selfr � r �0/usr/local/lib/python3.7/test/test_coroutines.py�__init__ s zAsyncYieldFrom.__init__c c s | j E d H d S )N)r )r r r r � __await__ s zAsyncYieldFrom.__await__N)�__name__�
__module__�__qualname__r r
r r r r r s r c @ s e Zd Zdd� Zdd� ZdS )�
AsyncYieldc C s
|| _ d S )N)�value)r r r r r r s zAsyncYield.__init__c c s | j V d S )N)r )r r r r r
s zAsyncYield.__await__N)r r r
r r
r r r r r s r c
C sz | j tjtjhkst�g }d }xRy|�| �d �� W q tk
rl } z|jrV|jd nd }P W d d }~X Y q X q W ||fS )Nr ) � __class__�types�
GeneratorType�
CoroutineType�AssertionError�append�send�
StopIteration�args)�coro�buffer�result�exr r r � run_async s r c
C s� | j tjkst�| �� }g }d }d}xry4|d r@|�t|�� n|�|�d �� |d7 }W q& tk
r� } z|j r||j d nd }P W d d }~X Y q&X q&W ||fS )Nr � � )
r r r r r
r �nextr r r )r �awr r �ir r r r �run_async__await__, s r# c c s0 t �� � t �d� d V t�� W d Q R X d S )N�ignore)�warnings�catch_warnings�simplefilterr �
gc_collectr r r r �silence_coro_gc? s
r) c @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd S )
�AsyncBadSyntaxTestc ; C s� ddddddddd d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;g;}xF|D ]>}| j |d<��( | �t�� t|d=d>� W d Q R X W d Q R X q�W d S )?Nz9def foo():
await something()
zawait something()z;async def foo():
yield from []
z=async def foo():
await await fut
zEasync def foo(a=await something()):
pass
zEasync def foo(a:await something()):
pass
z`async def foo():
def bar():
[i async for i in els]
z`async def foo():
def bar():
[await i for i in els]
z�async def foo():
def bar():
[i for i in els
async for b in els]
z�async def foo():
def bar():
[i for i in els
for c in b
async for b in els]
z�async def foo():
def bar():
[i for i in els
async for b in els
for c in b]
z�async def foo():
def bar():
[i for i in els
for b in await els]
z�async def foo():
def bar():
[i for i in els
for b in els
if await b]
z`async def foo():
def bar():
[i for i in await els]
zeasync def foo():
def bar():
[i for i in els if await i]
z?def bar():
[i async for i in els]
zBdef bar():
{i: i async for i in els}
z?def bar():
{i async for i in els}
z?def bar():
[await i for i in els]
z`def bar():
[i for i in els
async for b in els]
zdef bar():
[i for i in els
for c in b
async for b in els]
zdef bar():
[i for i in els
async for b in els
for c in b]
z`def bar():
[i for i in els
for b in await els]
z}def bar():
[i for i in els
for b in els
if await b]
z?def bar():
[i for i in await els]
zDdef bar():
[i for i in els if await i]
z3async def foo():
await
z]async def foo():
def bar(): pass
await = 1
z^async def foo():
def bar(): pass
await = 1
zzasync def foo():
def bar(): pass
if 1:
await = 1
zxdef foo():
async def bar(): pass
if 1:
await a
z[def foo():
async def bar(): pass
await a
z~def foo():
def baz(): pass
async def bar(): pass
await a
z�def foo():
def baz(): pass
# 456
async def bar(): pass
# 123
await a
z�async def foo():
def baz(): pass
# 456
async def bar(): pass
# 123
await = 2
z�def foo():
def baz(): pass
async def bar(): pass
await a
z�async def foo():
def baz(): pass
async def bar(): pass
await = 2
zBasync def foo():
def async(): pass
zBasync def foo():
def await(): pass
zXasync def foo():
def bar():
await
zKasync def foo():
return lambda async: await
zGasync def foo():
return lambda a: await
z await a()z>async def foo(a=await b):
pass
z>async def foo(a:await b):
pass
z`def baz():
async def foo(a=await b):
pass
z:async def foo(async):
pass
z�async def foo():
def bar():
def baz():
async = 1
z�async def foo():
def bar():
def baz():
pass
async = 1
z�def foo():
async def bar():
async def baz():
pass
def baz():
42
async = 1
z�async def foo():
def bar():
def baz():
pass
await foo()
z�def foo():
def bar():
async def baz():
pass
await foo()
z:async def foo(await):
pass
z]def foo():
async def bar(): pass
await a
z`def foo():
async def bar():
pass
await a
z`def foo():
async for i in arange(2):
pass
z[def foo():
async with resource:
pass
z9async with resource:
pass
z>async for i in arange(2):
pass
)�codez<test>�exec)�subTest�assertRaises�SyntaxError�compile)r �samplesr+ r r r �test_badsyntax_1I s|
z#AsyncBadSyntaxTest.test_badsyntax_1c C sb ddddddddd g }xF|D ]>}| j |d
��( | �t�� t|dd� W d Q R X W d Q R X qW d S )
Nz1def foo():
await = 1
z9class Bar:
def async(): pass
z1class Bar:
async = 1
z.class async:
pass
z.class await:
pass
zimport math as awaitz!def async():
passz2def foo(*, await=1):
passasync = 1zprint(await=1))r+ z<test>r, )r- r. r/ r0 )r r1 r+ r r r �test_badsyntax_2� s
z#AsyncBadSyntaxTest.test_badsyntax_2c C s&