Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_bdb.cpython-39.opt-2.pyc

a

��g���@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
�)/usr/local/lib/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�enabled�number�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&r6�globals_�module�func�code�resr3r
rrCjs 

�
z
Bdb.set_breakcs4t��||�\|_|_|j|jd|_|j|jfS�Nr)r-�	get_stack�stack�indexr0)r/�f�tr3r
rrL~sz
Bdb.get_stackcCs|�|�}|jd7_dSr)�get_bpbynumberr �r/Zbpnumrr
r
r�
set_ignore�s
zBdb.set_ignorecCs|�|�}d|_dS)NT�rQrrRr
r
r�
set_enable�s
zBdb.set_enablecCs|�|�}d|_dS)NFrTrRr
r
r�set_disable�s
zBdb.set_disablecCs|�||�}|rt|��dSr+)Zclear_breakr
)r/�fnamerE�errr
r
r�	set_clear�sz
Bdb.set_clearcCs2|jstd��|jd8_|j|jd|_dS)NzOldest framerr)rNr
rMr0�r/r
r
r�set_up�sz
Bdb.set_upcCs@|jdt|j�krtd��|jd7_|j|jd|_dS)NrzNewest framer)rN�lenrMr
r0rZr
r
r�set_down�szBdb.set_down)FNN)
rrr	r.rCrLrSrUrVrYr[r]�
__classcell__r
r
r3rr*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/rcrard�	test_caser3r
rrb�s�
�zTracer.__init__cCsBd|_d|_d|_tt|jddd��|_tt|jddd��|_dS)Nr�r)�
cur_except�
expect_set_no�breakpoint_hits�listrrc�
expected_list�set_listrZr
r
rrf�s
zTracer.init_testc
sv|jdur|j�|dkrbzt��|||�}|WSty^}z||_|jWYd}~Sd}~00nt��|||�SdS�N�	exception)rir-r.r)r/r0r1r2rJ�er3r
rr.�s
zTracer.trace_dispatchcCs(|�|�sdS|�d||�|��dS)N�call)Z	stop_here�
process_event�next_set_method)r/r0Z
argument_listr
r
r�	user_call�s
zTracer.user_callcCsZ|�d|�|jr@|jr@t��d�}|�d�D]}td|�q.|��d|_|��dS)Nr%rz  )	rsrdrkr)�strip�split�print�delete_temporariesrt)r/r0r(r%r
r
r�	user_line�szTracer.user_linecCs|�d||�|��dS)N�return)rsrt)r/r0Zreturn_valuer
r
r�user_return�szTracer.user_returncCs||_|�d|�|��dSro)�exc_inforsrt)r/r0r}r
r
r�user_exception�szTracer.user_exceptioncCs|jg}||f|_dSr+)r,rk)r/r2r'r
r
r�do_clear�szTracer.do_clearcCs$|jr |jdD]}|�|�qdSr)rkZclear_bpbynumber)r/�nr
r
rry�szTracer.delete_temporariescCsT|jd7_z|j�d�|_Wn ty@td|j��Yn0|j�d�|_dS)Nrrz-expect_set list exhausted, cannot pop item %d)rjrm�pop�expect�
IndexErrorrrn�	set_tuplerZr
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)NrprhrzWrong event type)rrr{�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
)rQrr�rZr
rr s�zWrong breakpoint hit countrzWrong temporary breakpointsz/Wrong exception at expect_set item %d, got '%s')r}rLr,rkr1r�rd�print_staterer��check_equal�check_lno_name�check_expect_max_sizer\�sorted�keys�raise_not_expectedrjr7)r/r1r0�args�tbr'ZtemporariesZbpnumsr
)r�r/rrs�s\


���
���

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

�zTracer.check_equalcCsTt|j�}|dkr.|��}|�|jd|d�|dkrP|�|jd|jjjd�dS)NrzWrong line numberrhzWrong function name)r\r��lno_abs2relr�r0�f_coderB)r/�srEr
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�rr1)r/�sizer
r
rr�<s
�zTracer.check_expect_max_sizecCs<|�|jjj�}|jj}||�t�kr8||jjjdS|Sr)�canonicr0r�r@�f_linenor9rA�r/rWrEr
r
rr�As��zTracer.lno_abs2relcCs.|r*|�|�|�t�kr*|jjj|dS|Sr)r�r9r0r�rAr�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�)rpz), � �,)
r�r0r�rBr1rkrQrr8r}r�ljustr�)r/rErB�stater�r�r
r
r�	get_stateLs 

zTracer.get_statecCs:|dur |jdkr t�t|�td|j|��f�dS)Nrz%d: %s)rjrxr�)r/rer
r
rr�^szTracer.print_statecCs6|d7}|dt|j�7}|d|��7}t|��dS)Nrz  Expected: %s
z  Got:      )r8r�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)NrrhrZset_)�step�continue�quit)rr{�until)�break�clearr �enable�disable)�up�down)r�r�)r r�r�r�z"%s" is an invalid set_tuple)r�r\�getattrr0r�r�r@�extendr1r�rdr�r�r�r�rtr)r/�set_typer�Z
set_methodrErWZremainr
r
rrtjsR

��







�zTracer.next_set_method)NFN)N)rrr	rbrfr.rurzr|r~rryr�rsr�r�r�r�r�r�r�r�rtr^r
r
r3rr_�s(	

2

r_c@s(eZdZddd�Zdd�Zd	dd�ZdS)
�	TracerRunNcCs2||_|j|_t|j||j|��d�|_d|_dS)N)rardrg)rgrdr_rc�id�tracer�_original_tracer)r/rgrar
r
rrb�s
�zTracerRun.__init__cCst�t��|_|jSr+)r�sys�gettracer�r�rZr
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�rnrj�
issubclassrr7�
BaseExceptionr�rdrxrg�fail)r/�type_�value�	traceback�	not_empty�err_msgr
r
r�__exit__�s*�

zTracerRun.__exit__)N)NNN)rrr	rbr�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��BaseTestCaserdr�rlr�iterrc�create_modulesr��runcall�tfunc_import)�modulesrnrar��sl�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��supportZtemp_cwdr�r"�appendr!�getcwd�open�write�textwrap�dedent�	linecache�
checkcacher;�invalidate_cachesZforgetr�)r��mrWrOr
r
rr�s 2�r�FcCsd|d|||ffS)Nr�r
)r6rWrr&r
r
r�
break_in_func%sr��test_module_for_bdbr�cCsddl}|��dSrK)r��main)r�r
r
rr�*sr�cCs d}t�t�d}d}d}dS)Nrh���)�tfunc_first�tfunc_second��lnor
r
r�
tfunc_main.sr�cCsd}d}d}dS)Nrhr��r
r�r
r
rr�6sr�cCsd}dS)Nrhr
r�r
r
rr�;sr�c@seZdZeZddd�ZdS)r�NcCs|�|�d�dSr+)ZfailureExceptionr�r
r
rr�CszBaseTestCase.fail)N)rrr	rdr�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%rhr�r��r%r�r�r��rrrr�r��r%rhr��r��rcr�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�)�subTestr9rcr�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�)rrrr�r�)r%rhr�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%rhr�r��r%r�r�r���TEST_MODULEr�rcr�r�r��r/rIr�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��r{�r{r�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�rr	r)r{r�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�rhr�r�r%rhr)r�)i'rr�)r�rcr�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)rr�rr�z
importlib*Z	zipimportzencodings.*r`r)r/rIr�rar�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�)rcr��assertRaisesr
r�r�r�r
r
r�	test_down�s�
zStateTestCase.test_downcCs@gd�|_t|��}|�t�Wd�n1s20YdS)N)r�r�r�r�r�rr	r�r�r�r
r
r�test_up�s

zStateTestCase.test_upN)rrr	r�r�r�rrr
r
rrrrrrrrr
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)rcr�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)Nrrr�r�)	rr��TEST_MODULE_FNAMErcr�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()
        rrHT�r�rhr�r�r%r�rrhr��rr�r�rrcr�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()
        rrHrT)r��rhr�r%r�r)r�r!�r�r�rH�r��rrh�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)
        rrHFza == 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)
        rrHFz1 / 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)NrrrHr�r r$r�r%r�rrhr�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)Nr rrHrr)r#r�r%r�rhrr%r"r�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()
        rr�r�rr�r�r%rHrr�)r�r�rHrhr�)rr�rrcr�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)Nrr�r)r9rcr�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%rh�<module>r�)r{rhr/r�z<string>�exec)rcr��run�compiler�r�)r/rIr�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�)rrrhr�r�)r%r�r�r�)r{r�r�r�)r{rr/r�rztest_module_for_bdb.main())rr�rcr�r�Zrunevalr:�locals)r/rIr�r�r�r
r
r�test_runeval_step�s


zRunTestCase.test_runeval_stepN)rrr	r3r5r
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_2rrHztest_module_for_bdb_2.pyrr�r%r�rr�)r{r�rH)r%r�r�r�)rr�r�rcr�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�r{r�r�test_genrr�r%r�rr{rp�
r�r�)r{r9r�r��r%r�r8)rr�r�r�rrcr�r�r�r�r�)r/rIr�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
        rr8rr�r%r�rr�r:)r%r�r8)r%r�r8rp�	r�r�)r%�r�r��	rr�r�rr�rcr�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
        rr8rr�r%r�rr�)r%�r8rpr=r�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@rZtest_subgenrr�r%r�rrrpr�r8r=r�r�rBr�r>rr
r
r�1test_return_command_in_generator_with_subiteratoras
�

z@IssuesTestCase.test_return_command_in_generator_with_subiteratorN)rrr	r7r;r?rDrEr
r
r
rr6�s
)r6�__main__)N),rrr�r!Zunittestr�r;r��
contextlibr�	itertoolsrrZtest.supportr��	Exceptionrr
rrrdrr)r*r_r�r�r�r9r�rrr�r�r�r�ZTestCaser�r�rr.r6rr�r
r
r
r�<module>3sP@z.
J

/B")


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists