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_traceback.cpython-310.pyc
o

�i1��@s�dZddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZmZddlmZmZddlmZddlZddlZed	d
dg�Zedgd
��Zedgd��ZGdd�dej�ZGdd�dej�ZdZdZe	� de	�!e�e	�!e�f�Z"Gdd�d�Z#Gdd�de#ej�Z$Gdd�de#ej�Z%Gdd�dej�Z&Gdd �d ej�Z'Gd!d"�d"ej�Z(Gd#d$�d$ej�Z)Gd%d&�d&ej�Z*Gd'd(�d(ej�Z+e,d)kr�e�-�dSdS)*zTest cases for traceback module�)�
namedtuple)�StringION)�support)�Error�captured_output�cpython_only�	ALWAYS_EQ)�TESTFN�unlink)�assert_python_ok�code�co_filename�co_name�frame)�f_code�	f_globals�f_locals�tb)�tb_frame�	tb_lineno�tb_nextc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�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+S),�TracebackCasesc
CsBz|�Wtd��|y }zt�||�WYd}~Sd}~ww)Nzcall did not raise exception)�	traceback�format_exception_only�
ValueError)�self�func�exc�value�r�0/usr/local/lib/python3.10/test/test_traceback.py�get_exception_formats���z#TracebackCases.get_exception_formatcC�tddd�dS)Nzdef fact(x):
	return x!
�?�exec��compile�rrrr �syntax_error_with_caret$�z&TracebackCases.syntax_error_with_caretcCr")Nz1 +
r#r$r%r'rrr �syntax_error_with_caret_2'r)z(TracebackCases.syntax_error_with_caret_2cCr")Nzf(x, y for y in range(30), z)r#r$r%r'rrr �syntax_error_with_caret_range*r)z,TracebackCases.syntax_error_with_caret_rangecCr")Nz def spam():
  print(1)
 print(2)r#r$r%r'rrr �syntax_error_bad_indentation-r)z+TracebackCases.syntax_error_bad_indentationcCr")NuPython = "Ṕýţĥòñ" +r#r$r%r'rrr �!syntax_error_with_caret_non_ascii0r)z0TracebackCases.syntax_error_with_caret_non_asciicCr")Nz	 print(2)r#r$r%r'rrr �syntax_error_bad_indentation23r)z,TracebackCases.syntax_error_bad_indentation2cCr")Nz
blech  (  r#r$r%r'rrr � tokenizer_error_with_caret_range6r)z/TracebackCases.tokenizer_error_with_caret_rangecCs2|�|jt�}|�t|�d�|�|d��dk�|�d|d�|�|d�d�|d�d��|�|d�	d�d�|�|j
t�}|�d|d�|�|d�	d�d�|�|d�d�d|d�d��|�|d�	d�d�|�|jt�}|�d|d�|�|d�	d�d�|�|d�d�d|d�d��|�|d�	d�d�|�|jt�}|�d|d�|�|d�	d�d�|�|d�d	�|d�d��|�|d�	d�td
��|�|j
t�}|�d|d�|�|d�	d�d�|�|d�d�|d�d��|�|d�	d�d�dS)N��z	return x!�^��!�
�+�yzy for y in range(30)�()r!r(�SyntaxError�assertEqual�len�
assertTrue�strip�assertIn�find�countr*r-r+r/�r�errrrr �
test_caret9sH� �$�$� � zTracebackCases.test_caretcCs>tdd�}t�t|�}|�t|�d�|�|d��d�dS)N�error)zx.py�N�
bad syntax�r1rF)r9rrr:r;r=)rrrBrrr �test_nocaret^s
zTracebackCases.test_nocaretcCs�|�|jt�}|�t|�d�|�|d��d�|�d|d�|�|d�d�d|d�d��|�|jt�}|�t|�d�|�|d��d�dS)Nr0r1zprint(2)r2r3�)rG)	r!r,�IndentationErrorr:r;r=r>r?r.rArrr �test_bad_indentationds�$�z#TracebackCases.test_bad_indentationcCs&t�}t�|j|�}|�|dg�dS)NzKeyboardInterrupt
)�KeyboardInterruptrr�	__class__r:)r�eZlstrrr �test_base_exceptionrsz"TracebackCases.test_base_exceptioncCsxGdd�dt�}t�||��}|�t|�d�d|j}|jdvr%|j}n	d�|j|jg�}|�|dd||f�dS)	Nc@�eZdZdd�ZdS)z?TracebackCases.test_format_exception_only_bad__str__.<locals>.XcS�dddS�Nr1rrr'rrr �__str__z�zGTracebackCases.test_format_exception_only_bad__str__.<locals>.X.__str__N��__name__�
__module__�__qualname__rSrrrr �Xy�rYr1z<unprintable %s object>)�__main__�builtins�.r�%s: %s
)	�	Exceptionrrr:r;rVrWrX�join)rrYrB�	str_value�str_namerrr �%test_format_exception_only_bad__str__xs

z4TracebackCases.test_format_exception_only_bad__str__cs�ddl�ddl��j�jddg�j�jd�}|��\}}t|d���d�����fdd�}|dd	dd
�dD]0}|dkr@d	}n	|dkrGd
}nd}|d�	|�||d�|d�	|�||d�|d�	|�||d�q7|dddd�dS)Nr�-cz&import sys; print(sys.stdout.encoding)��stdout�stderr�asciicsz@ttd|d��}|�d�||��Wd�n1swY�j�jtg�j�jd�}|��\}}|�	���
�}Wtt�ntt�w|��d�}|�	��}	d�|	�}
d�|	�}��
d||d	d
�|d	|����|d�|
�d�|d|
����|d
|kd�|d
|��dS)N�w)�encodingz}{0}if 1:
                        import traceback;
                        raise RuntimeError('{1}')
                        re�backslashreplacezraise RuntimeError('{0}')zRuntimeError: {0}zline %sr1z)Invalid line number: {0!r} instead of {1}r3z.Invalid traceback line: {0!r} instead of {1!r}rGz-Invalid error message: {0!r} instead of {1!r})�openr	�write�format�Popen�
executable�PIPE�STDOUT�communicate�decode�
splitlinesr
�encoder>r<�endswith)Z
firstlines�message�charset�lineno�output�processrfrgZencoded_messageZ
message_asciiZerr_line�err_msg�Zoutput_encodingr�
subprocess�sysrr �do_test�sB����


������z1TracebackCases.test_encoded_file.<locals>.do_test��foorG)rhz
iso-8859-1�utf-8�GBKr�u丂儀uhé hoz# coding: {0}
r0z#!shebang
# coding: {0}
�z 	
# coding: {0}
zx=0
# coding: GBK
r�)
r�rrorprqrrrs�strrurn)rr|rfrgr�ry�textrr~r �test_encoded_file�s6
��#
�
�
�z TracebackCases.test_encoded_filecCs6t�d�}td|�\}}}gd�}|�|��|�dS)Na%
            import sys
            import traceback

            class PrintExceptionAtExit(object):
                def __init__(self):
                    try:
                        x = 1 / 0
                    except Exception:
                        self.exc_info = sys.exc_info()
                        # self.exc_info[1] (traceback) contains frames:
                        # explicitly clear the reference to self in the current
                        # frame to break a reference cycle
                        self = None

                def __del__(self):
                    traceback.print_exception(*self.exc_info)

            # Keep a reference in the module namespace to call the destructor
            # when the module is unloaded
            obj = PrintExceptionAtExit()
        rd)s"Traceback (most recent call last):s&  File "<string>", line 8, in __init__s#ZeroDivisionError: division by zero)�textwrap�dedentrr:ru)rr�rcrfrg�expectedrrr �test_print_traceback_at_exit�s
z+TracebackCases.test_print_traceback_at_exitcCs0t�}tjttd�d|d�|�|��d�dS�N�	projector��file�Exception: projector
�rr�print_exceptionr_r:�getvalue�rr{rrr �test_print_exception�s
�z#TracebackCases.test_print_exceptioncCs,t�}tjtd�|d�|�|��d�dSr�r�r�rrr �test_print_exception_exc�sz'TracebackCases.test_print_exception_exccCs�td�}t�|�}|�|dg�|�td��t�|j|�Wd�n1s(wY|�td��tj|j|jd�Wd�n1sGwY|�td��tj|d�Wd�dS1sdwYdS)Nr�r�zBoth or neither�rzpositional-only)r)	r_r�format_exceptionr:ZassertRaisesRegexrrM�
__traceback__�	TypeError)rrNr{rrr �test_format_exception_exc�s
��"�z(TracebackCases.test_format_exception_exccCs t�td��}|�|dg�dS)Nr�r�)rrr_r:r�rrr �test_format_exception_only_exc��z-TracebackCases.test_format_exception_only_exccCs�d}t�}tjd|d�|�|��|�t�}tjddd|d�|�|��|�t�}tjd|d�|�|��|�|�t�d�|�|�t�d�|g�|�t�ddd�|g�|�t�d�|g�|�t�dd�|g�dS)NzNoneType: None
r�)	rrr�r:r��	print_exc�
format_excr�r)rZNONE_EXC_STRING�excfilerrr �test_exception_is_Nones*���z%TracebackCases.test_exception_is_NonecCsL|�tt�tj��d�|�tt�tj��d�|�tt�tj��d�dS)NzL(exc, /, value=<implicit>, tb=<implicit>, limit=None, file=None, chain=True)zA(exc, /, value=<implicit>, tb=<implicit>, limit=None, chain=True)z(exc, /, value=<implicit>))r:r��inspectZ	signaturerr�r�rr'rrr �test_signaturess���zTracebackCases.test_signaturesN)rVrWrXr!r(r*r+r,r-r.r/rCrHrKrOrcr�r�r�r�r�r�r�r�rrrr rs,%
Drc@sreZdZdd�Zeddd��Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zedd��Zdd�Z
edd��ZdS)�TracebackFormatTestscC�td��)NZblah)�KeyErrorr'rrr �some_exception,�z#TracebackFormatTests.some_exceptionNcCs�ddlm}z	|��Wtd��ty�t��\}}}|dur&||j�dd�t�	|��}t
�}|||�|��}td��
}	t�
|�Wd�n1sPwYt
�}
tj
||
d�td��}t��Wd�n1srwYt��}t
�}
tj|
d�Ynw|�||�|�|	��|
���|�|��|
���|�||
���|��}|�t|�d�|d}|d	d�\}}|�|�d
��|�|�d��|�|�d��dS)
Nr)�traceback_printz#Traceback (most recent call last):
r�rgr�z&unable to create test traceback stringr�����	Traceback�  Filez	    raise)�	_testcapir�r�r�r��exc_inforr`r�	format_tbrr�r�print_tbr�r�rr:rur;r<�
startswith)rZcleanup_funcr��type_rrZ
traceback_fmtZfile_Z
python_fmtZtbstderrZtbfileZ	excstderrZexcfmtr�Ztb_linesZbanner�locationZsource_linerrr �check_traceback_format/sJ
�
�

�

��z+TracebackFormatTests.check_traceback_formatcC�|��dS�N�r�r'rrr �test_traceback_format\rTz*TracebackFormatTests.test_traceback_formatcCsdd�}|�|�dS)NcSs|j��dSr�)r�clearr�rrr �
cleanup_tba�zRTracebackFormatTests.test_traceback_format_with_cleared_frames.<locals>.cleanup_tbr�)rr�rrr �)test_traceback_format_with_cleared_frames_sz>TracebackFormatTests.test_traceback_format_with_cleared_framescCs�td��}t�t�d��Wd�n1swYt�}tjt�d�|d�|�|��|���t�t�d��}|�|��d�	|��dS)Nrgr1r�r�)
rr�print_stackr��	_getframerr:r��format_stackr`)rZststderrZstfileZstfmtrrr �test_stack_formates
�z&TracebackFormatTests.test_stack_formatc	Cs~dd�}td��}|�Wd�n1swY|jj}|�|����dd�dt|dfddt|d	fd
g�dS)NcSst��dSr�)rr�rrrr �prnsrTz2TracebackFormatTests.test_print_stack.<locals>.prnrg���z)  File "%s", line %d, in test_print_stackrGz	    prn()z  File "%s", line %d, in prnr1z    traceback.print_stack())r�__code__�co_firstlinenor:r�ru�__file__)rr�rgrzrrr �test_print_stackrs
�
�z%TracebackFormatTests.test_print_stackcs�d|_�fdd��td��}z��Wnty|�Ynw|�d�Wd�n1s/wY�jj}dt�d|d�dt�d|d	�d
t�d|d	�d
t�d|d	�d�}|��}|����}|�	|dd�|dd��|�
|d|d�|�|d
|d
�t�
�}|�tt�d|d����t|d|��d(�fdd�	�td��}z��Wnty�|�Ynw|�d�Wd�n1s�wY�jj}	dt�d|	d�dt�d|	d�dt�d|	d�dt�d|	d�d�}
dt�d|	d�d�}||
��}|����}|�	||�d(��fdd�	�td�� }z��Wn
t�y5|�Ynw|�d�Wd�n	1�sFwY�jj}
dt�d|
d�dt�d|
d�dt�d|
d�dt�d|
d�d t�d|
d�d!�}||
��}|����}|�	||�td��"}z�tj�Wn
t�y�|�Ynw|�d"�Wd�n	1�s�wYdt�d|	d�dt�d|	d�dt�d|	d�dt�d|	d�d�}
dt�d|	d#�d$�}||
��}|����}|�	||�td��$}z	�tjd	�Wn
t�y|�Ynw|�d"�Wd�n	1�s'wYdt�d|	d�dt�d|	d�dt�d|	d�d%t�d|	d�d�}
dt�d|	d&�d'�}||
��}|����}|�	||�dS))Nc�
��dSr�rr��frr r���
zBTracebackFormatTests._check_recursive_traceback_display.<locals>.frgzno recursion occurredz+Traceback (most recent call last):
  File "z", line r�z8, in _check_recursive_traceback_display
    f()
  File "r1z, in f
    f()
  File "zn, in f
    f()
  \[Previous line repeated (\d+) more times\]
RecursionError: maximum recursion depth exceeded
r����z\d+�<�
cs|r�|d�St��Nr1�r�r@)�grr r��szBTracebackFormatTests._check_recursive_traceback_display.<locals>.gzno value error was raisedz  File "r3z%, in g
    return g(count-1)
  File "zM, in g
    return g(count-1)
  [Previous line repeated 7 more times]
  File "rGz', in g
    raise ValueError
ValueError
�z0, in _check_recursive_traceback_display
    g()
cs|r�|d�S��dSr�rr�)r��hrr r��s
zBTracebackFormatTests._check_recursive_traceback_display.<locals>.hz8, in _check_recursive_traceback_display
    h()
  File "z%, in h
    return h(count-1)
  File "zM, in h
    return h(count-1)
  [Previous line repeated 7 more times]
  File "z, in h
    g()
zno error raised�GzK, in _check_recursive_traceback_display
    g(traceback._RECURSIVE_CUTOFF)
zL, in g
    return g(count-1)
  [Previous line repeated 1 more time]
  File "�czO, in _check_recursive_traceback_display
    g(traceback._RECURSIVE_CUTOFF + 1)
)r�)ZmaxDiffr�RecursionError�failr�r�r�rur�r:ZassertRegexr>r��getrecursionlimit�int�re�search�group�rangerr�_RECURSIVE_CUTOFF)r�
render_exc�stderr_fZlineno_fZresult_fr��actualZ	rec_limitZstderr_gZlineno_gZresult_gZtb_lineZstderr_hZlineno_hZresult_hr)r�r�r�r �"_check_recursive_traceback_display�sV


�
�����������*


�
���������
���


�
����������
�
��

�
������������

�
���������
���z7TracebackFormatTests._check_recursive_traceback_displaycCs|�tj�dSr�)r�rr�r'rrr �test_recursive_traceback_python1r)z4TracebackFormatTests.test_recursive_traceback_pythoncs&ddlm��fdd�}|�|�dS)Nr��exception_printcst��\}}}�|�dSr�)r�r�)�exc_type�	exc_value�exc_tbr�rr r�7szRTracebackFormatTests.test_recursive_traceback_cpython_internal.<locals>.render_exc)r�r�r�)rr�rr�r �)test_recursive_traceback_cpython_internal4sz>TracebackFormatTests.test_recursive_traceback_cpython_internalcCsJdd�}|�}|jj}|�|dd�dt|dfdt|dfg�dS)NcS�t��Sr�)rr�rrrr �fmt=r�z3TracebackFormatTests.test_format_stack.<locals>.fmtr�z>  File "%s", line %d, in test_format_stack
    result = fmt()
r3zA  File "%s", line %d, in fmt
    return traceback.format_stack()
r1)r�r�r:r�)rr��resultrzrrr �test_format_stack<s
�
�
�z&TracebackFormatTests.test_format_stackc
Cs�ddlm}Gdd�dt�}|d�}|d�}z||�|y5z|�|y2t��\}}}YnwYnwtd��}||�Wd�n1sIwY|������}	|�	dt
|	��|�	t��|	d	�|�d
|	d�|�d|	d
�dS)Nrr�c@rP)zATracebackFormatTests.test_unhashable.<locals>.UnhashableExceptioncS�dS�NTr�r�otherrrr �__eq__M�zHTracebackFormatTests.test_unhashable.<locals>.UnhashableException.__eq__N�rVrWrXr�rrrr �UnhashableExceptionLrZr��ex1�ex2rg�r�zUnhashableException: ex2rGzUnhashableException: ex1r�)
r�r�r_r�r�rr�r=rur:r;�context_messager>)
rr�r�r�r�r��exc_valr�r�rrrr �test_unhashableHs,��

�z$TracebackFormatTests.test_unhashabler�)rVrWrXr�rr�r�r�r�r�r�r�r�r�r�rrrr r�*s ,
2
r�zG
The above exception was the direct cause of the following exception:

zF
During handling of the above exception, another exception occurred:

z(%s|%s)c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �BaseExceptionReportingTestsc
CsDt|t�r|Sz|�WdSty!}z|WYd}~Sd}~wwr�)�
isinstancer_)rZexception_or_callablerNrrr �
get_exceptionrs
��z)BaseExceptionReportingTests.get_exceptioncCrQrRrr'rrr �zero_divzrTz$BaseExceptionReportingTests.zero_divcCsJ|��}|�|d�d��|�d|d�|�|d�d�|d�dS)N���r�z1/0 # In zero_divr�r��ZeroDivisionError)rur<r�r>)r�msg�linesrrr �check_zero_div}sz*BaseExceptionReportingTests.check_zero_divc
Cs�zddWnty}z|}WYd}~nd}~ww|�|���}|�t|�d�|�|d�d��|�|d�d��|�d|d�|�|d�d	��dS)
Nr1rr0r�r�z1/0 # Markerr3rGr)r�
get_reportrur:r;r<r�r>�r�_rNrrrr �test_simple�s��z'BaseExceptionReportingTests.test_simplec�j�fdd���fdd�}t���|��}��t|�d���|dt���|d���d|d	�dS)
Nc
s.z���WdSty}zt|�d}~wwr��rrr�)rNr'rr �inner_raise�s��z;BaseExceptionReportingTests.test_cause.<locals>.inner_raisecr�r�rr�rrr �outer_raise�r�z;BaseExceptionReportingTests.test_cause.<locals>.outer_raiserGr1r�inner_raise() # Markerr3��
boundaries�splitrr:r;�
cause_messagerr>�rrZblocksr�rrr �
test_cause��z&BaseExceptionReportingTests.test_causecr)
Ncs"z���WdStyt�wr�r
rr'rr r�s
�z=BaseExceptionReportingTests.test_context.<locals>.inner_raisecr�r�rrrrr r�r�z=BaseExceptionReportingTests.test_context.<locals>.outer_raiserGr1rrr3)rrrr:r;r�rr>rrrr �test_context�rz(BaseExceptionReportingTests.test_contextc
Cs�z	zt�td�ty}z|}WYd}~nd}~ww|�|���}|�t|�d�|�|d�d��|�|d�d��|�d|d�|�|d�d	��dS)
Nr0rr�r1r�zZeroDivisionError from Noner3rGr)	r_rrrur:r;r<r�r>r	rrr �test_context_suppression�s��z4BaseExceptionReportingTests.test_context_suppressioncr)
Nc
sVz���Wnty}z|}WYd}~nd}~wwztWdSty*t|�wr�)rrZxyzzy�	NameErrorr�)�_erNr'rr r�s��
�zGBaseExceptionReportingTests.test_cause_and_context.<locals>.inner_raisecr�r�rrrrr r�r�zGBaseExceptionReportingTests.test_cause_and_context.<locals>.outer_raiserGr1rrr3rrrrr �test_cause_and_context�s	z2BaseExceptionReportingTests.test_cause_and_contextcs��fdd���fdd�}t���|��}��t|�d���|dt���d|d���d	|d���d
|d���|d�dS)Nc
sTzz���WWdSty}z|}t|�d}~wwty)}z||�d}~wwr�r
)rN�zr'rr r�s����zEBaseExceptionReportingTests.test_cause_recursive.<locals>.inner_raisecr�r�rrrrr r�r�zEBaseExceptionReportingTests.test_cause_recursive.<locals>.outer_raiserGr1zraise KeyError from erz1/0rr3)	rrrr:r;rr>ZassertNotInrrrrr �test_cause_recursive�s	z0BaseExceptionReportingTests.test_cause_recursivecCsPdd�}|�|���}|�|dd�dd�}|�|���}|�|dd�dS)NcSs
tdd��)Nr�)r�rr�Zhello)r9rrrr rN�r�zFBaseExceptionReportingTests.test_syntax_error_offset_at_eol.<locals>.er�z	        ^cSstd�dS)Nzx = 5 | 4 |)r$rrrr rN�rTz               ^)rrur:�rrNrrrr �test_syntax_error_offset_at_eol�sz;BaseExceptionReportingTests.test_syntax_error_offset_at_eolcCs�td�}|�|���}|�|dg�d|_|�|���}|�|ddg�td�}d|_|�|���}|�|dg�d|_|�|���}|�|ddg�dS)NrFzSyntaxError: bad syntax�dz  File "<string>", line 100z	myfile.pyz#SyntaxError: bad syntax (myfile.py)z  File "myfile.py", line 100)r9rrur:rz�filenamer!rrr �test_syntax_error_no_lineno�s*����z7BaseExceptionReportingTests.test_syntax_error_no_linenocCsj|�td��}|�d|�|�td��}|�d|�|�t��}|�d|�|�td��}|�d|�dS)NzException: None
�Nonez
Exception
r�)rr_r>rArrr �test_message_none	sz-BaseExceptionReportingTests.test_message_nonecCs@Gdd�dt�}d|_|�|��}d|j�d�}|�||�dS)Nc@rP)zLBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.XcSr��N�I am Xrr'rrr rSr�zTBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.X.__str__NrUrrrr rYrZrY�*z
<unknown>.z	: I am X
)r_rWrrXr:)rrYrB�exprrr �%test_exception_modulename_not_unicodes
zABaseExceptionReportingTests.test_exception_modulename_not_unicodec
Cs�tdd�D]l}dD]g}d|d|}dg}|dkr$|�d|���n)|d	kr=|�d|���|�d
d|d�n|�d|���|�d
d�|�d�|�d
�|�tddd|||f��}d�|�}|�||�q	qdS)N���r�)rr3� ztext%dz  File "file.py", line 1r1z    %s�z    %s^z     zSyntaxError: msgr�rzfile.pyr5)r��append�lstriprr9r`r:)r�offset�addr�r�rBr+rrr �!test_syntax_error_various_offsetss$


��z=BaseExceptionReportingTests.test_syntax_error_various_offsetscCsXGdd�d�}|�|j���}d}d�|jjj|jjjg�}d||f}|�||�dS)Nc@seZdZGdd�d�ZdS)zJBaseExceptionReportingTests.test_format_exception_only_qualname.<locals>.Ac@seZdZGdd�de�ZdS)zLBaseExceptionReportingTests.test_format_exception_only_qualname.<locals>.A.Bc@rP)zNBaseExceptionReportingTests.test_format_exception_only_qualname.<locals>.A.B.XcSr�r(rr'rrr rS6r�zVBaseExceptionReportingTests.test_format_exception_only_qualname.<locals>.A.B.X.__str__NrUrrrr rY5srYN)rVrWrXr_rYrrrr �B4sr5N)rVrWrXr5rrrr �A3sr6r)r]r^)rr5rYr`rWrXr:)rr6rBrarbr+rrr �#test_format_exception_only_qualname2sz?BaseExceptionReportingTests.test_format_exception_only_qualnameN)rVrWrXrrrrrrrrr r"r%r'r,r4r7rrrr r�ps r�c@rP)�PyExcReportingTestscCst|�|�}d�t�t|�||j��}td��}t�t|�||j�Wd�n1s+wY|�|�	�|�|S)Nr�rg)
rr`rr��typer�rr�r:r�)rrN�s�siorrr rFs
�
�zPyExcReportingTests.get_reportN)rVrWrXrrrrr r8@sr8c@seZdZedd��ZdS)�CExcReportingTestscCsTddlm}|�|�}td��}||�Wd�|��S1s!wY|��S)Nrr�rg)r�r�rrr�)rrNr�r:rrr rUs



��zCExcReportingTests.get_reportN)rVrWrXrrrrrr r<Psr<c@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�
LimitTestsze Tests for limit argument.
        It's enough to test extact_tb, extract_stack and format_exception cCr�)NzLast raised)r_r'rrr �last_raises1cr�zLimitTests.last_raises1cCr�r�)r>r'rrr �last_raises2frTzLimitTests.last_raises2cCr�r�)r?r'rrr �last_raises3irTzLimitTests.last_raises3cCr�r�)r@r'rrr �last_raises4lrTzLimitTests.last_raises4cCr�r�)rAr'rrr �last_raises5orTzLimitTests.last_raises5cCr�r�)r�r�r'rrr �last_returns_frame1rr�zLimitTests.last_returns_frame1cC�|��Sr�)rCr'rrr �last_returns_frame2ur�zLimitTests.last_returns_frame2cCrDr�)rEr'rrr �last_returns_frame3xr�zLimitTests.last_returns_frame3cCrDr�)rFr'rrr �last_returns_frame4{r�zLimitTests.last_returns_frame4cCrDr�)rGr'rrr �last_returns_frame5~r�zLimitTests.last_returns_frame5csz�����fdd�}�fdd�}t�tdd���|�}��t|�d���|dd	�|d
d��||dd	�|dd�d
���|d
d	�|dd��||dd	�|dd�t|�dd���|dd	�g�t`||�|d
�dt_��|�|d
d����|dd	�|dd����|dd	�|dd��dt_��|�g�dt_��|�g�Wd�dS1s�wYdS)Nc�tj�fi|��Sr��r�
extract_stack��kwargs)rrr �extract��z.LimitTests.test_extract_stack.<locals>.extractcsX��|d|�|d|����||dd�||dd����t|�t|��dSr�)r:r;)r�r��ignorer'rr �assertEqualExcept�s$z8LimitTests.test_extract_stack.<locals>.assertEqualExcept�tracebacklimit��r�r3��limitr�r#i����i����r1rrGrr�)rHr�	swap_attrr��
assertGreaterr;r:rR)rrNrQ�nolimr)rrr �test_extract_stack�s,&"�zLimitTests.test_extract_stackcsxz|��Wntyt��\}}�Ynw�fdd�}t�tdd���|�}|�t|�d�|�|dd�|dd��|�|dd�|�|�|d	d�|d	d��|�|d
d�|�|�|dd�g�t`|�|�|�dt_|�|�|dd��|�|dd�|dd��|�|d
d�|d
d��dt_|�|�g�dt_|�|�g�Wd�dS1s�wYdS)NcrIr�)r�
extract_tbrLr�rr rN�rOz+LimitTests.test_extract_tb.<locals>.extractrRrSr/r3rTr�r����rrGrr��	rBr_r�r�rrVr:r;rR)rr�r�rNrXrr�r �test_extract_tb�s2�"�zLimitTests.test_extract_tbcs|z|��Wntyt��\���Ynw���fdd�}t�tdd���|�}|�t|�d�|�|dd�|dd��|�|dd�|�|�|d	d�|d	d��|�|d
d�|�|�|dd�g�t`|�|�|�dt_|�|�|dd��|�|dd�|dd��|�|d
d�|d
d��dt_|�|�g�dt_|�|�g�Wd�dS1s�wYdS)Ncstj���fi|��dd�S)Nr1r�)rr�rL�r�r�rrr rN�sz1LimitTests.test_format_exception.<locals>.extractrRrSr/r3rTr�r�r[rrGrr�r\)rrNrXrr^r �test_format_exception�s2�"�z LimitTests.test_format_exceptionN)rVrWrX�__doc__r>r?r@rArBrCrErFrGrHrYr]r_rrrr r=^sr=c@seZdZdd�Zdd�ZdS)�MiscTracebackCasescs��fdd�}�fdd��dd��z|�Wnt��\}}}Y|jjjj}|�t|j�d�t�|�|�t|j�d�dS)	Ncr�r�rr)�middlerr �outer�r�z,MiscTracebackCases.test_clear.<locals>.outercr�r�rr)�innerrr rb�r�z-MiscTracebackCases.test_clear.<locals>.middlecSsd}dddSrRr)�irrr rd�sz,MiscTracebackCases.test_clear.<locals>.innerr1r)	r�r�rrr:r;rr�clear_frames)rrcr�rrZinner_framer)rdrbr �
test_clear�s

zMiscTracebackCases.test_clearcCs^dd�}|�}|jj}|�|dd�t|dddft|ddd	fg�|�t|d
�d�dS)NcSr�r�rJrrrr rN�r�z6MiscTracebackCases.test_extract_stack.<locals>.extractr�r3rYzresult = extract()r1rNz return traceback.extract_stack()rr0)r�r�r:r�r;)rrNr�rzrrr rY�s�z%MiscTracebackCases.test_extract_stackN)rVrWrXrgrYrrrr ra�srac@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�	TestFramecCs�t��t�dt��t�ddd�}|�|d�|�t|�d�|�|t�ddd��|�|t|��|�t|�|�|�|j	�|�
|t��|�|t�dS)Nr�r1�dummy)r�r1ri�%"""Test cases for traceback module""")
�	linecache�
clearcache�	lazycache�globalsr�FrameSummaryr:�tupleZassertIsNone�locals�assertNotEqual�objectr�rr�rrr �test_basicss�
�zTestFrame.test_basicscCsHt��tjddddd�}|�d|j�t�dt��|�d|j�dS)Nr�r1riF)�lookup_linerj)	rkrlrror:�_linermrn�linertrrr �test_lazy_liness�zTestFrame.test_lazy_linescCs t�ddd�}|�|jd�dS)Nr�ri�rror:rxrtrrr �test_no_liner�zTestFrame.test_no_linecCs$tjddddd�}|�d|j�dS)Nr�r1rirx�rxrzrtrrr �test_explicit_line�zTestFrame.test_explicit_linecCs&tjddddd�}|�t|�d�dS)Nr�r1rirxr|r0)rror:r;rtrrr �test_len#szTestFrame.test_lenN)rVrWrXruryr{r}rrrrr rh�s	rhc@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�	TestStackcCsLdd�}tt�d��}|�}|�t|�t|�d�|�|dd�|�dS)NcSstt�d��Sr�)�listr�
walk_stackrrrr �deeper+r�z)TestStack.test_walk_stack.<locals>.deeperr1)r�rr�r:r;)rr��s1�s2rrr �test_walk_stack*s
zTestStack.test_walk_stackcCsPzddWntyt��\}}}Ynwtt�|��}|�t|�d�dSrR)r_r�r�r�r�walk_tbr:r;)rr
rr:rrr �test_walk_tb2s�zTestStack.test_walk_tbcCs$tj�t�d��}|�|tj�dSr�)r�StackSummaryrNr�ZassertIsInstance�rr:rrr rY:r~zTestStack.test_extract_stackcCs*tjjt�d�dd�}|�t|�d�dS)Nr�rT)rr�rNr�r:r;r�rrr �test_extract_stack_limit>sz"TestStack.test_extract_stack_limitcCsdt��t�dt��tdd�}t|dd�}tjjt	|dfg�dd�}t��|�
|djd�dS)N�/foo.py�methodr/T��lookup_linesr�
import sys)rkrl�updatecachern�	test_code�
test_framerr�rN�iterr:rx�r�cr�r:rrr �test_extract_stack_lookup_linesBs
z)TestStack.test_extract_stack_lookup_linescCsjt��tdd�}t|dd�}tjjt|dfg�dd�}|�itj	�t�
dt��|�|djd�dS)Nr�r�r/Fr�rr�)
rkrlr�r�rr�rNr�r:�cacher�rnrxr�rrr �*test_extract_stackup_deferred_lookup_linesKs
z4TestStack.test_extract_stackup_deferred_lookup_linescC�$tj�dg�}|�dg|���dS�N��foo.pyr1�fredrxz*  File "foo.py", line 1, in fred
    line
�rr��	from_listr:rnr�rrr �test_from_listTs
�zTestStack.test_from_listcCs8tj�dg�}d|d<tj�|�}|�dg|���dS)Nr�)r�r3r�rxrz*  File "foo.py", line 2, in fred
    line
r�)rr:r�rrr �test_from_list_edited_stackZs�z%TestStack.test_from_list_edited_stackcCr�r�r�r�rrr �test_format_smokebs
�zTestStack.test_format_smokecCs^t�dt��tdd�}t|t�ddi�}tjjt|dfg�dd�}|�	|dj
dd	i�dS)
Nr�r��	somethingr1r/T��capture_localsr�1�rkr�rnr�r�rr�rNr�r:rqr�rrr �test_localsjs

zTestStack.test_localscCsVt�dt��tdd�}t|t�ddi�}tj�t|dfg��}|�	|dj
d�dS)Nr�r�r�r1r/rr�r�rrr �test_no_localsqs

zTestStack.test_no_localscCs8dd�}|dd�}|�dt|jjdfg|���dS)NcSs d}d}tjjt�d�ddd�S)Nr1r3T)r�rU)rr�rNr�)�k�v�a�brrr �
some_innerys
�z0TestStack.test_format_locals.<locals>.some_innerrGr0zw  File "%s", line %d, in some_inner
    return traceback.StackSummary.extract(
    a = 1
    b = 2
    k = 3
    v = 4
)r:r�r�r�rn)rr�r:rrr �test_format_localsxs
��zTestStack.test_format_localsN)rVrWrXr�r�rYr�r�r�r�r�r�r�r�r�rrrr r�(s		r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#S)$�TestTracebackExceptionc	Cs�zddWnty#t��}tj|�}tj�t�|d��}Ynw|�d|j	�|�d|j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr1rr3F�r_r�r�r�TracebackExceptionr�rNr�r:�	__cause__�__context__�__suppress_context__�stackr�r��rr�r�expected_stackrrr �
test_smoke�s
��z!TestTracebackException.test_smokec
Cs�dd�}z|�Wn1ty:}z%t��}tjjt�|d�dddd�|_tjj	|dddd�|_
WYd}~nd}~ww|j}|j
}|�d|j�|�d|j
�|�d|j�|�||j�|�|d|j�|�t|d�t|��dS)	NcSrQrRrrrrr r��rTz7TestTracebackException.test_from_exception.<locals>.foor3r1FT)rUr�r�r)r_r�r�rr�rNr�r�r��from_exceptionrr:r�r�r�r�r�r�)rr�rNr�r�rrrr �test_from_exception�s,
����z*TestTracebackException.test_from_exceptionc	Csz*zddWt��}tj|�}td�}td�|�t��}tj|�}td�}td�|�tyGt��}tj|�}tj�t�|d��}Ynwt�t|d�}|�||j	�|�||j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr1r�cause�uh ohr3T�r�r�rr�r_r�rNr�r:r�r�r�r�r�r�)r�exc_info_context�exc_contextr�r�rr��	exc_causerrr r�s2


�


��z!TestTracebackException.test_causec	Cs�z zddWt��}tj|�}td��t��}tj|�}td��ty=t��}tj|�}tj�t�|d��}Ynw|�d|j	�|�||j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr1rr�r3Fr��rr�r�r�rr�rrr r�s,

�

��z#TestTracebackException.test_contextcs��fdd��z��Wn
tyt��}Ynw|�d�tj|�}t|���}|�t	|�t�
��|�t	dd�|D��t�
�d�|�d|d�dS)	Ncs"zddWdS��YdSrRrrr�rr r��sz9TestTracebackException.test_long_context_chain.<locals>.fzException not raisedcSsg|]}d|vr|�qS)zZeroDivisionError:r)�.0�lrrr �
<listcomp>�szBTestTracebackException.test_long_context_chain.<locals>.<listcomp>g�?z0RecursionError: maximum recursion depth exceededr�)r�r�r�r�rr�r�rnrWr;r�r>)rr��te�resrr�r �test_long_context_chain�s"
�


��z.TestTracebackException.test_long_context_chainc	Cs�zzddWtd�}td�|�td�}td�|�ty8t��}tj|ddi�}tj�t�|d��}Ynwt�t|d�}|�||j	�|�d|j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr1rr�r��compactTr3r�)rr�r�rr�r�rrr �test_compact_with_cause�s*

�
��z.TestTracebackException.test_compact_with_causec	Cs�z zddWt��}tj|�}td��t��}tj|�}td��ty@t��}tj|ddi�}tj�t�|d��}Ynw|�d|j	�|�||j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr1rr�r�Tr3Fr�r�rrr �test_compact_no_causes,

�
��z,TestTracebackException.test_compact_no_causecCs~zddWn
tyt��}Ynwt�|d�}t�|d�}tj|�}|�t�|d�|�|�t�|d�|�dS)Nr1rr3)r_r�r��getrefcountrr�r:)rr�Zrefcnt1Zrefcnt2rrrr �/test_no_refs_to_exception_and_traceback_objectss�
zFTestTracebackException.test_no_refs_to_exception_and_traceback_objectscCsrzddWntyt��}tj|�}tj|�}Ynw|�||�|�||�|�|t��|�|t	�dSrR)
r_r�r�rr�ZassertIsNotr:rrrsr)rr�r�exc2rrr �test_comparison_basic&s
�z,TestTracebackException.test_comparison_basiccs�dd���fdd�}z|�Wn
tyt��}Ynwtj|�}tj|ddi�}tj|ddi�}|�||�|�||�tj|dd	i�}|�||�tj|dd
i�}tj|d
d	d��}|�||�tj|ddi�}	tj|dd	d��}
|�|	|
�dS)
NcSsztd���)Nz	bad valuer�rrrr �	raise_exc3szKTestTracebackException.test_comparison_params_variations.<locals>.raise_exccsd\}}��dS)N)r1r3r)�xr7�r�rr �raise_with_locals9s
zSTestTracebackException.test_comparison_params_variations.<locals>.raise_with_localsrUr�r3r�Tr�)rUr�r�)r_r�r�rr�r:rr)rr�r�rZexc1r�Zexc3Zexc4Zexc5Zexc6Zexc7rr�r �!test_comparison_params_variations2s(
�
z8TestTracebackException.test_comparison_params_variationsc	Csxg}td�D]}zddWq|�tjt����Yq|�|d|d�|�t|d���t|d����dS)Nr3r1r)	r�r0rr�r�r�r:r�rn)rZexcsr
rrr �/test_comparison_equivalent_exceptions_are_equalWs(zFTestTracebackException.test_comparison_equivalent_exceptions_are_equalcCs�Gdd�dt�}|d�}|d�}z||�|y,z|�|y)t��}YnwYnwtj|�}t|���}|�d|d�|�d|d�dS)	Nc@rP)zCTestTracebackException.test_unhashable.<locals>.UnhashableExceptioncSr�r�rr�rrr r�cr�zJTestTracebackException.test_unhashable.<locals>.UnhashableException.__eq__Nr�rrrr r�brZr�r�r�zUnhashableException: ex2
r3zUnhashableException: ex1
r/)r_r�r�rr�r�rnr>)rr�r�r�r�r�	formattedrrr r�as"��
z&TestTracebackException.test_unhashablecsp�fdd��z�d�Wn"ty.t��}tj|ddi�}tjjt�|d�dd�}Ynw|�||j	�dS)Ncs |r
�|d�dSdddSrRr)�n��recurserr r�usz2TestTracebackException.test_limit.<locals>.recurser�rUr�r3rT)
r_r�r�rr�r�rNr�r:r�r�rr�r �
test_limitts
��z!TestTracebackException.test_limitcCsxt��td�}tdd�}t|dd�}t|dd�}tjt||dd�}|�tj	i�t�
dt��|�|jdj
d�dS)	Nr�r�r�r/Fr�rr�)rkrlr_r�r��test_tbrr�r:r�r�rnr�rx�rrNr�r�rrrrr �test_lookup_lines�s
z(TestTracebackException.test_lookup_linescCspt�dt��td�}tdd�}t|t�ddd��}t|dd�}tjt||dd	�}|�	|j
d
jddd��dS)
Nr�r�r�r1�string)r�r�r/Tr�rr�z'string'�rkr�rnr_r�r�r�rr�r:r�rqr�rrr r��s
��z"TestTracebackException.test_localscCsdt�dt��td�}tdd�}t|t�ddi�}t|dd�}t�t||�}|�	|j
djd�dS)Nr�r�r�r�r1r/rr�r�rrr r��s
z%TestTracebackException.test_no_localscCs,t�ttd�d�}|�t|���dg�dS)NZhavenzException: haven
)rr�r_r:r�rn)rrrrr �test_traceback_header�sz,TestTracebackException.test_traceback_headerN)rVrWrXr�r�rrr�r�r�r�r�r�r�r�r�r�r�r�r�rrrr r��s$%
	r�c@rP)�MiscTestcCsdt�}dh}tt�D]}|�d�s||vrq
tt|�}t|dd�dkr(|�|�q
|�tj|�dS)N�
print_listr
rWr)�set�dirrr��getattrr3ZassertCountEqual�__all__)rr�Zdenylist�nameZ
module_objectrrr �test_all�s

�zMiscTest.test_allN)rVrWrXr�rrrr r��sr�r[).r`�collectionsr�iorrkr�r�Zunittestr��testrZtest.supportrrrrZtest.support.os_helperr	r
Ztest.support.script_helperrr�rr�r�r�ZTestCaserr�rr�r&�escaperr�r8r<r=rarhr�r�r�rV�mainrrrr �<module>sZ=���Qx))`#�