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_traceback.cpython-39.opt-1.pyc

a

��gZ��@s�dZddlmZddlmZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
mZmZmZmZddlmZddlZddlZedd	d
g�Zedgd��Zed
gd��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�dej�Z%Gd d!�d!ej�Z&Gd"d#�d#ej�Z'Gd$d%�d%ej�Z(Gd&d'�d'ej�Z)e*d(k�r�e�+�dS))zTest cases for traceback module�)�
namedtuple)�StringION)�support)�TESTFN�Error�captured_output�unlink�cpython_only�	ALWAYS_EQ)�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!S)"�TracebackCasesc
CsHz
|�Wn0|y:}zt�||�WYd}~Sd}~00td��dS)Nzcall did not raise exception)�	traceback�format_exception_only�
ValueError)�self�func�exc�value�r�//usr/local/lib/python3.9/test/test_traceback.py�get_exception_formats

"z#TracebackCases.get_exception_formatcCstddd�dS)Nzdef fact(x):
	return x!
�?�exec��compile�rrrr �syntax_error_with_caret"sz&TracebackCases.syntax_error_with_caretcCstddd�dS)Nz1 +
r"r#r$r&rrr �syntax_error_with_caret_2%sz(TracebackCases.syntax_error_with_caret_2cCstddd�dS)Nz def spam():
  print(1)
 print(2)r"r#r$r&rrr �syntax_error_bad_indentation(sz+TracebackCases.syntax_error_bad_indentationcCstddd�dS)NuPython = "Ṕýţĥòñ" +r"r#r$r&rrr �!syntax_error_with_caret_non_ascii+sz0TracebackCases.syntax_error_with_caret_non_asciicCstddd�dS)Nz	 print(2)r"r#r$r&rrr �syntax_error_bad_indentation2.sz,TracebackCases.syntax_error_bad_indentation2cCs|�|jt�}|�t|�d�|�|d��dk�|�d|d�|�|d�d�|d�d��|�|j	t�}|�d|d�|�|d�
d�d�|�|d�d�d|d�d��|�|jt�}|�d|d�|�|d�
d�d�|�|d�d�d|d�d��dS)	N��z	return x!�^��!�
�+)r!r'�SyntaxError�assertEqual�len�
assertTrue�strip�assertIn�findr(�countr*�r�errrrr �
test_caret1s&� �$�zTracebackCases.test_caretcCs>tdd�}t�t|�}|�t|�d�|�|d��d�dS)N�error)zx.py�N�
bad syntax�r-r@)r3rrr4r5r7)rrr<rrr �test_nocaretEs
zTracebackCases.test_nocaretcCs�|�|jt�}|�t|�d�|�|d��d�|�d|d�|�|d�d�d|d�d��|�|jt�}|�t|�d�|�|d��d�dS)Nr,r-zprint(2)r.r/�)rA)	r!r)�IndentationErrorr4r5r7r8r9r+r;rrr �test_bad_indentationKs�$�z#TracebackCases.test_bad_indentationcCs&t�}t�|j|�}|�|dg�dS)NzKeyboardInterrupt
)�KeyboardInterruptrr�	__class__r4)r�eZlstrrr �test_base_exceptionYsz"TracebackCases.test_base_exceptioncsP�fdd��z
��Wnty0t��}Yn0t�|d|d|d�dS)Ncs*ztd��Wnty$��Yn0dS)N�hello�rr��frr rMdsz?TracebackCases.test_traceback_context_recursionerror.<locals>.frr-r/)�RecursionError�sys�exc_infor�format_exception�rrPrrLr �%test_traceback_context_recursionerror_s
z4TracebackCases.test_traceback_context_recursionerrorcsP�fdd��z
��Wnty0t��}Yn0t�|d|d|d�dS)Nc
sBd}z
��Wn(ty6}z|}WYd}~n
d}~00t|�dS�N��	Exception)rHrrLrr rMus
z=TracebackCases.test_traceback_cause_recursionerror.<locals>.frr-r/)rVrOrPrrQrRrrLr �#test_traceback_cause_recursionerrorqs
z2TracebackCases.test_traceback_cause_recursionerrorcCsxGdd�dt�}t�||��}|�t|�d�d|j}|jdvrJ|j}nd�|j|jg�}|�|dd||f�dS)	Nc@seZdZdd�ZdS)z?TracebackCases.test_format_exception_only_bad__str__.<locals>.XcSsdddS�Nr-rrr&rrr �__str__�szGTracebackCases.test_format_exception_only_bad__str__.<locals>.X.__str__N��__name__�
__module__�__qualname__rYrrrr �X�sr^r-z<unprintable %s object>)�__main__�builtins�.r�%s: %s
)	rVrrr4r5r[r\r]�join)rr^r<�	str_value�str_namerrr �%test_format_exception_only_bad__str__�s

z4TracebackCases.test_format_exception_only_bad__str__cs�ddl�ddl��j�jddg�j�jd�}|��\}}t|d���d�����fdd�}|dd	dd
�dD]`}|dkr�d	}n|dkr�d
}nd}|d�	|�||d�|d�	|�||d�|d�	|�||d�qn|dddd�dS)Nr�-cz&import sys; print(sys.stdout.encoding)��stdout�stderr�asciicsz�ttd|d��"}|�d�||��Wd�n1s80Y�j�jtg�j�jd�}|��\}}|�	���
�}Wtt�n
tt�0|��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}')
                        rh�backslashreplacezraise RuntimeError('{0}')zRuntimeError: {0}zline %sr-z)Invalid line number: {0!r} instead of {1}r/z.Invalid traceback line: {0!r} instead of {1!r}rAz-Invalid error message: {0!r} instead of {1!r})�openr�write�format�Popen�
executable�PIPE�STDOUT�communicate�decode�
splitlinesr�encoder8r6�endswith)Z
firstlines�message�charset�lineno�output�processrirjZencoded_messageZ
message_asciiZerr_line�err_msg�Zoutput_encodingr�
subprocessrOrr �do_test�s@�$��


������z1TracebackCases.test_encoded_file.<locals>.do_test��foorA)rkz
iso-8859-1�utf-8�GBKr�u丂儀uhé hoz# coding: {0}
r,z#!shebang
# coding: {0}
�z 	
# coding: {0}
zx=0
# coding: GBK
r�)
rOr�rrrsrtrurv�strrxrq)rrrirjr�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()
        rg)s"Traceback (most recent call last):s&  File "<string>", line 8, in __init__s#ZeroDivisionError: division by zero)�textwrap�dedentrr4rx)rr�rcrirj�expectedrrr �test_print_traceback_at_exit�s
z+TracebackCases.test_print_traceback_at_exitcCs0t�}tjttd�d|d�|�|��d�dS)NZ	projector��filezException: projector
)rr�print_exceptionrVr4�getvalue)rr~rrr �test_print_exception�s
�z#TracebackCases.test_print_exceptionN)r[r\r]r!r'r(r)r*r+r=rBrErIrSrWrfr�r�r�rrrr rs 
Drc@sreZdZdd�Zeddd��Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zedd��Zdd�Z
edd��ZdS)�TracebackFormatTestscCstd��dS)NZblah)�KeyErrorr&rrr �some_exception�sz#TracebackFormatTests.some_exceptionNcCs�ddlm}z|��Wn�t�yt��\}}}|durH||j�dd�t�	|��}t
�}|||�|��}td��}	t�
|�Wd�n1s�0Yt
�}
tj
||
d�td��}t��Wd�n1s�0Yt��}t
�}
tj|
d�Yn
0td��|�||�|�|	��|
���|�|��|
���|�||
���|��}|�t|�d�|d}|d	d�\}}|�|�d
��|�|�d��|�|�d��dS)
Nr)�traceback_printz#Traceback (most recent call last):
r�rjr�z&unable to create test traceback stringr�����	Traceback�  Filez	    raise)�	_testcapir�r�r�rOrPrrcr�	format_tbrr�r�print_tb�	print_exc�
format_excrr4rxr5r6�
startswith)rZcleanup_funcr��type_rrZ
traceback_fmtZfile_Z
python_fmtZtbstderrZtbfileZ	excstderrZexcfmtZexcfileZtb_linesZbanner�locationZsource_linerrr �check_traceback_formatsD
�

(
&z+TracebackFormatTests.check_traceback_formatcCs|��dSrT�r�r&rrr �test_traceback_format.sz*TracebackFormatTests.test_traceback_formatcCsdd�}|�|�dS)NcSs|j��dSrT)r�clear�rrrr �
cleanup_tb3szRTracebackFormatTests.test_traceback_format_with_cleared_frames.<locals>.cleanup_tbr�)rr�rrr �)test_traceback_format_with_cleared_frames1sz>TracebackFormatTests.test_traceback_format_with_cleared_framescCs�td�� }t�t�d��Wd�n1s.0Yt�}tjt�d�|d�|�|��|���t�t�d��}|�|��d�	|��dS)Nrjr-r�r�)
rr�print_stackrO�	_getframerr4r��format_stackrc)rZststderrZstfileZstfmtrrr �test_stack_format7s
.z&TracebackFormatTests.test_stack_formatc	Cs~dd�}td��}|�Wd�n1s,0Y|jj}|�|����dd�dt|dfddt|d	fd
g�dS)NcSst��dSrT)rr�rrrr �prnEsz2TracebackFormatTests.test_print_stack.<locals>.prnrj���z)  File "%s", line %d, in test_print_stackrAz	    prn()z  File "%s", line %d, in prnr-z    traceback.print_stack())r�__code__�co_firstlinenor4r�rx�__file__)rr�rjr}rrr �test_print_stackDs
$�z%TracebackFormatTests.test_print_stackcs�d|_�fdd��td��>}z
��Wnty>|�Yn0|�d�Wd�n1s^0Y�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
��Wnt�y||�Yn0|�d�Wd�n1�s�0Y�jj}	dt�d|	d�dt�d|	d�dt�d|	d�dt�d|	d�d�}
dt�d|	d�d�}||
��}|����}|�	||�d)��fdd�	�td��@}z
��Wnt�yn|�Yn0|�d�Wd�n1�s�0Y�jj}
dt�d|
d�dt�d|
d�dt�d|
d�dt�d|
d�d t�d|
d�d!�}||
��}|����}|�	||�td��D}z�tj�Wnt�yN|�Yn0|�d"�Wd�n1�sp0Ydt�d|	d�dt�d|	d�dt�d|	d�dt�d|	d�d�}
dt�d|	d#�d$�}||
��}|����}|�	||�td��H}z�tjd	�Wnt�y0|�Yn0|�d"�Wd�n1�sR0Ydt�d|	d�dt�d|	d�dt�d|	d�d%t�d|	d�d�}
dt�d|	d&�d'�}||
��}|����}|�	||�dS)*Ncs
��dSrTrrrLrr rMYszBTracebackFormatTests._check_recursive_traceback_display.<locals>.frjzno recursion occurredz+Traceback (most recent call last):
  File "z", line r�z8, in _check_recursive_traceback_display
    f()
  File "r-z, 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�dS�Nr-rK�r:)�grr r��szBTracebackFormatTests._check_recursive_traceback_display.<locals>.gzno value error was raisedz  File "r/z%, in g
    return g(count-1)
  File "zM, in g
    return g(count-1)
  [Previous line repeated 7 more times]
  File "rAz', 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�)r�)ZmaxDiffrrNZfailr�r�r�rxr�r4ZassertRegexr8rO�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)rMr�r�r �"_check_recursive_traceback_displayRs8

(���������*

*�������
���

*��������
�
��
*����������
*�������
���z7TracebackFormatTests._check_recursive_traceback_displaycCs|�tj�dSrT)r�rr�r&rrr �test_recursive_traceback_pythonsz4TracebackFormatTests.test_recursive_traceback_pythoncs&ddlm��fdd�}|�|�dS)Nr��exception_printcst��\}}}�|�dSrT)rOrP)�exc_type�	exc_value�exc_tbr�rr r�	szRTracebackFormatTests.test_recursive_traceback_cpython_internal.<locals>.render_exc)r�r�r�)rr�rr�r �)test_recursive_traceback_cpython_internalsz>TracebackFormatTests.test_recursive_traceback_cpython_internalcCsJdd�}|�}|jj}|�|dd�dt|dfdt|dfg�dS)NcSst��SrT)rr�rrrr �fmtsz3TracebackFormatTests.test_format_stack.<locals>.fmtr�z>  File "%s", line %d, in test_format_stack
    result = fmt()
r/zA  File "%s", line %d, in fmt
    return traceback.format_stack()
r-)r�r�r4r�)rr��resultr}rrr �test_format_stacks
�
��z&TracebackFormatTests.test_format_stackc
Cs�ddlm}Gdd�dt�}|d�}|d�}z
||�Wn<|yrz|�Wn |ylt��\}}}Yn0Yn0td��}||�Wd�n1s�0Y|������}	|�	dt
|	��|�	t��|	d	�|�d
|	d�|�d|	d
�dS)Nrr�c@seZdZdd�ZdS)zATracebackFormatTests.test_unhashable.<locals>.UnhashableExceptioncSsdS�NTr�r�otherrrr �__eq__szHTracebackFormatTests.test_unhashable.<locals>.UnhashableException.__eq__N�r[r\r]r�rrrr �UnhashableExceptionsr��ex1�ex2rj�r�zUnhashableException: ex2rAzUnhashableException: ex1r�)
r�r�rVrOrPrr�r7rxr4r5�context_messager8)
rr�r�r�r�r��exc_valr�r�rrrr �test_unhashables$

&z$TracebackFormatTests.test_unhashable)N)r[r\r]r�r	r�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�Ze�
e��d�dd��Zdd�Zdd�Zdd�Zdd�Zdd�Zd S)!�BaseExceptionReportingTestsc
CsFt|t�r|Sz
|�Wn(ty@}z|WYd}~Sd}~00dSrT)�
isinstancerV)rZexception_or_callablerHrrr �
get_exceptionDs

z)BaseExceptionReportingTests.get_exceptioncCsdddSrXrr&rrr �zero_divLsz$BaseExceptionReportingTests.zero_divcCsJ|��}|�|d�d��|�d|d�|�|d�d�|d�dS)N���r�z1/0 # In zero_divr�r��ZeroDivisionError)rxr6r�r8)r�msg�linesrrr �check_zero_divOsz*BaseExceptionReportingTests.check_zero_divc
Cs�zddWn(ty4}z|}WYd}~n
d}~00|�|���}|�t|�d�|�|d�d��|�|d�d��|�d|d�|�|d�d	��dS)
Nr-rr,r�r�z1/0 # Markerr/rAr�)r��
get_reportrxr4r5r6r�r8�r�_rHr�rrr �test_simpleUsz'BaseExceptionReportingTests.test_simplecsj�fdd���fdd�}t���|��}��t|�d���|dt���|d���d|d	�dS)
Nc
s<z���Wn*ty6}zt|�WYd}~n
d}~00dSrT�r�r�r�)rHr&rr �inner_raisebsz;BaseExceptionReportingTests.test_cause.<locals>.inner_raisecs
��dSrTrr�r�rr �outer_raisegsz;BaseExceptionReportingTests.test_cause.<locals>.outer_raiserAr-r�inner_raise() # Markerr/��
boundaries�splitr�r4r5�
cause_messager�r8�rr�Zblocksr�r�rr �
test_causeasz&BaseExceptionReportingTests.test_causecsj�fdd���fdd�}t���|��}��t|�d���|dt���|d���d|d	�dS)
Ncs(z���Wnty"t�Yn0dSrTr�rr&rr r�psz=BaseExceptionReportingTests.test_context.<locals>.inner_raisecs
��dSrTrrr�rr r�usz=BaseExceptionReportingTests.test_context.<locals>.outer_raiserAr-rr�r/)r�r�r�r4r5r�r�r8r�rr�r �test_contextosz(BaseExceptionReportingTests.test_contextc
Cs�z zt�Wntd�Yn0Wn(tyH}z|}WYd}~n
d}~00|�|���}|�t|�d�|�|d�d��|�|d�d��|�d|d�|�|d�d	��dS)
Nr,rr�r-r�zZeroDivisionError from Noner/rAr�)	rVr�r�rxr4r5r6r�r8r�rrr �test_context_suppression}sz4BaseExceptionReportingTests.test_context_suppressioncsj�fdd���fdd�}t���|��}��t|�d���|dt���|d���d|d	�dS)
Nc
s\z���Wn(ty4}z|}WYd}~n
d}~00ztWntyVt|�Yn0dSrT)r�r�Zxyzzy�	NameErrorr�)�_erHr&rr r��szGBaseExceptionReportingTests.test_cause_and_context.<locals>.inner_raisecs
��dSrTrrr�rr r��szGBaseExceptionReportingTests.test_cause_and_context.<locals>.outer_raiserAr-rr�r/r�r�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
spz@z���Wn.ty<}z|}t|�WYd}~n
d}~00Wn*tyj}z||�WYd}~n
d}~00dSrTr�)rH�zr&rr r��s zEBaseExceptionReportingTests.test_cause_recursive.<locals>.inner_raisecs
��dSrTrrr�rr r��szEBaseExceptionReportingTests.test_cause_recursive.<locals>.outer_raiserAr-zraise KeyError from erz1/0r�r/)	r�r�r�r4r5r�r8ZassertNotInr�r�rr�r �test_cause_recursive�s	z0BaseExceptionReportingTests.test_cause_recursivez5Pegen is arguably better here, so no need to fix thiscCsPdd�}|�|���}|�|dd�dd�}|�|���}|�|dd�dS)NcSstdd��dS)Nr�)r�rr�rJ)r3rrrr rH�szFBaseExceptionReportingTests.test_syntax_error_offset_at_eol.<locals>.er�z	        ^cSstd�dS)Nzx = 5 | 4 |)r#rrrr rH�sz               ^)r�rxr4�rrHr�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)Nr@zSyntaxError: bad syntax�dz  File "<string>", line 100z	myfile.pyz#SyntaxError: bad syntax (myfile.py)z  File "myfile.py", line 100)r3r�rxr4r}�filenamerrrr �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�rVr8r;rrr �test_message_none�sz-BaseExceptionReportingTests.test_message_nonecCs@Gdd�dt�}d|_|�|��}d|j�d�}|�||�dS)Nc@seZdZdd�ZdS)zLBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.XcSsdS�N�I am Xrr&rrr rY�szTBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.X.__str__NrZrrrr r^�sr^�*z
<unknown>.z	: I am X
)rVr\r�r]r4)rr^r<�exprrr �%test_exception_modulename_not_unicode�s
zABaseExceptionReportingTests.test_exception_modulename_not_unicodec
Cs�tdd�D]�}dD]�}d|d|}dg}|dkrH|�d|���nR|d	krz|�d|���|�d
d|d�n |�d|���|�d
d�|�d�|�d
�|�tddd|||f��}d�|�}|�||�qq
dS)N���r�)rr/� ztext%dz  File "file.py", line 1r-z    %s�z    %s^z     zSyntaxError: msgr�r�zfile.pyr1)r��append�lstripr�r3rcr4)r�offset�addr�r�r<rrrr �!test_syntax_error_various_offsets�s 


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@seZdZdd�ZdS)zNBaseExceptionReportingTests.test_format_exception_only_qualname.<locals>.A.B.XcSsdSrrr&rrr rY	szVBaseExceptionReportingTests.test_format_exception_only_qualname.<locals>.A.B.X.__str__NrZrrrr r^sr^N)r[r\r]rVr^rrrr �BsrN)r[r\r]rrrrr �Asrr	rarb)r�rr^rcr\r]r4)rrr<rdrerrrr �#test_format_exception_only_qualnamesz?BaseExceptionReportingTests.test_format_exception_only_qualnameN)r[r\r]r�r�r�r�r�r�r�r�r�unittestZskipIfrZuse_old_parserrrrrrrrrrr r�Bs 
r�c@seZdZdd�ZdS)�PyExcReportingTestscCst|�|�}d�t�t|�||j��}td��$}t�t|�||j�Wd�n1sV0Y|�|�	�|�|S)Nr�rj)
r�rcrrQ�type�
__traceback__rr�r4r�)rrH�s�siorrr r�s
�
2zPyExcReportingTests.get_reportN)r[r\r]r�rrrr rsrc@seZdZedd��ZdS)�CExcReportingTestscCsNddlm}|�|�}td��}||�Wd�n1s<0Y|��S)Nrr�rj)r�r�r�rr�)rrHr�rrrr r�(s


&zCExcReportingTests.get_reportN)r[r\r]r	r�rrrr r#src@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 cCstd��dS)NzLast raisedrUr&rrr �last_raises16szLimitTests.last_raises1cCs|��dSrT)r r&rrr �last_raises29szLimitTests.last_raises2cCs|��dSrT)r!r&rrr �last_raises3<szLimitTests.last_raises3cCs|��dSrT)r"r&rrr �last_raises4?szLimitTests.last_raises4cCs|��dSrT)r#r&rrr �last_raises5BszLimitTests.last_raises5cCst��SrT)rOr�r&rrr �last_returns_frame1EszLimitTests.last_returns_frame1cCs|��SrT)r%r&rrr �last_returns_frame2HszLimitTests.last_returns_frame2cCs|��SrT)r&r&rrr �last_returns_frame3KszLimitTests.last_returns_frame3cCs|��SrT)r'r&rrr �last_returns_frame4NszLimitTests.last_returns_frame4cCs|��SrT)r(r&rrr �last_returns_frame5QszLimitTests.last_returns_frame5cs|�����fdd�}�fdd�}t�tdd���6|�}��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�n1�sn0YdS)Ncstj�fi|��SrT�r�
extract_stack��kwargs)rrr �extractVsz.LimitTests.test_extract_stack.<locals>.extractcsX��|d|�|d|����||dd�||dd����t|�t|��dSr�)r4r5)r�r��ignorer&rr �assertEqualExceptXs$z8LimitTests.test_extract_stack.<locals>.assertEqualExcept�tracebacklimit��r�r/��limitr�ri����i����r-rrAr�r�)r)r�	swap_attrrOZ
assertGreaterr5r4r1)rr.r0�nolimr)rrr �test_extract_stackTs*&zLimitTests.test_extract_stackcszz|��Wn ty,t��\}}�Yn0�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�n1�sl0YdS)Ncstj�fi|��SrT)r�
extract_tbr,r�rr r.usz+LimitTests.test_extract_tb.<locals>.extractr1r2rr/r3r�r����rrAr�r��	r$rVrOrPrr5r4r5r1)rr�r�r.r6rr�r �test_extract_tbps.zLimitTests.test_extract_tbcs~z|��Wn ty,t��\���Yn0���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�n1�sp0YdS)Ncstj���fi|��dd�S)Nr-r�)rrQr,�r�r�rrr r.�sz1LimitTests.test_format_exception.<locals>.extractr1r2rr/r3r�r�r9rrAr�r�r:)rr.r6rr<r �test_format_exception�s.z LimitTests.test_format_exceptionN)r[r\r]�__doc__r r!r"r#r$r%r&r'r(r)r7r;r=rrrr r1src@seZdZdd�Zdd�ZdS)�MiscTracebackCasescs��fdd�}�fdd��dd��z
|�Wnt��\}}}Yn0|jjjj}|�t|j�d�t�|�|�t|j�d�dS)	Ncs
��dSrTrr)�middlerr �outer�sz,MiscTracebackCases.test_clear.<locals>.outercs
��dSrTrr)�innerrr r@�sz-MiscTracebackCases.test_clear.<locals>.middlecSsd}dddSrXr)�irrr rB�sz,MiscTracebackCases.test_clear.<locals>.innerr-r)	rOrPrrr4r5rr�clear_frames)rrAr�rrZinner_framer)rBr@r �
test_clear�s

zMiscTracebackCases.test_clearcCs^dd�}|�}|jj}|�|dd�t|dddft|ddd	fg�|�t|d
�d�dS)NcSst��SrTr*rrrr r.�sz6MiscTracebackCases.test_extract_stack.<locals>.extractr�r/r7zresult = extract()r-r.z return traceback.extract_stack()rr,)r�r�r4r�r5)rr.r�r}rrr r7�s�z%MiscTracebackCases.test_extract_stackN)r[r\r]rEr7rrrr r?�sr?c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	TestFramecCs�t��t�dt��t�ddd�}|�|d�|�t|�d�|�|t�ddd��|�|t|��|�t|�|�|�|j	�|�
|t��|�|t�dS)NrMr-�dummy)rMr-rG�%"""Test cases for traceback module""")
�	linecache�
clearcache�	lazycache�globalsr�FrameSummaryr4�tupleZassertIsNone�locals�assertNotEqual�objectr
�rrMrrr �test_basics�s�
�zTestFrame.test_basicscCsHt��tjddddd�}|�d|j�t�dt��|�d|j�dS)NrMr-rGF)�lookup_linerH)	rIrJrrMr4�_linerKrL�linerRrrr �test_lazy_lines�s�zTestFrame.test_lazy_linescCs$tjddddd�}|�d|j�dS)NrMr-rGrV�rV)rrMr4rVrRrrr �test_explicit_line�szTestFrame.test_explicit_linecCs&tjddddd�}|�t|�d�dS)NrMr-rGrVrXr,)rrMr4r5rRrrr �test_len�szTestFrame.test_lenN)r[r\r]rSrWrYrZrrrr rF�s	rFc@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��SrT)�listr�
walk_stackrrrr �deeper�sz)TestStack.test_walk_stack.<locals>.deeperr-)r\rr]r4r5)rr^�s1�s2rrr �test_walk_stack�s
zTestStack.test_walk_stackcCsPzddWn ty,t��\}}}Yn0tt�|��}|�t|�d�dSrX)rVrOrPr\r�walk_tbr4r5)rr�rrrrr �test_walk_tbszTestStack.test_walk_tbcCs$tj�t�d��}|�|tj�dSrT)r�StackSummaryr.r]ZassertIsInstance�rrrrr r7	szTestStack.test_extract_stackcCs*tjjt�d�dd�}|�t|�d�dS)Nr�r3)rrdr.r]r4r5rerrr �test_extract_stack_limit
sz"TestStack.test_extract_stack_limitcCsdt��t�dt��tdd�}t|dd�}tjjt	|dfg�dd�}t��|�
|djd�dS)N�/foo.py�methodrT��lookup_linesr�
import sys)rIrJ�updatecacherL�	test_code�
test_framerrdr.�iterr4rV�r�crMrrrr �test_extract_stack_lookup_liness
z)TestStack.test_extract_stack_lookup_linescCsjt��tdd�}t|dd�}tjjt|dfg�dd�}|�itj	�t�
dt��|�|djd�dS)NrgrhrFrirrk)
rIrJrmrnrrdr.ror4�cacherlrLrVrprrr �*test_extract_stackup_deferred_lookup_liness
z4TestStack.test_extract_stackup_deferred_lookup_linescCs$tj�dg�}|�dg|���dS�N��foo.pyr-�fredrVz*  File "foo.py", line 1, in fred
    line
�rrd�	from_listr4rqrerrr �test_from_list#s
�zTestStack.test_from_listcCs8tj�dg�}d|d<tj�|�}|�dg|���dS)Nrv)rwr/rxrVrz*  File "foo.py", line 2, in fred
    line
ry)rrr`rrr �test_from_list_edited_stack)s�z%TestStack.test_from_list_edited_stackcCs$tj�dg�}|�dg|���dSruryrerrr �test_format_smoke1s
�zTestStack.test_format_smokecCs^t�dt��tdd�}t|t�ddi�}tjjt|dfg�dd�}|�	|dj
dd	i�dS)
Nrgrh�	somethingr-rT��capture_localsr�1�rIrlrLrmrnrrdr.ror4rOrprrr �test_locals9s

zTestStack.test_localscCsVt�dt��tdd�}t|t�ddi�}tj�t|dfg��}|�	|dj
d�dS)Nrgrhr~r-rrr�rprrr �test_no_locals@s

zTestStack.test_no_localscCs8dd�}|dd�}|�dt|jjdfg|���dS)NcSs d}d}tjjt�d�ddd�S)Nr-r/T)r�r4)rrdr.r])�k�v�a�brrr �
some_innerHs
�z0TestStack.test_format_locals.<locals>.some_innerrAr,zw  File "%s", line %d, in some_inner
    return traceback.StackSummary.extract(
    a = 1
    b = 2
    k = 3
    v = 4
)r4r�r�r�rq)rr�rrrr �test_format_localsGs
��zTestStack.test_format_localsN)r[r\r]rarcr7rfrrrtr{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�ZdS)�TestTracebackExceptionc	Cs�zddWn:tyFt��}tj|�}tj�t�|d��}Yn0|�d|j	�|�d|j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr-rr/F)rVrOrPr�TracebackExceptionrdr.rbr4�	__cause__�__context__�__suppress_context__�stackr�r��rrPr�expected_stackrrr �
test_smokeYs
�
z!TestTracebackException.test_smokec
Cs�dd�}z
|�Wnbtyt}zJt��}tjjt�|d�dddd�|_tjj	|dddd�|_
WYd}~n
d}~00|j}|j
}|�d|j�|�d|j
�|�d|j�|�||j�|�|d|j�|�t|d�t|��dS)	NcSsdddSrXrrrrr r�jsz7TestTracebackException.test_from_exception.<locals>.foor/r-FT)r4rjr�r)rVrOrPrrdr.rbr�r��from_exceptionrr4r�r�r�r�r�r�)rr�rHrPr�rrrr �test_from_exceptionhs(
��z*TestTracebackException.test_from_exceptionc	Csz\z0ddWt��}tj|�}td�}td�|�n&t��}tj|�}td�}td�|�0Wn:ty�t��}tj|�}tj�t�|d��}Yn0t�t|d�}|�||j	�|�||j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr-r�cause�uh ohr/T�rOrPrr�rVrdr.rbr4r�r�r�r�r�r�)r�exc_info_context�exc_contextr�rPrr�Z	exc_causerrr r�~s0

�

�
z!TestTracebackException.test_causec	Cs�zHz&ddWt��}tj|�}td��nt��}tj|�}td��0Wn:ty�t��}tj|�}tj�t�|d��}Yn0|�d|j	�|�||j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr-rr�r/Fr�)rr�r�rPrr�rrr r��s*


�

�
z#TestTracebackException.test_contextcCs~zddWnty&t��}Yn0t�|d�}t�|d�}tj|�}|�t�|d�|�|�t�|d�|�dS)Nr-rr/)rVrOrP�getrefcountrr�r4)rrPZrefcnt1Zrefcnt2rrrr �/test_no_refs_to_exception_and_traceback_objects�s
zFTestTracebackException.test_no_refs_to_exception_and_traceback_objectscCsrzddWn.ty:t��}tj|�}tj|�}Yn0|�||�|�||�|�|t��|�|t	�dSrX)
rVrOrPrr�ZassertIsNotr4rPrQr
)rrPr�exc2rrr �test_comparison_basic�s
z,TestTracebackException.test_comparison_basiccs�dd���fdd�}z
|�Wnty8t��}Yn0tj|�}tj|ddi�}tj|ddi�}|�||�|�||�tj|dd	i�}|�||�tj|dd
i�}tj|d
d	d��}|�||�tj|ddi�}	tj|dd	d��}
|�|	|
�dS)
NcSs ztd��Wn�Yn0dS)Nz	bad valuerKrrrr �	raise_exc�szKTestTracebackException.test_comparison_params_variations.<locals>.raise_exccsd\}}��dS)N)r-r/r)�x�y�r�rr �raise_with_locals�szSTestTracebackException.test_comparison_params_variations.<locals>.raise_with_localsr4r�r/r�Tr�)r4r�r�)rVrOrPrr�r4rP)rr�rPrZexc1r�Zexc3Zexc4Zexc5Zexc6Zexc7rr�r �!test_comparison_params_variations�s&

z8TestTracebackException.test_comparison_params_variationsc	Cs|g}td�D]2}zddWq|�tjt����Yq0q|�|d|d�|�t|d���t|d����dS)Nr/r-r)	r�rrr�rOrPr4r\rq)rZexcsr�rrr �/test_comparison_equivalent_exceptions_are_equal�szFTestTracebackException.test_comparison_equivalent_exceptions_are_equalcCs�Gdd�dt�}|d�}|d�}z
||�Wn6|y`z|�Wn|yZt��}Yn0Yn0tj|�}t|���}|�d|d�|�d|d�dS)	Nc@seZdZdd�ZdS)zCTestTracebackException.test_unhashable.<locals>.UnhashableExceptioncSsdSr�rr�rrr r��szJTestTracebackException.test_unhashable.<locals>.UnhashableException.__eq__Nr�rrrr r��sr�r�r�zUnhashableException: ex2
r/zUnhashableException: ex1
r)rVrOrPrr�r\rqr8)rr�r�r�rPr�	formattedrrr r��s

z&TestTracebackException.test_unhashablecsp�fdd��z�d�WnDty\t��}tj|ddi�}tjjt�|d�dd�}Yn0|�||j	�dS)Ncs|r�|d�ndddSrXr)�n��recurserr r�sz2TestTracebackException.test_limit.<locals>.recurser�r4r�r/r3)
rVrOrPrr�rdr.rbr4r�r�rr�r �
test_limits�z!TestTracebackException.test_limitcCsxt��td�}tdd�}t|dd�}t|dd�}tjt||dd�}|�tj	i�t�
dt��|�|jdj
d�dS)	Nr�rgrhrFrirrk)rIrJrVrmrn�test_tbrr�r4rsrlrLr�rV�rrHrqrMrrrrr �test_lookup_liness
z(TestTracebackException.test_lookup_linescCspt�dt��td�}tdd�}t|t�ddd��}t|dd�}tjt||dd	�}|�	|j
d
jddd��dS)
Nrgr�rhr-�string)r~r�rTrrr�z'string'�rIrlrLrVrmrnr�rr�r4r�rOr�rrr r�s
��z"TestTracebackException.test_localscCsdt�dt��td�}tdd�}t|t�ddi�}t|dd�}t�t||�}|�	|j
djd�dS)Nrgr�rhr~r-rrr�r�rrr r�'s
z%TestTracebackException.test_no_localscCs,t�ttd�d�}|�t|���dg�dS)NZhavenzException: haven
)rr�rVr4r\rq)rrrrr �test_traceback_header0sz,TestTracebackException.test_traceback_headerN)r[r\r]r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr r�Ws%
	r�c@seZdZdd�ZdS)�MiscTestcCsdt�}dh}tt�D]<}|�d�s||vr,qtt|�}t|dd�dkr|�|�q|�tj|�dS)N�
print_listr�r\r)�set�dirrr��getattrrZassertCountEqual�__all__)rr�Z	blacklist�nameZ
module_objectrrr �test_all9s
zMiscTest.test_allN)r[r\r]r�rrrr r�7sr�r_),r>�collectionsr�iorrIrOrr��testrZtest.supportrrrrr	r
Ztest.support.script_helperrr�rrmrnr�ZTestCaserr�r�r�r%�escaper�r�rrrr?rFr[r�r�r[�mainrrrr �<module>sN g=���Rx)%`a


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