Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/distutils/tests/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/distutils/tests/__pycache__/test_build_ext.cpython-35.opt-1.pyc



��YfK�@s8ddlZddlZddlmZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
mZmZddlmZddlmZmZmZmZddlZdd	lmZd
aGdd�dee
ej�ZGd
d�de�Zdd�Zedkr4ej e�dS)�N)�StringIO)�Distribution)�	build_ext)�	sysconfig)�TempdirManager�LoggingSilencer�copy_xxmodule_c�fixup_build_ext)�	Extension)�CompileError�DistutilsPlatformError�DistutilsSetupError�UnknownFileError)�supportFcs9eZdZ�fdd�Zdd�Zdd�Z�fdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zejejdkd�dd��Zejejdkd�dd ��Zejejdkd�d!d"��Zd#d$�Z�S)%�BuildExtTestCasecs�tt|�j�|j�|_tjtjdd�f|_tjj|j�ddl	}|j
|_|j�|_
ddlm
}|j
|_
tj�|_|jj�|j|jjddd�dS)Nr)r)�superr�setUp�mkdtemp�tmp_dir�sys�path�sys_path�append�site�	USER_BASE�
old_user_base�distutils.commandrrZtemp_cwd�	__enter__�
addCleanup�__exit__)�selfrr)�	__class__��C/opt/alt/python35/lib64/python3.5/distutils/tests/test_build_ext.pyrs
zBuildExtTestCase.setUpcOs
t||�S)N)r)r �args�kwargsr"r"r#r/szBuildExtTestCase.build_extc	
Cs�t|j�tjj|jd�}td|g�}tddd|gi�}|j|_|j|�}t	|�|j|_
|j|_tj
}tjs�t�t_
z|j�|j�Wd|t_
Xtr�|jdt�nt|�jaddl}x$dD]}|jt||��qW|j|jdd�d
�|j|jdd�d�|j|j�j�d�tjr�d}|j|j|�|j |j!�|j!�|j |j"�|j"�dS)Nz
xxmodule.c�xx�name�ext_moduleszAlready tested in %sr�error�foo�new�roj����
��z/This is a template module just for instruction.)r)r*r+r,)#rr�osr�joinr
r�package_dirrr	�	build_lib�
build_tempr�stdoutr�verboser�ensure_finalized�run�ALREADY_TESTEDZskipTest�type�__name__r&�
assertTrue�hasattr�assertEqualr*r+ZdemoZHAVE_DOCSTRINGS�__doc__�assertIsInstanceZNullZStr)	r Zxx_cZxx_ext�dist�cmd�
old_stdoutr&�attr�docr"r"r#�test_build_ext2s<

		


	zBuildExtTestCase.test_build_extcs�tjd�|jdt_|jdtjdd�<ddl}|j|_ddlm	}|j|_t
t|�j�dS)Nr&r�)r)
rZunloadrrrrrrrrrr�tearDown)r rr)r!r"r#rK[s
zBuildExtTestCase.tearDowncCs�tddi�}|j|�}tj}dt_ddlm}|jd�}d|d<z|j�Wd|t_|dkr�|d=n
||d<X|jt	|j
�d�dS)Nr'r&�sunosr)�_config_vars�Py_ENABLE_SHAREDrJ)rrr�platformZdistutils.sysconfigrM�getr:Z
assertGreater�len�library_dirs)r rDrE�oldrMZold_varr"r"r#�test_solaris_enable_sharedfs		
	
z+BuildExtTestCase.test_solaris_enable_sharedcCs�ddl}tddi�}|j|�}dd�|jD�}|jd|�d|_tjj|j	d�}tjj|j	d	�}tj
|�tj
|�|j�|j||j�|j||j
�|j||j�dS)
Nrr'r&cSsg|]\}}}|�qSr"r")�.0r'ZshortZlabler"r"r#�
<listcomp>�s	z3BuildExtTestCase.test_user_site.<locals>.<listcomp>�userrJ�lib�include)rrrZuser_options�assertInrWr3rr4r�mkdirr:rR�rpath�include_dirs)r rrDrEZoptionsrXZinclr"r"r#�test_user_site{s	
	


zBuildExtTestCase.test_user_sitecCs�tddgdd�g}tddd|i�}|j|�}|j�|jttf|j�tddgdd�g}tddd|i�}|j|�}|j�|j�dS)	Nr*�xxx�optionalFr'r&r(T)r
rrr:�assertRaisesrrr;)r �modulesrDrEr"r"r#�test_optional_extension�s


z(BuildExtTestCase.test_optional_extensioncCs�tddgdd�g}tddd|i�}|j|�}|j�dd	lm}|j�}|j||j�|jd
d�}|j||j�|j|�}d|_	|j�|j
|j	d
ddg�|j|�}dtj|_
|j�|jd|j
�|jd|j
�|j|�}dtj|_|j�|j
|jddg�t|�}d|_|j�|j
|jdddg�|j|�}d|_|j�|j
|jddg�|j|�}d|_|j�|j
|jddg�|j|�}d|_|j�|j
|jg�|j|�}d|_|j�|j
|jddg�dS)Nr*r_r`Fr'r&r(r)rZ
plat_specificrJzmy_lib, other_lib lastlibZmy_libZ	other_libZlastlibzmy_lib_dir%sother_lib_dirZ
my_lib_dirZ
other_lib_dirzone%stwo�one�twoz
one two,threeZthreezone,two�1z1 2�2)rdrf)rerf)r
rr�finalize_options�	distutilsrZget_python_incrZr]�	librariesrAr3�pathseprRr\Zlink_objectsZdefineZundefZ	swig_opts)r rbrDrErZ
py_includeZplat_py_includer"r"r#�test_finalize_options�sT
	


	
	
	
	
	
z&BuildExtTestCase.test_finalize_optionscCs�t�}|j|�}|j�|jt|jd�ddg}|jt|j|�dg}|jt|j|�dg}|jt|j|�dddgddddifg}|j|�|d	}|j|t�|j|j	d�|j
t|d��dddgddddd
ddgifg}|jt|j|�ddg|d	dd
<|j|�|j|d	jd
g�|j|d	j
dg�dS)Nr*�bar�foo-bar��foo.barZsourcesrjZsomerZmacrosrfrg�3rJ)rmr*rm)rnro)rpro)rfrgrq)rfrg)rq)rfrg)rrrhrar
Zcheck_extensions_listrCr
rArjZassertFalser@Zundef_macrosZ
define_macros)r rDrEZexts�extr"r"r#�test_check_extensions_list�s2	
	
		


z+BuildExtTestCase.test_check_extensions_listcCsitddgdd�g}tddd|i�}|j|�}|j�|j|j�dg�dS)Nr*r_r`Fr'r&r()r
rrr:rAZget_source_files)r rbrDrEr"r"r#�test_get_source_filess

z&BuildExtTestCase.test_get_source_filescCsLt�}|j|�}d|_|j�|j�|j|jd�dS)NZunix)rr�compilerr:r;rA)r rDrEr"r"r#�test_compiler_option&s		

z%BuildExtTestCase.test_compiler_optioncCs|j�}tjj|d�}|j|d�td|gdd�}tddd|gi�}|j|�}t|�|j	�|j
t|j��d	�tjj|j
d
�|_tjj|j
d�|_tjj|j��}tj�}tj|�z'd	|_|j�|j�d}Wdtj|�X|jtjj|��tjd
�}	|j|j|	��tjj|�}
|j
|
|�d|_d|_|j�|j�d}|jtjj|��|j|j|	��tjj|�}
|j
|
|j�|jd�}ddi|_|jd�}tjj|�d}|j
||j�d	|_tjj|j��}tj�}tj|�z|jd�}Wdtj|�Xtjj|�d}tjj|�d}
|j
|
d�dS)Nzfoo.czvoid PyInit_foo(void) {}
r*r`Fr'r&r(rJZbuildZtemptr�
EXT_SUFFIX�build_pyrorm���) rr3rr4Z
write_filer
rrr	r:rArQZget_outputsrr6r7�realpath�getcwd�chdir�inplacer;r?�existsr�get_config_var�endswith�dirnameru�get_finalized_commandr5�get_ext_fullpath�split)r rZc_filerrrDrEZ
other_tmp_dirZold_wdZso_fileZ
ext_suffixZso_dirrxrZlastdirr"r"r#�test_get_outputs1s`	


	
		
	
z!BuildExtTestCase.test_get_outputscCs�tjd�}t�}|j|�}d|_ddi|j_ddg|j_tj	�}tj
j|ddd|�}|jd�}|j
||�d	|_tj
j|d
�|_tj
j|d
dd|�}|jd�}|j
||�|jd�}i|_dd
g|j_|jd
�}tj
j|d
ddd|�}|j
||�d|_|jd
�}tj
j|ddd|�}|j
||�dS)NrwrJro�srcZlxmlz	lxml.htmlZetreez
lxml.etreerZtmpdirrxZtwistedztwisted.runner.portmapZrunnerZportmap)rrrrr}Zdistributionr5Zpackagesr3r{rr4r�rAr6r�)r rrrDrE�curdirZwantedrrxr"r"r#�test_ext_fullpathps4				
	z"BuildExtTestCase.test_ext_fullpath�darwinztest only relevant for MacOSXcCs|jdd�dS)Nz==)�_try_compile_deployment_target)r r"r"r#�test_deployment_target_default�sz/BuildExtTestCase.test_deployment_target_defaultcCs|jt|jdd�dS)N�>z10.1)rarr�)r r"r"r#�test_deployment_target_too_low�s	z/BuildExtTestCase.test_deployment_target_too_lowcCsotjd�}|rkdd�|jd�D�}|d	d7<djdd�|D��}|jd|�dS)
N�MACOSX_DEPLOYMENT_TARGETcSsg|]}t|��qSr")�int)rU�xr"r"r#rV�s	zEBuildExtTestCase.test_deployment_target_higher_ok.<locals>.<listcomp>�.rJcss|]}t|�VqdS)N)�str)rU�ir"r"r#�	<genexpr>�szDBuildExtTestCase.test_deployment_target_higher_ok.<locals>.<genexpr>�<ry)rrr�r4r�)r �	deptargetr"r"r#� test_deployment_target_higher_ok�sz1BuildExtTestCase.test_deployment_target_higher_okc
Cs�tj}|j�t_|jttd|�|dkrYtjjd�rftjd=n
|tjd<tjj|jd�}t	|d��!}|j
tjd|��WdQRXt
jd�}ttt|jd�dd���}|d	d
krd|}n
d|}td
|gdd|fg�}tdd
d|gi�}|j|_|j|�}|j|_|j|_yGtj}	tjs�t�t_z|j�|j�Wd|	t_XWnt k
r�|j!d�YnXdS)N�environr�zdeptargetmodule.c�wz�                #include <AvailabilityMacros.h>

                int dummy;

                #if TARGET %s MAC_OS_X_VERSION_MIN_REQUIRED
                #else
                #error "Unexpected target"
                #endif

            r�rr-rJ�
z	%02d%01d0z
%02d%02d00r�Zextra_compile_argsz-DTARGET=%sr'r(z*Wrong deployment target during compilation)"r3r��copyr�setattrrPrr4r�open�write�textwrap�dedentrr�tuple�mapr�r�r
rr5rr6r7rr8rr9rr:r;rZfail)
r �operator�targetZorig_environZdeptarget_c�fpZ
deptarget_extrDrErFr"r"r#r��sJ	


(

			

z/BuildExtTestCase._try_compile_deployment_target)r>�
__module__�__qualname__rrrIrKrTr^rcrlrsrtrvr�r��unittestZ
skipUnlessrrOr�r�r�r�r"r")r!r#rs")G0?''''
rcs"eZdZ�fdd�Z�S)�ParallelBuildExtTestCasecs"t�j||�}d|_|S)NT)rrZparallel)r r$r%r)r!r"r#r�s	z"ParallelBuildExtTestCase.build_ext)r>r�r�rr"r")r!r#r��sr�cCs<tj�}|jtjt��|jtjt��|S)N)r�Z	TestSuiteZaddTestZ	makeSuiterr�)Zsuiter"r"r#�
test_suite�sr��__main__)!rr3�iorr�Zdistutils.corerZdistutils.command.build_extrrirZdistutils.tests.supportrrrr	Zdistutils.extensionr
Zdistutils.errorsrrr
rr�Ztestrr<ZTestCaserr�r�r>Zrun_unittestr"r"r"r#�<module>s(""��