Your IP : 216.73.216.52


Current Path : /opt/alt/python39/lib64/python3.9/test/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/__pycache__/test_bdb.cpython-39.opt-2.pyc

a

XC?h���@s�ddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZddl
ZGdd�de�ZGdd�de�ZGdd	�d	e�ZGd
d�de�ZdZdd
�Zdd�ZGdd�dej�ZGdd�de�ZGdd�d�Zd2dd�Ze	dd��Zeddfdd�ZdZedZdd �Z d!d"�Z!d#d$�Z"d%d&�Z#Gd'd(�d(ej$�Z%Gd)d*�d*e%�Z&Gd+d,�d,e%�Z'Gd-d.�d.e%�Z(Gd/d0�d0e%�Z)e*d1k�r�e�+�dS)3�N)�contextmanager)�islice�repeatc@seZdZdS)�BdbExceptionN��__name__�
__module__�__qualname__�r
r
�2/opt/alt/python39/lib64/python3.9/test/test_bdb.pyr>�rc@seZdZdS)�BdbErrorNrr
r
r
rr
?rr
c@seZdZdS)�BdbSyntaxErrorNrr
r
r
rr@rrc@seZdZdS)�BdbNotExpectedErrorNrr
r
r
rrArrcCsdtj_itj_dgtj_dS�N�)�_bdb�
Breakpoint�nextZbplist�
bpbynumberr
r
r
r�reset_BreakpointIsrcCs�dd�tjjD�}|sdSd}|D]v}|s2d}d}|jr<dnd}|jrJd	nd
}|d|j|||j|jtj	�
|j�|jf7}|j
r�|d|j
f7}|d
7}q"|S)NcSsg|]}|r|�qSr
r
)�.0�bpr
r
r�
<listcomp>Orz$info_breakpoints.<locals>.<listcomp>�Fz!BpNum Temp Enb Hits Ignore Where
Tzyes zno  Zyeszno z%-5d %s %s %-4d %-6d at %s:%dz
	stop only if %s�
)rrr�	temporary�enabledZnumber�hits�ignore�os�path�basename�file�line�cond)�bp_listZheader_addedr�infoZdispZenabr
r
r�info_breakpointsNs&��
r(csfeZdZ�fdd�Zd�fdd�	Z�fdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Z�ZS)�Bdbcsd|_t��|||�S�N)�	currentbp�super�trace_dispatch)�self�frame�event�arg��	__class__r
rr-fszBdb.trace_dispatchFNcs�t|t�rT|tkrt�}nt�|dd��}|j}t||�}|j}	|	j	}|	j
}|	j}t�j
|||||d�}
t|
t�r|t|
��|
S)N���)rr%�funcname)�
isinstance�str�__file__�globals�	importlib�
import_module�__dict__�eval�__code__�co_filename�co_firstlineno�co_namer,�	set_breakr
)r.�filename�linenorr%r5�globals_�module�func�code�resr2r
rrBjs 

�
z
Bdb.set_breakcs4t��||�\|_|_|j|jd|_|j|jfS�Nr)r,�	get_stack�stack�indexr/)r.�f�tr2r
rrK~sz
Bdb.get_stackcCs|�|�}|jd7_dSr)�get_bpbynumberr�r.Zbpnumrr
r
r�
set_ignore�s
zBdb.set_ignorecCs|�|�}d|_dS)NT�rPrrQr
r
r�
set_enable�s
zBdb.set_enablecCs|�|�}d|_dS)NFrSrQr
r
r�set_disable�s
zBdb.set_disablecCs|�||�}|rt|��dSr*)Zclear_breakr
)r.�fnamerD�errr
r
r�	set_clear�sz
Bdb.set_clearcCs2|jstd��|jd8_|j|jd|_dS)NzOldest framerr)rMr
rLr/�r.r
r
r�set_up�sz
Bdb.set_upcCs@|jdt|j�krtd��|jd7_|j|jd|_dS)NrzNewest framer)rM�lenrLr
r/rYr
r
r�set_down�szBdb.set_down)FNN)
rrr	r-rBrKrRrTrUrXrZr\�
__classcell__r
r
r2rr)cs�r)cs�eZdZd+�fdd�	Zdd�Z�fdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd,d%d&�Zd'd(�Zd)d*�Z�ZS)-�TracerNFcs<t�j|d�||_||_|dur*d|nd|_|��dS)N��skipzDry-run results for %s:)r,�__init__�
expect_set�dry_run�header�	init_test)r.rbr`rc�	test_caser2r
rra�s�
�zTracer.__init__cCsBd|_d|_d|_tt|jddd��|_tt|jddd��|_dS)Nr�r)�
cur_except�
expect_set_no�breakpoint_hits�listrrb�
expected_list�set_listrYr
r
rre�s
zTracer.init_testc
sv|jdur|j�|dkrbzt��|||�}|WSty^}z||_|jWYd}~Sd}~00nt��|||�SdS�N�	exception)rhr,r-r)r.r/r0r1rI�er2r
rr-�s
zTracer.trace_dispatchcCs(|�|�sdS|�d||�|��dS)N�call)Z	stop_here�
process_event�next_set_method)r.r/Z
argument_listr
r
r�	user_call�s
zTracer.user_callcCsZ|�d|�|jr@|jr@t��d�}|�d�D]}td|�q.|��d|_|��dS)Nr$rz  )	rrrcrjr(�strip�split�print�delete_temporariesrs)r.r/r'r$r
r
r�	user_line�szTracer.user_linecCs|�d||�|��dS)N�return)rrrs)r.r/Zreturn_valuer
r
r�user_return�szTracer.user_returncCs||_|�d|�|��dSrn)�exc_inforrrs)r.r/r|r
r
r�user_exception�szTracer.user_exceptioncCs|jg}||f|_dSr*)r+rj)r.r1r&r
r
r�do_clear�szTracer.do_clearcCs$|jr |jdD]}|�|�qdSr)rjZclear_bpbynumber)r.�nr
r
rrx�szTracer.delete_temporariescCsT|jd7_z|j�d�|_Wn ty@td|j��Yn0|j�d�|_dS)Nrrz-expect_set list exhausted, cannot pop item %d)rirl�pop�expect�
IndexErrorrrm�	set_tuplerYr
r
r�pop_next�s��
zTracer.pop_nextcs�d}|dkr�jd}��||��jdurD�jsD�jg}|gf�_|�_����jrh���j�dS�j	r���
�j	d|d����|dvr���d�n�t
�j	�dk�r~|dk�rF�j	d\�}t����}�js��d�j���
|�jdd	���
�fd
d�|D��fdd��jdD�d
���
t|��jdd�n8|dk�r~t�jd�j	d��s~��d�j�jf�dS)NrorgrzWrong event type)rqrz�r$z(No breakpoints hit at expect_set item %dzBreakpoint numbers do not matchcsg|]}�|�qSr
r
�rr)�bpsr
rrrz(Tracer.process_event.<locals>.<listcomp>csg|]}��|�j�qSr
)rPrr�rYr
rr s�zWrong breakpoint hit countrzWrong temporary breakpointsz/Wrong exception at expect_set item %d, got '%s')r|rKr+rjr0r�rc�print_staterdr��check_equal�check_lno_name�check_expect_max_sizer[�sorted�keys�raise_not_expectedrir6)r.r0r/�args�tbr&ZtemporariesZbpnumsr
)r�r.rrr�s\


���
���

��zTracer.process_eventcCs&||krdS|�d||j|f�dS)Nz"%s at expect_set item %d, got '%s')r�ri)r.Zexpected�result�msgr
r
rr�,s

�zTracer.check_equalcCsTt|j�}|dkr.|��}|�|jd|d�|dkrP|�|jd|jjjd�dS)NrzWrong line numberrgzWrong function name)r[r��lno_abs2relr�r/�f_coderA)r.�srDr
r
rr�2s
�zTracer.check_lno_namecCs&t|j�|kr"td|j|jf��dS)Nz'Invalid size of the %s expect tuple: %s)r[r�rr0)r.�sizer
r
rr�<s
�zTracer.check_expect_max_sizecCs<|�|jjj�}|jj}||�t�kr8||jjjdS|Sr)�canonicr/r�r?�f_linenor8r@�r.rVrDr
r
rr�As��zTracer.lno_abs2relcCs.|r*|�|�|�t�kr*|jjj|dS|Sr)r�r8r/r�r@r�r
r
r�lno_rel2absGs���zTracer.lno_rel2abscCs�|��}|jjj}d|j||f}|jr�d}|jdD],}|dkrJ|d7}|d||�|�jf7}q6|d7}d|dt|jd�d	}|d|7}n|jd
kr�|d|j	dj
7}|d7}|�d�t|j�d
S)Nz('%s', %d, '%s'�{rz, z%s: %s�}�(r�)roz), � �,)
r�r/r�rAr0rjrPrr7r|r�ljustr�)r.rDrA�stater�rr
r
r�	get_stateLs 

zTracer.get_statecCs:|dur |jdkr t�t|�td|j|��f�dS)Nrz%d: %s)rirwr�)r.rdr
r
rr�^szTracer.print_statecCs6|d7}|dt|j�7}|d|��7}t|��dS)Nrz  Expected: %s
z  Got:      )r7r�r�r�r.r�r
r
rr�dszTracer.raise_not_expectedcCsZ|jd}t|j�dkr"|jdnd}t|d|�}|dvrF|�dS|dvr\||j�dS|dkr�d}|r�|�|jjj|d�}||j|�dS|r�|dvs�|d	v�rH|d
vr�|^}}}|�||�}||g}|�|�||�n"|dvr�||�n|d	v�r|�d|_|�	�|j
�r$|��n|j�r4|�
�|�d�|��ntd
|j��dS)NrrgrZset_)�step�continue�quit)rrz�until)�break�clearr�enable�disable)�up�down)r�r�)rr�r�r�z"%s" is an invalid set_tuple)r�r[�getattrr/r�r�r?�extendr0r�rcr�r�r�r�rsr)r.�set_typer�Z
set_methodrDrVZremainr
r
rrsjsR

��







�zTracer.next_set_method)NFN)N)rrr	rarer-rtryr{r}r~rxr�rrr�r�r�r�r�r�r�r�rsr]r
r
r2rr^�s(	

2

r^c@s(eZdZddd�Zdd�Zd	dd�ZdS)
�	TracerRunNcCs2||_|j|_t|j||j|��d�|_d|_dS)N)r`rcrf)rfrcr^rb�id�tracer�_original_tracer)r.rfr`r
r
rra�s
�zTracerRun.__init__cCst�t��|_|jSr*)r�sys�gettracer�r�rYr
r
r�	__enter__�s
zTracerRun.__enter__cCs�t�t�|j�d}|jjr6|d7}|d|jj7}|dur�tt|�r�t	|t
�r�|jr�|jd}|rr|d|7}|jr�t
|�dS|j�|�n|r�|jr�t
|�n|j�|�dS)Nrz+All paired tuples have not been processed, zthe last one was number %drrT)rr��settracer�r�rmri�
issubclassrr6�
BaseExceptionr�rcrwrf�fail)r.�type_�value�	tracebackZ	not_empty�err_msgr
r
r�__exit__�s*�

zTracerRun.__exit__)N)NNN)rrr	rar�r�r
r
r
rr��s
r�c	Cs�dd�}ddg}|�|�t�}d|_dd�|_t|td�t|���|_t|��Ft	||d	��}|�
t�Wd�n1s~0YWd�n1s�0YdS)
Ncss<z"t|�}t|�}|V|VqWnty6YdS0dSr*)r�
StopIteration)�a�b�x�yr
r
r�gen�szrun_test.<locals>.gen�r�r�TcSsdSr*r
r
r
r
r�<lambda>rzrun_test.<locals>.<lambda>r
r_)r��BaseTestCasercr�rkr�iterrb�create_modulesr��runcall�tfunc_import)�modulesrmr`r�Zsl�testr�r
r
r�run_test�s3


r�ccs�tj����tj�t���z�|D]T}|d}t|d��$}|�	t
�||��Wd�n1sb0Yt�
|�q"t��dVW|D]}tj�|�q�tj��n"|D]}tj�|�q�tj��0Wd�n1s�0YdS)N�.py�w)r�ZsupportZtemp_cwdr�r!�appendr �getcwd�open�write�textwrap�dedent�	linecache�
checkcacher:�invalidate_cachesZforgetr�)r��mrVrNr
r
rr�s 2�r�FcCsd|d|||ffS)Nr�r
)r5rVrr%r
r
r�
break_in_func%sr��test_module_for_bdbr�cCsddl}|��dSrJ)r��main)r�r
r
rr�*sr�cCs d}t�t�d}d}d}dS)Nrg���)�tfunc_first�tfunc_second��lnor
r
r�
tfunc_main.sr�cCsd}d}d}dS)Nrgr��r
r�r
r
rr�6sr�cCsd}dS)Nrgr
r�r
r
rr�;sr�c@seZdZeZddd�ZdS)r�NcCs|�|�d�dSr*)ZfailureExceptionr�r
r
rr�CszBaseTestCase.fail)N)rrr	rcr�r
r
r
rr�>sr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �
StateTestCasecCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)�r$rgr�r��r$r�r�r��rqrr�r��r$rgr��r��rbr�r�r��r.r�r
r
r�	test_stepKs

zStateTestCase.test_stepcCs�dD]�}|j|d��zddddddtdffd	d
dddd
d
igff|fddg|_t|��}|�t�Wd�n1sv0YWd�q1s�0YqdS)N)r�r�r�r�r�r�r�r�r�)�Nonerr��r�r$r�r�r$r�r�r�)�subTestr8rbr�r�r�)r.r�r�r
r
r� test_step_next_on_last_statementUs�
z.StateTestCase.test_step_next_on_last_statementcCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)
r�r�r�r��r$r�r�r�)rqrr�r�)r$rgr�r�r�r�r
r
r�	test_nextcs

zStateTestCase.test_nextc	Cstd}t|i}t|��Lgd�|_t|��}|�t�Wd�n1sH0YWd�n1sf0YdS)N�9
            def main():
                lno = 3
        )�r$rgr�r��r$r�r�r���TEST_MODULEr�rbr�r�r��r.rHr�r�r
r
r�test_next_over_importns


z#StateTestCase.test_next_over_importcCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)r�r�r�r�r�r�r�r�r�r�r
r
r�test_next_on_plain_statement|s

z*StateTestCase.test_next_on_plain_statementcCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)
r�r�r�r�r��r��r�r�r�r�r�r�r�r�r
r
r�test_next_in_caller_frame�s

z'StateTestCase.test_next_in_caller_framecCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)r�r�r�r�r�r�r��rz�rzr�r�r�r�r�r�r�r
r
r�test_return�s

zStateTestCase.test_returncCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)
r�r�r�r�r�rrr)rzr�r�r�r�r�r
r
r�test_return_in_caller_frame�s

z)StateTestCase.test_return_in_caller_framecCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)
r�r�r�r�r�r�r�)r�)r�r�r�r�r�r
r
r�
test_until�s

zStateTestCase.test_untilc	Cs`dtd�dddddddigffdd	d
g|_t|��}|�t�Wd�n1sR0YdS)Nr�r�)r�rgr�r�r$rgr)r�)i'rr�)r�rbr�r�r�r�r
r
r�test_until_with_too_large_count�s�
z-StateTestCase.test_until_with_too_large_countcCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)
r�r�r�r�r�rr)r�)r�)r$r�r�r�r�r�r
r
r�test_until_in_caller_frame�s

z(StateTestCase.test_until_in_caller_framec	Cs�d}t|i}t|��\gd�|_dddtf}t||d��}|�t�Wd�n1sX0YWd�n1sv0YdS)Nr�)r�r�r�r�z
importlib*Z	zipimportzencodings.*r_r�)r.rHr�r`r�r
r
r�	test_skip�s

zStateTestCase.test_skipcCs"tdgd�}|�|�d�d�dS)Nz	anything*r_F)r)ZassertIsZis_skipped_module)r.�bdbr
r
r�test_skip_with_no_name_module�sz+StateTestCase.test_skip_with_no_name_modulecCsFddg|_t|�� }|�t|jt�Wd�n1s80YdS)Nr�)r�)rbr��assertRaisesr
r�r�r�r
r
r�	test_down�s�
zStateTestCase.test_downcCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)r�r�r�r�r�rrr�r�r�r
r
r�test_up�s

zStateTestCase.test_upN)rrr	r�r�r�rrrr	r
rrr
rrrrr
r
r
rr�Hs


r�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�BreakpointTestCasecCsFddg|_t|�� }|�t|jt�Wd�n1s80YdS)Nr�)r�)z/non/existent/module.pyr)rbr�rr
r�r�r�r
r
r�test_bp_on_non_existent_module�s�
z1BreakpointTestCase.test_bp_on_non_existent_modulec	Cs�d}t|i}t|��Zddtdffg|_t|�� }|�t|jt�Wd�n1sV0YWd�n1st0YdS)Nr�r�r�r�)	rr��TEST_MODULE_FNAMErbr�rr
r�r�rr
r
r�test_bp_after_last_statements
�
z/BreakpointTestCase.test_bp_after_last_statementcCs�d}t|i}t|���dtdtd�dtdtd�dddddd	d	id	gffddddd
d	id
gffdg
|_t|��}|�t�Wd�n1s�0YWd�n1s�0YdS)N��
            def func():
                lno = 3

            def main():
                for i in range(2):
                    func()
        r�rGT�r�rgr�r�r$r�rrgr��rr�r�rrbr�r�r�rr
r
r�test_temporary_bp
s


�	
z$BreakpointTestCase.test_temporary_bpcCs�d}t|i}t|���dtdt�dtdtd�dddddd	dd
d
igffddd
dddd	ddd
idgffddddd	dd
digffdg|_t|��}|�t�Wd�n1s�0YWd�n1s�0YdS)N��
            def func():
                lno = 3

            def main():
                for i in range(3):
                    func()
        r�rGrT)r��rgr�r$r�r)r�r�r�r�rG�r��rrg�r�r r�rrr
r
r�test_disabled_temporary_bp$s$

�
z-BreakpointTestCase.test_disabled_temporary_bpc
Cs�d}t|i}t|��ndtdtdd�dddd	dd
d	igffdg|_t|��}|�t�Wd�n1sj0YWd�n1s�0YdS)Nz�
            def func(a):
                lno = 3

            def main():
                for i in range(3):
                    func(i)
        r�rGFza == 2rr�r$r�rr�rrr
r
r�test_bp_condition@s
�
z$BreakpointTestCase.test_bp_conditionc
Cs�d}t|i}t|��ndtdtdd�dddd	dd
d
igffdg|_t|��}|�t�Wd�n1sj0YWd�n1s�0YdS)Nzk
            def func(a):
                lno = 3

            def main():
                func(0)
        r�rGFz1 / 0rr�r$r�rr�rrr
r
r�)test_bp_exception_on_condition_evaluationTs
�
z<BreakpointTestCase.test_bp_exception_on_condition_evaluationcCs�d}t|i}t|��ndtdt�dddddddd	d
igffdg|_t|��}|�t�Wd�n1sj0YWd�n1s�0YdS)Nrr�rGr�rr r�r$r�rrgr�rrr
r
r�test_bp_ignore_countgs
�
z'BreakpointTestCase.test_bp_ignore_countcCs�d}t|i}t|���dtdt�dtdt�dddddddd	dd
digffdd
ddd	dd
d
igffddd	ddd
igffdg|_t|��}|�t�Wd�n1s�0YWd�n1s�0YdS)Nrr�rGrr%rr�r$r�rgrr!rr�rrr
r
r� test_ignore_count_on_disabled_bp|s"
�
z3BreakpointTestCase.test_ignore_count_on_disabled_bpcCs�d}t|i}t|���ddtdffddtdffddtdffddddd	d
d
igffdddd	dd
igffdtdffddddd	dd
igffdg|_t|��}|�t�Wd�n1s�0YWd�n1s�0YdS)Nz�
            def func():
                lno = 3
                lno = 4

            def main():
                for i in range(3):
                    func()
        r�r�r�rr�r�r$rGrr�)r�r�rGrgr�)rr�rrbr�r�r�rr
r
r�test_clear_two_bp_on_same_line�s	
�

z1BreakpointTestCase.test_clear_two_bp_on_same_linecCsNddtdffg|_t|�� }|�t|jt�Wd�n1s@0YdS)Nr�r�r)r8rbr�rr
r�r�r�r
r
r�test_clear_at_no_bp�s�
z&BreakpointTestCase.test_clear_at_no_bpN)
rrr	rrrr"r#r$r&r'r(r)r
r
r
rr�s
rc@seZdZdd�Zdd�ZdS)�RunTestCasecCsRd}gd�|_t|��(}|�tt�|�dd��Wd�n1sD0YdS)Nz
            lno = 2
        ))r$rg�<module>r�)rzrgr+r�z<string>�exec)rbr��run�compiler�r�)r.rHr�r
r
r�
test_run_step�s

zRunTestCase.test_run_stepc	Cs�d}t|i}t|��\gd�|_ddl}t|��"}|�dt�t��Wd�n1sX0YWd�n1sv0YdS)Nr�)
)r$rr+r�)rqrgr�r�)r$r�r�r�)rzr�r�r�)rzrr+r�rztest_module_for_bdb.main())rr�rbr�r�Zrunevalr9�locals)r.rHr�r�r�r
r
r�test_runeval_step�s


zRunTestCase.test_runeval_stepN)rrr	r/r1r
r
r
rr*�sr*c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�IssuesTestCasecCs�d}d}t|d|i}t|��rdtdd�ddd	d
dddigffdd
dddg
|_t|��}|�t�Wd�n1sv0YWd�n1s�0YdS)Nz�
            from test_module_for_bdb_2 import func
            def main():
                func()
                lno = 5
        z9
            def func():
                lno = 3
        Ztest_module_for_bdb_2r�rGztest_module_for_bdb_2.pyrr�r$r�rr�)rzr�rG)r$r�r�r�)rr�r�rbr�r�r�)r.Zcode_1Zcode_2r�r�r
r
r�+test_step_at_return_with_no_trace_in_caller�s�
�
z:IssuesTestCase.test_step_at_return_with_no_trace_in_callercCsd}t|i}dD]�}|j|d���t|���dtdt�dddd	dd
d
igff|fg|_|dkr||j�dd
dtfdddg�n|j�ddg�t|��}|�	t
�Wd�n1s�0YWd�n1s�0YWd�q1s�0YqdS)Nz�
            def test_gen():
                yield 0
                lno = 4
                return 123

            def main():
                it = test_gen()
                next(it)
                next(it)
                lno = 11
        )rr�rzr�r��test_genrr�r$r�rrzro�
r�r�)rzr5r�r��r$r�r4)rr�r�r�rrbr�r�r�r�r�)r.rHr�r�r�r
r
r�#test_next_until_return_in_generator�s*
����
z2IssuesTestCase.test_next_until_return_in_generatorcCs�d}t|i}t|���dtdt�dddddddigffd	d
d	dd	dd	d
ddtfdddg|_t|��}|�t�Wd�n1s�0YWd�n1s�0YdS)Nz�
            def test_gen():
                yield 0
                lno = 4
                yield 1
                return 123

            def main():
                for i in test_gen():
                    lno = 10
                lno = 11
        r�r4rr�r$r�rr�r6)r$r�r4)r$r�r4ro�	r�r�)r$�r�r��	rr�r�rr�rbr�r�r�rr
r
r�'test_next_command_in_generator_for_loop#s
�
z6IssuesTestCase.test_next_command_in_generator_for_loopc
Cs�d}t|i}t|��~dtdt�dddddddigffd	d
d	ddd
tfdddg|_t|��}|�t�Wd�n1sz0YWd�n1s�0YdS)N�4
            def test_subgen():
                yield 0
                return 123

            def test_gen():
                x = yield from test_subgen()
                return 456

            def main():
                for i in test_gen():
                    lno = 12
                lno = 13
        r�r4rr�r$r�rr�)r$�r4ror9r�r��r$�
r�r�r:rr
r
r�/test_next_command_in_generator_with_subiteratorBs
�

z>IssuesTestCase.test_next_command_in_generator_with_subiteratorc
Cs�d}t|i}t|���dtdt�dddddddigffd	d
ddtfd	d
d
dtfdddg|_t|��}|�t�Wd�n1s�0YWd�n1s�0YdS)Nr<r�Ztest_subgenrr�r$r�rrror�r4r9r�r�r>r�r:rr
r
r�1test_return_command_in_generator_with_subiteratoras
�

z@IssuesTestCase.test_return_command_in_generator_with_subiteratorN)rrr	r3r7r;r@rAr
r
r
rr2�s
)r2�__main__)N),rrr�r Zunittestr�r:r��
contextlibr�	itertoolsrrZtest.supportr��	Exceptionrr
rrrcrr(r)r^r�r�r�r8r�rrr�r�r�r�ZTestCaser�r�rr*r2rr�r
r
r
r�<module>3sP@z.
J

/B")