File: //usr/local/lib/python3.7/test/__pycache__/test_yield_from.cpython-37.opt-2.pyc
B
��g�w � @ sJ d dl Z d dlZd dlmZmZmZ G dd� de j�ZedkrFe � � dS )� N)�captured_stderr�
disable_gc�
gc_collectc @ 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"dAdB� Z#dCS )D�TestPEP380Operationc sX g �� �fdd�}�fdd�� x|� D ]}�� d|f � q&W | ��dddd d
g� d S )Nc 3 s$ �� d� � � E d H �� d� d S )NzStarting g1zFinishing g1)�append� )�g2�tracer �0/usr/local/lib/python3.7/test/test_yield_from.py�g1 s
zOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g1c 3 s � � d� dV � � d� d S )NzStarting g2�* zFinishing g2)r r )r r r
r s
zOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g2z
Yielded %szStarting g1zStarting g2z
Yielded 42zFinishing g2zFinishing g1)r �assertEqual)�selfr �xr )r r r
�/test_delegation_of_initial_next_to_subgenerator s zCTestPEP380Operation.test_delegation_of_initial_next_to_subgeneratorc
s� g �� �fdd�}�fdd�� y$x|� D ]}�� d|f � q(W W n4 tk
rv } z| �|jd d� W d d }~X Y nX | �d� | ��d d
ddg� d S )
Nc 3 s, z�� d� � � E d H W d �� d� X d S )NzStarting g1zFinishing g1)r r )r r r r
r 0 s
zKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g1c s( z� � d� td��W d � � d� X d S )NzStarting g2zspanish inquisition occurredzFinishing g2)r �
ValueErrorr )r r r
r 6 s
zKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g2z
Yielded %sr zspanish inquisition occurredz'subgenerator failed to raise ValueErrorzStarting g1zStarting g2zFinishing g2zFinishing g1)r r r
�args�fail)r r r �er )r r r
�+test_raising_exception_in_initial_next_call+ s $
z?TestPEP380Operation.test_raising_exception_in_initial_next_callc s^ g �� �fdd�}�fdd�� x|� D ]}�� d|f � q&W | ��dddd d
ddd
g� d S )Nc 3 s0 �� d� dV � � E d H dV �� d� d S )NzStarting g1zg1 hamzg1 eggszFinishing g1)r r )r r r r
r O s
zLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g1c 3 s$ � � d� dV dV � � d� d S )NzStarting g2zg2 spamzg2 more spamzFinishing g2)r r )r r r
r U s
zLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g2z
Yielded %szStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzYielded g2 more spamzFinishing g2zYielded g1 eggszFinishing g1)r r
)r r r r )r r r
�,test_delegation_of_next_call_to_subgeneratorJ s z@TestPEP380Operation.test_delegation_of_next_call_to_subgeneratorc
s� g �� �fdd�}�fdd�� y$x|� D ]}�� d|f � q(W W n4 tk
rv } z| �|jd d� W d d }~X Y nX | �d� | ��d d
ddd
dg� d S )Nc 3 s8 z&�� d� dV � � E d H dV W d �� d� X d S )NzStarting g1zg1 hamzg1 eggszFinishing g1)r r )r r r r
r l s
zMTestPEP380Operation.test_raising_exception_in_delegated_next_call.<locals>.g1c 3 s4 z"� � d� dV td��dV W d � � d� X d S )NzStarting g2zg2 spamzhovercraft is full of eelszg2 more spamzFinishing g2)r r r )r r r
r t s
zMTestPEP380Operation.test_raising_exception_in_delegated_next_call.<locals>.g2z
Yielded %sr zhovercraft is full of eelsz'subgenerator failed to raise ValueErrorzStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzFinishing g2zFinishing g1)r r r
r r )r r r r r )r r r
�-test_raising_exception_in_delegated_next_callg s $
zATestPEP380Operation.test_raising_exception_in_delegated_next_callc s� g �� �fdd�}�fdd�� |� }t |�}d}y,x&|�|�}��d|f � |d7 }q4W W n tk
rp Y nX | ��ddd d
ddd
ddddg� d S )Nc 3 sP �� d� dV } �� d| f � � � E d H dV } �� d| f � �� d� d S )NzStarting g1zg1 hamzg1 received %szg1 eggszFinishing g1)r )r )r r r r
r � s
z7TestPEP380Operation.test_delegation_of_send.<locals>.g1c 3 sD � � d� dV } � � d| f � dV } � � d| f � � � d� d S )NzStarting g2zg2 spamzg2 received %szg2 more spamzFinishing g2)r )r )r r r
r � s
z7TestPEP380Operation.test_delegation_of_send.<locals>.g2� z
Yielded %szStarting g1z
g1 received 1zStarting g2zYielded g2 spamz
g2 received 2zYielded g2 more spamz
g2 received 3zFinishing g2zYielded g1 eggsz
g1 received 4zFinishing g1)�next�sendr �
StopIterationr
)r r �g�yr r )r r r
�test_delegation_of_send� s2
z+TestPEP380Operation.test_delegation_of_sendc sR g ���fdd�� �fdd��� �fdd�}| � t|� | ��ddd d
dg� d S )Nc 3 sP �� d� dV } �� d| f � � � E d H dV } �� d| f � �� d� d S )NzStarting g1zg1 hamzg1 received %szg1 eggszFinishing g1)r )r )r r r r
r � s
zMTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.g1c 3 sL � � d� dV } � � d| f � td��dV } � � d| f � � � d� d S )NzStarting g2zg2 spamzg2 received %szhovercraft is full of eelszg2 more spamzFinishing g2)r r )r )r r r
r � s
zMTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.g2c sb � � } t | �}d}y,x&| �|�}��d|f � |d7 }qW W n tk
r\ ��d� Y nX d S )Nr z
Yielded %sr )r r r r )r r r )r r r r
�run� s
zNTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.runzStarting g1z
g1 received 1zStarting g2zYielded g2 spamz
g2 received 2)�assertRaisesr r
)r r r )r r r r
�-test_handling_exception_while_delegating_send� s zATestPEP380Operation.test_handling_exception_while_delegating_sendc sr g �� �fdd�}�fdd�� |� }x(t d�D ]}t|�}��d|f � q.W |�� | ��ddd d
ddg� d S )
Nc 3 s8 z&�� d� dV � � E d H dV W d �� d� X d S )NzStarting g1zg1 hamzg1 eggszFinishing g1)r r )r r r r
r � s
z5TestPEP380Operation.test_delegating_close.<locals>.g1c 3 s, z� � d� dV dV W d � � d� X d S )NzStarting g2zg2 spamzg2 more spamzFinishing g2)r r )r r r
r � s
z5TestPEP380Operation.test_delegating_close.<locals>.g2� z
Yielded %szStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzFinishing g2zFinishing g1)�ranger r �closer
)r r r �ir r )r r r
�test_delegating_close� s z)TestPEP380Operation.test_delegating_closec
s� g �� �fdd�}�fdd�� y<|� }x(t d�D ]}t|�}��d|f � q0W |�� W nB tk
r� } z$| �|jd d� | �|jt � W d d }~X Y nX | �
d � | ��d
ddd
ddg� d S )Nc 3 s8 z&�� d� dV � � E d H dV W d �� d� X d S )NzStarting g1zg1 hamzg1 eggszFinishing g1)r r )r r r r
r s
zMTestPEP380Operation.test_handing_exception_while_delegating_close.<locals>.g1c 3 s4 z� � d� dV dV W d � � d� td��X d S )NzStarting g2zg2 spamzg2 more spamzFinishing g2z"nybbles have exploded with delight)r r r )r r r
r s
zMTestPEP380Operation.test_handing_exception_while_delegating_close.<locals>.g2r"