Your IP : 216.73.216.85


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_trace.cpython-35.pyc



��YfW:�@s�ddlZddlZddlZddlmZmZmZmZddlZddl	Z	ddl	m
Z
mZddlm
Z
dd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZGdd�de�ZGdd �d ej�ZGd!d"�d"ej�ZGd#d$�d$ej�ZGd%d&�d&ej�Z Gd'd(�d(ej�Z!Gd)d*�d*ej�Z"Gd+d,�d,ej�Z#e$d-kr�ej%�dS).�N)�TESTFN�rmtree�unlink�captured_stdout)�CoverageResults�Trace)�testmodcCs#|jd�r|dd�}|S)z8Given a .pyc filename converts it to the appropriate .pyz.pycN����)�endswith)�filename�r
�4/opt/alt/python35/lib64/python3.5/test/test_trace.py�
fix_ext_pysrcCs2tjjtjjt��d}tt�|fS)z4The .py file and module name of this file (__file__)r)�os�path�splitext�basename�__file__r)�modnamer
r
r�my_file_and_modnames"rcCs
|jjS)N)�__code__�co_firstlineno)�funcr
r
r�get_firstlinenosrcCs|}|}||}|S)Nr
)�x�y�a�b�cr
r
r�traced_func_linear#s
r cCs+|}xtd�D]}||7}qW|S)N�)�range)rrr�ir
r
r�traced_func_loop)sr$cCs||tjd�S)Nr	)rr)rrr
r
r�traced_func_importing/sr%cCst||�}||S)N)r )rrr
r
r�traced_func_simple_caller2sr&cCs#t|�}|t||�7}|S)N)r&r%)r�kr
r
r�traced_func_importing_caller6sr(ccs*d}xt|�D]}||VqWdS)Nr!)r")�numrr#r
r
r�traced_func_generator;sr*cCs+d}xtd�D]}||7}qWdS)Nr�
)r*)r'r#r
r
r�traced_func_calling_generator@sr,cCs|dS)N�r
)r)r
r
r�traced_doublerEsr.cCs#d}dd�t|�D�}|S)Nr+cSsg|]}t|��qSr
)r.)�.0r#r
r
r�
<listcomp>Js	z4traced_caller_list_comprehension.<locals>.<listcomp>)r")r'Zmylistr
r
r� traced_caller_list_comprehensionHsr1c@sXeZdZdd�Zdd�Zdd�Zedd��Zed	d
��Z	dS)�TracedClasscCs
||_dS)N)r)�selfrr
r
r�__init__OszTracedClass.__init__cCs|j|S)N)r)r3rr
r
r�inst_method_linearRszTracedClass.inst_method_linearcCs |j|�}|t||�S)N)r5r )r3rrr
r
r�inst_method_callingUszTracedClass.inst_method_callingcCs|dS)Nr-r
)�clsrr
r
r�class_method_linearYszTracedClass.class_method_linearcCs|dS)Nr-r
)rr
r
r�static_method_linear]sz TracedClass.static_method_linearN)
�__name__�
__module__�__qualname__r4r5r6�classmethodr8�staticmethodr9r
r
r
rr2Ns
r2c@sjeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�TestLineCountsz/White-box testing of line-counting, via runfuncc	CsP|jtjtj��tdddddddd�|_tt�|_dS)N�countr	�tracer�
countfuncs�countcallers)	�
addCleanup�sys�settrace�gettracer�tracerrr�my_py_filename)r3r
r
r�setUpgs$zTestLineCounts.setUpcCs�|jjtdd�}|j|d�i}tt�}x.tdd�D]}d||j||f<qJW|j|jj�j|�dS)Nr-r!�r	)	rH�runfuncr �assertEqualrr"rI�results�counts)r3�result�expected�firstlinenor#r
r
r�test_traced_func_linearlsz&TestLineCounts.test_traced_func_linearc	Cs�|jjtdd�tt�}|j|dfd|j|dfd|j|dfd|j|dfdi}|j|jj�j|�dS)Nr-�r	�r!�)rHrLr$rrIrMrNrO)r3rRrQr
r
r�test_traced_func_loopxsz$TestLineCounts.test_traced_func_loopcCs�|jjtdd�tt�}|j|dfdttj�dfdttj�dfdi}|j|jj	�j
|�dS)Nr-r!r	rT)rHrLr%rrIrrrrMrNrO)r3rRrQr
r
r�test_traced_func_importing�sz)TestLineCounts.test_traced_func_importingc
Cs�|jjt�tt�}tt�}|j|dfd|j|dfd|j|dfd|j|dfd|j|dfd|j|dfdi}|j|jj�j|�dS)Nr	r-�rTr+)	rHrLr,rr*rIrMrNrO)r3�firstlineno_callingZfirstlineno_genrQr
r
r�test_trace_func_generator�sz(TestLineCounts.test_trace_func_generatorc	Cs�|jjt�tt�}tt�}|j|dfd|j|dfd|j|dfd|j|dfdi}|j|jj�j|�dS)Nr	r-�rTr+)	rHrLr1rr.rIrMrNrO)r3rZZfirstlineno_calledrQr
r
r�test_trace_list_comprehension�sz,TestLineCounts.test_trace_list_comprehensionc
Cs�x�dgD]�}tdddddddd�}td�}t||�}|j|d	�t|�}|j|dfdi}|j|j�j|�q
WdS)
Nr5r@r	rArrBrC��)	rr2�getattrrLrrIrMrNrO)r3ZmethnamerHZ
traced_obj�methodrRrQr
r
r�test_linear_methods�s!z"TestLineCounts.test_linear_methodsN)r:r;r<�__doc__rJrSrWrXr[r]rbr
r
r
rr?esr?c@s.eZdZdZdd�Zdd�ZdS)�TestRunExecCountsz8A simple sanity test of line-counting, via runctx (exec)cCs,tt�|_|jtjtj��dS)N)rrrIrDrErFrG)r3r
r
rrJ�szTestRunExecCounts.setUpc	Cs�tdddddddd�|_d}t|td�}|jj|t�t��tt�}|j	|dfd|j	|d	fd
|j	|dfd|j	|d
fdi}x8|j
�D]*}|j|jj�j
|||�q�WdS)Nr@r	rArrBrCztraced_func_loop(2, 5)�execr-rUrTr!rV)rrH�compilerZrunctx�globals�varsrr$rI�keysrMrNrO)r3�coderRrQr'r
r
r�test_exec_counts�s$z"TestRunExecCounts.test_exec_countsN)r:r;r<rcrJrkr
r
r
rrd�srdc@syeZdZdZdd�Zdd�Zdd�Zdd	�Zej	e
ed
�o`ej�d�dd
��Z
dS)�	TestFuncsz"White-box testing of funcs tracingcCsV|jtjtj��tdddddd�|_t�|_tj�|_dS)Nr@rrArBr	)	rDrErFrGrrHr�filemod�_saved_tracefunc)r3r
r
rrJ�szTestFuncs.setUpcCs#|jdk	rtj|j�dS)N)rnrErF)r3r
r
r�tearDown�szTestFuncs.tearDowncCsS|jjtd�|jdd|jddi}|j|jj�j|�dS)Nr	r&r )r&)r )rHrLr&rmrMrN�calledfuncs)r3rQr
r
r�test_simple_caller�s
zTestFuncs.test_simple_callercCs�|jjtd�|jdd|jd	d|jd
d|jddttj�ddfdi}|j|jj�j	|�dS)Nr	r&r r(r%rr)r&)r )r()r%)
rHrLr(rmrrrrMrNrp)r3rQr
r
r�test_loop_caller_importing�s



z$TestFuncs.test_loop_caller_importingrGz3pre-existing trace function throws off measurementscCsotd�}|jj|jd�|jdd|jdd|jddi}|j|jj�j|�dS)	Nr_r	�TracedClass.inst_method_calling�TracedClass.inst_method_linearr )rs)rt)r )r2rHrLr6rmrMrNrp)r3�objrQr
r
r�test_inst_method_calling�s

z"TestFuncs.test_inst_method_callingN)r:r;r<rcrJrorqrr�unittest�skipIf�hasattrrErGrvr
r
r
rrl�s	rlc@sUeZdZdZdd�Zejeed�o<ej	�d�dd��Z
dS)	�TestCallersz$White-box testing of callers tracingcCsG|jtjtj��tdddddd�|_t�|_dS)Nr@rrArCr	)rDrErFrGrrHrrm)r3r
r
rrJszTestCallers.setUprGz3pre-existing trace function throws off measurementscCs�|jjtd�tjjtj�ddddf|jdfd|jd
|jdfd|jd|jdfd|jd|jdfd|jdt	t
j�d
dffdi}|j|jj�j
|�dS)Nr	rz.pyrAz
Trace.runfuncr(r&r r%rr)r()r&)r )r()r&)r()r%)r%)rHrLr(rrrrArrmrrrMrNZcallers)r3rQr
r
rrrs#



!z&TestCallers.test_loop_caller_importingN)r:r;r<rcrJrwrxryrErGrrr
r
r
rrz
srzc@s[eZdZdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�ZdS)�TestCoveragecCs|jtjtj��dS)N)rDrErFrG)r3r
r
rrJ'szTestCoverage.setUpcCstt�tt�dS)N)rrr)r3r
r
rro*s
zTestCoverage.tearDownz_import test.support, test.test_pprint;test.support.run_unittest(test.test_pprint.QueryTestCase)cCs9|j|�|j�}|jdddddt�dS)NZshow_missingTZsummaryZcoverdir)ZrunrNZ
write_resultsr)r3rH�cmd�rr
r
r�	_coverage.s
zTestCoverage._coveragec
Cs�tjdddd�}t��}|j|�WdQRX|j�}|jd|�|jd|�tjt�}|jd|�|jd|�dS)	NrArr@r	z	pprint.pyzcase.pyzpprint.coverzunittest.case.cover)	rArrr~�getvalue�assertInr�listdirr)r3rH�stdout�filesr
r
r�
test_coverage5szTestCoverage.test_coveragec
Cs�tjjtjjtj��}tjdtjtj	|gdddd�}t
��}|j|�WdQRXtjjt
�r�tjt
�}|j|dg�dS)NZ
ignoredirsrArr@r	z_importlib.cover)rr�normpath�dirnamerrArrE�base_prefix�base_exec_prefixrr~�existsrr�rM)r3ZlibpathrHr�r�r
r
r�test_coverage_ignore@s!z!TestCoverage.test_coverage_ignorec

Cstjdddd�}d}|tjkr7tj|=d}t��}|j||�WdQRX|jd�|j�i}xS|D]K}|j�dd�\}}}	t	|�t	|dd
��f||	<q�Wtj
tj|j�}|j||�|j
||d�dS)NrArr@r	ztest.tracedmodules.testmodz<import test.tracedmodules.testmod as t;t.func(0); t.func2();rTr!�dr
)r!r�)rArrE�modulesrr~�seek�readline�split�intZ_fullmodnamerr�rM)
r3rHrr|r�Zcoverage�line�linesZcov�moduler
r
r�test_issue9936Ls 



*zTestCoverage.test_issue9936N)	r:r;r<rJror~r�r�r�r
r
r
rr{&sr{c@seZdZdd�ZdS)�Test_IgnorecCs�tjj}tjddg|dd�g�}|j|jdd��|j|jdd��|j|jdd	��|j|j|ddd
�d��|j|j|dd�d
��|j|j|dd
�d��dS)Nrzy.z�fooZbarzx.pyzxy.pyZxyzy.pyrzbaz.pyZbazzz.py�z)rr�joinrAZ_IgnoreZ
assertTrue�namesZassertFalse)r3Zjn�ignorer
r
r�test_ignoredes$%"zTest_Ignore.test_ignoredN)r:r;r<r�r
r
r
rr�dsr�c@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestDeprecatedMethodsc
CsJtj�}|jt��tj|�WdQRX|jd|j��dS)NzUsage:)�io�StringIO�assertWarns�DeprecationWarningrAZusager�r)r3Zsior
r
r�test_deprecated_usagessz+TestDeprecatedMethods.test_deprecated_usagec	Cs%|jt��tj�WdQRXdS)N)r�r�rA�Ignore)r3r
r
r�test_deprecated_Ignoreysz,TestDeprecatedMethods.test_deprecated_IgnorecCs4|jt��|jdtjd��WdQRXdS)N�spam)r�r�rMrAr)r3r
r
r�test_deprecated_modname}sz-TestDeprecatedMethods.test_deprecated_modnamecCs4|jt��|jdtjd��WdQRXdS)Nr�)r�r�rMrAZfullmodname)r3r
r
r�test_deprecated_fullmodname�sz1TestDeprecatedMethods.test_deprecated_fullmodnamec
Cs=|jt��'dd�}tj|jdg�WdQRXdS)NcSsdS)Nr
r
r
r
rr��szGTestDeprecatedMethods.test_deprecated_find_lines_from_code.<locals>.foo�eggs)r�r�rAZfind_lines_from_coder)r3r�r
r
r�$test_deprecated_find_lines_from_code�sz:TestDeprecatedMethods.test_deprecated_find_lines_from_codec
Cs=|jt��'dd�}tj|jdg�WdQRXdS)NcSsdS)Nr
r
r
r
rr��sz=TestDeprecatedMethods.test_deprecated_find_lines.<locals>.foor�)r�r�rAZ
find_linesr)r3r�r
r
r�test_deprecated_find_lines�sz0TestDeprecatedMethods.test_deprecated_find_linescCsTttd��}|jtt�WdQRX|jt��tj|j�WdQRXdS)N�w)	�openrrDrr�r�rAZfind_strings�name)r3�fdr
r
r�test_deprecated_find_strings�sz2TestDeprecatedMethods.test_deprecated_find_stringscCsTttd��}|jtt�WdQRX|jt��tj|j�WdQRXdS)Nr�)	r�rrDrr�r�rAZfind_executable_linenosr�)r3r�r
r
r�'test_deprecated_find_executable_linenos�sz=TestDeprecatedMethods.test_deprecated_find_executable_linenosN)r:r;r<r�r�r�r�r�r�r�r�r
r
r
rr�qsr��__main__)&rr�rEZtest.supportrrrrrwrArrZtest.tracedmodulesrrrrr r$r%r&r(r*r,r.r1�objectr2ZTestCaser?rdrlrzr{r�r�r:�mainr
r
r
r�<module>s:"
Z/>
-