HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_bdb.cpython-310.opt-2.pyc
o

�i���@s�	ddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZddl
mZddl
mZddl
mZGdd�de�ZGd	d
�d
e�ZGdd�de�ZGd
d�de�ZdZdd�Zdd�ZGdd�dej�ZGdd�de�ZGdd�d�Zd7dd�Ze	dd��Zeddfdd�Zd Z e d!Z!d"d#�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)Gd0d1�d1e'�Z*Gd2d3�d3e'�Z+Gd4d5�d5ej&�Z,e-d6kr�e�.�dSdS)8�N)�contextmanager)�islice�repeat)�
import_helper)�	os_helper)�
patch_listc@�eZdZdS)�BdbExceptionN��__name__�
__module__�__qualname__�rr�*/usr/local/lib/python3.10/test/test_bdb.pyr	A�r	c@r)�BdbErrorNr
rrrrrBrrc@r)�BdbSyntaxErrorNr
rrrrrCrrc@r)�BdbNotExpectedErrorNr
rrrrrDrrcCstj��dS�N)�_bdb�
BreakpointZclearBreakpointsrrrr�reset_BreakpointLsrcCs�dd�tjjD�}|s
dSd}|D];}|sd}d}|jrdnd}|jr%d	nd
}|d|j|||j|jtj	�
|j�|jf7}|j
rH|d|j
f7}|d
7}q|S)NcSsg|]}|r|�qSrr)�.0�bprrr�
<listcomp>P�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�
)rrZ
bpbynumber�	temporary�enabledZnumber�hits�ignore�os�path�basename�file�line�cond)�bp_listZheader_addedr�infoZdispZenabrrr�info_breakpointsOs&��
r*csleZdZ	�fdd�Z		d�fdd�	Z�fdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Z�ZS)�Bdbcsd|_t��|||�Sr)�	currentbp�super�trace_dispatch)�self�frame�event�arg��	__class__rrr.gszBdb.trace_dispatchFNcs�t|t�r*|tkr
t�}nt�|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�resr3rrrCks 

�
z
Bdb.set_breakcs4t��||�\|_|_|j|jd|_|j|jfS�Nr)r-�	get_stack�stack�indexr0)r/�f�tr3rrrLsz
Bdb.get_stackcCs	|�|�}|jd7_dS�N�)�get_bpbynumberr!�r/Zbpnumrrrr�
set_ignore�s
zBdb.set_ignorecC�|�|�}d|_dS)NT�rSrrTrrr�
set_enable��

zBdb.set_enablecCrV)NFrWrTrrr�set_disable�rYzBdb.set_disablecCs|�||�}|rt|��dSr)�clear_breakr)r/�fnamerE�errrrr�	set_clear�s�z
Bdb.set_clearcCs4	|jstd��|jd8_|j|jd|_dS)NzOldest framerRr)rNrrMr0�r/rrr�set_up�s
z
Bdb.set_upcCsB	|jdt|j�krtd��|jd7_|j|jd|_dS)NrRzNewest framer)rN�lenrMrr0r_rrr�set_down�s
zBdb.set_down)FNN)
rrr
r.rCrLrUrXrZr^r`rb�
__classcell__rrr3rr+ds�r+cs�eZdZ	d+�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�||_||_|durd|nd|_|��dS)N��skipzDry-run results for %s:)r-�__init__�
expect_set�dry_run�header�	init_test)r/rhrfri�	test_caser3rrrg�s��zTracer.__init__cCsBd|_d|_d|_tt|jddd��|_tt|jddd��|_dS)Nr�rR)�
cur_except�
expect_set_no�breakpoint_hits�listrrh�
expected_list�set_listr_rrrrk�s
zTracer.init_testc
sp|jdur|j�|dkr0zt��|||�}|WSty/}z||_|jWYd}~Sd}~wwt��|||�S�N�	exception)rnr-r.r	)r/r0r1r2rJ�er3rrr.�s
��zTracer.trace_dispatchcCs(|�|�sdS|�d||�|��dS)N�call)Z	stop_here�
process_event�next_set_method)r/r0Z
argument_listrrr�	user_call�s
zTracer.user_callcCsZ|�d|�|jr |jr t��d�}|�d�D]}td|�q|��d|_|��dS)Nr&rz  )	rxrirpr*�strip�split�print�delete_temporariesry)r/r0r)r&rrr�	user_line�szTracer.user_linecCs|�d||�|��dS)N�return)rxry)r/r0Zreturn_valuerrr�user_return�szTracer.user_returncCs||_|�d|�|��dSrt)�exc_inforxry)r/r0r�rrr�user_exception�szTracer.user_exceptioncCs|jg}||f|_dSr)r,rp)r/r2r(rrr�do_clear�szTracer.do_clearcCs(|jr|jdD]	}|�|�qdSdSrQ)rpZclear_bpbynumber)r/�nrrrr~�s
�zTracer.delete_temporariescCsP|jd7_z	|j�d�|_Wntytd|j��w|j�d�|_dS)NrRrz-expect_set list exhausted, cannot pop item %d)rorr�pop�expect�
IndexErrorrrs�	set_tupler_rrr�pop_next�s���zTracer.pop_nextcs�d}|dkr�jd}��||��jdur"�js"�jg}|gf�_|�_����jr4���j�dS�j	rE��
�j	d|d����|dvrP��d�dSt
�j	�dkr�|dkr��j	d\�}t����}�jss��d�j���
|�jdd	���
�fd
d�|D��fdd��jdD�d
���
t|��jdd�dS|dkr�t�jd�j	d�s�d�j�jf�dSdSdSdS)NrurmrzWrong event type)rwr��r&z(No breakpoints hit at expect_set item %dzBreakpoint numbers do not matchcsg|]}�|�qSrr�rr�)�bpsrrr rz(Tracer.process_event.<locals>.<listcomp>csg|]}��|�j�qSr)rSr r�r_rrr!s�zWrong breakpoint hit countrRzWrong temporary breakpointsz/Wrong exception at expect_set item %d, got '%s')r�rLr,rpr1r�ri�print_staterjr��check_equal�check_lno_name�check_expect_max_sizera�sorted�keys�raise_not_expectedror7)r/r1r0�args�tbr(ZtemporariesZbpnumsr)r�r/rrx�sb

���
���
���zTracer.process_eventcCs&||krdS|�d||j|f�dS)Nz"%s at expect_set item %d, got '%s')r�ro)r/Zexpected�result�msgrrrr�-s


�zTracer.check_equalcCsZ	t|j�}|dkr|��}|�|jd|d�|dkr+|�|jd|jjjd�dSdS)NrRzWrong line numberrmzWrong function name)rar��lno_abs2relr�r0�f_coderB)r/�srErrrr�3s
��zTracer.check_lno_namecCs&t|j�|krtd|j|jf��dS)Nz'Invalid size of the %s expect tuple: %s)rar�rr1)r/�sizerrrr�=s

��zTracer.check_expect_max_sizecCs<|�|jjj�}|jj}||�t�kr||jjjdS|SrQ)�canonicr0r�r@�f_linenor9rA�r/r\rErrrr�Bs��zTracer.lno_abs2relcCs.|r|�|�|�t�kr|jjj|dS|SrQ)r�r9r0r�rAr�rrr�lno_rel2absHs���zTracer.lno_rel2abscCs�|��}|jjj}d|j||f}|jrLd}|jdD]}|dkr%|d7}|d||�|�jf7}q|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�}�(rR�)ruz), � �,)
r�r0r�rBr1rprSr r8r�r�ljustr�)r/rErB�stater�r�rrr�	get_stateMs 

zTracer.get_statecCs:|dur|jdkrt�t|�td|j|��f�dS)NrRz%d: %s)ror}r�)r/rjrrrr�_szTracer.print_statecCs2|d7}|dt|j�7}|d|��7}t|��)Nrz  Expected: %s
z  Got:      )r8r�r�r�r/r�rrrr�eszTracer.raise_not_expectedcCsP|jd}t|j�dkr|jdnd}t|d|�}|dvr#|�dS|dvr.||j�dS|dkrId}|rA|�|jjj|d�}||j|�dS|rO|dvsS|d	vr�|d
vrp|^}}}|�||�}||g}|�|�||�n|dvry||�n|d	vr�|�d|_|�	�|j
r�|��n|jr�|�
�|�d�|��dStd
|j��)NrrmrRZset_)�step�continue�quit)�nextr��until)�break�clearr!�enable�disable)�up�down)r�r�)r!r�r�r�z"%s" is an invalid set_tuple)r�ra�getattrr0r�r�r@�extendr1r�rir�r�r�r�ryr)r/�set_typer�Z
set_methodrEr\ZremainrrrryksP

�





�zTracer.next_set_method)NFNr)rrr
rgrkr.rzrr�r�r�r~r�rxr�r�r�r�r�r�r�r�ryrcrrr3rrd�s,	

2

rdc@s*eZdZ	ddd�Zdd�Zd	dd�ZdS)
�	TracerRunNcCs2||_|j|_t|j||j|��d�|_d|_dS)N)rfrirl)rlrirdrh�id�tracer�_original_tracer)r/rlrfrrrrg�s
�
zTracerRun.__init__cCst�t��|_|jSr)r�sys�gettracer�r�r_rrr�	__enter__�s
zTracerRun.__enter__cCs�t�t�|j�d}|jjr|d7}|d|jj7}|durHtt|�rHt	|t
�rH|jrH|jd}|r9|d|7}|jrBt
|�dS|j�|�|r[|jrSt
|�dS|j�|�dSdS)Nrz+All paired tuples have not been processed, zthe last one was number %drrT)rr��settracer�r�rsro�
issubclassrr7�
BaseExceptionr�rir}rl�fail)r/Ztype_�value�	traceback�	not_empty�err_msgrrr�__exit__�s,�
�zTracerRun.__exit__r)NNN)rrr
rgr�r�rrrrr��s

r�c	Cs�	dd�}ddg}|�|�t�}d|_dd�|_t|td�t|���|_t|��,t	||d	��
}|�
t�Wd�n1s@wYWd�dSWd�dS1sXwYdS)
Ncss8�z	t|�}t|�}|V|VqtyYdSwr)r��
StopIteration)�a�b�x�yrrr�gen�s���zrun_test.<locals>.gen�r��r�TcSsdSrrrrrr�<lambda>szrun_test.<locals>.<lambda>rre)r��BaseTestCaserir�rqr�iterrh�create_modulesr��runcall�tfunc_import)�modulesrsrfr��sl�testr�rrr�run_test�s2


��"�r�ccs��t���itj�t���zG|D],}|d}t|ddd��}|�t	�
||��Wd�n1s3wYt�|�qt
��dVW|D]}t�|�qHtj��n|D]}t�|�qXtj��wWd�dS1sqwYdS)N�.py�wzutf-8)�encoding)rZtemp_cwdr�r#�appendr"�getcwd�open�write�textwrap�dedent�	linecache�
checkcacher;�invalidate_cachesrZforgetr�)r��mr\rOrrrr�s&�
��"�r�FcCsd|d|||ffS)Nr�r)r6r\rr'rrr�
break_in_func&sr��test_module_for_bdbr�cCsddl}|��dSrK)r��main)r�rrrr�+sr�cCs d}t�t�d}d}d}dS)Nrm���)�tfunc_first�tfunc_second��lnorrr�
tfunc_main/sr�cCsd}d}d}dS)Nrmr��rr�rrrr�7sr�cCsd}dS)Nrmrr�rrrr�<sr�c@seZdZ	eZddd�ZdS)r�NcCs|�|�d�r)ZfailureExceptionr�rrrr�DszBaseTestCase.failr)rrr
rir�rrrrr�?sr�c@s�eZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
eej�dd��Zdd�Zdd�Zdd�ZdS) �
StateTestCasecC�Bgd�|_t|��}|�t�Wd�dS1swYdS)N)�r&rmr�r��r&r�r�r��rwrRr�r��r&rmr��r��rhr�r�r��r/r�rrr�	test_stepL�

"�zStateTestCase.test_stepcCs�dD]M}|j|d��=ddddddtdffd	d
dddd
d
igff|fddg|_t|��
}|�t�Wd�n1s;wYWd�n1sJwYqdS)N)r�r��r�r�r�r�r�r�r�)�NonerRr��r�r&r�rR�r&r�r�r�)�subTestr9rhr�r�r�)r/r�r�rrr� test_step_next_on_last_statementVs �
�����z.StateTestCase.test_step_next_on_last_statementcCr�)N)
r�r�r�r��r&r�r�r�)rwrRr�r�)r&rmr�r�r�r�rrr�	test_nextd�

"�zStateTestCase.test_nextc	Cs�d}t|i}t|��/gd�|_t|��
}|�t�Wd�n1s$wYWd�dSWd�dS1s<wYdS)N�9
            def main():
                lno = 3
        )�r&rmr�r��r&r�r�r�)�TEST_MODULEr�rhr�r�r��r/rIr�r�rrr�test_next_over_importos


��"�z#StateTestCase.test_next_over_importcCr�)N)r�r�r�r�r�r�r�r�r�r�rrr�test_next_on_plain_statement}s

"�z*StateTestCase.test_next_on_plain_statementcCr�)N)
r�r�r�r�r��r��rr�r�r�rr�r�r�rrr�test_next_in_caller_frame�s

"�z'StateTestCase.test_next_in_caller_framecCr�)N)r�r�r�r�r�r�r��r��r�r�r�r�rr�r�r�rrr�test_return�s

"�zStateTestCase.test_returncCr�)N)
r�r�r�r�r�rrr)r�r�r�r�r�r�rrr�test_return_in_caller_frame�rz)StateTestCase.test_return_in_caller_framecCr�)N)
r�r�r�r�r�r�r�)r�)r�rr�r�r�rrr�
test_until�rzStateTestCase.test_untilc	Csbdtd�dddddddigffdd	d
g|_t|��}|�t�Wd�dS1s*wYdS)Nr�r�)rrmr�rr&rmrR)r�)i'rr�)r�rhr�r�r�r�rrr�test_until_with_too_large_count�s�
"�z-StateTestCase.test_until_with_too_large_countcCr�)N)
r�r�r�r�r�rr)r�)r�)r&r�r�r�r�r�rrr�test_until_in_caller_frame�rz(StateTestCase.test_until_in_caller_framec	Cs�dd�tjD�tjdd�<d}t|i}t|��7gd�|_dddtf}t||d��
}|�t�Wd�n1s9wYWd�dSWd�dS1sQwYdS)	Ncss �|]}|j�d�r|VqdS)�_frozen_importlibN)r�
startswith)r�itemrrr�	<genexpr>�s�
�
�z*StateTestCase.test_skip.<locals>.<genexpr>r)r	r�r
r�z
importlib*Z	zipimportzencodings.*re)r��	meta_pathrr�rhr�r�r�)r/rIr�rfr�rrr�	test_skip�s�

��"�zStateTestCase.test_skipcCs"tdgd�}|�|�d�d�dS)Nz	anything*reF)r+ZassertIsZis_skipped_module)r/�bdbrrr�test_skip_with_no_name_module�sz+StateTestCase.test_skip_with_no_name_modulecC�Hddg|_t|��}|�t|jt�Wd�dS1swYdS)Nr�)r�)rhr��assertRaisesrr�r�r�rrr�	test_down�s
�
"�zStateTestCase.test_downcCr�)N)r�r�r�r�r�rrr�r�r�rrr�test_up�r�zStateTestCase.test_upN)rrr
r�rrr
rrrrrrrrr�rrr r#r$rrrrr�Is$



r�c@sfeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�BreakpointTestCasecCr!)Nr	)r�)z/non/existent/module.pyrR)rhr�r"rr�r�r�rrr�test_bp_on_non_existent_modules
�
"�z1BreakpointTestCase.test_bp_on_non_existent_modulec	Cs�d}t|i}t|��6ddtdffg|_t|��}|�t|jt�Wd�n1s+wYWd�dSWd�dS1sCwYdS)Nrr	r�r�)	rr��TEST_MODULE_FNAMErhr�r"rr�r�rrrr�test_bp_after_last_statement
s
�
��"�z/BreakpointTestCase.test_bp_after_last_statementcCs�d}t|i}t|��Qdtdtd�dtdtd�dddddd	d	id	gffddddd
d	id
gffdg
|_t|��
}|�t�Wd�n1sFwYWd�dSWd�dS1s^wYdS)N��
            def func():
                lno = 3

            def main():
                for i in range(2):
                    func()
        r	rHT�rrmr�rr&r�rRrmr��rr�r�r'rhr�r�r�rrrr�test_temporary_bps"


�
	��
"�z$BreakpointTestCase.test_temporary_bpcCs�d}t|i}t|��adtdt�dtdtd�dddddd	dd
d
igffddd
dddd	ddd
idgffddddd	dd
digffdg|_t|��
}|�t�Wd�n1sVwYWd�dSWd�dS1snwYdS)N��
            def func():
                lno = 3

            def main():
                for i in range(3):
                    func()
        r	rHr*T)r��rmrr&r�rR)r�r.�rr�rH�r��rRrm�r�r1r�r+rrrr�test_disabled_temporary_bp.s,

�
��"�z-BreakpointTestCase.test_disabled_temporary_bpc
Cs�d}t|i}t|��@dtdtdd�dddd	dd
d	igffdg|_t|��
}|�t�Wd�n1s5wYWd�dSWd�dS1sMwYdS)Nz�
            def func(a):
                lno = 3

            def main():
                for i in range(3):
                    func(i)
        r	rHFza == 2r*rr&r�rRr�r+rrrr�test_bp_conditionJs
�
��"�z$BreakpointTestCase.test_bp_conditionc
Cs�d}t|i}t|��@dtdtdd�dddd	dd
d
igffdg|_t|��
}|�t�Wd�n1s5wYWd�dSWd�dS1sMwYdS)Nzk
            def func(a):
                lno = 3

            def main():
                func(0)
        r	rHFz1 / 0r*rr&r�rRr�r+rrrr�)test_bp_exception_on_condition_evaluation^s
�
��"�z<BreakpointTestCase.test_bp_exception_on_condition_evaluationcCs�d}t|i}t|��@dtdt�dddddddd	d
igffdg|_t|��
}|�t�Wd�n1s5wYWd�dSWd�dS1sMwYdS)Nr)r	rHr*�r!r1rr&r�rRrmr�r+rrrr�test_bp_ignore_countqs
�
��"�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�n1sRwYWd�dSWd�dS1sjwYdS)Nr-r	rHr*r6r0rr&r�rmrRr2r/r�r+rrrr� test_ignore_count_on_disabled_bp�s*
�

��"�z3BreakpointTestCase.test_ignore_count_on_disabled_bpcCs�d}t|i}t|��eddtdffddtdffddtdffddddd	d
d
igffdddd	dd
igffdtdffddddd	dd
igffdg|_t|��
}|�t�Wd�n1sZwYWd�dSWd�dS1srwYdS)Nz�
            def func():
                lno = 3
                lno = 4

            def main():
                for i in range(3):
                    func()
        r	r�r�r*r�rr&rHrRr�)rr�rHrmr�)rr�r'rhr�r�r�rrrr�test_clear_two_bp_on_same_line�s$	
�

��"�z1BreakpointTestCase.test_clear_two_bp_on_same_linecCsPddtdffg|_t|��}|�t|jt�Wd�dS1s!wYdS)Nr	r�rR)r9rhr�r"rr�r�r�rrr�test_clear_at_no_bp�s
�
"�z&BreakpointTestCase.test_clear_at_no_bpcCsht�t�}|�t�}|�td�|�|��|dgi�t�}|�td�|�td�|�td�|�|��|dgi�|�|��|gd�i�|�td�|�|��|dgi�|�|��|gd�i�t�}|�|��|dgi�|�|��|gd�i�|�|��|gd�i�|�td�|�|��|dgi�|�|��|ddgi�|�|��|gd�i�t�}|�td�|�|��|dgi�|�|��|ddgi�|�|��|gd�i�|�|��|gd�i�t�t�}|�td	�|�|��|dgi�|�|��|ddgi�|�|��|gd�i�|�|��|gd�i�|�|��|d	gi�dS)
NrRrmr�r�)rRrmr�r�)rmr�r�r�)r�r�r�r�)rr+r�r9rCZassertEqualZget_all_breaksr[)r/Zdb1r\Zdb2Zdb3Zdb4Zdb5rrr�(test_load_bps_from_previous_Bdb_instance�sH
z;BreakpointTestCase.test_load_bps_from_previous_Bdb_instanceN)rrr
r&r(r,r3r4r5r7r8r9r:r;rrrrr%s
r%c@seZdZ	dd�Zdd�ZdS)�RunTestCasecCsTd}gd�|_t|��}|�tt�|�dd��Wd�dS1s#wYdS)Nz
            lno = 2
        ))r&rm�<module>r�)r�rmr=r�z<string>�exec)rhr��run�compiler�r�)r/rIr�rrr�
test_run_step�s


"�zRunTestCase.test_run_stepc	Cs�d}t|i}t|��7gd�|_ddl}t|��}|�dt�t��Wd�n1s,wYWd�dSWd�dS1sDwYdS)Nr)
)r&rRr=r�)rwrmr�r�)r&r�r�r�)r�r�r�r�)r�rRr=r�rztest_module_for_bdb.main())rr�rhr�r�Zrunevalr:�locals)r/rIr�r�r�rrr�test_runeval_step�s


��	"�zRunTestCase.test_runeval_stepN)rrr
rArCrrrrr<�sr<c@s6eZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�IssuesTestCasecCs�d}d}t|d|i}t|��Bdtdd�ddd	d
dddigffdd
dddg
|_t|��
}|�t�Wd�n1s;wYWd�dSWd�dS1sSwYdS)Nz�
            from test_module_for_bdb_2 import func
            def main():
                func()
                lno = 5
        z9
            def func():
                lno = 3
        Ztest_module_for_bdb_2r	rHztest_module_for_bdb_2.pyr*rr&r�rRr�)r�r�rH)r&r�r�r�)rr�r�rhr�r�r�)r/Zcode_1Zcode_2r�r�rrr�+test_step_at_return_with_no_trace_in_callers&�
�
��	"�z:IssuesTestCase.test_step_at_return_with_no_trace_in_callercCsd}t|i}dD]u}|j|d��et|��Qdtdt�dddd	dd
d
igff|fg|_|dkr>|j�dd
dtfdddg�n|j�ddg�t|��
}|�	t
�Wd�n1sZwYWd�n1siwYWd�n1sxwYqdS)Nz�
            def test_gen():
                yield 0
                lno = 4
                return 123

            def main():
                it = test_gen()
                next(it)
                next(it)
                lno = 11
        )r�r�r�r�r	�test_genr*rr&r�rRr�ru�
r�r�)r�rGr�r��r&r�rF)rrr�r�r'rhr�r�r�r�r�)r/rIr�r�r�rrr�#test_next_until_return_in_generator/s8
����
�������z2IssuesTestCase.test_next_until_return_in_generatorcCs�d}t|i}t|��Ldtdt�dddddddigffd	d
d	dd	dd	d
ddtfdddg|_t|��
}|�t�Wd�n1sAwYWd�dSWd�dS1sYwYdS)Nz�
            def test_gen():
                yield 0
                lno = 4
                yield 1
                return 123

            def main():
                for i in test_gen():
                    lno = 10
                lno = 11
        r	rFr*rr&r�rRr�rH)r&r�rF)r&r�rFru�	r�r�)r&�r�r��	rr�r�r'r�rhr�r�r�rrrr�'test_next_command_in_generator_for_loopXs&
�
��
"�z6IssuesTestCase.test_next_command_in_generator_for_loopc
Cs�d}t|i}t|��Hdtdt�dddddddigffd	d
d	ddd
tfdddg|_t|��
}|�t�Wd�n1s=wYWd�dSWd�dS1sUwYdS)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	rFr*rr&r�rRr�)r&�rFrurKr�r��r&�
r�r�rLrrrr�/test_next_command_in_generator_with_subiteratorws"
�

��"�z>IssuesTestCase.test_next_command_in_generator_with_subiteratorc
Cs�d}t|i}t|��Ldtdt�dddddddigffd	d
ddtfd	d
d
dtfdddg|_t|��
}|�t�Wd�n1sAwYWd�dSWd�dS1sYwYdS)NrNr	Ztest_subgenr*rr&r�rRrrur�rFrKr�r�rPr�rLrrrr�1test_return_command_in_generator_with_subiterator�s"
�

��"�z@IssuesTestCase.test_return_command_in_generator_with_subiteratorN)rrr
rErIrMrRrSrrrrrDs)rDc@seZdZdd�ZdS)�TestRegressionscCst��t��df�dSr)r+Zformat_stack_entryr��	_getframer_rrr�!test_format_stack_entry_no_lineno�sz1TestRegressions.test_format_stack_entry_no_linenoN)rrr
rVrrrrrT�srT�__main__r)/rrr�r"Zunittestr�r;r��
contextlibr�	itertoolsrrZtest.supportrrr�	Exceptionr	rrrrirr*r+rdr�r�r�r9r�rr'r�r�r�r�ZTestCaser�r�r%r<rDrTrr�rrrr�<module>s\2@z
.J

8m")�