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_regrtest.cpython-35.opt-2.pyc



���]��@spddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddlm
Z
eed�Zejjejje�dd�Zejjejje��Ze	jd�ZGdd�de
j�ZGd	d
�d
e
j�ZGdd�de�ZGd
d�de�Zedkrle
j�dS)�N)�regrtest)�supportZ
getobjectsz..z�
    from signal import SIGINT
    try:
        from _testcapi import raise_signal
        raise_signal(SIGINT)
    except ImportError:
        import os
        os.kill(os.getpid(), SIGINT)
    c@seZdZdd�Zdd�Zejeed�d�dd��Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Z d8d9�Z!d:d;�Z"d<d=�Z#d>d?�Z$d@dA�Z%dBdC�Z&dDdE�Z'dFdG�Z(dHdI�Z)dJdK�Z*dLdM�Z+dNdO�Z,dPdQ�Z-dRS)S�ParseArgsTestCasecCsTtj��+}|jt��tj|�WdQRXWdQRX|j||j��dS)N)rZcaptured_stderr�assertRaises�
SystemExitr�_parse_args�assertIn�getvalue)�self�args�msg�err�r�2/opt/alt/python35/lib64/python3.5/test_regrtest.py�
checkError(szParseArgsTestCase.checkErrorcCs�x{dD]s}|jd|��Xtj��.}|jt��tj|g�WdQRXWdQRX|jd|j��WdQRXqWdS)N�-h�--help�optzRun Python regression tests.)rr)	�subTestrZcaptured_stdoutrrrrrr	)r
r�outrrr�	test_help-s
zParseArgsTestCase.test_help�dump_traceback_laterz,faulthandler.dump_traceback_later() requiredcCsUtjddg�}|j|jd�|jdgd�|jddgd�dS)Nz	--timeoutz4.2g������@zexpected one argument�foozinvalid float value)rr�assertEqual�timeoutr)r
�nsrrr�test_timeout5szParseArgsTestCase.test_timeoutcCs&tjdg�}|j|j�dS)Nz--wait)rr�
assertTrue�wait)r
rrrr�	test_wait=szParseArgsTestCase.test_waitcCs?tjddg�}|j|jd�|jdgd�dS)Nz--slaveargsz[[], {}]zexpected one argument)rrrZ	slaveargsr)r
rrrr�test_slaveargsAsz ParseArgsTestCase.test_slaveargscCsjxcdD][}|jd|��@tj|dg�}|j|jd�|j|gd�WdQRXqWdS)N�-S�--startrrzexpected one argument)r!r")rrrr�startr)r
rrrrr�
test_startFs

zParseArgsTestCase.test_startcCs�tjdg�}|j|jd�tjdg�}|j|jd�tjdg�}|j|jd�tjdgd�}|j|jd�tjg�}|j|jd�dS)Nz-v�z-vvv�z	--verboser)rrr�verbose)r
rrrr�test_verboseMszParseArgsTestCase.test_verbosec
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-w�
--verbose2r)r)r*)rrrrZverbose2)r
rrrrr�
test_verbose2Ys
zParseArgsTestCase.test_verbose2c
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-W�
--verbose3r)r,r-)rrrrZverbose3)r
rrrrr�
test_verbose3_s
zParseArgsTestCase.test_verbose3cCsdx]dD]U}|jd|��:tj|g�}|j|j�|j|jd�WdQRXqWdS)N�-q�--quietrr)r/r0)rrrr�quietrr')r
rrrrr�
test_quietes

zParseArgsTestCase.test_quietc
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-o�	--slowestr)r3r4)rrrrZ
print_slow)r
rrrrr�	test_slowls
zParseArgsTestCase.test_slowcCs&tjdg�}|j|j�dS)Nz--header)rrr�header)r
rrrr�test_headerrszParseArgsTestCase.test_headerc
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-r�--randomizer)r8r9)rrrr�	randomize)r
rrrrr�test_randomizevs
z ParseArgsTestCase.test_randomizecCsetjddg�}|j|jd�|j|j�|jdgd�|jddgd�dS)Nz
--randseed�12345i90zexpected one argumentrzinvalid int value)Zlibregrtestrr�random_seedrr:r)r
rrrr�
test_randseed|s
zParseArgsTestCase.test_randseedcCs�x|dD]t}|jd|��Ytj|dg�}|j|jd�|j|gd�|j|ddgd�WdQRXqWdS)	N�-f�
--fromfilerrzexpected one argumentz-szdon't go together)r?r@)rrrr�fromfiler)r
rrrrr�
test_fromfile�s
zParseArgsTestCase.test_fromfilecCsetjddg�}|j|jd�|j|j�|jdgd�|jddgd�dS)Nz
--randseedr<i90zexpected one argumentrzinvalid int value)rrrr=rr:r)r
rrrrr>�s
c
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-x�	--excluder)rCrD)rrrr�exclude)r
rrrrr�test_exclude�s
zParseArgsTestCase.test_excludecCsjxcdD][}|jd|��@tj|g�}|j|j�|j|ddgd�WdQRXqWdS)N�-s�--singlerz-frzdon't go together)rGrH)rrrrZsingler)r
rrrrr�test_single�s

zParseArgsTestCase.test_singlecCs?xfdD]^}|jd|��Ctj|dg�}|j|jdg�|j|gd�WdQRXqWtjddddg�}|j|jddg�|jtjtj	�t
tj	d��'}td	d
|�tdd
|�WdQRXtj
jtj	�}tjddd
|g�}|j|jdd	dg�dS)N�-m�--matchr�patternzexpected one argumentZpattern1Zpattern2�wZ
matchfile1�fileZ
matchfile2�matchz--matchfile)rJrK)rrrrZmatch_testsr�
addCleanupr�unlink�TESTFN�open�print�os�path�abspath)r
rr�fp�filenamerrr�
test_match�s"
zParseArgsTestCase.test_matchcCs�x�dD]}}|jd|��btj|dg�}|j|j�tj|dg�}|j|j�|j|gd�WdQRXqWdS)N�-G�
--failfastrz-vz-Wz#-G/--failfast needs either -v or -W)r[r\)rrrrZfailfastr)r
rrrrr�
test_failfast�s
zParseArgsTestCase.test_failfastcCsXxQdD]I}|jd|��.tj|dg�}|j|jddg�tj|dg�}|j|jdg�ttj�}|jd�tj|dg�}|j|j|�|j|gd	�|j|d
gd�tj|dg�}|j|jttj�d
g�tj|d
g�}|j|jd
g�WdQRXqWdS)N�-u�--userzgui,networkZgui�networkzgui,none,networkzall,-guizexpected one argumentrzinvalid resourcezall,extralargefileZextralargefile)r^r_)	rrrrZ
use_resources�listZ
ALL_RESOURCES�remover)r
rrZexpectedrrr�test_use�s"

zParseArgsTestCase.test_usecCsjxcdD][}|jd|��@tj|dg�}|j|jd�|j|gd�WdQRXqWdS)N�-M�
--memlimitr�4Gzexpected one argument)rdre)rrrr�memlimitr)r
rrrrr�
test_memlimit�s

zParseArgsTestCase.test_memlimitcCsQtjddg�}|j|jtjjtjd��|j	dgd�dS)Nz	--testdirrzexpected one argument)
rrr�testdirrUrV�joinr�SAVEDCWDr)r
rrrr�test_testdir�s%zParseArgsTestCase.test_testdirc
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-L�
--runleaksr)rmrn)rrrrZrunleaks)r
rrrrr�
test_runleaks�s
zParseArgsTestCase.test_runleaksc
Cs$xdD]}|jd|���tj|dg�}|j|jd�tj|dg�}|j|jd�tj|d
g�}|j|jd�tj|dg�}|j|jd�|j|gd�|j|dgd�|j|dgd�|j|dgd�WdQRXqWdS)N�-R�--huntrleaksr�:���
reflog.txtz6:�z:3r&z
6:3:leaks.log�	leaks.logzexpected one argument�6z&needs 2 or 3 colon-separated argumentszfoo:zinvalid huntrleaks valuez6:foo)rprq)rsrtru)rvrtru)rsr&ru)rvr&rw)rrrr�
huntrleaksr)r
rrrrr�test_huntrleaks�s
z!ParseArgsTestCase.test_huntrleaksc
CsxdD]
}|jd|���tj|dg�}|j|jd�|j|gd�|j|dgd�|j|dd	gd
�|j|ddgd
�|j|ddd
gd
�|j|dd	gd
�|j|ddgd
�|j|ddd
gd
�WdQRXqWdS)N�-j�--multiprocessr�2�zexpected one argumentrzinvalid int valuez-Tzdon't go togetherz-lz-Mrf�0)r{r|)rrrrZuse_mpr)r
rrrrr�test_multiprocess�s
z#ParseArgsTestCase.test_multiprocessc
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-T�
--coverager)r�r�)rrrrZtrace)r
rrrrr�
test_coverages
zParseArgsTestCase.test_coveragec
Cs|xudD]m}|jd|��Rtj|dg�}|j|jtjjtj	d��|j
|gd�WdQRXqWdS)N�-D�
--coverdirrrzexpected one argument)r�r�)rrrr�coverdirrUrVrjrrkr)r
rrrrr�
test_coverdirs
zParseArgsTestCase.test_coverdirc
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-N�--nocoverdirr)r�r�)rrrZassertIsNoner�)r
rrrrr�test_nocoverdirs
z!ParseArgsTestCase.test_nocoverdircCs�xyd	D]q}|jd|��Vtj|dg�}|j|jd�|j|gd�|j|dgd�WdQRXqWdS)
N�-t�--thresholdrZ1000i�zexpected one argumentrzinvalid int value)r�r�)rrrrZ	thresholdr)r
rrrrr�test_thresholds
z ParseArgsTestCase.test_thresholdc
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-n�--nowindowsr)r�r�)rrrrZ	nowindows)r
rrrrr�test_nowindows$s
z ParseArgsTestCase.test_nowindowsc
CsQxJdD]B}|jd|��'tj|g�}|j|j�WdQRXqWdS)N�-F�	--foreverr)r�r�)rrrr�forever)r
rrrrr�test_forever*s
zParseArgsTestCase.test_forevercCs|jdgd�dS)Nz--xxxzusage:)r)r
rrr�test_unrecognized_argument0sz,ParseArgsTestCase.test_unrecognized_argumentcCs9tjdg�}|j|j�|j|jd�dS)Nz--quir)rrrr1rr')r
rrrr�test_long_option__partial3sz+ParseArgsTestCase.test_long_option__partialcCsLtjddg�}|j|j�|j|jd�|j|j�dS)Nz--quietz	--excluder)rrrr1rr'rE)r
rrrr�test_two_options8sz"ParseArgsTestCase.test_two_optionscCs,tjddg�}|j|jd�dS)Nz--start�)rrrr#)r
rrrr�#test_option_with_empty_string_value>sz5ParseArgsTestCase.test_option_with_empty_string_valuecCs,tjdg�}|j|jdg�dS)Nr)rrrr)r
rrrr�test_argBszParseArgsTestCase.test_argcCsRtjddg�}|j|j�|j|jd�|j|jdg�dS)Nz--quietrr)rrrr1rr'r)r
rrrr�test_option_and_argFsz%ParseArgsTestCase.test_option_and_argcCsHtjdddg�}|j|jd�|j|jddg�dS)NZtest_unaryopz-vZ
test_binopr%)rrrr'r)r
rrrr�test_arg_option_argLsz%ParseArgsTestCase.test_arg_option_argcCs|jdgd�dS)Nz--unknown-optionz(unrecognized arguments: --unknown-option)r)r
rrr�test_unknown_optionQsz%ParseArgsTestCase.test_unknown_optionN).�__name__�
__module__�__qualname__rr�unittest�
skipUnless�hasattr�faulthandlerrrr r$r(r+r.r2r5r7r;r>rBrFrIrZr]rcrhrlrorzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr$sR	rc	@s�eZdZdZdZdZdd�Zdddd	�Zd
d�Zdd
�Z	dd�Z
ffffddddd�Zdd�Zdddd�Z
dd�ZdS)�BaseTestCaser%Ztest_regrtest_ztest_[a-zA-Z0-9_]+cCsJtjjtjjt��|_tj�|_|j	t
j|j�dS)N)rUrV�realpath�dirname�__file__ri�tempfile�mkdtemp�
tmptestdirrPr�rmtree)r
rrr�setUp[s!zBaseTestCase.setUpNr�cCs�|s"dtj}tjd7_|j|}tjj|j|d�}|jtj	|�y0t
|ddd��}|j|�WdQRXWnKtk
r�}z+t
j�s�|jd||f��WYdd}~XnX|S)Nznoop%sr%z.py�x�encodingzutf-8zcannot write %s: %s)r��TEST_UNIQUE_ID�TESTNAME_PREFIXrUrVrjr�rPrrQrS�write�PermissionError�	sysconfig�is_python_buildZskipTest)r
�name�coderVrX�excrrr�create_testas

zBaseTestCase.create_testcCs9tj||tj�}|s5|jd||f�|S)Nz%r not found in %r)�re�search�	MULTILINE�fail)r
�regex�outputrOrrr�regex_searchvszBaseTestCase.regex_searchcCs-tjd|tj�}|j||�dS)N�^)r��compiler�ZassertRegex)r
r�r�rrr�
check_line|szBaseTestCase.check_linecCs<d|j}tj||tj�}tdd�|D��S)NzU^[0-9]+:[0-9]+:[0-9]+ (?:load avg: [0-9]+\.[0-9]{2} )?\[ *[0-9]+(?:/ *[0-9]+)*\] (%s)css|]}|jd�VqdS)r%N)�group)�.0rOrrr�	<genexpr>�sz4BaseTestCase.parse_executed_tests.<locals>.<genexpr>)�TESTNAME_REGEXr��finditerr�ra)r
r�r��parserrrr�parse_executed_tests�s
z!BaseTestCase.parse_executed_testsFc
s_t|t�r|g}t|t�r0|g}t|t�rH|g}t|t�r`|g}t|t�rx|g}|j|�}
|r�|jt|
�t|�|�n|j|
||�dd���fdd�}|r|d|�}|j||�|r*|d|�}|j||�|rO|d|�}|j||�|rt|d|�}|j||�t|�t|�t|�t|�t|�}
|
r�d	|
�|
�f}|r�|r�|
d
kr�d|}|j||�|r|j|d�|rd
}n*|r,d}n|	rA|rAd}nd}|j|d|�dS)NcSs|dkrdSdS)Nr%�sr�r)�countrrr�plural�sz1BaseTestCase.check_executed_tests.<locals>.pluralcsKt|�}djt|��}||�|�f}d||f}|S)N� z%s:\n    %s$)�lenrj�sorted)Zline_format�testsr��namesr�)r�rr�
list_regex�s
z5BaseTestCase.check_executed_tests.<locals>.list_regexz%s test%s skippedz%s test%s failedz+%s test%s altered the execution environmentz%s test%s omittedz%s test%s OK\.$r%zAll %sz(Test suite interrupted by signal SIGINT.�FAILUREZINTERRUPTEDzENV CHANGED�SUCCESSzTests result: %s)�
isinstance�strr�r�setr�r�)r
r�r��skipped�failed�env_changed�omittedr:�interrupted�fail_env_changedZexecutedr�r�Zgood�resultr)r�r�check_executed_tests�sZ					"	4
			z!BaseTestCase.check_executed_testscCsQ|jd|�}t|jd��}|jd|koDdkn|�|S)NzUsing random seed ([0-9]+)r%ri���)r��intr�r)r
r�rO�randseedrrr�parse_random_seed�s&zBaseTestCase.parse_random_seedrc	Ks�|sd}d|kr%tj|d<tj|ddd|dtj|�}|j|kr�dt|�|j|jf}|jr�|d|j7}|j|�|S)	Nr��stderr�universal_newlinesT�input�stdoutz8Command %s failed with exit code %s

stdout:
---
%s
---
z
stderr:
---
%s---
)�
subprocess�PIPE�run�
returncoder�r�r�r�)r
rr��exitcode�kw�procrrrr�run_command�s"
		
zBaseTestCase.run_commandcKs4tjdddf|�}|j||�}|jS)Nz-Xr�z-I)�sys�
executabler�r�)r
rr�r�rrr�
run_python�szBaseTestCase.run_python)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�VsBr�cseZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Ze
jej�d�dd��Zdd�Ze
jej�d�e
jejdkd�dd���Ze
jejdkd�dd��Z�S) �ProgramsTestCasertcs�t�j��fdd�t�j�D��_dddg�_ddd�jg�_tt	d	�r|�jj
d�tjd
kr��jj
d�dS)Ncsg|]}�j��qSr)r�)r��index)r
rr�
<listcomp>�s	z*ProgramsTestCase.setUp.<locals>.<listcomp>z-Wdz-Ez-bbz-uallz-rwWz--testdir=%sr�	--timeout�3600�-j4�win32z-n)r�r�r�)�superr��range�NTESTr��python_argsr��
regrtest_argsr�r��extendr��platform�append)r
)�	__class__)r
rr��s
%zProgramsTestCase.setUpcCs*|j|�|j||jdd�dS)Nr:T)r�r�r�)r
r�rrr�check_output	s
zProgramsTestCase.check_outputcCs |j|�}|j|�dS)N)r�r)r
rr�rrr�	run_tests
szProgramsTestCase.run_testscCsGtjj|jd�}|j|f|j|j�}|j|�dS)Nzregrtest.py)rUrVrjrir�r�r�r)r
�scriptrrrr�test_script_regrtestsz%ProgramsTestCase.test_script_regrtestcCs,|jd|j|j�}|j|�dS)N�-m�test)rr)r�r�r�r)r
rrrr�test_module_tests	z!ProgramsTestCase.test_module_testcCs,|jd|j|j�}|j|�dS)N�-m�
test.regrtest)r
r)r�r�r�r)r
rrrr�test_module_regrtests	z%ProgramsTestCase.test_module_regrtestcCs,|jd|j|j�}|j|�dS)N�-m�
test.autotest)r
r)r�r�r�r)r
rrrr�test_module_autotest$s	z%ProgramsTestCase.test_module_autotestcCs8d}|jd|f|j|j�}|j|�dS)Nzfrom test import autotestz-c)r�r�r�r)r
r�rrrr�test_module_from_test_autotest*sz/ProgramsTestCase.test_module_from_test_autotestcCsGtjj|jd�}|j|f|j|j�}|j|�dS)Nzautotest.py)rUrVrjrir�r�r�r)r
rrrrr�test_script_autotest1sz%ProgramsTestCase.test_script_autotestz$run_tests.py script is not installedcCsDtjjtddd�}|f|j|j�}|j|�dS)N�Tools�scriptszrun_tests.py)rUrVrj�ROOT_DIRr�r�r)r
rrrrr�test_tools_script_run_tests7sz,ProgramsTestCase.test_tools_script_run_testscGs#|j|�}|j|j�dS)N)r�rr�)r
rr�rrr�	run_batch?szProgramsTestCase.run_batchz test.bat script is not installedr�zWindows onlycCs~tjjtddd�}d|jg}tj�ddkrN|jd�tsa|jd�|j	|||j
��dS)	NrZbuildbotztest.batz--testdir=%sr�64bitz-x64z+d)rUrVrjrr�r�architecturer�Py_DEBUGrr�)r
rZ	test_argsrrr�test_tools_buildbot_testCs

z)ProgramsTestCase.test_tools_buildbot_testcCswtjjtd�}dg}tj�ddkrA|jd�trT|jd�|j|||j	|j
��dS)NzPCbuild\rt.batz-qrrz-x64z-d)rUrVrjrrrrrrr�r�)r
rZrt_argsrrr�test_pcbuild_rtPs	

z ProgramsTestCase.test_pcbuild_rt)r�r�r�r�r�rrrr	rrrrr�r�r�r�rrr�rrrrr)rrr��s"*r�c@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zejed�dd��Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(S))�ArgsTestCasecOs,ddd|jf|�}|j||�S)Nz-mrz--testdir=%s)r�r�)r
Ztestargsr�ZcmdargsrrrraszArgsTestCase.run_testscCsntjd�}|jd�}|jdd|�}||g}|j|dd�}|j||d|�dS)Nz�
            import unittest

            class FailingTest(unittest.TestCase):
                def test_failing(self):
                    self.fail("bug")
        �okZfailingr�r�r~r�)�textwrap�dedentr�rr�)r
r�Ztest_okZtest_failingr�r�rrr�test_failing_testes	zArgsTestCase.test_failing_testcCs�i}x.dD]&}d|}|j||�||<q
Wt|j��}|jdd|�}|j||�|jd|�}|j||d|d�|j|�}|j||d|�dS)	N�audior`z-from test import support
support.requires(%r)z-u�allz-uaudior�)r!r`)r�r��valuesrr�)r
r�Zresourcer�Z
test_namesr�rrr�test_resourcesus

zArgsTestCase.test_resourcesc	Cs�tjd�}|jd|�}|jd|�}|j|�}|jd|�}t|jd��}|jdd||�}|j|�}|j||�|jd|�}t|jd��}|j||�dS)Nza
            import random
            print("TESTRANDOM: %s" % random.randint(1, 1000))
        �randomz-rzTESTRANDOM: ([0-9]+)r%z
--randseed=%s)	rrr�rr�r�r�r�r)	r
r�rr�r�rO�test_randomZ	randseed2Ztest_random2rrrr&�s	zArgsTestCase.test_randomc	!s �fdd�td�D�}tj}�jtj|�t|d��s}d}xct|d�D]R\}}d||t|�|f}|r�|d|7}t|d|�|}qcWWdQRX�j	d	|�}�j
||�t|d��J}x@t|d�D]/\}}td
|t|�|fd|�qWWdQRX�j	d	|�}�j
||�t|d��(}x|D]}t|d|�qyWWdQRX�j	d	|�}�j
||�t|d��,}x"|D]}td|d|�q�WWdQRX�j	d	|�}�j
||�dS)Ncsg|]}�j��qSr)r�)r�r�)r
rrr��s	z.ArgsTestCase.test_fromfile.<locals>.<listcomp>rsrMr%z00:00:%02i [%s/%s] %sz -- %s took 0 secrNz
--fromfilez
[%s/%s] %szLib/test/%s.py)r�rrRrPrQrS�	enumerater�rTrr�)	r
r�rYrXZpreviousr�r��liner�r)r
rrB�s:	.

zArgsTestCase.test_fromfilecCsPt}|jdd|�}|j|dd�}|j||d|dd�dS)N�sigintr�r��r�r�T)�TEST_INTERRUPTEDr�rr�)r
r�rr�rrr�test_interrupted�s
zArgsTestCase.test_interruptedcsn�fdd�td�D�}�jd|�}�j||�d�jt|�f}�j||�dS)Ncsg|]}�j��qSr)r�)r�r�)r
rrr��s	z-ArgsTestCase.test_slowest.<locals>.<listcomp>r&z	--slowestz#10 slowest tests:
(?:- %s: .*
){%s})r�rr�r�r�r�)r
r�r�r�r)r
r�test_slowest�szArgsTestCase.test_slowestc	Cs�t}|jdd|�}yddl}d
}Wntk
rKd}YnXxy|D]q}|rqdd|f}nd|f}|j|dd	�}|j||d
|dd�d}|j||�qSWdS)Nr)r�rFTz	--slowestz-j2r�r*r�r�z10 slowest tests:
)FT)F)r+r��	threading�ImportErrorrr�r�)	r
r�rr.r��multiprocessingrr�r�rrr�test_slow_interrupted�s 



z"ArgsTestCase.test_slow_interruptedcCsN|jd�}|jd|�}|j||g�d}|j||�dS)NZcoveragez
--coveragezLlines +cov% +module +\(path\)\n(?: *[0-9]+ *[0-9]{1,2}% *[^ ]+ +\([^)]+\)+)+)r�rr�r�)r
rr�r�rrrr��s
zArgsTestCase.test_coveragecCs;|jd�}|jd|dd�}|j|d�dS)Nrz--waitr��keyzPress any key to continue)r�rr�)r
rr�rrrrszArgsTestCase.test_waitcCs]tjd�}|jdd|�}|jd|dd�}|j||gdd|�dS)	NaL
            import builtins
            import unittest

            class ForeverTester(unittest.TestCase):
                def test_run(self):
                    # Store the state in the builtins module, because the test
                    # module is reload at each run
                    if 'RUN' in builtins.__dict__:
                        builtins.__dict__['RUN'] += 1
                        if builtins.__dict__['RUN'] >= 3:
                            self.fail("fail at the 3rd runs")
                    else:
                        builtins.__dict__['RUN'] = 1
        r�r�z	--foreverr�r~r&r�)rrr�rr�)r
r�rr�rrrr�s
	zArgsTestCase.test_foreverc

Cs�|jdd|�}d}|jtj|�|jdd|dddtj�}|j||gd	|�d
}|j|t	j
|��d||f}|j||�t|��#}|j
�}	|j||	�WdQRXdS)Nryr�z
reflog.txtz--huntrleaksz3:3:r�r~r�r�z&beginning 6 repetitions
123456
......
z%s leaked [1, 1, 1] %s, sum=3
)r�rPrrQrr��STDOUTr�r�r��escaperrS�read)
r
r�ZwhatrrYr�r(Zline2rXZreflogrrr�
check_leakszArgsTestCase.check_leakzneed a debug buildcCs#tjd�}|j|d�dS)Nz�
            import unittest

            GLOBAL_LIST = []

            class RefLeakTest(unittest.TestCase):
                def test_leak(self):
                    GLOBAL_LIST.append(object())
        Z
references)rrr6)r
r�rrrrz1s	zArgsTestCase.test_huntrleakscsQ�fdd�td�D�}�jd|�}�j|j�j�|�dS)Ncsg|]}�j��qSr)r�)r��i)r
rrr�As	z0ArgsTestCase.test_list_tests.<locals>.<listcomp>rsz--list-tests)r�rr�rstrip�
splitlines)r
r�r�r)r
r�test_list_tests?szArgsTestCase.test_list_testscCs�tjd�}|jd|�}d|d|g}|jd|�}|j|j�|�d|g}|jddd|�}|j|j�|�dS)Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_method1(self):
                    pass
                def test_method2(self):
                    pass
        r�z%s.Tests.test_method1z%s.Tests.test_method2z--list-casesz-m�test_method1)rrr�rrr9)r
r��testname�all_methodsr�rrr�test_list_casesFs	

		zArgsTestCase.test_list_casescCstd}|jddd|�}|jdd�}||g}|jd|dd�}|j||d	|d
d�dS)Nz,import faulthandler; faulthandler._sigsegv()r�Zcrashr�rz-j2r�r~r�r:T)r�rr�)r
r�Z
crash_testZok_testr�r�rrr�test_crashed`szArgsTestCase.test_crashedcCs2tjddtj�}dd�|j|�D�S)Nz^(test[^ ]+).*ok$�flagscSsg|]}|jd��qS)r%)r�)r�rOrrrr�ms	z.ArgsTestCase.parse_methods.<locals>.<listcomp>)r�r�r�r�)r
r�r�rrr�
parse_methodskszArgsTestCase.parse_methodsc
Cstjd�}ddddg}|jd|�}|jd|�}|j|�}|j||�tj}|jtj	|�dd|g}t
|d	��(}x|D]}	t|	d
|�q�WWdQRX|jdd||�}|j|�}ddg}|j||�dS)NaV
            import unittest

            class Tests(unittest.TestCase):
                def test_method1(self):
                    pass
                def test_method2(self):
                    pass
                def test_method3(self):
                    pass
                def test_method4(self):
                    pass
        r;Ztest_method2Ztest_method3Ztest_method4r�z-vz%s.Tests.test_method3rMrNz--matchfile)rrr�rrArrrRrPrQrSrT)
r
r�r=r<r��methodsrYZsubsetrXr�rrr�test_matchfileos&		

zArgsTestCase.test_matchfilecCs�tjd�}|jd|�}|j|�}|j||gd|�|jd|dd�}|j||gd|dd�dS)	Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_env_changed(self):
                    open("env_changed", "w").close()
        r�r�z--fail-env-changedr�r&r�T)rrr�rr�)r
r�r<r�rrr�test_env_changed�s	zArgsTestCase.test_env_changedN)r�r�r�rr r$r&rBr,r-r1r�rr�r6r�r�rrzr:r>r?rArCrDrrrrr\s&0
	)r�__main__) r�Zos.pathrUrr�r�r�r�r�rr�rrrr�rrVrjr�r�rrW�normpathrr+ZTestCaserr�r�rr��mainrrrr�<module>s0$	�3�i�Q