Your IP : 216.73.216.213


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



��Yf��@s�ddlZddlmZddlZddlZddlZddlZddlZddlm	Z	ddl
Z
ddlZ
Gdd�de
j�Z
Gdd�de
j�Zedkr�e
j�dS)	�N)�abspath)�supportc@sPeZdZdZdZdZZZZdZ	dZ
dZZdd�Z
dS)�TestableTestProgramNT��cCsdS)N�)�selfrr�A/opt/alt/python35/lib64/python3.5/unittest/test/test_discovery.py�__init__szTestableTestProgram.__init__)�__name__�
__module__�__qualname__�module�exitZdefaultTest�failfast�
catchbreak�buffer�	verbosityZprogNameZ
testRunner�
testLoaderr
rrrr	rs
rc@sTeZdZdd�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+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7S)8�
TestDiscoveryc	Csftj�}d|_|jd�}|j|d�ts>dS|jt��|jd�WdQRXdS)Nz/fooz/foo/bar/baz.pyzbar.bazz/bar/baz.py)�unittest�
TestLoader�_top_level_dirZ_get_name_from_path�assertEqual�	__debug__�assertRaises�AssertionError)r�loader�namerrr	�test_get_name_from_paths	z%TestDiscovery.test_get_name_from_pathcs�tj�}tj��fdd�}tjj��fdd�}tjj��fdd�}ddd	d
ddd
gddgg��fdd�t_|j|�dd�}|tj_|j|�dd�}|tj_|j|�dd�|_|j	�d�fdd�}||_	dd�|_
tjjd�}||_t
|j|d��}	dd�d#D�}
|
jd d�d$D��|j|	|
�dS)%Ncs
�t_dS)N)�os�listdirr)�original_listdirrr	�restore_listdir.sz6TestDiscovery.test_find_tests.<locals>.restore_listdircs�tj_dS)N)r �path�isfiler)�original_isfilerr	�restore_isfile1sz5TestDiscovery.test_find_tests.<locals>.restore_isfilecs�tj_dS)N)r r$�isdirr)�original_isdirrr	�
restore_isdir4sz4TestDiscovery.test_find_tests.<locals>.restore_isdirztest2.pyztest1.pyz
not_a_test.py�test_dirztest.fooztest-not-a-module.py�another_dirztest4.pyztest3.pycs
�jd�S)Nr)�pop)r$)�
path_listsrr	�<lambda>:sz/TestDiscovery.test_find_tests.<locals>.<lambda>cSs
|jd�S)N�dir)�endswith)r$rrr	r(=sz,TestDiscovery.test_find_tests.<locals>.isdircSs|jd�od|kS)Nr0r,)r1)r$rrr	r%Bsz-TestDiscovery.test_find_tests.<locals>.isfilecSs|dS)Nz moduler)r$rrr	r/Hscs!�|d|�}||dgS)N�patternz testsr)rr2�base)�orig_load_testsrr	�loadTestsFromModuleJsz:TestDiscovery.test_find_tests.<locals>.loadTestsFromModulecSs|S)Nr)�thingrrr	r/Osz/fooztest*.pycSsg|]}|dg�qS)z
 module testsr)�.0rrrr	�
<listcomp>Ws	z1TestDiscovery.test_find_tests.<locals>.<listcomp>�test1�test2cSs!g|]}d|dg�qS)ztest_dir.%sz
 module testsr)r7rrrr	r8Ys	�test3�test4)r9r:r+)r;r<)rrr r!r$r%r(�
addCleanup�_get_module_from_namer5�
suiteClassrr�list�_find_tests�extendr)rrr#r'r*r(r%r5�	top_level�suiteZexpectedr)r4r)r&r"r.r	�test_find_tests*s>	


				
zTestDiscovery.test_find_testscs[tj�}tj��fdd�}tjj��fdd�}tjj��fdd�}dgg��fdd	�t_|j|�d
d	�tj_|j|�dd	�tj_|j|�dd	�|_|j	�d�fd
d�}||_	dd	�|_
tjjd�}||_t
|j|d��}|j|g�dS)Ncs
�t_dS)N)r r!r)r"rr	r#csz=TestDiscovery.test_find_tests_socket.<locals>.restore_listdircs�tj_dS)N)r r$r%r)r&rr	r'fsz<TestDiscovery.test_find_tests_socket.<locals>.restore_isfilecs�tj_dS)N)r r$r(r)r)rr	r*isz;TestDiscovery.test_find_tests_socket.<locals>.restore_isdirZsocketcs
�jd�S)Nr)r-)r$)r.rr	r/msz6TestDiscovery.test_find_tests_socket.<locals>.<lambda>cSsdS)NFr)r$rrr	r/pscSsdS)NFr)r$rrr	r/sscSs|dS)Nz moduler)r$rrr	r/vscs!�|d|�}||dgS)Nr2z testsr)rr2r3)r4rr	r5xszATestDiscovery.test_find_tests_socket.<locals>.loadTestsFromModulecSs|S)Nr)r6rrr	r/}sz/fooztest*.py)rrr r!r$r%r(r=r>r5r?rrr@rAr)rrr#r'r*r5rCrDr)r4r)r&r"r.r	�test_find_tests_socket]s.	


			z$TestDiscovery.test_find_tests_socketcs�tj�}tj��fdd�}tjj��fdd�}tjj��fdd�}ddd	g��gggg��fd
d�t_|j|�dd�tj_|j|��fd
d�tj_|j|�Gdd�dt���fdd�|_	|j
�d�fdd�}||_
dd�|_d|_t
|jdd��}|j|dgddgdgg�|j�jddd	g�|j�j|gdfg�dS)Ncs
�t_dS)N)r r!r)r"rr	r#�szCTestDiscovery.test_find_tests_with_package.<locals>.restore_listdircs�tj_dS)N)r r$r%r)r&rr	r'�szBTestDiscovery.test_find_tests_with_package.<locals>.restore_isfilecs�tj_dS)N)r r$r(r)r)rr	r*�szATestDiscovery.test_find_tests_with_package.<locals>.restore_isdir�a_directory�test_directory�test_directory2cs
�jd�S)Nr)r-)r$)r.rr	r/�sz<TestDiscovery.test_find_tests_with_package.<locals>.<lambda>cSsdS)NTr)r$rrr	r/�scstjj|��kS)N)r r$�basename)r$)�directoriesrr	r/�sc@s4eZdZgZgZdd�Zdd�ZdS)z:TestDiscovery.test_find_tests_with_package.<locals>.ModulecsP|�_�jj|�tjj|�dkrL�fdd�}|�_dS)NrHcs'�jj|||f��jdgS)Nz load_tests)�load_tests_args�appendr$)r�testsr2)rrr	�
load_tests�szWTestDiscovery.test_find_tests_with_package.<locals>.Module.__init__.<locals>.load_tests)r$�pathsrMr rJrO)rr$rOr)rr	r
�s
	zCTestDiscovery.test_find_tests_with_package.<locals>.Module.__init__cSs|j|jkS)N)r$)r�otherrrr	�__eq__�szATestDiscovery.test_find_tests_with_package.<locals>.Module.__eq__N)rrr
rPrLr
rRrrrr	�Module�s	rScs
�|�S)Nr)r)rSrr	r/�scs$�|d|�}||jdgS)Nr2z
 module tests)r$)rr2r3)r4rr	r5�szGTestDiscovery.test_find_tests_with_package.<locals>.loadTestsFromModulecSs|S)Nr)r6rrr	r/�sz/fooztest*za_directory module testsztest_directory load_testsztest_directory module testsztest_directory2 module tests)rrr r!r$r%r(r=�objectr>r5r?rr@rArrPrL)rrr#r'r*r5rDr)rSrKr4r)r&r"r.r	�test_find_tests_with_package�s@	


				
z*TestDiscovery.test_find_tests_with_packagecs�tj�}tj��fdd�}tjj��fdd�}tjj��fdd�}ddd	g��gggg��fd
d�t_|j|�dd�tj_|j|��fd
d�tj_|j|�Gdd�dt���fdd�|_	|j
�d�fdd�}||_
dd�|_d|_t
|jdd��}|j|dgddgdgg�|j�jddd	g�|j�j|gdfg�dS)Ncs
�t_dS)N)r r!r)r"rr	r#�szWTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.restore_listdircs�tj_dS)N)r r$r%r)r&rr	r'�szVTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.restore_isfilecs�tj_dS)N)r r$r(r)r)rr	r*�szUTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.restore_isdirrGrHrIcs
�jd�S)Nr)r-)r$)r.rr	r/�szPTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.<lambda>cSsdS)NTr)r$rrr	r/�scstjj|��kS)N)r r$rJ)r$)rKrr	r/�sc@s4eZdZgZgZdd�Zdd�ZdS)zNTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.ModulecsP|�_�jj|�tjj|�dkrL�fdd�}|�_dS)NrHcs'�jj|||f��jdgS)Nz load_tests)rLrMr$)rrNr2)rrr	rO�szkTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.Module.__init__.<locals>.load_tests)r$rPrMr rJrO)rr$rOr)rr	r
�s
	zWTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.Module.__init__cSs|j|jkS)N)r$)rrQrrr	rR�szUTestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.Module.__eq__N)rrr
rPrLr
rRrrrr	rS�s	rScs
�|�S)Nr)r)rSrr	r/�scs$�|d|�}||jdgS)Nr2z
 module tests)r$)rr2r3)r4rr	r5�sz[TestDiscovery.test_find_tests_default_calls_package_load_tests.<locals>.loadTestsFromModulecSs|S)Nr)r6rrr	r/�sz/fooztest*.pyza_directory module testsztest_directory load_testsztest_directory module testsztest_directory2 module tests)rrr r!r$r%r(r=rTr>r5r?rr@rArrPrL)rrr#r'r*r5rDr)rSrKr4r)r&r"r.r	�0test_find_tests_default_calls_package_load_tests�s@	


				
z>TestDiscovery.test_find_tests_default_calls_package_load_testscs�tj��fdd�}|j|�tjj��fdd�}|j|�tjj��fdd�}|j|�|jtjjtd��td�dgtd	�d
dgi��fdd
�}|t_dd�tj_dd�tj_Gdd�dt	��t
j�}�fdd�|_dd�|_
td�|_t|jtd�d��}|j|dgdggg�|j�jddg�|j�j|gdf|gdfg�dS)Ncs
�t_dS)N)r r!r)r"rr	r#szTTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.restore_listdircs�tj_dS)N)r r$r%r)r&rr	r' szSTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.restore_isfilecs�tj_dS)N)r r$r(r)r)rr	r*$szRTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.restore_isdirz/foo�
my_packagez/foo/my_packagez__init__.pyztest_module.pycst�|�S)N)r@)r$)�vfsrr	�list_dir6szMTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.list_dircSs|jd�S)Nz.py)r1)r$rrr	r/9szMTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.<lambda>cSs
|jd�S)Nz.py)r1)r$rrr	r/:sc@s4eZdZgZgZdd�Zdd�ZdS)zKTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.Modulecs\|�_�jj|�|jd�r=�fdd�}n�fdd�}|�_dS)NZtest_modulecs'�jj|||f��jdgS)Nz load_tests)rLrMr$)rrNr2)rrr	rODszhTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.Module.__init__.<locals>.load_testscs^�jj|||f�d}tjj|�}|jd|d|�}�jd|g|S)Nz/foo/my_package/__init__.py�	start_dirr2z load_tests)rLrMr r$�dirname�discover)rrNr2�__file__Zthis_dirZ	pkg_tests)rrr	rOHs	)r$rPrMr1rO)rr$rOr)rr	r
@s		zTTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.Module.__init__cSs|j|jkS)N)r$)rrQrrr	rRSszRTestDiscovery.test_find_tests_customize_via_package_pattern.<locals>.Module.__eq__N)rrr
rPrLr
rRrrrr	rS<srScs
�|�S)Nr)r)rSrr	r/WscSs|S)Nr)r6rrr	r/Xsztest*.pyzmy_package load_testsz!my_package.test_module load_testszmy_package.test_module)r r!r=r$r%r(�sys�removerrTrrr>r?rr@rArrPrL)rr#r'r*rYrrDr)rSr)r&r"rXr	�-test_find_tests_customize_via_package_patterns<	



		
z;TestDiscovery.test_find_tests_customize_via_package_patternc
s�tj�}tjj�tjj��fdd�}dd�tj_|j|�tjdd���fdd�}|j|�tjjtjj	d��}|j
t��|jdd	d�WdQRX|j
|j|�|j|tj�d
d�tj_dd�tj_�fdd
�}|j|�g�d�fdd�}||_t|_|jddd�}tjjd�}tjjd�}	|j
|d�|j
|j|�|j
�|	dfg�|j|tj�dS)Ncs�tj_dS)N)r r$r%r)r&rr	r'ssz3TestDiscovery.test_discover.<locals>.restore_isfilecSsdS)NFr)r$rrr	r/vsz-TestDiscovery.test_discover.<locals>.<lambda>cs�tjdd�<dS)N)r^r$r)�
orig_sys_pathrr	�restore_pathzsz1TestDiscovery.test_discover.<locals>.restore_pathz/fooz/foo/bar�
top_level_dircSsdS)NTr)r$rrr	r/�scSsdS)NTr)r$rrr	r/�scs�tj_dS)N)r r$r(r)r)rr	r*�sz2TestDiscovery.test_discover.<locals>.restore_isdircs�j||f�dgS)NrN)rM)rZr2�	namespace)�_find_tests_argsrr	rA�sz0TestDiscovery.test_discover.<locals>._find_testsz/foo/bar/bazr2z	['tests'])rrr r$r%r(r=r^r�normpathr�ImportErrorr\rr�assertInrA�strr?)
rrr'rb�	full_pathr*rArDrcrZr)rerar)r&r	�
test_discoverns:


		zTestDiscovery.test_discovercsKtd�dgtd�dgi��fdd�}|jttdtj�|t_|jttjdtjj�d	d
�tj_|jttjdtjj�dd
�tj_|jtjj	td��Gd
d�dt
��tj�}�fdd
�|_
dd
�|_|jddd�}|j|dgg�dS)Nz	/toplevelZstartdirz/toplevel/startdirz__init__.pycst�|�S)N)r@)r$)rXrr	rY�sz[TestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.list_dirr!r%cSs
|jd�S)Nz.py)r1)r$rrr	r/�sz[TestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.<lambda>r(cSs|jd�S)Nz.py)r1)r$rrr	r/�sc@s@eZdZgZgZdd�Zdd�Zdd�ZdS)zYTestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.ModulecSs
||_dS)N)r$)rr$rrr	r
�szbTestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.Module.__init__cSsd|jgS)Nzload_tests called )r$)rrrNr2rrr	rO�szdTestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.Module.load_testscSs|j|jkS)N)r$)rrQrrr	rR�sz`TestDiscovery.test_discover_start_dir_is_package_calls_package_load_tests.<locals>.Module.__eq__N)rrr
rPrLr
rOrRrrrr	rS�s
rScs
�|�S)Nr)r)rSrr	r/�scSs|S)Nr)r6rrr	r/�srczload_tests called startdir)rr=�setattrr r!r$r%r(r^r_rTrrr>r?r\r)rrYrrDr)rSrXr	�;test_discover_start_dir_is_package_calls_package_load_tests�s"		
	zITestDiscovery.test_discover_start_dir_is_package_calls_package_load_testscsxtj��fdd�t_tjj�dd�tj_tjdd�����fdd�}|j|�dS)Ncs�gS)Nr)�_)�fakefilerr	r/�sz8TestDiscovery.setup_import_issue_tests.<locals>.<lambda>cSsdS)NTr)rnrrr	r/�scs,�tj_�t_�tjdd�<dS)N)r r$r%r!r^r)r%r!rarr	�restore�s	z7TestDiscovery.setup_import_issue_tests.<locals>.restore)r r!r$r%r^r=)rrorpr)ror%r!rar	�setup_import_issue_tests�s	z&TestDiscovery.setup_import_issue_testscs�|jttdtj�|jttjdtjj�|jttjdtjj�|jtjjt	d�t
tj���fdd�}|t_dd�tj_dd�tj_dS)	Nr!r%r(cst�|�S)N)r@)r$)rXrr	rY�sz@TestDiscovery.setup_import_issue_package_tests.<locals>.list_dircSs|jd�S)Nz.py)r1)r$rrr	r/�sz@TestDiscovery.setup_import_issue_package_tests.<locals>.<lambda>cSs
|jd�S)Nz.py)r1)r$rrr	r/�s)r=rlr r!r$r%r(r^�__setitem__�slicer@)rrXrYr)rXr	� setup_import_issue_package_tests�s(	z.TestDiscovery.setup_import_issue_package_testsc	Cs�tj�}|jd�|jd�}|jtj�tj�|j	|j
�d�|jg|j�|j	dt
|j��|jd}|jd|kd|�tt|�d�d}|jt��|j�WdQRXdS)Nztest_this_does_not_exist.py�.rrz6Failed to import test module: test_this_does_not_existzmissing error string in %r)rrrqr\rhr �getcwdr^r$r�countTestCases�assertNotEqual�errors�len�
assertTruer@rrgZtest_this_does_not_exist)rrrD�error�testrrr	�.test_discover_with_modules_that_fail_to_import�s

	z<TestDiscovery.test_discover_with_modules_that_fail_to_importcs�td�dgtd�ddgi}|j|�g��fdd�}tj�}||_|jtd��}|jtd�tj�|j	|j
�d�|jg|j�|j	dt
|j��|jd	}|jd
|kd|�tt|�d	�d	}|jt��|j�WdQRX|j	�dg�x4ttjd�D]}tjtj||��qZWdS)Nz/foorWz/foo/my_packagez__init__.pyztest_module.pycs�j|�td��dS)NzCannot import Name)rMrg)r)�import_callsrr	r>�s
z`TestDiscovery.test_discover_with_init_modules_that_fail_to_import.<locals>._get_module_from_namerrz(Failed to import test module: my_packagezmissing error string in %r)rrtrrr>r\rhr^r$rrwrxryrzr{r@rrgrW�range�pickle�HIGHEST_PROTOCOL�loads�dumps)rrXr>rrDr|r}�protor)rr	�3test_discover_with_init_modules_that_fail_to_import�s,
	
	zATestDiscovery.test_discover_with_init_modules_that_fail_to_importcCs�tjjstjd��tj�}dd�}||_|jd�|jd�}|j|j	�d�tj
�}|j|�|jt|j
�d�x4ttjd�D]}tjtj||��q�WdS)NzSuite cleanup is disabledcSstjd��dS)N�	skipperoo)r�SkipTest)rrrr	r>szeTestDiscovery.test_discover_with_module_that_raises_SkipTest_on_import.<locals>._get_module_from_nameztest_skip_dummy.pyrur)r�
BaseTestSuite�_cleanupr�rr>rqr\rrw�
TestResult�runrz�skippedr�r�r�r�r�)rrr>rD�resultr�rrr	�8test_discover_with_module_that_raises_SkipTest_on_imports	

zFTestDiscovery.test_discover_with_module_that_raises_SkipTest_on_importcsStjjstjd��td�dgtd�ddgi}|j|�g��fdd�}tj�}||_|jtd��}|j	td�t
j�|j|j
�d	�tj�}|j|�|jt|j�d	�|j|jd	�|j�dg�x4ttjd	�D]}tjtj||��q,WdS)
NzSuite cleanup is disabledz/foorWz/foo/my_packagez__init__.pyztest_module.pycs �j|�tjd��dS)Nr�)rMrr�)r)rrr	r>1s
zjTestDiscovery.test_discover_with_init_module_that_raises_SkipTest_on_import.<locals>._get_module_from_namer)rr�r�r�rrtrr>r\rhr^r$rrwr�r�rzr�ZtestsRunr�r�r�r�r�)rrXr>rrDr�r�r)rr	�=test_discover_with_init_module_that_raises_SkipTest_on_import)s&
	
zKTestDiscovery.test_discover_with_init_module_that_raises_SkipTest_on_importcCs�t�}g}|j|_|jddg�|j|gg�g|dd�<|jddddg�|j|ddgg�dS)N�	somethingr\�foo�bar)rrM�
_do_discovery�	parseArgsr)r�program�argsrrr	�$test_command_line_handling_parseArgsDs	z2TestDiscovery.test_command_line_handling_parseArgscCs�t�}g}|j|_|jdg�|j|gg�|j|jd�|j|jd�|j|jd�|j|j	d�dS)Nr�rF)
rrMr�r�rr�assertIsrrr)rr�r�rrr	�.test_command_line_handling_discover_by_defaultPs	z<TestDiscovery.test_command_line_handling_discover_by_defaultcCs�t�}g}|j|_|jddddddg�|j|gg�|j|jd�|j|jd�|j|jd�|j|j	d�dS)Nr�z-vz-bz-cz-f�T)
rrMr�r�rrr�rrr)rr�r�rrr	�;test_command_line_handling_discover_by_default_with_options\s	zITestDiscovery.test_command_line_handling_discover_by_default_with_optionscCs�t�}d|_tj��9}|jt�� }|jddddg�WdQRXWdQRX|j|jj	d�|j
d|j��dS)NZoneZtwoZthreeZfourr�zusage:)r�)rrrZcaptured_stderrr�
SystemExitr�r�	exceptionr�rh�getvalue)rr��stderr�cmrrr	�:test_command_line_handling_do_discovery_too_many_argumentsis		'zHTestDiscovery.test_command_line_handling_do_discovery_too_many_argumentscCshtjtj�}|j�Gdd�dt�}|�|_|jdg�|j|jdg�dS)Nc@s"eZdZgZdd�ZdS)zYTestDiscovery.test_command_line_handling_do_discovery_uses_default_loader.<locals>.LoadercSs|jj|||f�dS)NrN)r�rM)rrZr2rcrrr	r\{szbTestDiscovery.test_command_line_handling_do_discovery_uses_default_loader.<locals>.Loader.discoverN)rrr
r�r\rrrr	�Loaderysr�z-vru�test*.py)rur�N)	rT�__new__r�TestProgramZ_initArgParsersrr�rr�)rr�r�rrr	�;test_command_line_handling_do_discovery_uses_default_loaderus
zITestDiscovery.test_command_line_handling_do_discovery_uses_default_loadercCs�t�}Gdd�dt�}|jdgd|�|j|jd�|j|jd�|j|jdg�g|_t�}|jdgd|�|j|jd�|j|jdg�g|_t�}|jgd|�|j|jd�|j|jdg�g|_t�}|jd	gd|�|j|jd�|j|jdg�g|_t�}|jd	d
gd|�|j|jd�|j|jdg�g|_t�}|jd	d
dgd|�|j|jd�|j|jdg�g|_t�}|jdd	gd|�|j|jd�|j|jdg�g|_t�}|jd
d	gd|�|j|jd�|j|jdg�g|_t�}|jdd	gd|�|j|jd�|j|jdg�|j|j�|j|j	�g|_t�}|jdd
dd	dddgd|�|j|jd�|j|jdg�|j|jd�|j
|j�|j
|j	�dS)Nc@s"eZdZgZdd�ZdS)zRTestDiscovery.test_command_line_handling_do_discovery_calls_loader.<locals>.LoadercSs|jj|||f�dS)NrN)r�rM)rrZr2rcrrr	r\�sz[TestDiscovery.test_command_line_handling_do_discovery_calls_loader.<locals>.Loader.discoverN)rrr
r�r\rrrr	r��sr�z-vr�rNru�test*.pyz	--verbose�fish�eggs�hamz-sz-tz-pz-fz-c)rur�N)rur�N)rur�N)r�r�N)r�r�N)r�r�r�)r�r�N)rur�r�)rur�N)r�r�N)rrTr�rrr}r�ZassertFalserrr{)rr�r�rrr	�4test_command_line_handling_do_discovery_calls_loader�sr																			!zBTestDiscovery.test_command_line_handling_do_discovery_calls_loadercs�Gdd�dt�}|tjd<tjjd��tj�tjj�tjj�����fdd�}|j	|�dd�}dd	�}d
d�}|t_|tj_|tj_�S)Nc@seZdZdZdS)z0TestDiscovery.setup_module_clash.<locals>.Modulez
bar/foo.pyN)rrr
r]rrrr	rS�srSr�csN�t_�tj_�tj_tjd=�tjkrJtjj��dS)Nr�)r r!r$r%r(r^�modulesr_r)rjr)r&r"rr	�cleanup�s	
z1TestDiscovery.setup_module_clash.<locals>.cleanupcSsdgS)Nzfoo.pyr)rnrrr	r!�sz1TestDiscovery.setup_module_clash.<locals>.listdircSsdS)NTr)rnrrr	r%�sz0TestDiscovery.setup_module_clash.<locals>.isfilecSsdS)NTr)rnrrr	r(�sz/TestDiscovery.setup_module_clash.<locals>.isdir)
rTr^r�r r$rr!r%r(r=)rrSr�r!r%r(r)rjr)r&r"r	�setup_module_clash�s
	
	z TestDiscovery.setup_module_clashcCs�|j�}tj�}tjjd�}tjjd�}tjd||f�}|jt	d||j
dddd�|jtjd|�dS)	Nr�r�zZ'foo' module incorrectly imported from %r. Expected %r. Is this module globally installed?z^%s$rZr2zfoo.pyr)
r�rrr r$r�re�escapeZassertRaisesRegexrgr\rr^)rrjr�mod_dir�expected_dir�msgrrr	�test_detect_module_clash�s	
z&TestDiscovery.test_detect_module_clashcs�|j�}tjj�tjjd��tjjd���fdd�}|j|���fdd�}|tj_tj�}|jdddd	�dS)
Nr�r�cs�tj_dS)N)r r$�realpathr)�original_realpathrr	r�sz5TestDiscovery.test_module_symlink_ok.<locals>.cleanupcs2|tjj�d�kr.tjj�d�S|S)Nzfoo.py)r r$�join)r$)r�r�rr	r�sz6TestDiscovery.test_module_symlink_ok.<locals>.realpathrZr2zfoo.py)	r�r r$r�rr=rrr\)rrjr�r�rr)r�r�r�r	�test_module_symlink_ok�s
z$TestDiscovery.test_module_symlink_okcs�tj�}�g�tjjtjjtjj���d�_d���fdd�}||_	|j
d�}�j�j��j|j
��dS)NFcsd�_�j|���S)NT)�wasRunr)rZr2rd)�expectedPathrrNrr	rAs	zBTestDiscovery.test_discovery_from_dotted_path.<locals>._find_testsz
unittest.test)rrr r$rr[r}r]r�rAr\r{rZ_tests)rrrArDr)r�rrNr	�test_discovery_from_dotted_paths	$		z-TestDiscovery.test_discovery_from_dotted_pathc
s�tj�}tj�dd�t_tjj�tjj�dd�tj_tjdd������fdd�}|j|�|j	t
��}|jd�WdQRX|jt
|j�d�dS)NcSsdgS)Nztest_this_does_not_exist.pyr)rnrrr	r/"szOTestDiscovery.test_discovery_from_dotted_path_builtin_modules.<locals>.<lambda>cSsdS)NFr)rnrrr	r/%scs8�tj_�tj_�t_�tjdd�<dS)N)r r$r%r(r!r^r)r(r%r!rarr	rp's	zNTestDiscovery.test_discovery_from_dotted_path_builtin_modules.<locals>.restorer^z2Can not use builtin modules as dotted module names)rrr r!r$r%r(r^r=r�	TypeErrorr\rrir�)rrrpr�r)r(r%r!rar	�/test_discovery_from_dotted_path_builtin_moduless	
z=TestDiscovery.test_discovery_from_dotted_path_builtin_modulescs�tj�}t�tjd��ddg�_tjdddddg��_�fdd�}�fdd	�}|j|�|t	_g�d�fd
d�}||_
t|_|j
d�}|j|dd
g�dS)N�packagez/az/br�submodule_search_locationscs�tj|<�S)N)r^r�)�packagenamer��kwargs)r�rr	�_import?s
zLTestDiscovery.test_discovery_from_dotted_namespace_packages.<locals>._importcs
�t_dS)N)�builtins�
__import__r)�orig_importrr	r�CszLTestDiscovery.test_discovery_from_dotted_namespace_packages.<locals>.cleanupcs�j||f�d|gS)Nz%s/tests)rM)rZr2rd)rerr	rAIszPTestDiscovery.test_discovery_from_dotted_namespace_packages.<locals>._find_testsz/a/testsz/b/tests)rrr��types�
ModuleType�__path__�SimpleNamespace�__spec__r=r�rAr@r?r\r)rrr�r�rArDr)rer�r�r	�-test_discovery_from_dotted_namespace_packages4s"	
			z;TestDiscovery.test_discovery_from_dotted_namespace_packagescs�tj�}tjd��t��fdd�}�fdd�}|j|�|t_|jt��}|j	d�WdQRX|j
t|j�dj
���dS)Nr�cs�tj|<�S)N)r^r�)r�r�r�)r�rr	r�Ws
z>TestDiscovery.test_discovery_failed_discovery.<locals>._importcs
�t_dS)N)r�r�r)r�rr	r�[sz>TestDiscovery.test_discovery_failed_discovery.<locals>.cleanupz$don't know how to discover from {!r})rrr�r�r�r=r�rr�r\rrir��format)rrr�r�r�r)r�r�r	�test_discovery_failed_discoveryRs
	z-TestDiscovery.test_discovery_failed_discoveryN)rrr
rrErFrUrVr`rkrmrqrtr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr	rs6
3(JGX.-
Jr�__main__)Zos.pathr rr�r^r�r�r�r}rrZ
unittest.testr�rZTestCaserr�mainrrrr	�<module>s ���P