403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.217.130
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_yield_from.cpython-36.pyc
3

x2_	x�@sfdZddlZddlZddlZddlZddlZddlmZmZm	Z	Gdd�dej
�Zedkrbej
�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_collectc@seZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�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.
    csXg���fdd�}�fdd��x|�D]}�jd|f�q&W|j�dddd	d
g�dS)zH
        Test delegation of initial next() call to subgenerator
        c3s$�jd���EdH�jd�dS)NzStarting g1zFinishing g1)�append�)�g2�tracer�9/opt/alt/python36/lib64/python3.6/test/test_yield_from.py�g1s
zOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g1c3s�jd�dV�jd�dS)NzStarting g2�*zFinishing g2)rr)r	rr
r s
zOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g2z
Yielded %szStarting g1zStarting g2z
Yielded 42zFinishing g2zFinishing g1N)r�assertEqual)�selfr�xr)rr	r
�/test_delegation_of_initial_next_to_subgeneratorszCTestPEP380Operation.test_delegation_of_initial_next_to_subgeneratorcs�g���fdd�}�fdd��y$x|�D]}�jd|f�q(WWn4tk
rv}z|j|jdd�WYdd}~XnX|jd	�|j�d
ddd
g�dS)z?
        Test raising exception in initial next() call
        c3s,z�jd���EdHWd�jd�XdS)NzStarting g1zFinishing g1)rr)rr	rr
r3s
zKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g1cs(z�jd�td��Wd�jd�XdS)NzStarting g2zspanish inquisition occurredzFinishing g2)r�
ValueErrorr)r	rr
r9s
zKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g2z
Yielded %srzspanish inquisition occurredNz'subgenerator failed to raise ValueErrorzStarting g1zStarting g2zFinishing g2zFinishing g1)rrr
�args�fail)rrr�er)rr	r
�+test_raising_exception_in_initial_next_call.s$
z?TestPEP380Operation.test_raising_exception_in_initial_next_callc
s^g���fdd�}�fdd��x|�D]}�jd|f�q&W|j�dddd	d
ddd
g�dS)z@
        Test delegation of next() call to subgenerator
        c3s0�jd�dV��EdHdV�jd�dS)NzStarting g1zg1 hamzg1 eggszFinishing g1)rr)rr	rr
rRs

zLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g1c3s$�jd�dVdV�jd�dS)NzStarting g2zg2 spamzg2 more spamzFinishing g2)rr)r	rr
rXs
zLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g2z
Yielded %szStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzYielded g2 more spamzFinishing g2zYielded g1 eggszFinishing g1N)rr
)rrrr)rr	r
�,test_delegation_of_next_call_to_subgeneratorMsz@TestPEP380Operation.test_delegation_of_next_call_to_subgeneratorcs�g���fdd�}�fdd��y$x|�D]}�jd|f�q(WWn4tk
rv}z|j|jdd�WYdd}~XnX|jd	�|j�d
ddd
ddg�dS)zA
        Test raising exception in delegated next() call
        c3s8z&�jd�dV��EdHdVWd�jd�XdS)NzStarting g1zg1 hamzg1 eggszFinishing g1)rr)rr	rr
ros

zMTestPEP380Operation.test_raising_exception_in_delegated_next_call.<locals>.g1c3s4z"�jd�dVtd��dVWd�jd�XdS)NzStarting g2zg2 spamzhovercraft is full of eelszg2 more spamzFinishing g2)rrr)r	rr
rws

zMTestPEP380Operation.test_raising_exception_in_delegated_next_call.<locals>.g2z
Yielded %srzhovercraft is full of eelsNz'subgenerator failed to raise ValueErrorzStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzFinishing g2zFinishing g1)rrr
rr)rrrrr)rr	r
�-test_raising_exception_in_delegated_next_calljs $
zATestPEP380Operation.test_raising_exception_in_delegated_next_callcs�g���fdd�}�fdd��|�}t|�}d}y,x&|j|�}�jd|f�|d7}q4WWntk
rpYnX|j�ddd	d
ddd
ddddg�dS)z+
        Test delegation of send()
        c3sP�jd�dV}�jd|f���EdHdV}�jd|f��jd�dS)NzStarting g1zg1 hamzg1 received %szg1 eggszFinishing g1)r)r)rr	rr
r�s
z7TestPEP380Operation.test_delegation_of_send.<locals>.g1c3sD�jd�dV}�jd|f�dV}�jd|f��jd�dS)NzStarting g2zg2 spamzg2 received %szg2 more spamzFinishing g2)r)r)r	rr
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 3zFinishing g2zYielded g1 eggsz
g1 received 4zFinishing g1N)�next�sendr�
StopIterationr
)rr�g�yrr)rr	r
�test_delegation_of_send�s2
z+TestPEP380Operation.test_delegation_of_sendcsRg���fdd���fdd����fdd�}|jt|�|j�ddd	d
dg�dS)
zA
        Test handling exception while delegating 'send'
        c3sP�jd�dV}�jd|f���EdHdV}�jd|f��jd�dS)NzStarting g1zg1 hamzg1 received %szg1 eggszFinishing g1)r)r)rr	rr
r�s
zMTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.g1c3sL�jd�dV}�jd|f�td��dV}�jd|f��jd�dS)NzStarting g2zg2 spamzg2 received %szhovercraft is full of eelszg2 more spamzFinishing g2)rr)r)r	rr
r�s
zMTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.g2csb��}t|�}d}y,x&|j|�}�jd|f�|d7}qWWntk
r\�jd�YnXdS)Nrz
Yielded %sr)rrrr)rrr)rr	rr
�run�s
zNTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.runzStarting g1z
g1 received 1zStarting g2zYielded g2 spamz
g2 received 2N)�assertRaisesrr
)rrr)rrr	r
�-test_handling_exception_while_delegating_send�szATestPEP380Operation.test_handling_exception_while_delegating_sendcsrg���fdd�}�fdd��|�}x(td�D]}t|�}�jd|f�q.W|j�|j�ddd	d
ddg�d
S)z)
        Test delegating 'close'
        c3s8z&�jd�dV��EdHdVWd�jd�XdS)NzStarting g1zg1 hamzg1 eggszFinishing g1)rr)rr	rr
r�s

z5TestPEP380Operation.test_delegating_close.<locals>.g1c3s,z�jd�dVdVWd�jd�XdS)NzStarting g2zg2 spamzg2 more spamzFinishing g2)rr)r	rr
r�s


z5TestPEP380Operation.test_delegating_close.<locals>.g2�z
Yielded %szStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzFinishing g2zFinishing g1N)�rangerr�closer
)rrr�irr)rr	r
�test_delegating_close�sz)TestPEP380Operation.test_delegating_closecs�g���fdd�}�fdd��y<|�}x(td�D]}t|�}�jd|f�q0W|j�WnBtk
r�}z&|j|jdd�|j|jt	�WYd	d	}~XnX|j
d
�|j�ddd
dddg�d	S)zB
        Test handling exception while delegating 'close'
        c3s8z&�jd�dV��EdHdVWd�jd�XdS)NzStarting g1zg1 hamzg1 eggszFinishing g1)rr)rr	rr
rs

zMTestPEP380Operation.test_handing_exception_while_delegating_close.<locals>.g1c3s4z�jd�dVdVWd�jd�td��XdS)NzStarting g2zg2 spamzg2 more spamzFinishing g2z"nybbles have exploded with delight)rrr)r	rr
rs


zMTestPEP380Operation.test_handing_exception_while_delegating_close.<locals>.g2r"z
Yielded %srz"nybbles have exploded with delightNz'subgenerator failed to raise ValueErrorzStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzFinishing g2zFinishing g1)r#rrr$rr
r�assertIsInstance�__context__�
GeneratorExitr)rrrr%rrr)rr	r
�-test_handing_exception_while_delegating_closes( 
zATestPEP380Operation.test_handing_exception_while_delegating_closecs�g���fdd�}�fdd��yF|�}x(td�D]}t|�}�jd|f�q0Wtd�}|j|�Wn4tk
r�}z|j|jdd�WYd	d	}~XnX|jd
�|j�ddd
dddg�d	S)z)
        Test delegating 'throw'
        c3s8z&�jd�dV��EdHdVWd�jd�XdS)NzStarting g1zg1 hamzg1 eggszFinishing g1)rr)rr	rr
r4s

z5TestPEP380Operation.test_delegating_throw.<locals>.g1c3s,z�jd�dVdVWd�jd�XdS)NzStarting g2zg2 spamzg2 more spamzFinishing g2)rr)r	rr
r<s


z5TestPEP380Operation.test_delegating_throw.<locals>.g2r"z
Yielded %sztomato ejectedrNz'subgenerator failed to raise ValueErrorzStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzFinishing g2zFinishing g1)r#rrr�throwr
rr)rrrr%rrr)rr	r
�test_delegating_throw/s($
z)TestPEP380Operation.test_delegating_throwcsXg��fdd�}t�}||�td�}||�d|_||�|j�dddddd	g�d
S)zC
        Test 'value' attribute of StopIteration exception
        cs,�jd|jj|f��jd|jf�dS)Nz%s: %sz
value = %s)r�	__class__�__name__�value)r)r	rr
�pex\szPTestPEP380Operation.test_value_attribute_of_StopIteration_exception.<locals>.pex�spam�eggszStopIteration: zvalue = NonezStopIteration: spamzvalue = spamzvalue = eggsN)rr/r
)rr0rr)r	r
�/test_value_attribute_of_StopIteration_exceptionWszCTestPEP380Operation.test_value_attribute_of_StopIteration_exceptioncs,�fdd�}dd��|jt|��dg�dS)Nc3s��EdHdS)Nrr)rrr
rrsz:TestPEP380Operation.test_exception_value_crash.<locals>.g1cssdVdgS)Nrrrrrrr
rtsz:TestPEP380Operation.test_exception_value_crash.<locals>.g2r)r
�list)rrr)rr
�test_exception_value_crashosz.TestPEP380Operation.test_exception_value_crashcs�g���fdd�}d�fdd�	�x|�D]}�jd|f�q(W|j�ddd	d
ddd
d	d
dddd	d
dddd	d
dddddg�dS)z-
        Test generator return value
        c3sv�jd�dV��EdH}�jd|f�x4dd	td�fD]"}�|�EdH}�jd|f�q<WdV�jd�dS)
NzStarting g1zg1 hamzg2 returned %rrr"�zg1 eggszFinishing g1)r")rr)�ret�v)rr	rr
rs
z;TestPEP380Operation.test_generator_return_value.<locals>.g1Nc3s,�jd�dVdV�jd�|r(|SdS)NzStarting g2zg2 spamzg2 more spamzFinishing g2)r)r8)r	rr
r�s

z;TestPEP380Operation.test_generator_return_value.<locals>.g2z
Yielded %szStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzYielded g2 more spamzFinishing g2zg2 returned Nonez
g2 returned 1zg2 returned (2,)zg2 returned StopIteration(3,)zYielded g1 eggszFinishing g1)N)rr
)rrrr)rr	r
�test_generator_return_valuezs<
z/TestPEP380Operation.test_generator_return_valuecCsBg}dd�}x|�D]}|jd|f�qW|j|dddg�dS)z<
        Test delegation of next() to non-generator
        csstd�EdHdS)Nr6)r#rrrr
r�szGTestPEP380Operation.test_delegation_of_next_to_non_generator.<locals>.gz
Yielded %sz	Yielded 0z	Yielded 1z	Yielded 2N)rr
)rr	rrrrr
�(test_delegation_of_next_to_non_generator�sz<TestPEP380Operation.test_delegation_of_next_to_non_generatorcCsTg}dd�}|�}x*td�D]}|jd�}|jd|f�qW|j|dddg�dS)	z9
        Test conversion of send(None) to next()
        csstd�EdHdS)Nr6)r#rrrr
r�szBTestPEP380Operation.test_conversion_of_sendNone_to_next.<locals>.gr6NzYielded: %sz
Yielded: 0z
Yielded: 1z
Yielded: 2)r#rrr
)rr	r�girrrrr
�#test_conversion_of_sendNone_to_next�s
z7TestPEP380Operation.test_conversion_of_sendNone_to_nextcs\g��fdd�}|�}t|�t��}|j�WdQRX|j|j�d�|j�ddg�dS)z=
        Test delegation of close() to non-generator
        c3s8z&�jd�td�EdH�jd�Wd�jd�XdS)Nz
starting gr6zg should not be herezfinishing g)rr#r)r	rr
r�s

zHTestPEP380Operation.test_delegation_of_close_to_non_generator.<locals>.gN�z
starting gzfinishing g)rrr$r
�getvalue)rrr;�outputr)r	r
�)test_delegation_of_close_to_non_generator�sz=TestPEP380Operation.test_delegation_of_close_to_non_generatorcs�g��fdd�}yF|�}x(td�D]}t|�}�jd|f�q"Wtd�}|j|�Wn4tk
r�}z|j|jdd�WYdd}~XnX|jd�|j�d	d
ddd
ddg�dS)z:
        Test delegating 'throw' to non-generator
        c3s.z�jd�td�EdHWd�jd�XdS)Nz
Starting g�
zFinishing g)rr#r)r	rr
r�s
zETestPEP380Operation.test_delegating_throw_to_non_generator.<locals>.g�z
Yielded %sztomato ejectedrNz'subgenerator failed to raise ValueErrorz
Starting gz	Yielded 0z	Yielded 1z	Yielded 2z	Yielded 3z	Yielded 4zFinishing g)r#rrrr+r
rr)rrr;r%rrr)r	r
�&test_delegating_throw_to_non_generator�s($
z:TestPEP380Operation.test_delegating_throw_to_non_generatorcs�g��fdd�}y>|�}t|�x*td�D]}|jd�}�jd|f�q*WWn4tk
r�}z|jd|jd�WYdd}~XnX|jd	�|j�d
dg�dS)z:
        Test attempting to send to non-generator
        c3s8z&�jd�td�EdH�jd�Wd�jd�XdS)Nz
starting gr6zg should not be herezfinishing g)rr#r)r	rr
r	s

zGTestPEP380Operation.test_attempting_to_send_to_non_generator.<locals>.gr6rzShould not have yielded: %srrNz#was able to send into non-generatorz
starting gzfinishing g)	rr#rr�AttributeError�assertInrrr
)rrr;rrrr)r	r
�(test_attempting_to_send_to_non_generators
$
z<TestPEP380Operation.test_attempting_to_send_to_non_generatorcs�Gdd�d���fdd�}|jt��&|�}|jt|�d�|jd�WdQRX|jt��&|�}|jt|�d�|jt�WdQRXt��$}|�}|jt|�d�|j�WdQRX|j	d|j
��dS)zG
        Test subiterator with a broken getattr implementation
        c@s$eZdZdd�Zdd�Zdd�ZdS)z@TestPEP380Operation.test_broken_getattr_handling.<locals>.BrokencSs|S)Nr)rrrr
�__iter__$szITestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__iter__cSsdS)Nrr)rrrr
�__next__&szITestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__next__cSsdddS)Nrrr)r�attrrrr
�__getattr__(szLTestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__getattr__N)r.�
__module__�__qualname__rGrHrJrrrr
�Broken#srMc3s��EdHdS)Nrr)rMrr
r+sz;TestPEP380Operation.test_broken_getattr_handling.<locals>.grN�ZeroDivisionError)r rNr
rrr+rDrr$rEr>)rrr;r?r)rMr
�test_broken_getattr_handlingsz0TestPEP380Operation.test_broken_getattr_handlingcsDg���fdd��dd���fdd�}|jt|�|j�dg�dS)	z7
        Test exception in initial next() call
        c3s$�jd���EdH�jd�dS)Nzg1 about to yield from g2zg1 should not be here)rr)rr	rr
rCs
zCTestPEP380Operation.test_exception_in_initial_next_call.<locals>.g1cssddVdS)Nrrrrrrr
rGszCTestPEP380Operation.test_exception_in_initial_next_call.<locals>.g2cs��}t|�dS)N)r)r;)rrr
rIszDTestPEP380Operation.test_exception_in_initial_next_call.<locals>.runzg1 about to yield from g2N)r rNr
)rrr)rrr	r
�#test_exception_in_initial_next_call>sz7TestPEP380Operation.test_exception_in_initial_next_callcs�g���fdd�}��fdd��y(|��x�D]}�jd|f�q.WWn4tk
r|}z|j|jdd�WYdd}~XnX|jd	�|j�d
ddd
ddg�dS)z0
        Test attempted yield-from loop
        c3s4�jd�dV�jd���EdH�jd�dS)Nzg1: startingZy1zg1: about to yield from g2zg1 should not be here)rr)rr	rr
rVs


z>TestPEP380Operation.test_attempted_yield_from_loop.<locals>.g1c3s2�jd�dV�jd��EdH�jd�dS)Nzg2: startingZy2zg2: about to yield from g1zg2 should not be here)rr)r;r	rr
r]s



z>TestPEP380Operation.test_attempted_yield_from_loop.<locals>.g2zYielded: %srzgenerator already executingNz$subgenerator didn't raise ValueErrorzg1: startingzYielded: y1zg1: about to yield from g2zg2: startingzYielded: y2zg2: about to yield from g1)rrr
rr)rrrrr)rr;r	r
�test_attempted_yield_from_loopQs"
$
z2TestPEP380Operation.test_attempted_yield_from_loopc
s�g���fdd�}��fdd��Gdd�dt��|�}x(td�D]}t|�}�jd|f�q@W�d	�}|j|�x|D]}�jd|f�qxW|j�d
ddd
ddddg�dS)z=
        Test returning value from delegated 'throw'
        c3s8z&�jd�dV��EdHdVWd�jd�XdS)NzStarting g1zg1 hamzg1 eggszFinishing g1)rr)rr	rr
rys

zITestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.g1c3sJy�jd�dVdVWn*�k
rD�jd�dVdVYnXdS)NzStarting g2zg2 spamzg2 more spamzCaught LunchError in g2zg2 lunch savedzg2 yet more spam)rr)�
LunchErrorr	rr
r�s


zITestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.g2c@seZdZdS)zQTestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.LunchErrorN)r.rKrLrrrr
rR�srRr"z
Yielded %sztomato ejectedzStarting g1zYielded g1 hamzStarting g2zYielded g2 spamzCaught LunchError in g2zYielded g2 yet more spamzYielded g1 eggszFinishing g1N)�	Exceptionr#rrr+r
)rrrr%rrr)rRrr	r
�)test_returning_value_from_delegated_throwts*	

z=TestPEP380Operation.test_returning_value_from_delegated_throwcsrg���fdd�}�fdd��|d�|d�|d�|td��|j�d	d
ddd	d
d
dd	d
ddd	d
ddg�dS)z1
        Test next and return with value
        csh�|�}t|�y �jd�t|��jd�Wn2tk
rb}z�jd|f�WYdd}~XnXdS)Nzf resuming gzf SHOULD NOT BE HEREzf caught %r)rrr)�rr;r)rr	rr
�f�s
z>TestPEP380Operation.test_next_and_return_with_value.<locals>.fc3s$�jd�dV�jd|f�|S)Nz
g startingzg returning %r)r)rU)r	rr
r�s
z>TestPEP380Operation.test_next_and_return_with_value.<locals>.gNrr"r6z
g startingzf resuming gzg returning Nonezf caught StopIteration()z
g returning 1zf caught StopIteration(1,)zg returning (2,)zf caught StopIteration((2,),)zg returning StopIteration(3,)z*f caught StopIteration(StopIteration(3,),))r")rr
)rrVr)rr	r
�test_next_and_return_with_value�s0	z3TestPEP380Operation.test_next_and_return_with_valuecszg���fdd�}�fdd��|d�|d�|d�|td��|j�d	d
ddd
d	d
dddd	d
dddd	d
dddg�dS)z1
        Test send and return with value
        csj�|�}t|�y"�jd�|jd��jd�Wn2tk
rd}z�jd|f�WYdd}~XnXdS)Nzf sending spam to gr1zf SHOULD NOT BE HEREzf caught %r)rrrr)rUr;r)rr	rr
rV�s

z>TestPEP380Operation.test_send_and_return_with_value.<locals>.fc3s4�jd�dV}�jd|f��jd|f�|S)Nz
g startingz
g received %rzg returning %r)r)rUr)r	rr
r�s

z>TestPEP380Operation.test_send_and_return_with_value.<locals>.gNrr"r6z
g startingzf sending spam to gzg received 'spam'zg returning Nonezf caught StopIteration()z
g returning 1zf caught StopIteration(1,)zg returning (2,)zf caught StopIteration((2,),)zg returning StopIteration(3,)z*f caught StopIteration(StopIteration(3,),))r")rr
)rrVr)rr	r
�test_send_and_return_with_value�s8	z3TestPEP380Operation.test_send_and_return_with_valuecs���fdd����fdd�}x`dd
td�fD]N�g�|�}�jt|���jt|jt���|j�ddd�ft��g�q,Wd	S)ze
        Test catching an exception thrown into a
        subgenerator and returning a value
        c3s.y
dVWntk
r(�jd�YnX�S)Nrzinner caught ValueError)rrr)r	r/rr
�inner�s

zTTestPEP380Operation.test_catching_exception_from_subgen_and_returning.<locals>.innerc3s&��EdH}�jd|f�|VdS)Nzinner returned %r to outer)r)r8)rYr	rr
�outerszTTestPEP380Operation.test_catching_exception_from_subgen_and_returning.<locals>.outerr"rzinner caught ValueErrorzinner returned %r to outerN)r")rrr�reprr+rr
)rrZrr)rYr	r/r
�1test_catching_exception_from_subgen_and_returning�szETestPEP380Operation.test_catching_exception_from_subgen_and_returningcsng��fdd����fdd�}y|�}t|�|jt�Wntk
rNYnX|jd�|j�ddg�dS)	zo
        Test throwing GeneratorExit into a subgenerator that
        catches it and returns normally.
        c3s8y�jd�dV�jd�Wntk
r2dSXdS)NzEnter fzExit f)rr)r)r	rr
rVs
zSTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returns.<locals>.fc3s$�jd���EdH�jd�dS)NzEnter gzExit g)rr)rVr	rr
r"s
zSTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returns.<locals>.gz*subgenerator failed to raise GeneratorExitzEnter gzEnter fN)rr+r)rr
)rrr;r)rVr	r
�4test_throwing_GeneratorExit_into_subgen_that_returnss
zHTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returnscs�g��fdd����fdd�}y|�}t|�|jt�Wn4tk
rn}z|j|jdd�WYdd}~XnX|jd�|j�d	d
g�dS)ze
        Test throwing GeneratorExit into a subgenerator that
        catches it and yields.
        c3s>y�jd�dV�jd�Wntk
r8dVYnXdS)NzEnter fzExit f)rr)r)r	rr
rV9s
zXTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yields.<locals>.fc3s$�jd���EdH�jd�dS)NzEnter gzExit g)rr)rVr	rr
r@s
zXTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yields.<locals>.grzgenerator ignored GeneratorExitNz*subgenerator failed to raise GeneratorExitzEnter gzEnter f)rr+r)�RuntimeErrorr
rr)rrr;rr)rVr	r
�9test_throwing_GeneratorExit_into_subgenerator_that_yields3s$
zMTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yieldscs�g��fdd����fdd�}y|�}t|�|jt�WnBtk
r|}z&|j|jdd�|j|jt�WYdd}~XnX|jd�|j�d	d
g�dS)z{
        Test throwing GeneratorExit into a subgenerator that
        catches it and raises a different exception.
        c3s@y�jd�dV�jd�Wntk
r:td��YnXdS)NzEnter fzExit fzVorpal bunny encountered)rr)rr)r	rr
rVWs
zRTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raises.<locals>.fc3s$�jd���EdH�jd�dS)NzEnter gzExit g)rr)rVr	rr
r^s
zRTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raises.<locals>.grzVorpal bunny encounteredNz'subgenerator failed to raise ValueErrorzEnter gzEnter f)	rr+r)rr
rr'r(r)rrr;rr)rVr	r
�3test_throwing_GeneratorExit_into_subgen_that_raisesQs 
zGTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raisescCsdd�}|jtt|��dS)NcssfEdHdS)Nrrrrr
rqsz4TestPEP380Operation.test_yield_from_empty.<locals>.g)r rr)rrrrr
�test_yield_from_emptypsz)TestPEP380Operation.test_yield_from_emptycs2�fdd�}�fdd��|���jt��ddddg�|��t��g}yx|j�jd	��qJWWntk
rtYnX�j|ddddg�Gd
d�dt����fdd�}��fd
d��|��t��g}yx|j�j���q�WWntk
r�YnXG��fdd�dt���fdd�}|��t���j	�dS)Nc3sdV��EdHdVdS)Nrr6rr)�tworr
�onewszOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.onec3s4dVy�EdHWntk
r(YnXdVdS)Nrr")rr)rrr
rb{szOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.tworrr"r6rc@seZdZdS)zQTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyErrN)r.rKrLrrrr
�MyErr�srdc3sPy
dVWn�k
rYnX��EdHy
dVWn�k
rJYnXdS)Nrr6rr)rdrbrr
rc�s

c3shy
dVWn�k
rYnXy�EdHWntk
rBYnXy
dVWn�k
rbYnXdS)Nrr")rr)rdrrr
rb�s

cs*eZdZdd�Zdd�Z��fdd�ZdS)zPTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyItcSs|S)Nr)rrrr
rG�szYTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.__iter__cSsdS)Nrr)rrrr
rH�szYTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.__next__cs�j�j��jtt��dS)N)�
assertTrue�
gi_runningr rr)Zself_)rrrr
r$�szVTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.closeN)r.rKrLrGrHr$r)rrrr
�MyIt�srgc3s��EdHdS)Nrr)rgrr
rc�s)
r
r4rrrrrSr+�objectr$)rrc�resr)rdrgrrrbr
�.test_delegating_generators_claim_to_be_runningus6



zBTestPEP380Operation.test_delegating_generators_claim_to_be_runningcsxdd���fdd�}dd�}dd�}x ||��D]}|jd	|k�q0Wx,|||���D]}|jd	|kold
|k�qVWdS)NcSsdd�tj�D�S)NcSsg|]}|d�qS)r6r)�.0rVrrr
�
<listcomp>�szaTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.call_stack.<locals>.<listcomp>)�inspect�stackrrrr
�
call_stack�szMTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.call_stackc3s��V��V��VdS)Nrr)rorr
�gen�szFTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.gencss|EdHdS)Nr)rrrr
r1�szGTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.spamcss|EdHdS)Nr)rrrr
r2�szGTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.eggsr1r2)re)rrpr1r2rnr)ror
�%test_delegator_is_visible_to_debugger�sz9TestPEP380Operation.test_delegator_is_visible_to_debuggercs:Gdd�d����fdd�}d�t|��|j�d�dS)Nc@seZdZdd�Zdd�ZdS)z?TestPEP380Operation.test_custom_iterator_return.<locals>.MyItercSs|S)Nr)rrrr
rG�szHTestPEP380Operation.test_custom_iterator_return.<locals>.MyIter.__iter__cSstd��dS)Nr)r)rrrr
rH�szHTestPEP380Operation.test_custom_iterator_return.<locals>.MyIter.__next__N)r.rKrLrGrHrrrr
�MyIter�srrc3s��EdH�dS)Nrr)rrr7rr
rp�sz<TestPEP380Operation.test_custom_iterator_return.<locals>.genr)r4r
)rrpr)rrr7r
�test_custom_iterator_return�s

z/TestPEP380Operation.test_custom_iterator_returnc	sfdd���fdd�}dd�}t��:|�}|�}|jd�|j|�|j|�~~t�WdQRXdS)Ncss
dVdS)Nrrrrr
�	innermost�szDTestPEP380Operation.test_close_with_cleared_frame.<locals>.innermostc3sdV}��EdHdS)Nr)�	outer_gen)rtrr
rY�sz@TestPEP380Operation.test_close_with_cleared_frame.<locals>.innercssdV}|EdHdS)Nr)�	inner_genrrr
rZ�sz@TestPEP380Operation.test_close_with_cleared_frame.<locals>.outer)rrr)rrYrZrvrur)rtr
�test_close_with_cleared_frame�s


z1TestPEP380Operation.test_close_with_cleared_framecsJG�fdd�d���fdd�}|�}t|�d�|jd	�|j�d
�dS)Ncs(eZdZdd�Zdd�Z�fdd�ZdS)zHTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.MyGencSs|S)Nr)rrrr
rG
szQTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.MyGen.__iter__cSsdS)Nrr)rrrr
rHszQTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.MyGen.__next__cs|�dS)Nr)rZwhat)r8rr
rszMTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.MyGen.sendN)r.rKrLrGrHrr)r8rr
�MyGen	srxc3s��EdH}dS)Nr)r8)rxrr
rZszHTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.outerrr"r6�)rr"r6ry)rr"r6ry)rrr
)rrZrr)rxr8r
�%test_send_tuple_with_custom_generators	
z9TestPEP380Operation.test_send_tuple_with_custom_generatorN)%r.rKrL�__doc__rrrrrr!r&r*r,r3r5r9r:r<r@rCrFrOrPrQrTrWrXr\r]r_r`rarjrqrsrwrzrrrr
rsD%,)")(3 #+*/H'r�__main__)r{Zunittest�io�sysrm�parserZtest.supportrrrZTestCaserr.�mainrrrr
�<module>s"

Youez - 2016 - github.com/yon3zu
LinuXploit