Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_traceback.cpython-38.pyc
U

>��g��@s�dZddlmZddlmZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
mZmZmZddlmZddlZddlZedd	d
g�Zeddd
dg�Zeddddg�ZGdd�dej�ZGdd�dej�ZdZdZe�de�e�e�e�f�ZGdd�d�Z Gdd�de ej�Z!Gdd�de ej�Z"Gd d!�d!ej�Z#Gd"d#�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,k�r�e�*�dS)-zTest cases for traceback module�)�
namedtuple)�StringION)�support)�TESTFN�Error�captured_output�unlink�cpython_only)�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�Zejdd��Zdd�ZdS)�TracebackCasesc
CsJz
|�Wn2|k
r<}zt�||�WY�Sd}~XYn
Xtd��dS)Nzcall did not raise exception)�	traceback�format_exception_only�
ValueError)�self�func�exc�value�r�2/opt/cppython/lib/python3.8/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��|�|jt�}|�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?)r2rrr3r4r6)rrr;rrr�test_nocaretEs
zTracebackCases.test_nocaretcCs�|�|jt�}|�t|�d�|�|d��d�|�d|d�|�|d�d�|d�d��|�|jt�}|�t|�d�|�|d��d�|�d|d�|�|d�d�|d�d��dS)Nr+r,zprint(2)r-r.�)�p)	r r(�IndentationErrorr3r4r6r7r8r*r:rrr�test_bad_indentationKs� �z#TracebackCases.test_bad_indentationcCs&t�}t�|j|�}|�|dg�dS)NzKeyboardInterrupt
)�KeyboardInterruptrr�	__class__r3)r�eZlstrrr�test_base_exceptionZsz"TracebackCases.test_base_exceptioncCsxGdd�dt�}t�||��}|�t|�d�d|j}|jdkrJ|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__bszGTracebackCases.test_format_exception_only_bad__str__.<locals>.X.__str__N)�__name__�
__module__�__qualname__rKrrrr�XasrOr,z<unprintable %s object>)�__main__�builtins�.rz%s: %s
)	�	Exceptionrrr3r4rLrMrN�join)rrOr;Z	str_valueZstr_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	szdttd|d��}|�d�||��W5QRX�j�jtg�j�jd�}|�	�\}}|�
����}W5tt�X|��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}')
                        rW�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}r@z-Invalid error message: {0!r} instead of {1!r})rr�open�write�format�Popen�
executable�PIPE�STDOUT�communicate�decode�
splitlines�encoder7r5�endswith)Z
firstlines�message�charset�lineno�output�processrXrYZencoded_messageZ
message_asciiZerr_line�err_msg�Zoutput_encodingr�
subprocess�sysrr�do_test}sJ��
�


������z1TracebackCases.test_encoded_file.<locals>.do_test��foor@)rZz
iso-8859-1�utf-8�GBKrwu丂儀uhé hoz# coding: {0}
r+z#!shebang
# coding: {0}
�z 	
# coding: {0}
zx=0
# coding: GBK
rv)
rrrqrarbrcrdre�strrgr`)rrnrXrYrsrk�textrrpr�test_encoded_filemsB
��#
�
�
�z TracebackCases.test_encoded_filecCs8t�d�}td|�\}}}dddg}|�|��|�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()
        rVs"Traceback (most recent call last):s&  File "<string>", line 8, in __init__s#ZeroDivisionError: division by zero)�textwrap�dedentr
r3rg)rr�rcrXrY�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_exceptionrSr3�getvalue)rrmrrr�test_print_exception�s�z#TracebackCases.test_print_exceptionN)rLrMrNr r&r'r(r)r*r<rArErIrUr{rZrequires_type_collectingr�r�rrrrrs
D
rc@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_exceptionNcCs�ddlm}z|��Wn�tk
r�t��\}}}|dk	rH||j�dd�t�	|��}t
�}|||�|��}td��}	t�
|�W5QRXt
�}
tj
||
d�td��}t��W5QRXt��}t
�}
tj|
d�Yn
Xtd��|�||�|�|	��|
���|�|��|
���|�||
���|��}|�t|�d�|d}|d	d�\}}|�|�d
��|�|�d��|�|�d��dS)
Nr)�traceback_printz#Traceback (most recent call last):
rtrYr�z&unable to create test traceback stringrx����	Traceback�  Filez	    raise)�	_testcapir�r�r�rr�exc_inforrTr�	format_tbrr�r�print_tb�	print_exc�
format_excrr3rgr4r5�
startswith)rZcleanup_funcr��type_rrZ
traceback_fmtZfile_Z
python_fmtZtbstderrZtbfileZ	excstderrZexcfmtZexcfileZtb_linesZbanner�locationZsource_linerrr�check_traceback_format�sD
�


z+TracebackFormatTests.check_traceback_formatcCs|��dS�N�r�r%rrr�test_traceback_formatsz*TracebackFormatTests.test_traceback_formatcCsdd�}|�|�dS)NcSs|j��dSr�)r�clear�rrrr�
cleanup_tbszRTracebackFormatTests.test_traceback_format_with_cleared_frames.<locals>.cleanup_tbr�)rr�rrr�)test_traceback_format_with_cleared_framessz>TracebackFormatTests.test_traceback_format_with_cleared_framesc	Cs|td��}t�t�d��W5QRXt�}tjt�d�|d�|�|��|���t�t�d��}|�|��d�	|��dS)NrYr,r�rt)
rr�print_stackrr�	_getframerr3r��format_stackrT)rZststderrZstfileZstfmtrrr�test_stack_formats
z&TracebackFormatTests.test_stack_formatc	Csjdd�}td��}|�W5QRX|jj}|�|����dd�dt|dfddt|d	fd
g�dS)NcSst��dSr�)rr�rrrr�prn"sz2TracebackFormatTests.test_print_stack.<locals>.prnrY���z)  File "%s", line %d, in test_print_stackr@z	    prn()z  File "%s", line %d, in prnr,z    traceback.print_stack())r�__code__�co_firstlinenor3r�rg�__file__)rr�rYrlrrr�test_print_stack!s
�z%TracebackFormatTests.test_print_stackcs�d|_�fdd��td��D}z
��Wn(tk
rN}z
|�W5d}~XYnX|�d�W5QRX�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��F}	z
��Wn*tk
�r�}z
|�W5d}~XYnX|�d�W5QRX�jj}
dt�d|
d�dt�d|
d�dt�d|
d�dt�d|
d�d�}dt�d|
d�d�}||��}|	����}|�	||�d)��fdd�	�td��F}
z
��Wn*tk
�rt}z
|�W5d}~XYnX|�d�W5QRX�jj}dt�d|d�dt�d|d�dt�d|d�dt�d|d�d t�d|d�d!�}||��}|
����}|�	||�td��J}	z�tj�Wn*tk
�rN}z
|�W5d}~XYnX|�d"�W5QRXdt�d|
d�dt�d|
d�dt�d|
d�dt�d|
d�d�}dt�d|
d#�d$�}||��}|	����}|�	||�td��N}	z�tjd	�Wn*tk
�r*}z
|�W5d}~XYnX|�d"�W5QRXdt�d|
d�dt�d|
d�dt�d|
d�d%t�d|
d�d�}dt�d|
d&�d'�}||��}|	����}|�	||�dS)*Ncs
��dSr�rr)�frrr�6szBTracebackFormatTests._check_recursive_traceback_display.<locals>.frYzno recursion occurredz+Traceback (most recent call last):
  File "z", line rxz8, 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,�r�r9)�grrr�cs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 "r@z', in g
    raise ValueError
ValueError
�z0, in _check_recursive_traceback_display
    g()
cs|r�|d�S��dSr�rr�)r��hrrr��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�)ZmaxDiffr�RecursionErrorZfailr�r�r�rgr�r3ZassertRegexr7rr�getrecursionlimit�int�re�search�group�rangerr�_RECURSIVE_CUTOFF)r�
render_exc�stderr_frZlineno_fZresult_fr�actualZ	rec_limitZstderr_gZlineno_gZresult_gZtb_lineZstderr_hZlineno_hZresult_hr)r�r�r�r�"_check_recursive_traceback_display/s�

D�*

D�
�

T�
D��
D�
�z7TracebackFormatTests._check_recursive_traceback_displaycCs|�tj�dSr�)r�rr�r%rrr�test_recursive_traceback_python�sz4TracebackFormatTests.test_recursive_traceback_pythoncs&ddlm��fdd�}|�|�dS)Nr��exception_printcst��\}}}�|�dSr�)rrr�)�exc_type�	exc_value�exc_tbr�rrr��szRTracebackFormatTests.test_recursive_traceback_cpython_internal.<locals>.render_exc)r�r�r�)rr�rr�r�)test_recursive_traceback_cpython_internal�sz>TracebackFormatTests.test_recursive_traceback_cpython_internalcCsJdd�}|�}|jj}|�|dd�dt|dfdt|dfg�dS)NcSst��Sr�)rr�rrrr�fmt�sz3TracebackFormatTests.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�r3r�)rr��resultrlrrr�test_format_stack�s
�
��z&TracebackFormatTests.test_format_stackc
Cs�ddlm}Gdd�dt�}|d�}|d�}z
||�Wn@|k
rvz|�Wn"|k
rpt��\}}}YnXYnXtd��}||�W5QRX|������}	|�	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�rLrMrNr�rrrr�UnhashableException�sr��ex1�ex2rY�rxzUnhashableException: ex2r@zUnhashableException: ex1r�)
r�r�rSrrr�rr�r6rgr3r4�context_messager7)
rr�r�r�r�r��exc_valr�r�rrrr�test_unhashable�s$

z$TracebackFormatTests.test_unhashable)N)rLrMrNr�r	r�r�r�r�r�r�r�r�r�r�rrrrr��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@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�BaseExceptionReportingTestsc
CsHt|t�r|Sz
|�Wn*tk
rB}z|WY�Sd}~XYnXdSr�)�
isinstancerS)rZexception_or_callablerHrrr�
get_exception!s

z)BaseExceptionReportingTests.get_exceptioncCsdddSrJrr%rrr�zero_div)sz$BaseExceptionReportingTests.zero_divcCsJ|��}|�|d�d��|�d|d�|�|d�d�|d�dS)N���r�z1/0 # In zero_divr�r��ZeroDivisionError)rgr5r�r7)r�msg�linesrrr�check_zero_div,sz*BaseExceptionReportingTests.check_zero_divc
Cs�zddWn&tk
r2}z|}W5d}~XYnX|�|���}|�t|�d�|�|d�d��|�|d�d��|�d|d�|�|d�d	��dS)
Nr,rr+r�r�z1/0 # Markerr.r@r�)r��
get_reportrgr3r4r5r�r7�r�_rHr�rrr�test_simple2sz'BaseExceptionReportingTests.test_simplecsj�fdd���fdd�}t���|��}��t|�d���|dt���|d���d|d	�dS)
Nc
s:z���Wn(tk
r4}z
t|�W5d}~XYnXdSr��r�r�r�)rHr%rr�inner_raise?sz;BaseExceptionReportingTests.test_cause.<locals>.inner_raisecs
��dSr�rr�r�rr�outer_raiseDsz;BaseExceptionReportingTests.test_cause.<locals>.outer_raiser@r,r�inner_raise() # Markerr.��
boundaries�splitr�r3r4�
cause_messager�r7�rr�Zblocksr�r�rr�
test_cause>sz&BaseExceptionReportingTests.test_causecsj�fdd���fdd�}t���|��}��t|�d���|dt���|d���d|d	�dS)
Ncs*z���Wntk
r$t�YnXdSr�r�rr%rrr�Msz=BaseExceptionReportingTests.test_context.<locals>.inner_raisecs
��dSr�rrr�rrr�Rsz=BaseExceptionReportingTests.test_context.<locals>.outer_raiser@r,rr�r.)r�r�r�r3r4r�r�r7r�rr�r�test_contextLsz(BaseExceptionReportingTests.test_contextc
Cs�z zt�Wntd�YnXWn&tk
rF}z|}W5d}~XYnX|�|���}|�t|�d�|�|d�d��|�|d�d��|�d|d�|�|d�d	��dS)
Nr+rr�r,r�zZeroDivisionError from Noner.r@r�)	rSr�r�rgr3r4r5r�r7r�rrr�test_context_suppressionZsz4BaseExceptionReportingTests.test_context_suppressioncsj�fdd���fdd�}t���|��}��t|�d���|dt���|d���d|d	�dS)
Nc
s\z���Wn&tk
r2}z|}W5d}~XYnXztWntk
rVt|�YnXdSr�)r�r�Zxyzzy�	NameErrorr�)�_erHr%rrr�lszGBaseExceptionReportingTests.test_cause_and_context.<locals>.inner_raisecs
��dSr�rrr�rrr�uszGBaseExceptionReportingTests.test_cause_and_context.<locals>.outer_raiser@r,rr�r.r�r�rr�r�test_cause_and_contextis	z2BaseExceptionReportingTests.test_cause_and_contextcs��fdd���fdd�}t���|��}��t|�d���|dt���d|d���d	|d���d
|d���|d�dS)Nc
slz>z���Wn,tk
r:}z|}t|�W5d}~XYnXWn(tk
rf}z
||�W5d}~XYnXdSr�r�)rH�zr%rrr�~szEBaseExceptionReportingTests.test_cause_recursive.<locals>.inner_raisecs
��dSr�rrr�rrr��szEBaseExceptionReportingTests.test_cause_recursive.<locals>.outer_raiser@r,zraise KeyError from erz1/0r�r.)	r�r�r�r3r4r�r7ZassertNotInr�r�rr�r�test_cause_recursive}s	z0BaseExceptionReportingTests.test_cause_recursivecCsPdd�}|�|���}|�|dd�dd�}|�|���}|�|dd�dS)NcSstdd��dS)Nrt)rtrrxZhello)r2rrrrrH�szFBaseExceptionReportingTests.test_syntax_error_offset_at_eol.<locals>.er�z	        ^cSstd�dS)Nzx = 5 | 4 |)r"rrrrrH�sz              ^)r�rgr3�rrHr�rrr�test_syntax_error_offset_at_eol�sz;BaseExceptionReportingTests.test_syntax_error_offset_at_eolcCsj|�td��}|�d|�|�td��}|�d|�|�t��}|�d|�|�td��}|�d|�dS)NzException: None
�Nonez
Exception
rt)r�rSr7r:rrr�test_message_none�sz-BaseExceptionReportingTests.test_message_nonecCs�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)r2r�rgr3rl�filenamer�rrr�test_syntax_error_no_lineno�s*����z7BaseExceptionReportingTests.test_syntax_error_no_linenoN)rLrMrNr�r�r�r�r�r�r�r�r�r�r�r�rrrrr�sr�c@seZdZdd�ZdS)�PyExcReportingTestsc	Cs`|�|�}d�t�t|�||j��}td��}t�t|�||j�W5QRX|�|�	�|�|S)NrtrY)
r�rTr�format_exception�type�
__traceback__rr�r3r�)rrH�s�siorrrr��s
�
zPyExcReportingTests.get_reportN)rLrMrNr�rrrrr��sr�c@seZdZedd��ZdS)�CExcReportingTestsc	Cs:ddlm}|�|�}td��}||�W5QRX|��S)Nrr�rY)r�r�r�rr�)rrHr�rrrrr��s


zCExcReportingTests.get_reportN)rLrMrNr	r�rrrrr�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 raised)rSr%rrr�last_raises1�szLimitTests.last_raises1cCs|��dSr�)rr%rrr�last_raises2�szLimitTests.last_raises2cCs|��dSr�)rr%rrr�last_raises3�szLimitTests.last_raises3cCs|��dSr�)rr%rrr�last_raises4�szLimitTests.last_raises4cCs|��dSr�)rr%rrr�last_raises5�szLimitTests.last_raises5cCst��Sr�)rrr�r%rrr�last_returns_frame1�szLimitTests.last_returns_frame1cCs|��Sr�)r
r%rrr�last_returns_frame2�szLimitTests.last_returns_frame2cCs|��Sr�)rr%rrr�last_returns_frame3�szLimitTests.last_returns_frame3cCs|��Sr�)rr%rrr�last_returns_frame4�szLimitTests.last_returns_frame4cCs|��Sr�)r
r%rrr�last_returns_frame5szLimitTests.last_returns_frame5c	sf�����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�W5QRXdS)Ncstj�f|�Sr��r�
extract_stack��kwargs)rrr�extractsz.LimitTests.test_extract_stack.<locals>.extractcsX��|d|�|d|����||dd�||dd����t|�t|��dSr�)r3r4)r�r�ignorer%rr�assertEqualExcepts$z8LimitTests.test_extract_stack.<locals>.assertEqualExcept�tracebacklimit��rxr.��limitr�r�i����i����r,rr@r�r�)rr�	swap_attrrrZ
assertGreaterr4r3r)rrr�nolimr)rrr�test_extract_stacks*&zLimitTests.test_extract_stackc	sfz|��Wn"tk
r.t��\}}�YnX�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�W5QRXdS)Ncstj�f|�Sr�)r�
extract_tbrr�rrr%sz+LimitTests.test_extract_tb.<locals>.extractrr�r.rr�r����rr@r�r��	r	rSrrr�rrr3r4r)rr�r�rrrr�r�test_extract_tb s.zLimitTests.test_extract_tbc	sjz|��Wn"tk
r.t��\���YnX���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�W5QRXdS)Ncstj���f|�dd�S)Nr,r�)rr�r�r�r�rrrrBsz1LimitTests.test_format_exception.<locals>.extractrrrr.rr�r�rrr@r�r�r )rrrrr"r�test_format_exception;s.z LimitTests.test_format_exceptionN)rLrMrN�__doc__rrrrr	r
rrr
rrr!r#rrrrr�src@seZdZdd�Zdd�ZdS)�MiscTracebackCasescs��fdd�}�fdd��dd��z
|�Wnt��\}}}YnX|jjjj}|�t|j�d�t�|�|�t|j�d�dS)	Ncs
��dSr�rr)�middlerr�outer_sz,MiscTracebackCases.test_clear.<locals>.outercs
��dSr�rr)�innerrrr&asz-MiscTracebackCases.test_clear.<locals>.middlecSsd}dddSrJr)�irrrr(csz,MiscTracebackCases.test_clear.<locals>.innerr,r)	rrr�rrr3r4rr�clear_frames)rr'r�rrZinner_framer)r(r&r�
test_clear^s

zMiscTracebackCases.test_clearcCs^dd�}|�}|jj}|�|dd�t|dddft|ddd	fg�|�t|d
�d�dS)NcSst��Sr�rrrrrrwsz6MiscTracebackCases.test_extract_stack.<locals>.extractr�r.rzresult = extract()r,rz return traceback.extract_stack()rr+)r�r�r3r�r4)rrr�rlrrrrvs�z%MiscTracebackCases.test_extract_stackN)rLrMrNr+rrrrrr%Ysr%c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	TestFramecCs�t��t�dt��t�ddd�}|�|d�|�t|�d�|�|t�ddd��|�|t|��|�t|�|�|�|j	�dS)Nr�r,�dummy)r�r,r-�%"""Test cases for traceback module""")
�	linecache�
clearcache�	lazycache�globalsr�FrameSummaryr3�tupleZassertIsNone�locals�rr�rrr�test_basics�s�
�zTestFrame.test_basicscCsHt��tjddddd�}|�d|j�t�dt��|�d|j�dS)Nr�r,r-F)�lookup_liner.)	r/r0rr3r3�_liner1r2�liner6rrr�test_lazy_lines�s�zTestFrame.test_lazy_linescCs$tjddddd�}|�d|j�dS)Nr�r,r-r:�r:)rr3r3r:r6rrr�test_explicit_line�szTestFrame.test_explicit_linecCs&tjddddd�}|�t|�d�dS)Nr�r,r-r:r<r+)rr3r3r4r6rrr�test_len�szTestFrame.test_lenN)rLrMrNr7r;r=r>rrrrr,�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�sz)TestStack.test_walk_stack.<locals>.deeperr,)r@rrAr3r4)rrB�s1�s2rrr�test_walk_stack�s
zTestStack.test_walk_stackcCsRzddWn"tk
r.t��\}}}YnXtt�|��}|�t|�d�dSrJ)rSrrr�r@r�walk_tbr3r4)rr�rrrrr�test_walk_tb�szTestStack.test_walk_tbcCs$tj�t�d��}|�|tj�dSr�)r�StackSummaryrrAZassertIsInstance�rrrrrr�szTestStack.test_extract_stackcCs*tjjt�d�dd�}|�t|�d�dS)Nrxr)rrHrrAr3r4rIrrr�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)r/r0�updatecacher2�	test_code�
test_framerrHr�iterr3r:�r�cr�rrrr�test_extract_stack_lookup_lines�s
z)TestStack.test_extract_stack_lookup_linescCsjt��tdd�}t|dd�}tjjt|dfg�dd�}|�itj	�t�
dt��|�|djd�dS)NrKrLrFrMrrO)
r/r0rQrRrrHrrSr3�cacherPr2r:rTrrr�*test_extract_stackup_deferred_lookup_lines�s
z4TestStack.test_extract_stackup_deferred_lookup_linescCs$tj�dg�}|�dg|���dS�N��foo.pyr,�fredr:z*  File "foo.py", line 1, in fred
    line
�rrH�	from_listr3r`rIrrr�test_from_list�s
�zTestStack.test_from_listcCs8tj�dg�}d|d<tj�|�}|�dg|���dS)NrZ)r[r.r\r:rz*  File "foo.py", line 2, in fred
    line
r])rrrDrrr�test_from_list_edited_stack�s�z%TestStack.test_from_list_edited_stackcCs$tj�dg�}|�dg|���dSrYr]rIrrr�test_format_smoke�s
�zTestStack.test_format_smokecCs^t�dt��tdd�}t|t�ddi�}tjjt|dfg�dd�}|�	|dj
dd	i�dS)
NrKrL�	somethingr,rT��capture_localsr�1�r/rPr2rQrRrrHrrSr3r5rTrrr�test_locals�s

zTestStack.test_localscCsVt�dt��tdd�}t|t�ddi�}tj�t|dfg��}|�	|dj
d�dS)NrKrLrbr,rrrfrTrrr�test_no_locals�s

zTestStack.test_no_localscCs8dd�}|dd�}|�dt|jjdfg|���dS)NcSs d}d}tjjt�d�ddd�S)Nr,r.T)rdr)rrHrrA)�k�v�a�brrr�
some_inner�s�z0TestStack.test_format_locals.<locals>.some_innerr@r+zw  File "%s", line %d, in some_inner
    return traceback.StackSummary.extract(
    a = 1
    b = 2
    k = 3
    v = 4
)r3r�r�r�r`)rrmrrrr�test_format_locals�s
��zTestStack.test_format_localsN)rLrMrNrErGrrJrVrXr_r`rargrhrnrrrrr?�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<tk
rHt��}tj|�}tj�t�|d��}YnX|�d|j	�|�d|j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr,rr.F)rSrrr�r�TracebackExceptionrHrrFr3�	__cause__�__context__�__suppress_context__�stackr�ry�rr�r�expected_stackrrr�
test_smokes
�
z!TestTracebackException.test_smokec
Cs�dd�}z
|�Wn`tk
rr}zBt��}tjjt�|d�dddd�|_tjj	|dddd�|_
W5d}~XYnX|j}|j
}|�d|j�|�d|j
�|�d|j�|�||j�|�|d|j�|�t|d�t|��dS)	NcSsdddSrJrrrrrrusz7TestTracebackException.test_from_exception.<locals>.foor.r,FT)rrNrdr)rSrrr�rrHrrFrvrp�from_exceptionrr3rqrrrsrtr�ry)rrurHr�rvrrrr�test_from_exceptions2
��z*TestTracebackException.test_from_exceptionc	Cs�z8zddW5t��}tj|�}td�}td�|�XWn<tk
rtt��}tj|�}tj�t�|d��}YnXt�t|d�}|�||j	�|�||j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)N�cause�uh ohr,rr.T�rrr�rrprSrHrrFr3rqrrrsrtr�ry)r�exc_info_context�exc_contextrzr�rrvZ	exc_causerrrr�,s(

�
z!TestTracebackException.test_causec	Cs�z.zddW5t��}tj|�}td��XWn<tk
rjt��}tj|�}tj�t�|d��}YnX|�d|j	�|�||j
�|�d|j�|�||j�|�|d|j
�|�t|d�t|��dS)Nr{r,rr.Fr|)rr}r~r�rrvrrrr�Bs$

�
z#TestTracebackException.test_contextcCs�zddWntk
r(t��}YnXt�|d�}t�|d�}tj|�}|�t�|d�|�|�t�|d�|�dS)Nr,rr.)rSrrr��getrefcountrrpr3)rr�Zrefcnt1Zrefcnt2rrrr�/test_no_refs_to_exception_and_traceback_objectsVs
zFTestTracebackException.test_no_refs_to_exception_and_traceback_objectscCsvzddWn0tk
r<t��}tj|�}tj|�}YnX|�||�|�||�Gdd�d�}|�||��dS)Nr,rc@seZdZdS)z>TestTracebackException.test_comparison_basic.<locals>.MyObjectN)rLrMrNrrrr�MyObjectksr�)rSrrr�rrpZassertIsNotr3�assertNotEqual)rr�r�exc2r�rrr�test_comparison_basicbs
z,TestTracebackException.test_comparison_basiccs�dd���fdd�}z
|�Wntk
r:t��}YnXtj|�}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�YnXdS)Nz	bad valuer�rrrr�	raise_excpszKTestTracebackException.test_comparison_params_variations.<locals>.raise_exccsd\}}��dS)N)r,r.r)�x�y�r�rr�raise_with_localsvszSTestTracebackException.test_comparison_params_variations.<locals>.raise_with_localsrr�r.rdTr�)rrdr�)rSrrr�rrpr3r�)rr�r�rZexc1r�Zexc3Zexc4Zexc5Zexc6Zexc7rr�r�!test_comparison_params_variationsos&

z8TestTracebackException.test_comparison_params_variationsc	Cs|g}td�D]2}zddWq|�tjt����YqXq|�|d|d�|�t|d���t|d����dS)Nr.r,r)	r��appendrrprrr�r3r@r`)rZexcsr�rrr�/test_comparison_equivalent_exceptions_are_equal�szFTestTracebackException.test_comparison_equivalent_exceptions_are_equalcCs�Gdd�dt�}|d�}|d�}z
||�Wn:|k
rdz|�Wn|k
r^t��}YnXYnXtj|�}t|���}|�d|d�|�d|d�dS)	Nc@seZdZdd�ZdS)zCTestTracebackException.test_unhashable.<locals>.UnhashableExceptioncSsdSr�rr�rrrr��szJTestTracebackException.test_unhashable.<locals>.UnhashableException.__eq__Nr�rrrrr��sr�r�r�zUnhashableException: ex2
r.zUnhashableException: ex1
r)rSrrr�rrpr@r`r7)rr�r�r�r�r�	formattedrrrr��s

z&TestTracebackException.test_unhashablecsr�fdd��z�d�WnFtk
r^t��}tj|ddi�}tjjt�|d�dd�}YnX|�||j	�dS)Ncs|r�|d�ndddSrJr)�n��recurserrr��sz2TestTracebackException.test_limit.<locals>.recurser�rrxr.r)
rSrrr�rrprHrrFr3rtrurr�r�
test_limit�s�z!TestTracebackException.test_limitcCsxt��td�}tdd�}t|dd�}t|dd�}tjt||dd�}|�tj	i�t�
dt��|�|jdj
d�dS)	Nr{rKrLrFrMrrO)r/r0rSrQrR�test_tbrrpr3rWrPr2rtr:�rrHrUr�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)
NrKr{rLr,�string)rbr�rTrcrrez'string'�r/rPr2rSrQrRr�rrpr3rtr5r�rrrrg�s
�
�z"TestTracebackException.test_localscCsdt�dt��td�}tdd�}t|t�ddi�}t|dd�}t�t||�}|�	|j
djd�dS)NrKr{rLrbr,rrr�r�rrrrh�s
z%TestTracebackException.test_no_localscCs,t�ttd�d�}|�t|���dg�dS)NZhavenzException: haven
)rrprSr3r@r`)rrrrr�test_traceback_header�sz,TestTracebackException.test_traceback_headerN)rLrMrNrwryr�r�r�r�r�r�r�r�r�rgrhr�rrrrros
%
	roc@seZdZdd�ZdS)�MiscTestcCsdt�}dh}tt�D]<}|�d�s||kr,qtt|�}t|dd�dkr|�|�q|�tj|�dS)N�
print_listr�rMr)�set�dirrr��getattr�addZassertCountEqual�__all__)rrZ	blacklist�nameZ
module_objectrrr�test_all�s
zMiscTest.test_allN)rLrMrNr�rrrrr��sr�rP)+r$�collectionsr�iorr/rrZunittestr��testrZtest.supportrrrrr	Ztest.support.script_helperr
r|rrQrRr�ZTestCaserr�r�r�r$�escaper�r�r�rrr%r,r?ror�rL�mainrrrr�<module>sND=���%x)#`b


F1le Man4ger