Your IP : 216.73.216.213
3
��2aW� � @ s d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm Z G dd� d�Z
G dd� d�Zdd� Zd d
� Z
e jdd� �ZG d
d� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�ZG dd� dej�Ze jG dd� dej��Zedk�r
ej� dS )� N)�supportc @ s e Zd Zdd� Zdd� ZdS )�AsyncYieldFromc C s
|| _ d S )N)�obj)�selfr � r �4/opt/alt/python36/lib64/python3.6/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 sd g }d }xRy|j | jd �� W q
tk
rV } z|jr@|jd nd }P W Y d d }~X q
X q
W ||fS )Nr )�append�send�
StopIteration�args)�coro�buffer�result�exr r r � run_async s r c C s� | j � }g }d }d}xry4|d r0|jt|�� n|j|jd �� |d7 }W q tk
r� } z|jrl|jd nd }P W Y d d }~X qX qW ||fS )Nr � � )r r �nextr r r )r �awr r �ir r r r �run_async__await__* s r c c s0 t j� � t jd� d V tj� 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 5 C s� ddddddddd d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5g5}xF|D ]>}| j |d6��( | jt�� t|d7d8� W d Q R X W d Q R X qtW d S )9Nz9def 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]
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
)�codez<test>�exec)�subTest�assertRaises�SyntaxError�compile)r �samplesr% r r r �test_badsyntax_1G sp
z#AsyncBadSyntaxTest.test_badsyntax_1c C sd ddddddddd g }xH|D ]@}| j |d
��* | jtd�� 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%'await' will become reserved keywordsz<test>r&