Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/test/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/test/__pycache__/test_pep380.cpython-33.pyc

�
��f�qc@s�dZddlZddlZddlZddlZddlZddlmZmZm	Z	Gdd�dej
�Zdd�Ze
dkr�e�ndS(	u�
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>
iN(ucaptured_stderru
disable_gcu
gc_collectcBs�|EeZdZdZdd�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#dBS(CuTestPEP380Operationu
    Test semantics.
    csxg���fdd�}�fdd��x%|�D]}�jd|f�q7W|j�dddd	d
g�dS(uH
        Test delegation of initial next() call to subgenerator
        c3s*�jd���DdH�jd�dS(NuStarting g1uFinishing g1(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1s
uOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g1c3s#�jd�dV�jd�dS(NuStarting g2i*uFinishing g2(uappend((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2 s
uOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g2u
Yielded %suStarting g1uStarting g2u
Yielded 42uFinishing g2uFinishing g1N(uappenduassertEqual(uselfug1ux((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu/test_delegation_of_initial_next_to_subgenerators	uCTestPEP380Operation.test_delegation_of_initial_next_to_subgeneratorcs�g���fdd�}�fdd��y,x%|�D]}�jd|f�q:WWn<tk
r�}z|j|jdd�WYdd}~XnX|jd	�|j�d
ddd
g�dS(u?
        Test raising exception in initial next() call
        c3s2z�jd���DdHWd�jd�XdS(NuStarting g1uFinishing g1(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug13s
uKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g1cs2z�jd�td��Wd�jd�XdS(NuStarting g2uspanish inquisition occurreduFinishing g2(uappendu
ValueError((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug29s
uKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g2u
Yielded %siuspanish inquisition occurredNu'subgenerator failed to raise ValueErroruStarting g1uStarting g2uFinishing g2uFinishing g1(uappendu
ValueErroruassertEqualuargsufail(uselfug1uxue((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu+test_raising_exception_in_initial_next_call.s*
	u?TestPEP380Operation.test_raising_exception_in_initial_next_callc
s�g���fdd�}�fdd��x%|�D]}�jd|f�q7W|j�dddd	d
ddd
g�dS(u@
        Test delegation of next() call to subgenerator
        c3s4�jd�dV��DdHdV�jd�dS(NuStarting g1ug1 hamug1 eggsuFinishing g1(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1Rs

uLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g1c3s(�jd�dVdV�jd�dS(NuStarting g2ug2 spamug2 more spamuFinishing g2(uappend((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2Xs
uLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g2u
Yielded %suStarting g1uYielded g1 hamuStarting g2uYielded g2 spamuYielded g2 more spamuFinishing g2uYielded g1 eggsuFinishing g1N(uappenduassertEqual(uselfug1ux((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu,test_delegation_of_next_call_to_subgeneratorMs	u@TestPEP380Operation.test_delegation_of_next_call_to_subgeneratorcs�g���fdd�}�fdd��y,x%|�D]}�jd|f�q:WWn<tk
r�}z|j|jdd�WYdd}~XnX|jd	�|j�d
ddd
ddg�dS(uA
        Test raising exception in delegated next() call
        c3s<z'�jd�dV��DdHdVWd�jd�XdS(NuStarting g1ug1 hamug1 eggsuFinishing g1(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1os
	uMTestPEP380Operation.test_raising_exception_in_delegated_next_call.<locals>.g1c3s<z'�jd�dVtd��dVWd�jd�XdS(NuStarting g2ug2 spamuhovercraft is full of eelsug2 more spamuFinishing g2(uappendu
ValueError((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2ws
	uMTestPEP380Operation.test_raising_exception_in_delegated_next_call.<locals>.g2u
Yielded %siuhovercraft is full of eelsNu'subgenerator failed to raise ValueErroruStarting g1uYielded g1 hamuStarting g2uYielded g2 spamuFinishing g2uFinishing g1(uappendu
ValueErroruassertEqualuargsufail(uselfug1uxue((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu-test_raising_exception_in_delegated_next_calljs *
	uATestPEP380Operation.test_raising_exception_in_delegated_next_callcs�g���fdd�}�fdd��|�}t|�}d}y7x0|j|�}�jd|f�|d7}qNWntk
r�YnX|j�ddd	d
ddd
ddddg�dS(u+
        Test delegation of send()
        c3s`�jd�dV}�jd|f���DdHdV}�jd|f��jd�dS(NuStarting g1ug1 hamug1 received %sug1 eggsuFinishing g1(uappend(ux(ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1�s
u7TestPEP380Operation.test_delegation_of_send.<locals>.g1c3sT�jd�dV}�jd|f�dV}�jd|f��jd�dS(NuStarting g2ug2 spamug2 received %sug2 more spamuFinishing g2(uappend(ux(utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2�s
u7TestPEP380Operation.test_delegation_of_send.<locals>.g2iu
Yielded %suStarting g1u
g1 received 1uStarting g2uYielded g2 spamu
g2 received 2uYielded g2 more spamu
g2 received 3uFinishing g2uYielded g1 eggsu
g1 received 4uFinishing g1N(unextusenduappendu
StopIterationuassertEqual(uselfug1uguyux((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_delegation_of_send�s2	
	u+TestPEP380Operation.test_delegation_of_sendcsug���fdd���fdd����fdd�}|jt|�|j�ddd	d
dg�dS(
uA
        Test handling exception while delegating 'send'
        c3s`�jd�dV}�jd|f���DdHdV}�jd|f��jd�dS(NuStarting g1ug1 hamug1 received %sug1 eggsuFinishing g1(uappend(ux(ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1�s
uMTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.g1c3s`�jd�dV}�jd|f�td��dV}�jd|f��jd�dS(NuStarting g2ug2 spamug2 received %suhovercraft is full of eelsug2 more spamuFinishing g2(uappendu
ValueError(ux(utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2�s
uMTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.g2csx��}t|�}d}y7x0|j|�}�jd|f�|d7}q!Wntk
rs�jd�YnXdS(Niu
Yielded %su
StopIteration(unextusenduappendu
StopIteration(uguyux(ug1utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyurun�s	
uNTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.runuStarting g1u
g1 received 1uStarting g2uYielded g2 spamu
g2 received 2N(uassertRaisesu
ValueErroruassertEqual(uselfurun((ug1ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu-test_handling_exception_while_delegating_send�s	uATestPEP380Operation.test_handling_exception_while_delegating_sendcs�g���fdd�}�fdd��|�}x4td�D]&}t|�}�jd|f�qCW|j�|j�ddd	d
ddg�d
S(u)
        Test delegating 'close'
        c3s<z'�jd�dV��DdHdVWd�jd�XdS(NuStarting g1ug1 hamug1 eggsuFinishing g1(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1�s
	u5TestPEP380Operation.test_delegating_close.<locals>.g1c3s0z�jd�dVdVWd�jd�XdS(NuStarting g2ug2 spamug2 more spamuFinishing g2(uappend((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2�s

	u5TestPEP380Operation.test_delegating_close.<locals>.g2iu
Yielded %suStarting g1uYielded g1 hamuStarting g2uYielded g2 spamuFinishing g2uFinishing g1N(urangeunextuappenducloseuassertEqual(uselfug1uguiux((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_delegating_close�s	
	u)TestPEP380Operation.test_delegating_closecsg���fdd�}�fdd��yN|�}x4td�D]&}t|�}�jd|f�qFW|j�WnOtk
r�}z/|j|jdd�|j|jt	�WYd	d	}~XnX|j
d
�|j�ddd
dddg�d	S(uB
        Test handling exception while delegating 'close'
        c3s<z'�jd�dV��DdHdVWd�jd�XdS(NuStarting g1ug1 hamug1 eggsuFinishing g1(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1s
	uMTestPEP380Operation.test_handing_exception_while_delegating_close.<locals>.g1c3s<z�jd�dVdVWd�jd�td��XdS(NuStarting g2ug2 spamug2 more spamuFinishing g2u"nybbles have exploded with delight(uappendu
ValueError((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2s
	
uMTestPEP380Operation.test_handing_exception_while_delegating_close.<locals>.g2iu
Yielded %siu"nybbles have exploded with delightNu'subgenerator failed to raise ValueErroruStarting g1uYielded g1 hamuStarting g2uYielded g2 spamuFinishing g2uFinishing g1(urangeunextuappenducloseu
ValueErroruassertEqualuargsuassertIsInstanceu__context__u
GeneratorExitufail(uselfug1uguiuxue((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu-test_handing_exception_while_delegating_closes(	&
	uATestPEP380Operation.test_handing_exception_while_delegating_closecs�g���fdd�}�fdd��y]|�}x4td�D]&}t|�}�jd|f�qFWtd�}|j|�Wn<tk
r�}z|j|jdd�WYd	d	}~XnX|jd
�|j�ddd
dddg�d	S(u)
        Test delegating 'throw'
        c3s<z'�jd�dV��DdHdVWd�jd�XdS(NuStarting g1ug1 hamug1 eggsuFinishing g1(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug14s
	u5TestPEP380Operation.test_delegating_throw.<locals>.g1c3s0z�jd�dVdVWd�jd�XdS(NuStarting g2ug2 spamug2 more spamuFinishing g2(uappend((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2<s

	u5TestPEP380Operation.test_delegating_throw.<locals>.g2iu
Yielded %sutomato ejectediNu'subgenerator failed to raise ValueErroruStarting g1uYielded g1 hamuStarting g2uYielded g2 spamuFinishing g2uFinishing g1(urangeunextuappendu
ValueErroruthrowuassertEqualuargsufail(uselfug1uguiuxue((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_delegating_throw/s(	*
	u)TestPEP380Operation.test_delegating_throwcszg��fdd�}t�}||�td�}||�d|_||�|j�dddddd	g�d
S(uC
        Test 'value' attribute of StopIteration exception
        cs8�jd|jj|f��jd|jf�dS(Nu%s: %su
value = %s(uappendu	__class__u__name__uvalue(ue(utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyupex\suPTestPEP380Operation.test_value_attribute_of_StopIteration_exception.<locals>.pexuspamueggsuStopIteration: uvalue = NoneuStopIteration: spamuvalue = spamuvalue = eggsN(u
StopIterationuvalueuassertEqual(uselfupexue((utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu/test_value_attribute_of_StopIteration_exceptionWs	

	
	uCTestPEP380Operation.test_value_attribute_of_StopIteration_exceptioncs>�fdd�}dd��|jt|��dg�dS(Nc3s��DdHdS(N(((ug2(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1rsu:TestPEP380Operation.test_exception_value_crash.<locals>.g1cssdVdgS(Nug2i*((((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2tsu:TestPEP380Operation.test_exception_value_crash.<locals>.g2ug2(uassertEqualulist(uselfug1((ug2u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_exception_value_crashosu.TestPEP380Operation.test_exception_value_crashcs�g���fdd�}d�fdd��x%|�D]}�jd|f�q:W|j�dddd	d
dddd	d
dd
ddg�dS(u-
        Test generator return value
        c3so�jd�dV��DdH}�jd|f��d�DdH}�jd|f�dV�jd�dS(NuStarting g1ug1 hamug2 returned %si*ug1 eggsuFinishing g1(uappend(uret(ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1s
u;TestPEP380Operation.test_generator_return_value.<locals>.g1c3s2�jd�dVdV�jd�|r.|SdS(NuStarting g2ug2 spamug2 more spamuFinishing g2(uappend(uv(utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2�s

u;TestPEP380Operation.test_generator_return_value.<locals>.g2u
Yielded %suStarting g1uYielded g1 hamuStarting g2uYielded g2 spamuYielded g2 more spamuFinishing g2ug2 returned Noneug2 returned 42uYielded g1 eggsuFinishing g1N(uNoneuappenduassertEqual(uselfug1ux((ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_generator_return_valuezs(		u/TestPEP380Operation.test_generator_return_valuecCsWg}dd�}x%|�D]}|jd|f�qW|j|dddg�dS(u<
        Test delegation of next() to non-generator
        csstd�DdHdS(Ni(urange(((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug�suGTestPEP380Operation.test_delegation_of_next_to_non_generator.<locals>.gu
Yielded %su	Yielded 0u	Yielded 1u	Yielded 2N(uappenduassertEqual(uselfutraceugux((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu(test_delegation_of_next_to_non_generator�s	u<TestPEP380Operation.test_delegation_of_next_to_non_generatorcCsrg}dd�}|�}x7td�D])}|jd�}|jd|f�q(W|j|dddg�dS(	u9
        Test conversion of send(None) to next()
        csstd�DdHdS(Ni(urange(((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug�suBTestPEP380Operation.test_conversion_of_sendNone_to_next.<locals>.giuYielded: %su
Yielded: 0u
Yielded: 1u
Yielded: 2N(urangeusenduNoneuappenduassertEqual(uselfutraceugugiuxuy((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu#test_conversion_of_sendNone_to_next�s		u7TestPEP380Operation.test_conversion_of_sendNone_to_nextc
swg��fdd�}|�}t|�t��}|j�WdQX|j|j�d�|j�ddg�dS(u=
        Test delegation of close() to non-generator
        c3sBz-�jd�td�DdH�jd�Wd�jd�XdS(Nu
starting giug should not be hereufinishing g(uappendurange((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug�s

uHTestPEP380Operation.test_delegation_of_close_to_non_generator.<locals>.gNuu
starting gufinishing g(unextucaptured_stderrucloseuassertEqualugetvalue(uselfugugiuoutput((utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu)test_delegation_of_close_to_non_generator�s	
	u=TestPEP380Operation.test_delegation_of_close_to_non_generatorcs�g��fdd�}y]|�}x4td�D]&}t|�}�jd|f�q1Wtd�}|j|�Wn<tk
r�}z|j|jdd�WYdd}~XnX|jd�|j�d	d
ddd
ddg�dS(u:
        Test delegating 'throw' to non-generator
        c3s5z �jd�td�DdHWd�jd�XdS(Nu
Starting gi
uFinishing g(uappendurange((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug�s
uETestPEP380Operation.test_delegating_throw_to_non_generator.<locals>.giu
Yielded %sutomato ejectediNu'subgenerator failed to raise ValueErroru
Starting gu	Yielded 0u	Yielded 1u	Yielded 2u	Yielded 3u	Yielded 4uFinishing g(urangeunextuappendu
ValueErroruthrowuassertEqualuargsufail(uselfugugiuiuxue((utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu&test_delegating_throw_to_non_generator�s(	*
	u:TestPEP380Operation.test_delegating_throw_to_non_generatorcs�g��fdd�}yQ|�}t|�x7td�D])}|jd�}�jd|f�q;WWn<tk
r�}z|jd|jd�WYdd}~XnX|jd	�|j�d
dg�dS(u:
        Test attempting to send to non-generator
        c3sBz-�jd�td�DdH�jd�Wd�jd�XdS(Nu
starting giug should not be hereufinishing g(uappendurange((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug�s

uGTestPEP380Operation.test_attempting_to_send_to_non_generator.<locals>.gii*uShould not have yielded: %susendiNu#was able to send into non-generatoru
starting gufinishing g(	unexturangeusenduappenduAttributeErroruassertInuargsufailuassertEqual(uselfugugiuxuyue((utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu(test_attempting_to_send_to_non_generator�s	
*
	u<TestPEP380Operation.test_attempting_to_send_to_non_generatorcs�Gdd�d���fdd�}|jt��1|�}|jt|�d�|jd�WdQX|jt��1|�}|jt|�d�|jt�WdQXt��0}|�}|jt|�d�|j�WdQX|j	d|j
��dS(uG
        Test subiterator with a broken getattr implementation
        cBs8|EeZdZdd�Zdd�Zdd�ZdS(u@TestPEP380Operation.test_broken_getattr_handling.<locals>.BrokencSs|S(N((uself((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu__iter__suITestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__iter__cSsdS(Ni((uself((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu__next__suITestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__next__cSsdddS(Nii((uselfuattr((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu__getattr__suLTestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__getattr__N(u__name__u
__module__u__qualname__u__iter__u__next__u__getattr__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuBrokensuBrokenc3s��DdHdS(N(((uBroken(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug su;TestPEP380Operation.test_broken_getattr_handling.<locals>.giNuZeroDivisionError(uassertRaisesuZeroDivisionErroruassertEqualunextusenduthrowuAttributeErrorucaptured_stderrucloseuassertInugetvalue(uselfugugiuoutput((uBrokenu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_broken_getattr_handlings			u0TestPEP380Operation.test_broken_getattr_handlingcs`g���fdd��dd���fdd�}|jt|�|j�dg�dS(	u7
        Test exception in initial next() call
        c3s*�jd���DdH�jd�dS(Nug1 about to yield from g2ug1 should not be here(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug18s
uCTestPEP380Operation.test_exception_in_initial_next_call.<locals>.g1css
ddVdS(Nii((((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2<suCTestPEP380Operation.test_exception_in_initial_next_call.<locals>.g2cs��}t|�dS(N(unext(ugi(ug1(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyurun>s	uDTestPEP380Operation.test_exception_in_initial_next_call.<locals>.runug1 about to yield from g2N(uassertRaisesuZeroDivisionErroruassertEqual(uselfurun((ug1ug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu#test_exception_in_initial_next_call3s	u7TestPEP380Operation.test_exception_in_initial_next_callcs�g���fdd�}��fdd��y2|��x"�D]}�jd|f�qCWWn<tk
r�}z|j|jdd�WYdd}~XnX|jd	�|j�d
ddd
ddg�dS(u0
        Test attempted yield-from loop
        c3s<�jd�dV�jd���DdH�jd�dS(Nug1: startinguy1ug1: about to yield from g2ug1 should not be here(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1Ks


u>TestPEP380Operation.test_attempted_yield_from_loop.<locals>.g1c3s9�jd�dV�jd��DdH�jd�dS(Nug2: startinguy2ug2: about to yield from g1ug2 should not be here(uappend((ugiutrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2Rs


	u>TestPEP380Operation.test_attempted_yield_from_loop.<locals>.g2uYielded: %siugenerator already executingNu$subgenerator didn't raise ValueErrorug1: startinguYielded: y1ug1: about to yield from g2ug2: startinguYielded: y2ug2: about to yield from g1(uappendu
ValueErroruassertEqualuargsufail(uselfug1uyue((ug2ugiutraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_attempted_yield_from_loopFs"	
*
	u2TestPEP380Operation.test_attempted_yield_from_loopc
s�g���fdd�}��fdd��Gdd�dt��|�}x4td�D]&}t|�}�jd|f�q\W�d	�}|j|�x"|D]}�jd|f�q�W|j�d
ddd
ddddg�dS(u=
        Test returning value from delegated 'throw'
        c3s<z'�jd�dV��DdHdVWd�jd�XdS(NuStarting g1ug1 hamug1 eggsuFinishing g1(uappend((ug2utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug1ns
	uITestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.g1c3sKy�jd�dVdVWn)�k
rF�jd�dVdVYnXdS(NuStarting g2ug2 spamug2 more spamuCaught LunchError in g2ug2 lunch savedug2 yet more spam(uappend((u
LunchErrorutrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug2vs
	

uITestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.g2cBs|EeZdZdS(uQTestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.LunchErrorN(u__name__u
__module__u__qualname__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu
LunchErrorsu
LunchErroriu
Yielded %sutomato ejecteduStarting g1uYielded g1 hamuStarting g2uYielded g2 spamuCaught LunchError in g2uYielded g2 yet more spamuYielded g1 eggsuFinishing g1N(u	ExceptionurangeunextuappenduthrowuassertEqual(uselfug1uguiuxue((u
LunchErrorug2utraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu)test_returning_value_from_delegated_throwis*		

	u=TestPEP380Operation.test_returning_value_from_delegated_throwc
smg���fdd�}�fdd��|d�|d�|j�dddd	ddd
dg�dS(
u1
        Test next and return with value
        cs��|�}t|�y(�jd�t|��jd�Wn?tk
r}z�jdt|�f�WYdd}~XnXdS(Nuf resuming guf SHOULD NOT BE HEREuf caught %s(unextuappendu
StopIterationurepr(urugiue(ugutrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuf�s


u>TestPEP380Operation.test_next_and_return_with_value.<locals>.fc3s*�jd�dV�jd|f�|S(Nu
g startingug returning %s(uappend(ur(utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug�s
u>TestPEP380Operation.test_next_and_return_with_value.<locals>.gi*u
g startinguf resuming gug returning Noneuf caught StopIteration()ug returning 42uf caught StopIteration(42,)N(uNoneuassertEqual(uselfuf((ugutraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_next_and_return_with_value�s	

	u3TestPEP380Operation.test_next_and_return_with_valuecssg���fdd�}�fdd��|d
�|d�|j�dddd	d
dddddg
�d
S(u1
        Test send and return with value
        cs��|�}t|�y+�jd�|jd��jd�Wn9tk
r|}z�jd|f�WYdd}~XnXdS(Nuf sending spam to guspamuf SHOULD NOT BE HEREuf caught %r(unextuappendusendu
StopIteration(urugiue(ugutrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuf�s


u>TestPEP380Operation.test_send_and_return_with_value.<locals>.fc3s@�jd�dV}�jd|f��jd|f�|S(Nu
g startingu
g received %sug returning %s(uappend(urux(utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug�s

u>TestPEP380Operation.test_send_and_return_with_value.<locals>.gi*u
g startinguf sending spam to gug received spamug returning Noneuf caught StopIteration()ug returning 42uf caught StopIteration(42,)N(uNoneuassertEqual(uselfuf((ugutraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_send_and_return_with_value�s 	

	u3TestPEP380Operation.test_send_and_return_with_valuecsg��fdd����fdd�}|�}�jt|���j|jt��|j�ddddg�d	S(
ue
        Test catching an exception thrown into a
        subgenerator and returning a value
        c3s/y	dVWntk
r*�jd�YnXdS(Niuinner caught ValueErrori(u
ValueErroruappend((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuinner�s
	
uTTestPEP380Operation.test_catching_exception_from_subgen_and_returning.<locals>.innerc3s(��DdH}�jd|�|VdS(Nuinner returned %r to outer(uappend(uv(uinnerutrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuouter�suTTestPEP380Operation.test_catching_exception_from_subgen_and_returning.<locals>.outeriuinner caught ValueErroruinner returned 2 to outeriN(uappendunextuthrowu
ValueErroruassertEqual(uselfuouterug((uinnerutraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu1test_catching_exception_from_subgen_and_returning�s		uETestPEP380Operation.test_catching_exception_from_subgen_and_returningcs�g��fdd����fdd�}y$|�}t|�|jt�Wntk
reYnX|jd�|j�ddg�dS(	uo
        Test throwing GeneratorExit into a subgenerator that
        catches it and returns normally.
        c3s@y#�jd�dV�jd�Wntk
r;dSYnXdS(NuEnter fuExit f(uappendu
GeneratorExit((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuf�s

uSTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returns.<locals>.fc3s*�jd���DdH�jd�dS(NuEnter guExit g(uappend((ufutrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug�s
uSTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returns.<locals>.gu*subgenerator failed to raise GeneratorExituEnter guEnter fN(unextuthrowu
GeneratorExitufailuassertEqual(uselfugugi((ufutraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu4test_throwing_GeneratorExit_into_subgen_that_returns�s	


	uHTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returnscs�g��fdd����fdd�}y$|�}t|�|jt�Wn<tk
r�}z|j|jdd�WYdd}~XnX|jd�|j�d	d
g�dS(ue
        Test throwing GeneratorExit into a subgenerator that
        catches it and yields.
        c3sAy#�jd�dV�jd�Wntk
r<dVYnXdS(NuEnter fuExit f(uappendu
GeneratorExit((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyufs

uXTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yields.<locals>.fc3s*�jd���DdH�jd�dS(NuEnter guExit g(uappend((ufutrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyugs
uXTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yields.<locals>.giugenerator ignored GeneratorExitNu*subgenerator failed to raise GeneratorExituEnter guEnter f(unextuthrowu
GeneratorExituRuntimeErroruassertEqualuargsufail(uselfugugiue((ufutraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu9test_throwing_GeneratorExit_into_subgenerator_that_yieldss	
*
	uMTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yieldscs�g��fdd����fdd�}y$|�}t|�|jt�WnOtk
r�}z/|j|jdd�|j|jt�WYdd}~XnX|jd�|j�d	d
g�dS(u{
        Test throwing GeneratorExit into a subgenerator that
        catches it and raises a different exception.
        c3sHy#�jd�dV�jd�Wntk
rCtd��YnXdS(NuEnter fuExit fuVorpal bunny encountered(uappendu
GeneratorExitu
ValueError((utrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuf4s

uRTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raises.<locals>.fc3s*�jd���DdH�jd�dS(NuEnter guExit g(uappend((ufutrace(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyug;s
uRTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raises.<locals>.giuVorpal bunny encounteredNu'subgenerator failed to raise ValueErroruEnter guEnter f(	unextuthrowu
GeneratorExitu
ValueErroruassertEqualuargsuassertIsInstanceu__context__ufail(uselfugugiue((ufutraceu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu3test_throwing_GeneratorExit_into_subgen_that_raises.s	
&
	uGTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raisescCs&dd�}|jtt|��dS(Ncss
fDdHdS(N((((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyugNsu4TestPEP380Operation.test_yield_from_empty.<locals>.g(uassertRaisesu
StopIterationunext(uselfug((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_yield_from_emptyMsu)TestPEP380Operation.test_yield_from_emptycs��fdd�}�fdd��|���jt��ddddg�|��t��g}y x|j�jd	��qmWntk
r�YnX�j|ddddg�Gd
d�dt����fdd�}��fd
d��|��t��g}y x|j�j���qWntk
rDYnXG��fdd�dt���fdd�}|��t���j	�dS(Nc3sdV��DdHdVdS(Nii(((utwo(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuoneTsuOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.onec3s0dVy
�DdHWntk
r&YnXdVdS(Nii(u
ValueError((ug1(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutwoXs

uOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.twoiiiii*cBs|EeZdZdS(uQTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyErrN(u__name__u
__module__u__qualname__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuMyErrksuMyErrc3sLy	dVWn�k
rYnX��DdHy	dVWn�k
rGYnXdS(Nii(((uMyErrutwo(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuonems	
	
c3sby	dVWn�k
rYnXy
�DdHWntk
r?YnXy	dVWn�k
r]YnXdS(Nii(u
ValueError((uMyErrug1(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutwows	


	
csA|EeZdZdd�Zdd�Z��fdd�ZdS(uPTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyItcSs|S(N((uself((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu__iter__�suYTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.__iter__cSsdS(Ni*((uself((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu__next__�suYTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.__next__cs'�j�j��jtt��dS(N(u
assertTrueu
gi_runninguassertRaisesu
ValueErrorunext(uself_(ug1uself(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuclose�suVTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.closeN(u__name__u
__module__u__qualname__u__iter__u__next__uclose(u
__locals__(ug1uself(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuMyIt�suMyItc3s��DdHdS(N(((uMyIt(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuone�s(
uassertEqualulistunextuappendusendu
StopIterationu	Exceptionuthrowuobjectuclose(uselfuoneures((uMyErruMyItug1uselfutwou5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu.test_delegating_generators_claim_to_be_runningRs6	"	


	
	
uBTestPEP380Operation.test_delegating_generators_claim_to_be_runningcs�dd���fdd�}dd�}dd�}x*||��D]}|jd	|k�qFWx<|||���D]%}|jd	|ko�d
|k�qyWdS(NcSsdd�tj�D�S(NcSsg|]}|d�qS(i((u.0uf((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu
<listcomp>�s	uaTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.call_stack.<locals>.<listcomp>(uinspectustack(((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu
call_stack�suMTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.call_stackc3s��V��V��VdS(N(((u
call_stack(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyugen�suFTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.gencss
|DdHdS(N((ug((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuspam�suGTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.spamcss
|DdHdS(N((ug((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyueggs�suGTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.eggsuspamueggs(u
assertTrue(uselfugenuspamueggsustack((u
call_stacku5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu%test_delegator_is_visible_to_debugger�su9TestPEP380Operation.test_delegator_is_visible_to_debuggercsOGdd�d����fdd�}d�t|��|j�d�dS(NcBs,|EeZdZdd�Zdd�ZdS(u?TestPEP380Operation.test_custom_iterator_return.<locals>.MyItercSs|S(N((uself((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu__iter__�suHTestPEP380Operation.test_custom_iterator_return.<locals>.MyIter.__iter__cSstd��dS(Ni*(u
StopIteration(uself((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu__next__�suHTestPEP380Operation.test_custom_iterator_return.<locals>.MyIter.__next__N(u__name__u
__module__u__qualname__u__iter__u__next__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuMyIter�suMyIterc3s��DdH�dS(N(((uMyIteruret(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyugen�su<TestPEP380Operation.test_custom_iterator_return.<locals>.geni*(uNoneulistuassertEqual(uselfugen((uMyIteruretu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_custom_iterator_return�s

u/TestPEP380Operation.test_custom_iterator_returnc	s�dd���fdd�}dd�}t��K|�}|�}|jd�|j|�|j|�~~t�WdQXdS(Ncss	dVdS(N((((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu	innermost�suDTestPEP380Operation.test_close_with_cleared_frame.<locals>.innermostc3sdV}��DdHdS(N((u	outer_gen(u	innermost(u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuinner�su@TestPEP380Operation.test_close_with_cleared_frame.<locals>.innercssdV}|DdHdS(N((u	inner_gen((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuouter�su@TestPEP380Operation.test_close_with_cleared_frame.<locals>.outer(u
disable_gcusenduNoneu
gc_collect(uselfuinneruouteru	inner_genu	outer_gen((u	innermostu5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyutest_close_with_cleared_frame�s
		


u1TestPEP380Operation.test_close_with_cleared_frameN($u__name__u
__module__u__qualname__u__doc__u/test_delegation_of_initial_next_to_subgeneratoru+test_raising_exception_in_initial_next_callu,test_delegation_of_next_call_to_subgeneratoru-test_raising_exception_in_delegated_next_callutest_delegation_of_sendu-test_handling_exception_while_delegating_sendutest_delegating_closeu-test_handing_exception_while_delegating_closeutest_delegating_throwu/test_value_attribute_of_StopIteration_exceptionutest_exception_value_crashutest_generator_return_valueu(test_delegation_of_next_to_non_generatoru#test_conversion_of_sendNone_to_nextu)test_delegation_of_close_to_non_generatoru&test_delegating_throw_to_non_generatoru(test_attempting_to_send_to_non_generatorutest_broken_getattr_handlingu#test_exception_in_initial_next_callutest_attempted_yield_from_loopu)test_returning_value_from_delegated_throwutest_next_and_return_with_valueutest_send_and_return_with_valueu1test_catching_exception_from_subgen_and_returningu4test_throwing_GeneratorExit_into_subgen_that_returnsu9test_throwing_GeneratorExit_into_subgenerator_that_yieldsu3test_throwing_GeneratorExit_into_subgen_that_raisesutest_yield_from_emptyu.test_delegating_generators_claim_to_be_runningu%test_delegator_is_visible_to_debuggerutest_custom_iterator_returnutest_close_with_cleared_frame(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyuTestPEP380OperationsB%,)")(( #+ #HuTestPEP380OperationcCs*ddlm}tg}|j|�dS(Ni(usupport(utestusupportuTestPEP380Operationurun_unittest(usupportutest_classes((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu	test_main�s	u	test_mainu__main__(u__doc__uunittestuiousysuinspectuparserutest.supportucaptured_stderru
disable_gcu
gc_collectuTestCaseuTestPEP380Operationu	test_mainu__name__(((u5/opt/alt/python33/lib64/python3.3/test/test_pep380.pyu<module>s����