Sindbad~EG File Manager
a
��gx � @ sZ d Z ddlZddlZddlmZmZmZ ddlmZ G dd� dej �Z
edkrVe�� dS )z�
Test suite for PEP 380 implementation
adapted from original tests written by Greg Ewing
see <http://www.cosc.canterbury.ac.nz/greg.ewing/python/yield-from/YieldFrom-Python3.1.2-rev5.zip>
� N)�captured_stderr�
disable_gc�
gc_collect)�supportc @ s e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� 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.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Z d<d=� Z!d>d?� Z"d@dA� Z#dBdC� Z$dDS )E�TestPEP380Operationz
Test semantics.
c sN g �� �fdd�}�fdd�� |� D ]}�� d|f � q$| ��g d�� dS )zH
Test delegation of initial next() call to subgenerator
c 3 s$ �� d� � � E d H �� d� d S �N�Starting g1�Finishing g1��append� ��g2�tracer �0/usr/local/lib/python3.9/test/test_yield_from.py�g1 s
zOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g1c 3 s � � d� dV � � d� d S )N�Starting g2�* �Finishing g2r
r �r r r r s
zOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g2�
Yielded %s)r r z
Yielded 42r r N�r �assertEqual��selfr �xr r
r �/test_delegation_of_initial_next_to_subgenerator s
zCTestPEP380Operation.test_delegation_of_initial_next_to_subgeneratorc
s� g �� �fdd�}�fdd�� z |� D ]}�� d|f � q&W n6 tyt } z| �|jd d� W Y d}~nd}~0 0 | �d � | ��g d
�� dS )z?
Test raising exception in initial next() call
c 3 s6 z$�� d� � � E d H W �� d� n�� d� 0 d S r r
r r
r r r 1 s
zKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g1c s2 z � � d� td��W � � d� n� � d� 0 d S )Nr �spanish inquisition occurredr �r �
ValueErrorr r r r r 7 s
zKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g2r r r N�'subgenerator failed to raise ValueError)r r r r �r r r �args�fail�r r r �er r
r �+test_raising_exception_in_initial_next_call, s
(
z?TestPEP380Operation.test_raising_exception_in_initial_next_callc sN g �� �fdd�}�fdd�� |� D ]}�� d|f � q$| ��g d�� dS )z@
Test delegation of next() call to subgenerator
c 3 s0 �� d� dV � � E d H dV �� d� d S �Nr �g1 ham�g1 eggsr r
r r
r r r P s
zLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g1c 3 s$ � � d� dV dV � � d� d S �Nr �g2 spam�g2 more spamr r
r r r r r V s
zLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g2r )r �Yielded g1 hamr �Yielded g2 spam�Yielded g2 more spamr �Yielded g1 eggsr Nr r r r
r �,test_delegation_of_next_call_to_subgeneratorK s
z@TestPEP380Operation.test_delegation_of_next_call_to_subgeneratorc
s� g �� �fdd�}�fdd�� z |� D ]}�� d|f � q&W n6 tyt } z| �|jd d� W Y d}~nd}~0 0 | �d � | ��g d
�� dS )zA
Test raising exception in delegated next() call
c 3 sB z0�� d� dV � � E d H dV W �� d� n�� d� 0 d S r'