Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_traceback.cpython-310.pyc
o

�9j1��@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�*/usr/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�e�lstrrr �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__rTrrrr �Xy�rZr1z<unprintable %s object>)�__main__�builtins�.r�%s: %s
)	�	Exceptionrrr:r;rWrXrY�join)rrZrB�	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}')
                        rf�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)�
firstlines�message�charset�lineno�output�processrgrh�encoded_message�
message_ascii�err_line�err_msg��output_encodingr�
subprocess�sysrr �do_test�sB����


������z1TracebackCases.test_encoded_file.<locals>.do_test��foorG)riz
iso-8859-1�utf-8�GBKr�u丂儀uhé hoz# coding: {0}
r0z#!shebang
# coding: {0}
�z 	
# coding: {0}
zx=0
# coding: GBK
r�)
r�r�rprqrrrsrt�strrvro)rr~rgrhr�r{�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()
        re)s"Traceback (most recent call last):s&  File "<string>", line 8, in __init__s#ZeroDivisionError: division by zero)�textwrap�dedentrr:rv)rr�rcrgrh�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:�assertRaisesRegexrrM�
__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)r�NONE_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��inspect�	signaturerr�r�rr'rrr �test_signaturess���zTracebackCases.test_signaturesN)rWrXrYr!r(r*r+r,r-r.r/rCrHrKrPrdr�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��)N�blah)�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�rhr�z&unable to create test traceback stringr�����	Traceback�  Filez	    raise)�	_testcapir�r�r�r��exc_inforrar�	format_tbrr�r�print_tbr�r�rr:rvr;r<�
startswith)r�cleanup_funcr��type_rr�
traceback_fmt�file_�
python_fmt�tbstderr�tbfile�	excstderr�excfmtr��tb_lines�banner�location�source_linerrr �check_traceback_format/sJ
�
�

�

��z+TracebackFormatTests.check_traceback_formatcC�|��dS�N�r�r'rrr �test_traceback_format\rUz*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)Nrhr1r�r�)
rr�print_stackr��	_getframerr:r��format_stackra)r�ststderr�stfile�stfmtrrr �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 �prnsrUz2TracebackFormatTests.test_print_stack.<locals>.prnrh���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�rv�__file__)rr�rhr|rrr �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>.frhzno 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�)�maxDiffr�RecursionError�failr�r�r�rvr�r:�assertRegexr>r��getrecursionlimit�int�re�search�group�rangerr�_RECURSIVE_CUTOFF)r�
render_exc�stderr_f�lineno_f�result_fr��actual�	rec_limit�stderr_g�lineno_g�result_g�tb_line�stderr_h�lineno_h�result_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_tbrrr r�7szRTracebackFormatTests.test_recursive_traceback_cpython_internal.<locals>.render_exc)r�rr	)rr�rrr �)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�resultr|rrr �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)Nrrc@rQ)zATracebackFormatTests.test_unhashable.<locals>.UnhashableExceptioncS�dS�NTr�r�otherrrr �__eq__M�zHTracebackFormatTests.test_unhashable.<locals>.UnhashableException.__eq__N�rWrXrYrrrrr �UnhashableExceptionLr[r�ex1�ex2rh�r�zUnhashableException: ex2rGzUnhashableException: ex1r�)
r�rr`r�r�rr�r=rvr:r;�context_messager>)
rrrrrr
�exc_valrr�rrrr �test_unhashableHs,��

�z$TracebackFormatTests.test_unhashabler�)rWrXrYr�rr�r�r�r�r�r	r
rrr"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`)r�exception_or_callablerNrrr �
get_exceptionrs
��z)BaseExceptionReportingTests.get_exceptioncCrRrSrr'rrr �zero_divzrUz$BaseExceptionReportingTests.zero_divcCsJ|��}|�|d�d��|�d|d�|�|d�d�|d�dS)N���r�z1/0 # In zero_divr�r��ZeroDivisionError)rvr<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_reportrvr:r;r<r�r>�r�_rNr+rrr �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��r'r)r�)rNr'rr �inner_raise�s��z;BaseExceptionReportingTests.test_cause.<locals>.inner_raisecr�r�rr�r3rr �outer_raise�r�z;BaseExceptionReportingTests.test_cause.<locals>.outer_raiserGr1r�inner_raise() # Markerr3��
boundaries�splitr-r:r;�
cause_messager,r>�rr5�blocksr�r3rr �
test_cause��z&BaseExceptionReportingTests.test_causecr1)
Ncs"z���WdStyt�wr�r2rr'rr r3�s
�z=BaseExceptionReportingTests.test_context.<locals>.inner_raisecr�r�rrr4rr r5�r�z=BaseExceptionReportingTests.test_context.<locals>.outer_raiserGr1rr6r3)r8r9r-r:r;r r,r>r;rr=r �test_context�r?z(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`r)r-rvr:r;r<r�r>r.rrr �test_context_suppression�s��z4BaseExceptionReportingTests.test_context_suppressioncr1)
Nc
sVz���Wnty}z|}WYd}~nd}~wwztWdSty*t|�wr�)r'r)�xyzzy�	NameErrorr�)�_erNr'rr r3�s��
�zGBaseExceptionReportingTests.test_cause_and_context.<locals>.inner_raisecr�r�rrr4rr r5�r�zGBaseExceptionReportingTests.test_cause_and_context.<locals>.outer_raiserGr1rr6r3r7r;rr=r �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�r2)rN�zr'rr r3�s����zEBaseExceptionReportingTests.test_cause_recursive.<locals>.inner_raisecr�r�rrr4rr r5�r�zEBaseExceptionReportingTests.test_cause_recursive.<locals>.outer_raiserGr1zraise KeyError from erz1/0r6r3)	r8r9r-r:r;r:r>�assertNotInr,r;rr=r �test_cause_recursive�s	z0BaseExceptionReportingTests.test_cause_recursivecCsPdd�}|�|���}|�|dd�dd�}|�|���}|�|dd�dS)NcSs
tdd��)Nr�)r�rr��hello)r9rrrr rN�r�zFBaseExceptionReportingTests.test_syntax_error_offset_at_eol.<locals>.er�z	        ^cSstd�dS)Nzx = 5 | 4 |)r$rrrr rN�rUz               ^)r-rvr:�rrNr*rrr �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)r9r-rvr:r|�filenamerJrrr �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�)r-r`r>rArrr �test_message_none	sz-BaseExceptionReportingTests.test_message_nonecCs@Gdd�dt�}d|_|�|��}d|j�d�}|�||�dS)Nc@rQ)zLBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.XcSr�N�I am Xrr'rrr rTrzTBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.X.__str__NrVrrrr rZr[rZ�*z
<unknown>.z	: I am X
)r`rXr-rYr:)rrZrB�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�r*zfile.pyr5)r��append�lstripr-r9rar:)r�offset�addr�r�rBrTrrr �!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@rQ)zNBaseExceptionReportingTests.test_format_exception_only_qualname.<locals>.A.B.XcSrrQrr'rrr rT6rzVBaseExceptionReportingTests.test_format_exception_only_qualname.<locals>.A.B.X.__str__NrVrrrr rZ5srZN)rWrXrYr`rZrrrr �B4sr^N)rWrXrYr^rrrr �A3sr_rRr^r_)r-r^rZrarXrYr:)rr_rBrbrcrTrrr �#test_format_exception_only_qualname2sz?BaseExceptionReportingTests.test_format_exception_only_qualnameN)rWrXrYr&r'r,r0r>r@rArErHrKrNrPrUr]r`rrrr r#ps r#c@rQ)�PyExcReportingTestscCst|�|�}d�t�t|�||j��}td��}t�t|�||j�Wd�n1s+wY|�|�	�|�|S)Nr�rh)
r&rarr��typer�rr�r:r�)rrN�s�siorrr r-Fs
�
�zPyExcReportingTests.get_reportN)rWrXrYr-rrrr ra@srac@seZdZedd��ZdS)�CExcReportingTestscCsTddlm}|�|�}td��}||�Wd�|��S1s!wY|��S)Nrrrh)r�rr&rr�)rrNrrcrrr r-Us



��zCExcReportingTests.get_reportN)rWrXrYrr-rrrr rePsrec@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�)rgr'rrr �last_raises2frUzLimitTests.last_raises2cCr�r�)rhr'rrr �last_raises3irUzLimitTests.last_raises3cCr�r�)rir'rrr �last_raises4lrUzLimitTests.last_raises4cCr�r�)rjr'rrr �last_raises5orUzLimitTests.last_raises5cCrr�)r�r�r'rrr �last_returns_frame1rr�zLimitTests.last_returns_frame1cC�|��Sr�)rlr'rrr �last_returns_frame2ur�zLimitTests.last_returns_frame2cCrmr�)rnr'rrr �last_returns_frame3xr�zLimitTests.last_returns_frame3cCrmr�)ror'rrr �last_returns_frame4{r�zLimitTests.last_returns_frame4cCrmr�)rpr'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;)rr��ignorer'rr �assertEqualExcept�s$z8LimitTests.test_extract_stack.<locals>.assertEqualExcept�tracebacklimit��r�r3��limitr�rLi����i����r1rrGr(r�)rqr�	swap_attrr��
assertGreaterr;r:r{)rrwrz�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)Ncrrr�)r�
extract_tbrur�rr rw�rxz+LimitTests.test_extract_tb.<locals>.extractr{r|rXr3r}r�r����rrGr(r��	rkr`r�r�rrr:r;r{)rr
rrwr�rr�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�ru�r
rrrr rw�sz1LimitTests.test_format_exception.<locals>.extractr{r|rXr3r}r�r�r�rrGr(r�r�)rrwr�rr�r �test_format_exception�s2�"�z LimitTests.test_format_exceptionN)rWrXrY�__doc__rgrhrirjrkrlrnrorprqr�r�r�rrrr rf^srfc@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 r��r�z-MiscTracebackCases.test_clear.<locals>.middlecSsd}dddSrSr)�irrr r��sz,MiscTracebackCases.test_clear.<locals>.innerr1r)	r�r�rrr:r;rr�clear_frames)rr�r�rr�inner_framer)r�r�r �
test_clear�s

zMiscTracebackCases.test_clearcCs^dd�}|�}|jj}|�|dd�t|dddft|ddd	fg�|�t|d
�d�dS)NcSrr�rsrrrr rw�r�z6MiscTracebackCases.test_extract_stack.<locals>.extractr�r3r�zresult = extract()r1rwz return traceback.extract_stack()rr0)r�r�r:r�r;)rrwrr|rrr r��s�z%MiscTracebackCases.test_extract_stackN)rWrXrYr�r�rrrr r��sr�c@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�r1r��%"""Test cases for traceback module""")
�	linecache�
clearcache�	lazycache�globalsr�FrameSummaryr:�tuple�assertIsNone�locals�assertNotEqual�objectr�rr�rrr �test_basicss�
�zTestFrame.test_basicscCsHt��tjddddd�}|�d|j�t�dt��|�d|j�dS)Nr�r1r�F)�lookup_liner�)	r�r�rr�r:�_liner�r��liner�rrr �test_lazy_liness�zTestFrame.test_lazy_linescCs t�ddd�}|�|jd�dS)Nr�r��rr�r:r�r�rrr �test_no_liner�zTestFrame.test_no_linecCs$tjddddd�}|�d|j�dS)Nr�r1r�r��r�r�r�rrr �test_explicit_line�zTestFrame.test_explicit_linecCs&tjddddd�}|�t|�d�dS)Nr�r1r�r�r�r0)rr�r:r;r�rrr �test_len#szTestFrame.test_lenN)rWrXrYr�r�r�r�r�rrrr r��s	r�c@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�dSrS)r`r�r�r�r�walk_tbr:r;)rr/rrcrrr �test_walk_tb2s�zTestStack.test_walk_tbcCs$tj�t�d��}|�|tj�dSr�)r�StackSummaryrwr��assertIsInstance�rrcrrr r�:r�zTestStack.test_extract_stackcCs*tjjt�d�dd�}|�t|�d�dS)Nr�r})rr�rwr�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�methodrXT��lookup_linesr�
import sys)r�r��updatecacher��	test_code�
test_framerr�rw�iterr:r��r�cr�rcrrr �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�rXFr�rr�)
r�r�r�r�rr�rwr�r:�cacher�r�r�r�rrr �*test_extract_stackup_deferred_lookup_linesKs
z4TestStack.test_extract_stackup_deferred_lookup_linescC�$tj�dg�}|�dg|���dS�N��foo.pyr1�fredr�z*  File "foo.py", line 1, in fred
    line
�rr��	from_listr:ror�rrr �test_from_listTs
�zTestStack.test_from_listcCs8tj�dg�}d|d<tj�|�}|�dg|���dS)Nr�)r�r3r�r�rz*  File "foo.py", line 2, in fred
    line
r�)rrcr�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��	somethingr1rXT��capture_localsr�1�r�r�r�r�r�rr�rwr�r:r�r�rrr �test_localsjs

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

zTestStack.test_no_localscCs8dd�}|dd�}|�dt|jjdfg|���dS)NcSs d}d}tjjt�d�ddd�S)Nr1r3T)r�r~)rr�rwr�)�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�ro)rr�rcrrr �test_format_localsxs
��zTestStack.test_format_localsN)rWrXrYr�r�r�r�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�rwr�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)	NcSrRrSrrrrr r��rUz7TestTracebackException.test_from_exception.<locals>.foor3r1FT)r~r�r�r)r`r�r�rr�rwr�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�rwr�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��YdSrSrrr�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�ror�r;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��refcnt1�refcnt2rrrr �/test_no_refs_to_exception_and_traceback_objectss�
zFTestTracebackException.test_no_refs_to_exception_and_traceback_objectscCsrzddWntyt��}tj|�}tj|�}Ynw|�||�|�||�|�|t��|�|t	�dSrS)
r`r�r�rr��assertIsNotr:r�r�r)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�rrr �raise_with_locals9s
zSTestTracebackException.test_comparison_params_variations.<locals>.raise_with_localsr~r�r3r�Tr�)r~r�r�)r`r�r�rr�r:r�)rrr�r�exc1r��exc3�exc4�exc5�exc6�exc7rrr �!test_comparison_params_variations2s(
�
z8TestTracebackException.test_comparison_params_variationsc	Csxg}td�D]}zddWq|�tjt����Yq|�|d|d�|�t|d���t|d����dS)Nr3r1r)	r�rYrr�r�r�r:r�ro)r�excsr/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@rQ)zCTestTracebackException.test_unhashable.<locals>.UnhashableExceptioncSrrrrrrr rcrzJTestTracebackException.test_unhashable.<locals>.UnhashableException.__eq__Nrrrrr rbr[rrrzUnhashableException: ex2
r3zUnhashableException: ex1
rX)r`r�r�rr�r�ror>)rrrrr�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�dSdddSrSr)�n��recurserr rusz2TestTracebackException.test_limit.<locals>.recurser�r~r�r3r})
r`r�r�rr�r�rwr�r:r�r�rrr �
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�rXFr�rr�)r�r�r`r�r��test_tbrr�r:r�r�r�r�r��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�rrXTr�rr�z'string'�r�r�r�r`r�r�rrr�r:r�r�rrrr r��s
��z"TestTracebackException.test_localscCsdt�dt��td�}tdd�}t|t�ddi�}t|dd�}t�t||�}|�	|j
djd�dS)Nr�r�r�r�r1rXrrrrrr r��s
z%TestTracebackException.test_no_localscCs,t�ttd�d�}|�t|���dg�dS)N�havenzException: haven
)rr�r`r:r�ro)rrrrr �test_traceback_header�sz,TestTracebackException.test_traceback_headerN)rWrXrYr�r�r>r@r�r�r�r�r�r
rr"rrr�r�rrrrr r��s$%
	r�c@rQ)�MiscTestcCsdt�}dh}tt�D]}|�d�s||vrq
tt|�}t|dd�dkr(|�|�q
|�tj|�dS)N�
print_listr/rXr)�set�dirrr��getattrr\�assertCountEqual�__all__)rr��denylist�name�
module_objectrrr �test_all�s

�zMiscTest.test_allN)rWrXrYr#rrrr r�srr\).r��collectionsr�iorr�r�r��unittestr��testr�test.supportrrrr�test.support.os_helperr	r
�test.support.script_helperrr�rr�r�r�TestCaserr�r:r r&�escaper8r#rarerfr�r�r�r�rrW�mainrrrr �<module>sZ=���Qx))`#�

Youez - 2016 - github.com/yon3zu
LinuXploit